/* 活動頁面：原 campaign 與 Bootstrap 覆寫已統一整合至既有 layout.css */
@charset "UTF-8";

:root {
    --campaign-navy: #050a3a;
    --campaign-lime: #ccff28;
    --campaign-purple: #6455ed;
    --campaign-white: #fff;
    --campaign-width: 1200px;
    --nav-height: 64px;
    color-scheme: dark
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 80px
}

body {
    margin: 0;
    background: var(--campaign-navy);
    color: #fff;
    font-family: "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;
    line-height: 1.6
}


.web_content img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
        width: 100%;
}


.btn:focus {
    outline: 0;
    box-shadow: 0 0 0 0rem rgb(255 255 255 / 25%) !important;
}





.mainCoverContainer_1 {
    width: 100%;
    position: relative;
}

.mainCoverBox_1 {
    overflow: hidden;
    object-fit: cover;
    width: 100%;
    position: relative;
}

.small-title {
    position: absolute;
    top: 50%;
    right: 47%;
    padding-top: 0;
    padding-left: 0;
    z-index: 3;
}


.small-title img {
    width: 37vw;
}


.big-title {
    position: absolute;
    top: 19%;
    right: 48%;
    padding-top: 0;
    padding-left: 0;
    z-index: 3;
}


.big-title img {
    width: 36vw;
}

.bar {
    position: absolute;
    top: 60%;
    right: 47%;
    padding-top: 0;
    padding-left: 0;
    z-index: 3;
}


.bar img {
    width: 36vw;
}



.cta {
    position: absolute;
    top: 70%;
    right: 66%;
    padding-top: 0;
    padding-left: 0;
    z-index: 3;
}


.cta img {
    width: 17vw;
}



.cta0 {
    position: absolute;
    top: 13%;
    right: 53%;
    padding-top: 0;
    padding-left: 0;
    z-index: 3;
}








.svg-symbols {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0
}

.skip-link {
    position: fixed;
    top: 8px;
    left: 16px;
    z-index: 1000;
    padding: 10px 20px;
    background: #fff;
    color: #050a3a;
    transform: translateY(-160%)
}

.skip-link:focus {
    transform: translateY(0)
}

.site-header {
    height: var(--nav-height);
    background: #070b2b;
    border-bottom: 1px solid #a5a6db24
}

.site-nav {
    height: 100%;
    max-width: 1440px;
    padding: 0 32px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px
}

.site-brand img {
    width: 144px;
    height: 40px;
    object-fit: contain
}

.site-links {
    display: flex;
    align-items: center;
    gap: 30px;
    font-size: 15px
}

.site-links>a {
    transition: color .2s
}

.site-links>a:hover {
    color: var(--campaign-lime)
}

.site-links .nav-cta {
    padding: 7px 19px;
    border: 1px solid #7373b3;
    border-radius: 40px
}

.menu-toggle {
    display: none
}

.campaign {
    width: 100%;
    overflow: clip
}

.campaign-container {
    width: min(var(--campaign-width), calc(100% - 64px));
    margin-inline: auto
}

.campaign p {
    color: inherit
}

.lime {
    color: var(--campaign-lime)
}

.mobile-break {
    display: none
}

.section-heading {
    text-align: center;
    margin-bottom: 48px
}

.section-heading h2 {
    font-size: clamp(27px, 3.2vw, 45px);
    line-height: 1.3;
    font-weight: 900;
    color: white;
}

.section-heading p {
    font-size: clamp(18px, 1.9vw, 24px);
    font-weight: 500;
    line-height: 1.7;
    color: white;
    margin-top: 10px;
}

.section-art {
    background-color: #080b44;
    background-image: url('../images/blue_purple_stage_background.webp');
    background-position: center top;
    background-size: 100% 100%;
    background-repeat: no-repeat
}

.campaign-panel {
    position: relative;
    border: 2px solid #5645dd;
    border-radius: 17px;
    background: linear-gradient(132deg, #0d1872d9, #060b3ee8);
    box-shadow: inset 0 1px 12px #6050f02b, 0 3px 16px #04052640
}

.campaign-panel::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 17px;
    height: 49px;
    background: var(--campaign-lime);
    clip-path: polygon(0 0, 100% 0, 100% 82%, 0 100%);
    border-top-left-radius: 13px
}

.hero {
    position: relative;
    background: #020930;
    isolation: isolate
}

.hero-art {
    display: block
}

.hero-art>img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1920 / 669
}

.hero-inner {
    position: absolute;
    inset: 0;
    max-width: 1440px;
    margin: auto;
    display: flex;
    align-items: center;
    padding: 20px 24px 8%
}

.hero-copy {
    width: 66%;
    position: relative;
    z-index: 1
}

.hero h1 {
    font-family: "Noto Serif TC", "PMingLiU", "Times New Roman", serif;
    font-size: clamp(30px, 4.25vw, 81px);
    font-weight: 900;
    line-height: 1.2;

    text-shadow: 0 3px 0 #393b81, 0 0 16px #b0bcfc3d
}

.hero h1 span {
    font-size: .92em;
    white-space: nowrap
}

.hero-subtitle {
    font-size: clamp(15px, 1.55vw, 30px);
    font-weight: 800;

    margin-top: 12px
}

.hero-meta {
    display: flex;
    gap: 20px;
    margin-top: 19px;
    font-size: clamp(12px, 1.18vw, 21px);
    font-weight: 700;
    flex-wrap: wrap
}

