/* Theme: Dana - TAcc+ Re-skin */
@import url('https://fonts.googleapis.com/css?family=Abril+Fatface:regular');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css');

:root {
    --dana-primary: #004a99;
    --dana-secondary: #fab702;
    --dana-text: #333333;
    --dana-light-gray: #f5f5f5;
    --dana-white: #ffffff;
    --dana-footer-bg: #222222;
}

body {
    font-family: 'Open Sans', 'Microsoft JhengHei', sans-serif, 'Poppins';
    color: var(--dana-text);
    overflow-x: hidden;
}

/* Header Styles */
.bt-header {
    background: #000000;
    box-shadow: 0 1px 10px rgba(0,0,0,0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.bt-subheader-cell.bt-left .logo {
    max-height: 80px;
    padding: 10px 0;
}

.menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bt-menu-desktop .menu {
    display: flex;
}

.menu li {
    padding: 0 15px;
}

.bt-menu-desktop .menu li a {
    text-decoration: none;
    color: #ffffff;
    font-weight: 600;
    font-size: 18px;
    line-height: 80px;
    display: block;
    transition: color 0.3s;
}

.menu li a:hover, .menu li.active a {
    color: var(--dana-secondary);
}

/* Mobile Menu Specific Fix */
.bt-menu-mobile-wrap .menu {
    display: block;
}

.bt-menu-mobile-wrap .menu li {
    padding: 0;
    width: 100%;
}

/* Revolution Slider Emulation */
.rev_slider_wrapper {
    position: relative;
    height: 600px;
    width: 100%;
    overflow: hidden;
    background: #000;
}

.rs-slides {
    height: 100%;
    width: 100%;
}

.rs-slide-item {
    position: relative;
    height: 600px;
    width: 100%;
    outline: none;
}

.rs-sbg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center center;
    z-index: 1;
}

.rs-layer-wrap {
    position: absolute;
    left: 10%;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    color: #fff;
    pointer-events: none;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}

.rs-layer {
    opacity: 0;
    transform: translateX(50px);
    transition: all 1s ease-out;
}

.rs-layer-1 { font-size: 60px; font-weight: 700; margin-bottom: 5px; }
.rs-layer-2 { font-size: 60px; font-weight: 700; margin-bottom: 5px; }
.rs-layer-3 { font-size: 27px; font-weight: 300; }

/* Slick Slider Navigation Customization */
.slick-prev, .slick-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
    background: rgba(255,255,255,0.2) !important;
    border: none;
    color: #fff !important;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s;
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-size: 0; /* Hide default text */
}

.slick-prev::before, .slick-next::before {
    font-size: 30px;
    color: #fff;
    opacity: 1;
}

.slick-prev { left: 30px; }
.slick-next { right: 30px; }

.slick-prev::before { content: "\f104"; }
.slick-next::before { content: "\f105"; }

.slick-prev:hover, .slick-next:hover {
    background: var(--dana-primary) !important;
    transform: translateY(-50%) scale(1.1);
}

.slick-dots {
    bottom: 20px !important;
    list-style: none;
    display: flex !important;
    justify-content: center;
    width: 100%;
    padding: 0;
    position: absolute;
    z-index: 101;
}

.slick-dots li {
    margin: 0 8px;
    width: auto;
    height: auto;
}

.slick-dots li button {
    font-size: 0;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255,255,255,0.4);
    border: 2px solid transparent;
    padding: 0;
    cursor: pointer;
    transition: all 0.3s;
}

.slick-dots li.slick-active button {
    background: #fff;
    width: 35px;
    border-radius: 10px;
}

.slick-dots li button::before {
    display: none !important;
    content: '' !important;
}

/* Fancy Box Icons Section */
.bt-fancy-box-element {
    padding: 20px 10px;
}

.bt-fancy-box-element .bt-icon {
    color: #f0b228;
    margin-bottom: 15px;
}

.bt-fancy-box-element .bt-title {
    font-size: 25px;
    font-weight: 900;
    font-family: Poppins;
}