.hero-meta>span {
    display: flex;
    align-items: center;
    gap: 7px
}

.hero-meta>span+span {
    border-left: 1px solid #b3b4ed99;
    padding-left: 20px
}

.hero-meta svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: var(--campaign-lime);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.hero-meta b {
    white-space: nowrap
}

.button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    min-height: 58px;
    padding: 10px 38px;
    border-radius: 40px;
    font-size: 24px;
    font-weight: 900;
    line-height: 1.5;
    text-align: center;
    border: 2px solid transparent;
    transition: transform .2s, box-shadow .2s, background .2s
}

.button:hover {
    transform: translateY(-3px)
}

.button-lime {
    background: linear-gradient(#ddff5e, #baff16);
    color: #0b1549;
    box-shadow: 0 0 0 2px #efffbf44, 0 0 18px #b3ff0040
}

.button-lime:hover {
    box-shadow: 0 0 0 2px #efffbf77, 0 0 26px #b3ff0060
}

.button-outline {
    background: #0b105144;
    border-color: #dddafa;
    color: #fff;
    min-width: 260px
}

.button-outline:hover {
    background: #5047a34d
}

.hero-cta {
    margin-top: 18px;
    font-size: clamp(15px, 1.5vw, 27px);
    min-height: 0;
    padding: 5px 32px
}

.hero-cta span {
    font-size: 1.1em;

}

.benefits {
    padding: 60px 0 60px;
}

.reward-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
    margin-bottom: 35px
}

.reward-card {
    display: flex;
    align-items: center;
    padding: 20px 30px;
    gap: 18px;
    min-height: 192px
}

.reward-card img {
    width: 40%;
    height: 142px;
    object-fit: contain
}

.reward-card>div {
    border-left: 1px solid #a0a4f78a;
    padding-left: 30px;
    flex: 1
}

.reward-card h3 {
    font-size: 24px;
    font-weight: 700;
    white-space: nowrap;
    color: white;
}

.reward-amount {
    font-weight: 900;
    color: var(--campaign-lime) !important;
    font-size: clamp(45px, 4vw, 78px);
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.ebook-panel {
    padding: 30px 42px 34px
}

.ebook-panel>h3 {
    font-size: 24px;
    line-height: 1.4;
    font-weight: 900;
    color: white;
}

.ebook-panel>h3 span {
    color: #ccff28;
    font-weight: 700;
    white-space: nowrap
}

.ebook-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 22px;
    margin-top: 20px
}

.ebook-grid figure {
    text-align: center;
    min-width: 0
}

.ebook-grid img {
    display: block;
    width: 100%;
    height: 235px;
    object-fit: contain
}

.ebook-grid figcaption {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    margin-top: 4px;
    word-break: keep-all;
    color: white;
}

.benefit-actions {
    display: flex;
    justify-content: center;
    gap: 44px;
    margin-top: 48px
}

.benefit-actions .button-lime {
    min-width: 410px;
}

.trends {
    
    padding: 60px 0 60px;
   
}


.trend-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 42px
}

.trend-card {
    padding: 24px 24px 26px;
    text-align: center
}

.trend-card>img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: contain
}

.trend-copy {
    border-top: 1px solid #7c79f6;
    padding-top: 22px;
    margin-top: 10px
}

.trend-copy h3 {
    font-size: clamp(18px, 1.9vw, 24px);
    font-weight: 900;
    white-space: nowrap;
    color: white;
}

.trend-copy p {
    font-size: 16px;
    line-height: 1.65;
    font-weight: 500;
    margin-top: 12px;
    color: white;
    margin: 0;
}

.action-line {
    margin: 64px 0 0;
    text-align: center;
    font-size: 27px;
    font-weight: 800;
    padding: 22px 18px;

    color: white;
}

.action-line strong {
    color: #e582f4;
    font-size: 36px;
}

.courses {
    padding: 60px 0 60px;
  
}

.courses .section-heading {}

.course-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 27px
}

.course-card {
    border: 2px solid #5744d1;
    border-radius: 15px;
    background: #070d42;
    overflow: hidden;
    box-shadow: 0 0 0 6px #08117c66;
    transition: transform .2s, border-color .2s;
    min-width: 0;
    padding: 10px;
}

.course-card:hover,
.course-card:focus-within {
    transform: translateY(-5px);
    border-color: var(--campaign-lime)
}



.course-thumbnail {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 9px
}

.course-info {
    padding: 13px 4px 4px
}

.course-info h3 {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    min-height: 54px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: white;
}

.course-price {
    text-align: right;
    font-size: 21px;
    font-weight: 800;
    color: var(--campaign-lime) !important;
    margin-top: 16px;
    font-variant-numeric: tabular-nums;
    margin-bottom: 0;
}

.pagination {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-top: 75px;
    align-items: center
}

.page-button {
    display: grid;
    place-items: center;
    min-width: 30px;
    min-height: 30px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #121c43;
    font-size: 16px;
    font-weight: 900
}

.page-button[aria-current=page] {
    background: var(--campaign-lime)
}

.page-button:hover {
    box-shadow: 0 0 0 4px #ccff2833
}

.no-script {
    background: #fff;
    color: #121c43 !important;
    padding: 24px;
    border-radius: 10px
}

.growth {
    background: #02082d url(../images/career_growth_banner_wide.webp) top / cover no-repeat;
    min-height: 660px;
    display: flex;
    align-items: center
}

.growth-inner {
    width: min(1220px, calc(100% - 64px));
    margin: auto
}

.growth-copy {
    max-width: 650px;
    padding: 72px 0
}

.growth h2 {
    font-size: clamp(39px, 3.8vw, 72px);
    line-height: 1.3;
    font-weight: 900;
    color: white;

}

.growth p {
    font-size: 25px;
    line-height: 1.4;
    font-weight: 500;
    margin-top: 12px;
    color: white;
}

.faq-area {
    padding: 60px 0 90px;
     background-image: url('../images/diagonal_light_background.webp');
    background-position: center top;
    background-size: 100% 100%;
    background-repeat: no-repeat
}

.faq-title {
      font-size: clamp(27px, 2.6vw, 45px);
      /* font-size: clamp(27px, 3.2vw, 51px); */
      font-weight: 900;
      text-align: center;
      line-height: 1.3;
      margin-bottom: 48px;
      color: white;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 26px;
    width: 100%;
    margin: 0
}

.faq-item {
    background: #fff;
    color: #12152f;
    border-radius: .25rem;
    overflow: hidden;
    border: 0px solid transparent;
}

.faq-item summary {
    display: flex;
    align-items: center;
    gap: 17px;
    padding: 15px 21px;
    min-height: 64px;
    background: var(--campaign-lime);
    color: #10162d;
    font-size: 24px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    line-height: 1.5
}

.faq-item summary::-webkit-details-marker {
    display: none
}

.faq-number {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ffffff;
    flex: 0 0 24px;
    font-size: 16px;
    font-weight: 500;
    font-weight: bold;
    color: #999cc8;
}

.faq-item summary>span:nth-child(2) {
    flex: 1
}

.faq-chevron {
    width: 11px;
    height: 11px;
    border-right: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
    transform: rotate(45deg);
    flex: 0 0 11px;
    margin: 0 9px 7px 15px;
    transition: transform .2s
}

.faq-item[open] .faq-chevron {
    transform: rotate(225deg);
    margin-bottom: 0;
    margin-top: 6px
}

.faq-answer {
    padding: 19px 27px 21px 72px;
    font-size: 21px;
    font-weight: 500;
    line-height: 1.65;
    color: #14172c
}

.faq-answer p {
    color: inherit
}

.faq-answer a {
    color: #3025a3;
    text-decoration: underline;
    text-underline-offset: 4px
}

.faq-answer ul {
    padding-left: 1.2em;
    margin: 10px 0
}

.campaign-notice {
    border: 1px solid rgb(237 237 255 / 30%);
    border-radius: 38px;
    padding: 46px 38px 40px;
    position: relative;
    margin-top: 72px;
}

.campaign-notice h2 {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -55%);
    padding: 0 40px;
    background: #02134f;
    font-size: clamp(18px, 2.6vw, 27px);
    line-height: 1.4;
    white-space: nowrap;
    font-weight: 900;
    color: white;
}

.campaign-notice ol {
    padding-left: 1.4em;
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.9;
    color: rgb(255 255 255 /87%);
}

.campaign-notice li+li {
    margin-top: 4px
}

.site-footer {
    background: #fff;
    color: #24304a;
    font-size: 15px;
    padding: 45px 32px 20px
}

.footer-shell {
    max-width: 1200px;
    margin: auto;
    display: grid;
    grid-template-columns: 1.3fr 1.3fr .7fr;
    gap: 45px
}

.footer-brand img {
    width: 160px;
    height: auto
}

.footer-brand p {
    margin-top: 14px;
    color: #5f6678
}

.footer-service h2 {
    font-size: 15px;
    margin-bottom: 10px
}

.footer-service a {
    display: block;
    padding: 3px 0
}

.footer-service a:hover {
    text-decoration: underline
}

.footer-service p {
    color: #5f6678
}

.copyright {
    max-width: 1200px;
    border-top: 1px solid #d5d9e4;
    margin: 30px auto 0;
    padding-top: 18px;
    font-size: 12px;
    color: #757e8b
}

.back-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 20;
    background: #090d46e6;
    border: 1px solid #adabdf;
    border-radius: 50%;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    font-size: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s
}

.modal-content h2,
.modal-content p {
    color: white;
}


.back-top.is-visible {
    opacity: 1;
    pointer-events: auto
}

.info-dialog {
    padding: 0;
    border: 1px solid #6d64e9;
    border-radius: 20px;
    color: #fff;
    background: #0b1246;
    width: min(600px, calc(100% - 32px));
    max-height: 85dvh
}

.info-dialog::backdrop {
    background: #0009;
    backdrop-filter: blur(5px)
}

.dialog-content {
    padding: 38px 32px;
    position: relative
}

.dialog-close {
    position: absolute;
    right: 12px;
    top: 6px;
    color: #fff;
    border: 0;
    background: none;
    font-size: 33px;
    width: 44px;
    height: 44px
}

.info-dialog h2 {
    font-size: 27px;
    padding-right: 24px;
    margin-bottom: 20px
}

.info-dialog p {
    color: #e1e4fa;
    font-size: 18px;
    line-height: 1.8;
    margin-top: 12px
}

.info-dialog a:not(.button) {
    color: var(--campaign-lime);
    text-decoration: underline
}

.dialog-done {
    font-size: 18px;
    margin-top: 25px;
    min-height: 48px
}