/* Parallax Section */
.vc_parallax {
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.vc_parallax::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.2);
}

/* Stats Section */
.stats-block {
    padding: 30px 0;
    text-align: center;
}

.counter_suffix {
    font-size: 28px;
    font-weight: bold;
    color: #000000;
}

.stats-text {
    font-size: 18px;
    color: #000000;
    font-weight: bold;
}

/* Events Section */
.bt-title-section {
    font-size: 35px;
    line-height: 42px;
    letter-spacing: -0.03em;
    color: #2e2e2e;
    margin-bottom: 30px;
    font-weight: bold;
}

.bt-subtitle-section {
    font-size: 14px;
    letter-spacing: 2px;
    color: #999;
    text-transform: uppercase;
    margin-top: -20px;
    margin-bottom: 10px;
}

.vc_grid-item-mini {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0,0,0,0.05);
    margin-bottom: 30px;
    transition: transform 0.3s;
}

.vc_grid-item-mini:hover {
    transform: translateY(-10px);
}

.vc_gitem-zone-img {
  width: 100%;
  aspect-ratio: 4 / 3;

  object-fit: cover;
  object-position: top;
}

.vc_gitem-post-data-source-post_title {
    padding: 20px;
    font-weight: 700;
    font-size: 18px;
    min-height: 80px;
    color: #000 !important;
    text-decoration: none !important;
}

.vc_gitem-post-data-source-post_title a {
  color: #000 !important;
  text-decoration: none !important;
}

/* Footer */
.bt-footer {
    background: #1a1a1a;
    color: #ccc;
    padding: 60px 0 0;
}

.wg-title {
    color: #fff;
    font-size: 18px;
    margin-bottom: 25px;
    position: relative;
    padding-bottom: 10px;
}

.wg-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 2px;
    background: var(--dana-primary);
}

.bt-follow-me {
    list-style: none;
    padding: 0;
}

.bt-follow-me li {
    margin-bottom: 10px;
}

.bt-follow-me a {
    color: #ccc;
    text-decoration: none;
}

.bt-follow-me a i {
    width: 20px;
}

.bt-footer-bottom {
    background: #111;
    padding: 20px 0;
    margin-top: 50px;
    font-size: 13px;
}

/* Flip Box Styles */
.flip-box-wrap {
    perspective: 1000px;
    margin-bottom: 30px;
}

.flip-box {
    position: relative;
    width: 100%;
    height: 400px;
    text-align: center;
    transition: transform 0.8s;
    transform-style: preserve-3d;
}

.flip-box-wrap:hover .flip-box {
    transform: rotateY(180deg);
}

.ifb-face {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 20px;
    border-radius: 10px;
    border: 5px solid #ffffff;
    background: #000000;
    color: #ffffff;
}

.ifb-back {
    transform: rotateY(180deg);
    background: #000000;
}

.flipbox_heading {
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 20px;
    color: #ffffff;
}

.ifb-flip-box-section-content {
    color: #dddddd;
}

.ifb-flip-box-section-content p {
    font-size: 16px;
    line-height: 1.6;
    text-align: left;
    margin-bottom: 5px;
}

@media (min-width: 992px) {
    .ifb-flip-box-section-content p {
        font-size: 20px;
    }
}