.dialog-ebook-list {
    padding-left: 24px;
    color: #e1e4fa;
    line-height: 1.8
}

.dialog-cover {
    width: 100%;
    border-radius: 10px
}

.dialog-course-price {
    font-size: 24px !important;
    color: var(--campaign-lime) !important;
    font-weight: 800
}

@media(min-width:1921px) {
    .hero-inner {
        max-width: 1600px
    }

    .hero h1 {
        font-size: 93px
    }

    .hero-subtitle {
        font-size: 33px
    }
}

@media(max-width:1199px) {
    .campaign-container {
        width: calc(100% - 56px)
    }

    .hero-inner {
        padding-left: 10%;
        padding-bottom: 6%
    }

    .hero h1 {
        font-size: 4.2vw
    }

    .hero-copy {
        width: 70%
    }

    .hero-meta {
        gap: 10px;
        font-size: 1.2vw;
        margin-top: 10px
    }

    .hero-meta>span+span {
        padding-left: 10px
    }

    .hero-meta svg {
        width: 20px;
        height: 20px
    }

    .hero-subtitle {
        margin-top: 8px
    }

    .hero-cta {
        margin-top: 12px
    }

    .benefits {
        padding: 78px 0
    }

    .reward-grid {
        gap: 24px
    }

    .reward-card {
        padding: 18px;
        gap: 8px;
        min-height: 160px
    }

    .reward-card img {
        height: 125px
    }

    .reward-card>div {
        padding-left: 18px
    }

    .reward-card h3 {
        font-size: 27px
    }

    .ebook-panel {
        padding: 25px 24px
    }

    .ebook-panel>h3 {
        font-size: 27px
    }

    .ebook-grid {
        gap: 12px
    }

    .ebook-grid img {
        height: 190px
    }

    .ebook-grid figcaption {
        font-size: 18px
    }

    .benefit-actions {
        gap: 24px
    }

    .benefit-actions .button-lime {
        min-width: 0
    }

    .button {
        font-size: 21px
    }

    .trend-grid {
        gap: 24px
    }

    .trend-card {
        padding: 20px 16px
    }

    .trend-card>img {
        height: 175px
    }

    .trend-copy h3 {
        font-size: 24px
    }

    .trend-copy p {
        font-size: 18px
    }

    .trends {
        padding: 78px 0 65px
    }

    .action-line {
        font-size: 24px
    }

    .course-grid {
        gap: 22px
    }

    .course-card>a {
        padding: 10px
    }

    .course-info h3 {

        min-height: 48px;
        
        font-size: 15px;
    }

    .course-price {
        font-size: 18px
    }

    .growth {
        min-height: 480px
    }

    .growth h2 {
        font-size: 51px
    }

    .growth p {
        font-size: 27px
    }

    .growth-copy {
        max-width: 55%;
        padding: 50px 0
    }

    .faq-area {
        padding: 90px 0 120px
    }

    .faq-item summary {
        font-size: 21px
    }



    .campaign-notice {
        margin-top: 130px
    }

    .campaign-notice ol {
        font-size: 15px
    }
}

@media(min-width:768px) and (max-width:991px) {
    .row>* {
        padding-right: 8px;
        padding-left: 8px;
        margin-top: 16px;
    }

}

@media(max-width:991px) {


    .site-nav {
        padding: 0 24px
    }

    .site-links {
        gap: 20px
    }

    .hero-meta {
        font-size: 1.22vw;
        gap: 7px
    }

    .hero-meta>span+span {
        padding-left: 7px
    }

    .hero-meta svg {
        width: 16px;
        height: 16px
    }

    .hero-cta {
        padding: 3px 24px;
        font-size: 15px
    }

    .hero-subtitle {
        font-size: 1.6vw
    }

    .hero-meta {
        margin-top: 8px
    }

    .reward-card {
        padding: 16px 10px
    }

    .reward-card h3 {
        font-size: 27px
    }

    .reward-card>div {
        padding-left: 12px
    }

    .reward-amount {
        font-size: 36px
    }

    .ebook-grid {
        gap: 8px
    }

    .ebook-grid img {
        height: 150px
    }

    .ebook-grid figcaption {
        font-size: 15px
    }

    .ebook-panel>h3 {
        font-size: 27px
    }


    .ebook-panel>h3 span {
        font-size: 27px
    }


    .button {
        font-size: 21px;
        min-height: 52px;
        padding: 9px 28px
    }

    .button-outline {
        min-width: 200px
    }

    .section-heading h2 {
        font-size: 36px
    }

    .section-heading p {
        font-size: 24px
    }


    .trend-grid {
        gap: 18px
    }

    .trend-card>img {
        height: 140px
    }

    .trend-copy {
        padding-top: 16px
    }

    .trend-copy h3 {
        font-size: 21px
    }

    .trend-copy p {
        font-size: 15px
    }

    .action-line {
        font-size: 21px
    }

    .course-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 22px
    }

    .courses {
        padding: 85px 0
    }

    .growth {
        min-height: 400px
    }

    .growth h2 {
        font-size: 42px
    }

    .growth p {
        font-size: 24px;
        margin-top: 10px;
    }

    .faq-title {
        font-size: 36px
    }

    .faq-list {
        gap: 20px
    }

    .faq-item summary {
        font-size: 18px;
        padding: 14px 16px;
        gap: 12px
    }

    .faq-answer {
        font-size: 18px;
        padding: 18px 20px 20px 62px
    }

    .campaign-notice h2 {
        font-size: 33px
    }

    .campaign-notice {
        padding: 34px 26px 26px
    }

    .footer-shell {
        grid-template-columns: 1fr 1fr
    }

    .footer-brand {
        grid-column: 1/-1
    }
}

@media(max-width:600px) {

    .growth {

        min-height: 425px;

    }


    .growth {
        background: url(../images/career_growth_banner_wide_ph.webp) top / cover no-repeat;
    }

}

@media(max-width:767px) {



    .action-line strong {

        font-size: 24px;
    }




    .trend-copy br {
        display: none
    }

    #trends-title span {
        display: block;
    }

    .small-title {
        position: absolute;
        top: 28%;
        right: 3%;
        padding-top: 0;
        padding-left: 0;
        z-index: 3;
    }


    .small-title img {
        width: 94vw;
    }

    .big-title {
        position: absolute;
        top: 9%;
        right: 2%;
        padding-top: 0;
        padding-left: 0;
        z-index: 3;
    }



    .big-title img {
        width: 95vw;
    }

    .bar {
        position: absolute;
        top: 34%;
        right: 4%;
        padding-top: 0;
        padding-left: 0;
        z-index: 3;
    }


    .bar img {
        width: 91vw;
    }



    .cta {
        position: absolute;
        top: 40%;
        right: 51%;
        padding-top: 0;
        padding-left: 0;
        z-index: 3;
    }

    .cta img {
        width: 42vw;
    }

    .site-header {
        position: relative;
        z-index: 30
    }

    .site-nav {
        padding: 0 20px
    }

    .site-brand img {
        width: 124px;
        height: 34px
    }

    .menu-toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        background: none;
        border: 1px solid #777bb552;
        border-radius: 8px
    }

    .menu-toggle span {
        width: 20px;
        height: 2px;
        background: #fff;
        transition: transform .2s, opacity .2s
    }

    .menu-toggle[aria-expanded=true] span:first-child {
        transform: translateY(7px) rotate(45deg)
    }

    .menu-toggle[aria-expanded=true] span:nth-child(2) {
        opacity: 0
    }

    .menu-toggle[aria-expanded=true] span:last-child {
        transform: translateY(-7px) rotate(-45deg)
    }

    .site-links {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #090e38;
        border-bottom: 1px solid #6366b0;
        padding: 18px 24px;
        box-shadow: 0 14px 18px #0004;
        flex-direction: column;
        align-items: stretch;
        gap: 0
    }

    .site-links.is-open {
        display: flex
    }

    .site-links a {
        padding: 12px 6px
    }

    .site-links .nav-cta {
        text-align: center;
        margin-top: 10px
    }

    .campaign-container {
        width: calc(100% - 36px)
    }

    .mobile-break {
        display: initial
    }

    .hero-art>img {
        aspect-ratio: 768/989;
        object-fit: cover;
        width: 100%
    }

    .hero-inner {
        display: block;
        padding: 36px 22px;
        align-items: flex-start
    }

    .hero-copy {
        width: 100%;
        text-align: center
    }

    .hero h1 {
        font-size: clamp(30px, 7.4vw, 54px);
        line-height: 1.2
    }

    .hero h1 span {
        font-size: .88em;

    }

    .hero-subtitle {
        font-size: clamp(15px, 3.4vw, 21px);
        line-height: 1.5;
        margin-top: 12px
    }

    .hero-meta {
        justify-content: center;
        gap: 5px 14px;
        font-size: clamp(12px, 2.5vw, 15px);
        margin-top: 12px
    }

    .hero-meta svg {
        width: 17px;
        height: 17px
    }

    .hero-meta>span+span {
        border: 0;
        padding-left: 0
    }

    .hero-cta {
        padding: 5px 24px;
        margin-top: 12px;
        min-height: 36px;
        font-size: 15px;
        gap: 12px
    }

    .section-heading {
        margin-bottom: 30px
    }

    .section-heading h2 {
        font-size: clamp(24px, 5.8vw, 39px);
        line-height: 1.4
    }

    .section-heading p {
        font-size: 21px;
        line-height: 1.65;
        margin-top: 13px
    }

    .benefits {
        padding: 56px 0 52px;
        background-size: auto 100%;
        background-position: center
    }

    .reward-grid {
        gap: 12px;
        margin-bottom: 22px
    }

    .reward-card {
        flex-direction: column;
        padding: 16px 10px 18px;
        gap: 0;
        min-height: 0;
        text-align: center;
        border-radius: 12px
    }

    .campaign-panel::before {
        width: 10px;
        height: 32px;
        border-top-left-radius: 8px
    }

    .reward-card img {
        width: 100%;
        max-width: 145px;
        height: 90px
    }

    .reward-card>div {
        padding: 8px 0 0;
        border-left: 0;
        border-top: 1px solid #8585d95c;
        width: 90%
    }

    .reward-card h3 {
         font-size: 24px;
        
    }

    .reward-amount {
   font-size: clamp(33px, 6vw, 57px);
        line-height: 1.25;
        margin: 0;
    }

    .ebook-panel {
        padding: 22px 14px 26px;
        border-radius: 12px
    }

    .ebook-panel>h3 {
        font-size: 24px;
        text-align: center
    }

    .ebook-panel>h3 span {
        display: block;
        margin-top: 3px
    }

    .ebook-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px 12px;
        margin-top: 15px
    }

    .ebook-grid figure:last-child {
        grid-column: 1/-1;
        width: 50%;
        justify-self: center
    }

    .ebook-grid img {
        height: 175px;
        max-width: 220px;
        margin: auto;
            font-size: 21px;
    }

    .ebook-grid figcaption {
        font-size: 18px;
        line-height: 1.45
    }

    .benefit-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        margin-top: 28px;
        padding: 0 8px;
       
    }

    .button {
        font-size: 18px;
        padding: 10px 20px;
        min-height: 48px
    }

    .button-outline {
        min-width: 0
    }

    .trends {
        padding: 54px 0 42px
    }



    .trend-grid {
        grid-template-columns: 1fr;
        gap: 18px
    }

    .trend-card {
        padding: 20px;
        display: grid;
        grid-template-columns: 39% 1fr;
        gap: 10px;
        align-items: center;
        border-radius: 12px
    }

    .trend-card>img {
        height: 130px;
        width: 100%
    }

    .trend-copy {
        margin: 0;
        border: 0;
        border-left: 1px solid #746dd581;
        padding: 6px 0 6px 15px;
        text-align: left
    }

    .trend-copy h3 {
        font-size: 21px;
        white-space: normal
    }

    .trend-copy p {
        font-size: 18px;
        margin-top: 9px;
        line-height: 1.7
    }

    .action-line {
        margin-top: 28px;
        font-size: 18px;
    padding: 22px 0px;
        line-height: 1.8
    }

    .action-line strong {
        display: block;

    }

    .courses {
        padding: 55px 0 55px;
        background-size: auto 100%
    }

    .courses .section-heading {
        margin-bottom: 35px
    }

    .courses .section-heading h2 {
font-size: clamp(24px, 5.8vw, 39px);
    }



    .course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 17px 13px
    }