/* Mobile Navigation Styles */
.bt-header-mobile {
    display: none;
    background: #000000;
    box-shadow: 0 1px 10px rgba(0,0,0,0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.bt-menu-toggle {
    display: block;
    width: 30px;
    height: 30px;
    position: relative;
    cursor: pointer;
    background: transparent;
    border: none;
    padding: 0;
    margin-left: 15px;
}

.bt-menu-toggle-content {
    width: 24px;
    height: 2px;
    background: #333;
    position: absolute;
    top: 50%;
    left: 3px;
    transform: translateY(-50%);
    transition: all 0.3s;
}

.bt-menu-toggle-content::before, .bt-menu-toggle-content::after {
    content: '';
    width: 24px;
    height: 2px;
    background: #333;
    position: absolute;
    left: 0;
    transition: all 0.3s;
}

.bt-menu-toggle-content::before { top: -8px; }
.bt-menu-toggle-content::after { top: 8px; }

.bt-menu-toggle[aria-expanded="true"] .bt-menu-toggle-content {
    background: transparent;
}

.bt-menu-toggle[aria-expanded="true"] .bt-menu-toggle-content::before {
    transform: translateY(8px) rotate(45deg);
}

.bt-menu-toggle[aria-expanded="true"] .bt-menu-toggle-content::after {
    transform: translateY(-8px) rotate(-45deg);
}

.bt-menu-mobile-wrap {
    display: none;
    background: #ffffff;
    width: 100%;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 999;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    border-top: 1px solid #eee;
    max-height: 80vh;
    overflow-y: auto;
}

.bt-menu-mobile-wrap ul {
    list-style: none;
    padding: 10px 0;
    margin: 0;
}

.bt-menu-mobile-wrap li a {
    display: block;
    padding: 12px 25px;
    color: #333;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.2s;
}

.bt-menu-mobile-wrap li a:hover {
    color: var(--dana-primary);
    padding-left: 30px;
}

@media (max-width: 991px) {
    .bt-header-desktop {
        display: none !important;
    }

    .bt-header-mobile {
        display: block !important;
    }

    .bt-header-mobile .bt-subheader {
        height: 60px;
        line-height: 60px;
    }

    .bt-header-mobile .logo {
        height: 50px !important;
        width: auto;
    }
}

/* Skip Link */
.skip-link {
    position: absolute;
    top: -100px;
    left: 0;
    background: var(--dana-primary);
    color: #fff;
    padding: 10px 20px;
    z-index: 10000;
    transition: top 0.3s;
    text-decoration: none;
    font-weight: bold;
}

.skip-link:focus {
    top: 0;
    outline: none;
}

/* Accessibility & Focus States */
a:focus, button:focus, [role="button"]:focus {
    outline: 3px solid #ff9900 !important;
    outline-offset: 3px;
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

.bt-team-grid-element .bt-item:hover {
    transform: none;
    box-shadow: none;
}

.bt-thumb {
    position: relative;
    margin-bottom: 15px;
    overflow: hidden;
}

.bt-thumb img {
    width: 100%;
    height: auto;
    transition: transform 0.4s ease;
}

.bt-item:hover .bt-thumb img {
    transform: scale(1.1);
}

.bt-team-grid-element .bt-content {
    padding: 0;
}

.bt-team-grid-element .bt-title {
    font-size: 20px;
    line-height: 24px;
    letter-spacing: -0.03em;
    margin-bottom: 0px;
    font-weight: bold;
    color: var(--dana-text);
}

.bt-team-grid-element .bt-position {
    font-size: 13px;
    font-style: italic;
    line-height: 24px;
    letter-spacing: 0.02em;
    color: rgb(240, 178, 40);
    margin-bottom: 10px;
}

.bt-team-grid-element .bt-company {
    height: 60px;
    margin-top: -15px;
    margin-bottom: 15px;
    color: #666;
}

/* Info Box / Desc Styles */
.bt-desc p {
    margin-bottom: 10px;
}

.ubtn {
    padding: 12px 30px;
    border: none;
    border-radius: 5px;
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.3s;
}

.ubtn:hover {
    opacity: 0.9;
    color: #fff;
}

/* Grants Page Specific (Dana Theme Fidelity) */
.bt-grants-box {
    transition: all 0.4s ease;
    background: #ffffff;
    padding: 20px 30px;
    border: 2px solid #d7dce8;
    border-radius: 10px;
    height: 100%;
}

.bt-grants-box:hover {
    border-color: #ffffff;
    box-shadow: 0px 11px 21px rgba(204, 204, 223, 0.5);
    transform: translateY(-5px);
}

.bt-grants-box h2 {
    font-size: 24px;
    font-weight: bold;
    color: #1e1f1f;
    margin-bottom: 20px;
}

.bt-grants-box p {
    font-size: 15px;
    line-height: 28px;
    color: #333333;
    margin-bottom: 10px;
}

/* International Page Specific (Dana Theme Fidelity) */
.bt-circle-flip .flip-box {
    height: 200px;
    width: 200px;
    margin: 0 auto;
}

.bt-circle-flip .ifb-face {
    border-radius: 200px;
    border: 1px solid #dd9933;
    background: #ffffff;
    color: #dd9933;
    padding: 10px;
}

.bt-circle-flip .ifb-back {
    background: #ffffff;
    color: #dd9933;
}

.bt-circle-flip .flipbox_heading {
    font-size: 14px;
    font-weight: bold;
    color: #dd9933;
    margin-top: 10px;
}

.bt-gold-flip .ifb-face {
    border: 2px solid #dd9933;
    background: #ffffff;
    color: #000000;
    border-radius: 5px;
}

.bt-gold-flip .flipbox_heading {
    font-size: 18px;
    color: #000000;
}

/* Corporate Cooperation Grid */
.bt-corp-grid-item {
    height: 250px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    transition: transform 0.3s ease;
}

.bt-corp-grid-item::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.4);
    transition: background 0.3s ease;
}

.bt-corp-grid-item:hover::before {
    background: rgba(0,0,0,0.2);
}

.bt-corp-grid-item h2 {
    color: #ffffff;
    font-size: 32px;
    font-weight: bold;
    z-index: 2;
    margin: 0;
    text-align: center;
}

/* Benefit/Pricing Layout */
.bt-pricing-table-element.layout5 {
    background: transparent;
    padding: 0;
    border: none;
}

.bt-pricing-table-element.layout5 .bt-title {
    font-size: 22px;
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
}

.bt-options {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bt-options li {
    font-size: 16px;
    line-height: 28px;
    color: #5b5b5b;
    margin-bottom: 10px;
    padding-left: 0;
}

.bt-options li.enable::before {
    content: none;
}

/* Alumni Grid */
.alumni-grid .col-xl-2 {
    width: 20%;
}

.alumni-logo-item {
    padding: 5px;
    transition: all 0.3s ease;
    border: 1px solid #eee;
    background: #fff;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 150px;
}

.alumni-logo-item:hover {
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    transform: scale(1.03);
}

.alumni-logo-item img {
    max-width: 100%;
    min-height: 100px;
    object-fit: contain;
}

/* Events Page Specific (TAcc+ Dual Mode Grid) */
.event-grid-container {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px 20px !important;
    width: 100% !important;
    margin-bottom: 40px !important;
}

@media (max-width: 991px) {
    .event-grid-container {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 575px) {
    .event-grid-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px 10px !important;
    }
}

/* --- 通用卡片基礎樣式 --- */
.event-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    transition: transform 0.3s, box-shadow 0.3s !important;
}

.event-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1) !important;
}