.section-art {

    background-size: auto;
}


    .course-card {
        border-radius: 10px;
        border-width: 1px;
        box-shadow: 0 0 0 3px #08117c66
    }

    .course-card>a {
        padding: 7px
    }

    .course-thumbnail {
        border-radius: 5px
    }

    .course-info {
        padding: 8px 2px 3px
    }

    .course-info h3 {

        line-height: 1.55;
        min-height: 41px
    }

    .course-price {

        margin-top: 12px
    }

    .pagination {
        margin-top: 38px;
        gap: 18px
    }

    .page-button {
        min-width: 38px;
        min-height: 38px;
        font-size: 18px
    }

    .growth {

        background-position: 65% bottom;
        background-color: #030a37;
        padding: 32px 0 0;
        align-items: flex-start;

    }

    .growth-inner {
        width: calc(100% - 44px);
        margin: 0 auto;
    }

    .growth-copy {
        max-width: 100%;
        padding: 0;
        text-align: left
    }

    .growth h2 {
        font-size: 36px;
        line-height: 1.3
    }

    .growth p {
        font-size: 21px;
        line-height: 1.5;
        margin-top: 16px;

        max-width: 65%
    }

    .faq-area {
        padding: 58px 0 76px;
        background-size: auto 100%;
        background-position: center
    }

    .faq-title {
        font-size: 27px;
        margin-bottom: 28px
    }

    .faq-list {
        gap: 14px
    }

    .faq-item summary {
        font-size: 15px;
        padding: 12px;
        min-height: 54px;
        gap: 10px
    }

    .faq-number {
        width: 26px;
        height: 26px;
        flex-basis: 26px;
        font-size: 18px
    }

    .faq-chevron {
        margin: 0 5px 6px 7px;
        width: 9px;
        height: 9px;
        flex-basis: 9px;
        border-width: 2px
    }

    .faq-answer {
        font-size: 15px;
        padding: 15px 17px 18px;
        line-height: 1.8
    }

    .campaign-notice {
        margin-top: 85px;
        border-radius: 24px;
        padding: 32px 21px 24px
    }

    .campaign-notice h2 {
        font-size: 27px;
        padding: 0 22px
    }

    .campaign-notice ol {
        font-size: 15px;
        line-height: 1.9;
        padding-left: 1.3em
    }

    .campaign-notice li+li {
        margin-top: 10px
    }

    .site-footer {
        padding: 32px 22px 20px
    }

    .footer-shell {
        grid-template-columns: 1fr;
        gap: 25px
    }

    .footer-brand {
        grid-column: auto
    }

    .footer-service h2 {
        font-size: 15px
    }

    .copyright {
        line-height: 1.8
    }

    .back-top {
        width: 38px;
        height: 38px;
        right: 12px;
        bottom: 12px;
        font-size: 21px
    }

    .dialog-content {
        padding: 34px 24px
    }

    .info-dialog h2 {
        font-size: 24px
    }
}

@media(max-width:374px) {
    .hero-inner {
        padding: 28px 16px
    }

    .hero h1 {
        font-size: 27px
    }

    .hero-subtitle {
        font-size: 15px
    }

    .hero-meta {
        font-size: 9px
    }

    .hero-cta {
        font-size: 15px;
        min-height: 30px;
        padding: 3px 22px;
        margin-top: 9px
    }

    .campaign-container {
        width: calc(100% - 28px)
    }

    .reward-card h3 {
        font-size: 15px
    }

    .reward-amount {
        font-size: 33px
    }

    .ebook-panel>h3 {
        font-size: 21px
    }

    .ebook-grid img {
        height: 145px
    }

    .trend-card {
        padding: 17px 12px;
        grid-template-columns: 37% 1fr
    }

    .trend-copy {
        padding-left: 12px
    }

    .trend-copy h3 {
        font-size: 18px
    }

    .trend-copy p {
        font-size: 12px
    }

    .growth h2 {
        font-size: 33px
    }

    .growth p {
        font-size: 18px
    }

    .course-info h3 {
        font-size: 12px
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important
    }
}