.event-card__img-wrap {
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    overflow: hidden !important;
    background: #f8f8f8 !important;
    flex-shrink: 0 !important;
}

.event-card__img {
    width: 100% !important;
    /*height: 100% !important;*/
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    object-position: top !important;
    transition: transform 0.5s !important;
}

.event-card:hover .event-card__img {
    transform: scale(1.05) !important;
}

.event-card__title {
    padding: 10px 15px !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    color: #171721 !important;
    margin: 0 !important;
    border-top: 1px solid #eee;
}

.event-card__title a {
    color: #171721 !important;
    text-decoration: none !important;
}

.event-card__meta {
    padding: 0 15px !important;
    font-size: 0.85rem !important;
    color: #888 !important;
    margin: 0 0 12px 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
}

.event-card__excerpt {
    padding: 0 15px !important;
    font-size: 0.95rem !important;
    color: #555 !important;
    line-height: 1.6 !important;
    margin: 0 0 15px 0 !important;
}

.event-card__footer {
    margin-top: auto !important;
    padding: 0 15px 15px 15px !important;
}

.event-card__btn {
    display: inline-block !important;
    padding: 10px 25px !important;
    background: #f0b228 !important;
    color: #fff !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    text-decoration: none !important;
}

/* --- 模式 1：is-aligned-rows (完美齊高 - Subgrid) --- */
.event-grid-container.is-aligned-rows {
    gap: 0 20px !important;
}