/* Bootstrap 5.3 元件主題；欄位與斷點由 Bootstrap row / col 控制。 */


.reward-grid.row,
.ebook-grid.row,
.trend-grid.row,
.course-grid.row {
    display: flex;
    gap: 0;
    --bs-gutter-x: 28px;
    --bs-gutter-y: 28px
}

.ebook-grid.row .col{
    margin-top: 0;
}

.reward-grid.row {
    margin-bottom: 35px
}

.reward-card,
.trend-card {
    height: 100%
}

.ebook-grid.row {
    margin-top: 4px
}

.ebook-grid figure {
    height: 100%
}

.course-grid.row {
    --bs-gutter-x: 27px;
    --bs-gutter-y: 27px
}

.course-card.card {
    color: inherit
}

.course-card .course-info {
    flex: 1
}

.site-header.navbar {
    padding: 0
}

.site-brand.navbar-brand {
    margin: 0;
    padding: 0
}

.site-links.navbar-collapse {
    flex-grow: 1
}

.site-nav.container-fluid {
    flex-wrap: nowrap
}

.navbar-toggler {
    box-shadow: none !important
}

.btn.button:hover,
.btn.button:active {
    color: inherit
}

.btn.button-lime:hover,
.btn.button-lime:active {
    color: #0b1549
}

.pagination {
    padding-left: 0;
    margin-bottom: 0
}

.pagination .page-link {
    padding: 0;
    color: #121c43;
    border: 0;
    border-radius: 50% !important;
    margin: 0;
    background: #fff
}

.pagination .page-item.active .page-link {
    background: var(--campaign-lime);
    color: #121c43
}

.pagination .page-link:focus {
    box-shadow: 0 0 0 4px #ccff2866
}

.faq-list.accordion {
    --bs-accordion-border-width: 0;
    --bs-accordion-border-radius: 3px;
    --bs-accordion-inner-border-radius: 3px;
    --bs-accordion-bg: #fff;
    --bs-accordion-active-bg: var(--campaign-lime);
    --bs-accordion-btn-bg: var(--campaign-lime);
    --bs-accordion-active-color: #10162d;
    --bs-accordion-btn-color: #10162d;
    --bs-accordion-color: #14172c
}

.faq-item .accordion-header {
    margin: 0
}

.faq-item .accordion-button {
    gap: 12px;
    padding: 15px 21px;
    min-height: 64px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    box-shadow: none;
    color: #ffffff;
    background-color: #999cc8;
}

.faq-item .accordion-button>span:nth-child(2) {
    flex: 1
}

.faq-item .accordion-button::after {
    margin-left: 12px;

}

.faq-item .accordion-button:focus-visible {
    outline: 3px solid #6652ef;
    outline-offset: -3px
}

.faq-item .accordion-collapse {
    background: #fff
}

.faq-answer p {
    margin: 0;
    font-size: 16px;
}

@media(min-width:768px) {
    .site-links.collapse.navbar-collapse {
        display: flex !important
    }
}

@media(max-width:1199px) {
    .faq-item .accordion-button {
        font-size: 21px
    }


}

@media(max-width:767px) {

    .course-info h3 {
        font-size: 15px;
    }

    .site-nav.container-fluid {
        flex-wrap: wrap
    }

    .site-header {
        height: var(--nav-height);
        position: relative;
        z-index: 40
    }

    .site-links.collapse:not(.show) {
        display: none
    }

    .site-links.collapsing,
    .site-links.collapse.show {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #070b2b;
        padding: 20px 26px;
        border-bottom: 1px solid #6664ac;
        gap: 18px
    }

    .site-links.collapsing {
        transition: height .35s ease;
        padding-block: 0
    }

    .site-links>a {
        display: block
    }

    .reward-grid.row,
    .ebook-grid.row,
    .trend-grid.row {
        --bs-gutter-x: 16px;
        --bs-gutter-y: 18px
    }

    .ebook-grid figure:last-child {
        grid-column: auto;
        width: 100%;
        margin: 0
    }

    .course-grid.row {
        --bs-gutter-x: 13px;
        --bs-gutter-y: 17px
    }

    .faq-item .accordion-button {
        font-size: 18px;
        padding: 12px;
        min-height: 54px;
        gap: 10px
    }

    .faq-answer p {
        margin: 0;
        font-size: 15px;
    }

    .faq-item .accordion-button::after {
        width: 16px;
        height: 16px;
        background-size: 16px;
        flex-basis: 16px;
        margin-left: 6px
    }
}

/* 常見問題：收合與展開的箭頭統一黑色 */
.faq-list .accordion-button::after,
.faq-list .accordion-button:not(.collapsed)::after {
    filter: brightness(0);
}

.faq-list .faq-chevron {
    border-color: #000;
}

/* ===== 活動彈跳視窗：深藍／紫色／螢光綠；沿用既有 layout.css ===== */
.campaign-modal .modal-content,
.info-dialog {
    color: #fff;
  background: #060c32;
    border: 2px solid #7760f5;
    border-radius: 24px;
    box-shadow: 0 0 32px #7355ff44, inset 0 1px 0 #c3b5ff66;
}

.campaign-modal .modal-content {
    overflow: hidden;
}

.campaign-modal .modal-header {
    padding: 24px 27px;
    border-bottom: 1px solid #7760f580;
  background: #060c32;
}

.campaign-modal .modal-title,
.info-dialog h2 {
    color: #ccff28;
    font-weight: 900;
}

.campaign-modal .modal-title {
    border-left: 5px solid #ccff28;
    padding-left: 15px;
}

.campaign-modal .modal-body {
    padding: 24px 30px 30px;
    font-size: 18px;
    color: #f1efff;
}

.campaign-modal .modal-body li {
    padding-left: 3px;
    margin-bottom: 12px;
}

.campaign-modal .modal-body li::marker {
    color: #f1efff;
}

.campaign-modal .modal-body p {
    color: #f1efff;
}

.campaign-modal .modal-body a {
    color: #ccff28;
    text-underline-offset: 4px;
}

.campaign-modal .btn-close {
    opacity: 1;
    border: 1px solid #b9adff;
    border-radius: 50%;
    padding: 9px;
}

.campaign-modal .btn-close:hover {
    opacity: .75;
}

.campaign-modal .btn-close:focus-visible {
    outline: 3px solid #ccff28;
    outline-offset: 4px;
    box-shadow: none;
}

.campaign-modal .modal-footer {
    border-color: #7760f580;
    padding: 18px 27px;
}

.campaign-modal .modal-footer .btn,
.info-dialog .dialog-done {
    color: #0b1549;
    background: linear-gradient(#ddff5e, #baff16);
    border: 1px solid #e1ff82;
    border-radius: 999px;
    font-weight: 900;
    box-shadow: 0 0 15px #ccff2826;
}

@media (max-width: 767px) {
    .campaign-modal .modal-dialog {
        margin: 18px;
              max-width: 100%!important;
    }

    .campaign-modal .modal-header {
        padding: 21px 18px;
    }

    .campaign-modal .modal-body {
        font-size: 15px;
        padding: 21px 21px 24px;
    }

    .campaign-modal .modal-content {
        border-radius: 18px;
    }
}

/* ===== 活動彈跳視窗風格結束 ===== */
/* ===== 首圖依序進場：big-title > small-title > bar > cta ===== */
.hero-entrance {
    opacity: 0;
    visibility: hidden;
    animation: campaign-hero-enter 1.5s cubic-bezier(.22, .61, .36, 1) var(--hero-delay, 0s) both;
    will-change: opacity, transform;
}
@keyframes campaign-hero-enter {
    from { opacity: 0; visibility: hidden; transform: translate3d(0, 65px, 0); }
    to { opacity: 1; visibility: visible; transform: translate3d(0, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .hero-entrance {
        animation: none !important;
        opacity: 1;
        visibility: visible;
        transform: none;
        will-change: auto;
    }
}
/* ===== 首圖依序進場結束 ===== */

/* 慢速 Fade Up：每個1秒，間隔0.2秒再播放下一個 */
.big-title.hero-entrance { animation-delay: .2s; }
.small-title.hero-entrance { animation-delay: .4s; }
.bar.hero-entrance { animation-delay: .6s; }
.cta.hero-entrance { animation-delay: .8s; }

/* 精選課程：白底商品卡 */
#course-grid .course-card {
  background: #fff; border: 1px solid #e8e2d9; border-radius: 6px;
  box-shadow: none; padding: 8px; color: #252525;
}
#course-grid .course-card-link {
  display: flex; flex-direction: column; height: 100%; padding: 0;
  text-decoration: none; color: inherit;
}
#course-grid .course-thumbnail { width: 100%; border-radius: 3px; }
#course-grid .course-info { display: flex; flex: 1; flex-direction: column; padding: 8px 0 10px; }
#course-grid .course-info h3 {
  color: #252525; font-size: 18px !important; line-height: 1.4; min-height: 0; margin-bottom: 10px;
}
#course-grid .course-price { color: #ad2722 !important; margin: auto 0 0; font-size: 18px; text-align: right; }
#course-grid .course-card-action {
  display: block; background: #c93229; border-radius: 4px; color: #fff;
  text-align: center; padding: 9px 4px; font-weight: 700; line-height: 1.4;
}
#course-grid .course-card-link:hover .course-card-action { background: #ae2921; }
@media (max-width: 767px) {
  #course-grid .course-info h3, #course-grid .course-price, #course-grid .course-card-action { font-size: 15px !important; }
}

/* 精選課程：活動配色、時長與原價 */
#course-grid .course-card { background:#070d42; border-color:#5744d1; color:#fff; box-shadow:0 0 0 3px #08117c66; }
#course-grid .course-info h3 { color:#fff; }
#course-grid .course-card-meta { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:3px 8px; margin-top:auto; }
#course-grid .course-duration, #course-grid .course-original-price { color:#d8d5ee; font-size:12px; }
#course-grid .course-card-prices { margin-left:auto; text-align:right; }
#course-grid .course-price { color:#ccff28 !important; margin:0; }
#course-grid .course-card-action { color:#0b1549; background:linear-gradient(#ddff5e,#baff16); }
#course-grid .course-card-link:hover .course-card-action { background:#e5ff79; }