.event-grid-container.is-aligned-rows .event-card {
    display: grid !important;
    grid-template-rows: subgrid !important;
    grid-row: span 5 !important;
    margin-bottom: 40px !important;
    height: auto !important;
}

.event-grid-container.is-aligned-rows .event-card__img-wrap { grid-row: 1 !important; }
.event-grid-container.is-aligned-rows .event-card__title    { grid-row: 2 !important; display: flex !important; align-items: center !important; }
.event-grid-container.is-aligned-rows .event-card__meta     { grid-row: 3 !important; }
.event-grid-container.is-aligned-rows .event-card__excerpt  { grid-row: 4 !important; }
.event-grid-container.is-aligned-rows .event-card__footer   { grid-row: 5 !important; margin-top: 0 !important; text-align: center; }

/* --- 模式 2：is-flex-cards (卡片外框齊高 - Flexbox) --- */
/* 由於基礎樣式已經是 flex，此模式主要作為標記使用，或未來擴充差異 */
.event-grid-container.is-flex-cards .event-card {
    /* 繼承基礎樣式 */
}

.event-card__btn:hover {
    background: #d6980f !important;
}

.event-card__btn:hover {
    background: #d6980f !important;
}

.bt-readmore:hover {
    background: #d6980f;
}

/* Pagination */
.bt-pagination {
    text-align: center;
    margin: 30px 0;
}

.bt-pagination .page-numbers {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    margin: 0 5px;
    background: #ffffff;
    border: 1px solid #ebebeb;
    color: #171721;
    text-decoration: none;
    font-weight: 400;
    font-size: 15px;
    transition: all 0.3s;
}

.bt-pagination .page-numbers.current,
.bt-pagination .page-numbers:hover {
    background: #f0b228;
    border-color: #f0b228;
    color: #ffffff;
}

.bt-pagination .page-numbers.dots {
    border: none;
    background: transparent;
    font-size: 24px;
    line-height: 24px;
    color: #686876;
    width: auto;
}

.bt-pagination .next {
    width: auto;
    padding: 0 15px;
    margin-left: 30px;
}

/* Events Categories & Tags Custom Styles */
.event-category-btn {
    font-size: 0.8rem !important;
    border-radius: 4px !important;
    background-color: #fdf5e6 !important;
    border: 1px solid #f5deb3 !important;
    color: #856404 !important;
    padding: 2px 8px !important;
    text-decoration: none !important;
    display: inline-block !important;
    line-height: 1.2 !important;
    transition: all 0.3s ease !important;
    margin-right: 6px !important;
    margin-bottom: 4px !important;
}

.event-category-btn:hover {
    background-color: #f5deb3 !important;
    color: #533f03 !important;
}

.event-tag-btn {
    font-size: 0.8rem !important;
    border-radius: 4px !important;
    background-color: #f8f9fa !important;
    border: 1px solid #dee2e6 !important;
    color: #6c757d !important;
    padding: 2px 8px !important;
    text-decoration: none !important;
    display: inline-block !important;
    line-height: 1.2 !important;
    transition: all 0.3s ease !important;
    margin-right: 6px !important;
    margin-bottom: 4px !important;
}

.event-tag-btn:hover {
    background-color: #e2e6ea !important;
    color: #495057 !important;
}

.event-meta-block {
    display: block !important;
}

.event-meta-line {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    margin-bottom: 8px !important;
    width: 100% !important;
}

.event-meta-line i {
    width: 20px !important;
    text-align: center !important;
    margin-right: 8px !important;
}
