@charset "UTF-8";
/**
 * cmscss_v2.css — Chinaplas CMS Event Modules v2
 * Base: cmscss_0114.css
 * Figma: new / Modules (English) node 195:59509
 * PDF: 20260724 Chinaplas Website Review – Event Modules
 *
 * Global deltas vs 0114:
 * - Desktop module gap 50px → 30px; ≤1350px 30px → 20px
 * - Desktop module radius 20px → 10px; ≤1350px 10px → 5px
 * - Module heading uses h3.font-h3 (not h2)
 * - Inner spacing more compact
 * - New: .btn-register-now / .btn-register-now-theme
 */
:root {
    --primary-orange: #E64800;
    --brand-primary: #E64800;
    --text-color: #444;
    --light-grey: #CCC;
    --medium-grey: #888;
    --dark-grey: #444;
    --white: #FFFFFF;
    --black: #000000;
    --page-bg: #F7F7F7;
    --border-grey: #C4C4C4;
    --module-gap: 30px;
    --module-radius: 10px;
    --module-pad: 40px;
    --module-inner-gap: 20px;
}
/* 與 CPS27 VueCommonStyle 一致：內文／按鈕一律 Poppins。圖示字型不要寫進 * */
html,
body {
    font-family: Poppins !important;
}
h1, h2, h3, h4, h5, h6,
p, a, li, td, th, label,
button, input, select, textarea {
    font-family: Poppins !important;
}
button:focus{ outline:none;}

/*
 * 標題行高＝字級 × 1.3（Figma Module: Headings 195:60917 / 196:87776）。
 * VueCommonStyle 只寫 font-size，行高會繼承 body 1.6；這裡鎖定給所有模組共用。
 */
h3.font-h1, .font-h1,
h3.font-h2, .font-h2,
h3.font-h3, .font-h3,
h3.font-h4, .font-h4,
h3.font-h5, .font-h5,
h3.font-h6, .font-h6 {
    font-weight: 700;
}

h3.font-h1, .font-h1 { font-size: 40px; line-height: 52px; }     /* Desktop h1 */
h3.font-h2, .font-h2 { font-size: 25px; line-height: 32.5px; }   /* Desktop h2 / 頁名 */
h3.font-h3, .font-h3 { font-size: 20px; line-height: 26px; }     /* Desktop h3 模組標題 */
h3.font-h4, .font-h4 { font-size: 16px; line-height: 20.8px; }
h3.font-h5, .font-h5 { font-size: 14px; line-height: 18.2px; }
h3.font-h6, .font-h6 { font-size: 12px; line-height: 15.6px; }

.font-h3.is-accent {
    color: var(--primary-orange);
}

/* 內頁正文：Figma Desktop EN/P 18 / 23.4（1.3）。18px 的 .text-lg 一律這行高；16px 時即 20.8。不要繼承 VueCommonStyle / body 1.6 */
.text-lg {
    line-height: 1.3;
}
/* cms内页整体间距。桌面／移動同一套 HTML：容器用 100% + max-width，不要寫死 Figma 393／353。 */
.page-container {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding-left: 20px;
    padding-right: 20px;
}

/* Margin 垂直方向 */
.my-b-xl {
    margin-bottom: var(--module-gap);
}

/* 模組外距用 .my-b-xl（--module-gap）；卡片內距用 --module-pad，不要再加一套 py/px 工具 class */

.content {
    width: 100%;
    max-width: var(--content-width, 1200px);
    min-width: 0;
    box-sizing: border-box;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.content > *:not(:last-child) {
    margin-bottom: var(--module-gap);
}

/* Module Container */
.module-container {
    background: var(--white);
    border-radius: var(--module-radius);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: var(--module-pad);
}

.module-container > *:not(:last-child) {
    margin-bottom: var(--module-inner-gap); /* Figma：小標線下到內容 20px */
}

/* Sub-heading */
.sub-heading {
    border-bottom: 1px solid var(--light-grey);
    padding-bottom: 20px;
}

.sub-heading p {
    font-weight: 700;
    font-size: 14px;
    line-height: 18.2px;
    color: var(--dark-grey);
}

/* Text Content */

.enquiry-info-content,
.enquiry-info-content p,
.enquiry-info-content .text-lg,
.enquiry-info-content .font-bold {
    font-weight: 400; /* Figma Enquiry Regular 18 / 23.4 */
    font-size: 18px;
    line-height: 23.4px;
    color: var(--black);
    margin: 0;
}
.sub-text-heading {
    font-weight: 700;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
    margin: 0;
}
.text-content {
    color: var(--black);
}

.text-content ul {
    list-style: disc;
    padding-left: 20px;
    margin: 0;
}

.text-content li {
    list-style: disc;
    margin-bottom: 0;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.3;
}

.text-content li:last-child {
    margin-bottom: 0;
}

/* Text block — Figma Desktop 195:59856 / Mobile 196:87170 */
.module-container > .text-content h3,
.module-container > .text-content .font-h3 {
    font-weight: 700;
    font-size: 20px;
    line-height: 26px;
    color: var(--black);
    margin: 0 0 23.4px; /* 稿：標題下空一行 18×1.3 */
    padding: 0;
}

.module-container > .text-content p,
.module-container > .text-content .text-lg {
    font-weight: 400;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
    margin: 0;
    padding: 0;
}

.module-container > .text-content p + h3,
.module-container > .text-content p + .font-h3 {
    margin-top: 23.4px; /* 段落后到下一標題：空一行 */
}

.module-container > .text-content p + ul {
    margin-top: 23.4px; /* 段落后到列表：空一行 */
}

.module-container > .text-content li {
    font-weight: 400;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
}

/* Programme Info — Figma 195:59858 Regular 18 */
.programme-info {
    font-weight: 400;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
}

.programme-info p,
.programme-info .text-lg,
.programme-info .font-h3 {
    font-weight: 400;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
    margin: 0;
}

.module-container > .programme-info {
    margin-bottom: 30px; /* 與圖文塊之間：父層 gap 30 */
}

.module-container > .text-image-block:not(:last-child) {
    margin-bottom: 30px;
}

/* Text & Image Block — Figma 195:59859 gap 30 / 圖 520 / 文 gap 20 */
.text-image-block {
    padding-top: 30px;
}

.text-image-container {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 30px;
}

.text-image-container.is-reverse {
    flex-direction: row-reverse;
}

/* Photo Container — 桌面上限 520；欄變窄時跟著縮，不要 lock 死 */
.photo-container {
    width: 100%;
    max-width: 520px;
    flex: 0 1 520px;
    min-width: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.photo-container > *:not(:last-child) {
    margin-bottom: 20px;
}

.thumbnail {
    width: 100%;
    aspect-ratio: 400 / 300;
    position: relative;
    overflow: hidden;
    border-radius: var(--module-radius); /* 桌面 10 / ≤1350 5，與卡片圓角一致 */
}

.thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: var(--module-radius);
}

.photo-caption,
.photo-container .photo-caption,
.text-image-block .photo-caption {
    color: var(--text-color);
    font-size: 16px;
    line-height: 1.3; /* Figma 16 / 20.8，避免繼承 body 1.6 */
    font-weight: 400;
    margin: 0;
}

/* Indicators */
.indicators {
    height: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.indicator-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--light-grey);
    cursor: pointer;
    transition: background-color 0.3s;
}

.indicator-dot:not(:last-child) {
    margin-right: 8px;
}

.indicator-dot.active {
    background: var(--primary-orange);
}

/* Content Block */
.content-block {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-top: 0;
    padding-bottom: 20px;
}

.content-block > *:not(:last-child) {
    margin-bottom: 20px;
}

/* 圖文標題：行高走全局 .font-h3；與下方正文仍要 20px（Figma Content gap） */
.content-block h3,
.content-block .font-h3 {
    font-weight: 700;
    color: var(--black);
    margin-top: 0;
    margin-bottom: 20px;
}

.content-block .text-content {
    color: var(--black);
}

.content-block .text-content p:not(.sub-text-heading),
.content-block .text-content .text-lg:not(.sub-text-heading) {
    font-weight: 400;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
    margin: 0;
    padding: 0;
}

.content-block .text-content .sub-text-heading {
    font-weight: 700;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
    margin: 0;
}

.content-block .text-content p + .sub-text-heading,
.content-block .text-content p.text-lg + .sub-text-heading,
.content-block .text-content p + ul,
.content-block .text-content .sub-text-heading + ul,
.content-block .text-content ul + p,
.content-block .text-content ul + p.text-lg:not(.sub-text-heading),
.content-block .text-content ul + .sub-text-heading {
    margin-top: 23.4px; /* Figma 空一行 18×1.3；權重要壓過 .text-lg:not(.sub-text-heading) { margin:0 } */
}

.thumbnail.is-contain img {
    object-fit: contain;
    object-position: center;
    background: var(--white);
}

/* Module: Text and Image Block (Example 2) — Desktop 195:59863 / 195:59907 · Mobile 196:87177 */
.psteps-tabs .tib2-panel {
    padding-top: 50px;
    border-radius: 0 0 var(--module-radius) var(--module-radius);
}

.tib2-panel > *:not(:last-child) {
    margin-bottom: 30px;
}

.tib2-panel .text-image-block {
    padding-top: 0;
}

.tib2-intro {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
    min-width: 0;
}

.tib2-intro > .font-h3 {
    margin: 0;
    color: var(--black);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.tib2-intro > .text-lg {
    margin: 0;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.tib2-panel > .font-h3 {
    margin: 0 0 30px; /* 勿寫 margin:0，否則蓋掉 > * 的 30，橙標會貼上 Logo */
    padding: 30px 0 0; /* Figma 195:59868 Module/Heading pt 30 + 父層 gap 30 = 與上文 60 */
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.tib-brand {
    width: 100%;
    max-width: 230px;
    height: 62px;
    flex-shrink: 0;
}

.tib-brand img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
}

.tib-partners {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    width: 100%;
    min-width: 0;
}

.tib-partner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    max-width: 276px;
}

.tib-partner .sub-text-heading {
    margin: 0;
}

.tib-partner-logo {
    width: 100%;
    height: 120px;
}

.tib-partner-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
}



/* Image Carousel */
.photo-container .image-carousel {
    position: relative;
    width: 100%;
    aspect-ratio: 400 / 300;
    overflow: hidden;
    border-radius: var(--module-radius);
}

.photo-container .carousel-images {
    position: relative;
    width: 100%;
    height: 100%;
}

.photo-container .carousel-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    overflow: hidden;
    border-radius: var(--module-radius);
    transition: opacity 0.5s ease-in-out;
}

.photo-container .carousel-image.active {
    opacity: 1;
}

.photo-container .carousel-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: var(--module-radius);
    display: block;
}

/* Responsive Design */

/* KV Banner：Figma Desktop 1160×480 圓角 10；Mobile 353×146 圓角 5。拼貼在圖內，只改圓角。 */
.cover-photo {
    width: 100%;
    border-radius: var(--module-radius);
    overflow: hidden;
    line-height: 0;
}

.cover-photo img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--module-radius);
}

/* Module: Single Image — Desktop 195:59796（1／2／3／4 張 16:9）· Mobile 196:87112（直向堆疊） */
.image-module {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}

.image-module .image-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
    min-width: 0;
}

.image-module .image-wrapper img {
    width: 100%;
    height: auto;
    display: block;
}

.image-module.single-image .image-wrapper {
    width: 100%;
}

.image-module.single-image .image-wrapper:has(.photo-caption) img,
.image-module.two-images .image-wrapper img,
.image-module.three-images .image-wrapper img,
.image-module.four-images .image-wrapper img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
    mix-blend-mode: multiply;
}

.image-module.two-images,
.image-module.three-images,
.image-module.four-images {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 30px;
}

.image-module.two-images .image-wrapper,
.image-module.three-images .image-wrapper,
.image-module.four-images .image-wrapper {
    flex: 1 1 0;
}

.module-container > .sub-heading:has(+ .image-module),
.module-container > .sub-heading:has(+ .pslide),
.module-container > .sub-heading:has(+ .svideo),
.module-container > .sub-heading:has(+ .vslide) {
    margin-bottom: 30px; /* Figma Desktop 小標到內容 30 */
}

/* Module: Photos Slideshow — Desktop 195:59811 · Mobile 196:87134 */
.pslide {
    display: flex;
    align-items: center;
    gap: 25px;
    width: 100%;
    min-width: 0;
}

.pslide-nav {
    appearance: none;
    -webkit-appearance: none;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid var(--primary-orange);
    border-radius: 50%;
    background: var(--white);
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    color: var(--primary-orange);
    font: inherit;
    line-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pslide-nav .icon-arrow-left,
.pslide-nav .icon-arrow-right {
    display: block;
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.pslide-nav .icon-arrow-left:before,
.pslide-nav .icon-arrow-right:before {
    content: none !important;
}

.pslide-nav .icon-arrow-left {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23E64800' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.5489 4.07123C9.24863 3.77129 8.76229 3.77126 8.462 4.07123L2.53333 9.99994L8.462 15.9286C8.76229 16.2287 9.24863 16.2286 9.5489 15.9286C9.84929 15.6282 9.84929 15.1412 9.5489 14.8408L4.709 9.99994L9.5489 5.15912C9.84929 4.85872 9.84929 4.37163 9.5489 4.07123ZM7.85156 9.23041C7.42678 9.23041 7.08207 9.57513 7.08207 9.99994C7.08207 10.4248 7.42678 10.7695 7.85156 10.7695H16.6973C17.1222 10.7695 17.4669 10.4248 17.4669 9.99994C17.4668 9.57513 17.1222 9.23041 16.6973 9.23041H7.85156Z'/%3E%3C/svg%3E");
}

.pslide-nav .icon-arrow-right {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23E64800' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.4511 4.07123C10.7514 3.77129 11.2377 3.77126 11.538 4.07123L17.4667 9.99994L11.538 15.9286C11.2377 16.2287 10.7514 16.2286 10.4511 15.9286C10.1507 15.6282 10.1507 15.1412 10.4511 14.8408L15.291 9.99994L10.4511 5.15912C10.1507 4.85872 10.1507 4.37163 10.4511 4.07123ZM12.1484 9.23041C12.5732 9.23041 12.9179 9.57513 12.9179 9.99994C12.9179 10.4248 12.5732 10.7695 12.1484 10.7695H3.30267C2.87784 10.7695 2.53314 10.4248 2.53314 9.99994C2.53317 9.57513 2.87785 9.23041 3.30267 9.23041H12.1484Z'/%3E%3C/svg%3E");
}

.pslide-viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    container-type: inline-size;
}

.pslide-track {
    display: flex;
    align-items: stretch;
    gap: 25px;
    width: max-content;
    max-width: none;
    transition: transform 0.35s ease;
}

.pslide-photo {
    position: relative;
    display: block;
    box-sizing: border-box;
    flex: 0 0 calc((100cqi - 50px) / 3);
    width: calc((100cqi - 50px) / 3);
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border: 1px solid #e6e6e6;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.pslide-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Module: Single Video — Desktop 195:59832 · Mobile 196:87146 */
.svideo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
    min-width: 0;
}

.svideo-link {
    display: block;
    position: relative;
    width: 100%;
    min-width: 0;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.svideo-media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1080 / 608;
    overflow: hidden;
    background: var(--white);
}

.svideo-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    mix-blend-mode: multiply;
}

.svideo-media:after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    mix-blend-mode: multiply;
    pointer-events: none;
}

.svideo-play {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 1;
    width: 100px;
    height: 100px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: var(--white);
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.25);
    pointer-events: none;
}

/* Figma icon-play Polygon 1：圓角三角，不是尖角 border triangle */
.svideo-play:before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--primary-orange);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath fill='black' d='M36.303 27.6696C38.1257 28.632 38.1257 31.038 36.303 32.0004L28.101 36.3313C26.2783 37.2937 24 36.0907 24 34.1659V25.5042C24 23.5793 26.2783 22.3763 28.101 23.3387L36.303 27.6696Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath fill='black' d='M36.303 27.6696C38.1257 28.632 38.1257 31.038 36.303 32.0004L28.101 36.3313C26.2783 37.2937 24 36.0907 24 34.1659V25.5042C24 23.5793 26.2783 22.3763 28.101 23.3387L36.303 27.6696Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.svideo-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 40px;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.85);
}

.svideo-overlay[hidden] {
    display: none;
}

.svideo-overlay-player {
    width: min(90vw, calc(90vh * 1080 / 608));
    max-width: 100%;
    aspect-ratio: 1080 / 608;
    background: var(--black);
}

.svideo-overlay-player video,
.svideo-overlay-player iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--black);
}

.svideo-overlay-player video[hidden],
.svideo-overlay-player iframe[hidden] {
    display: none;
}

.svideo-overlay .photo-lightbox-close {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 3;
    width: 32px;
    height: 32px;
    background: transparent;
    border-radius: 0;
}

.svideo-overlay .photo-lightbox-close:before {
    width: 18px;
    height: 18px;
}

body.svideo-open {
    overflow: hidden;
}

/* Module: Video Slideshow — Desktop 195:59844 · Mobile 196:87158 */
.vslide {
    display: flex;
    align-items: center;
    gap: 30px;
    width: 100%;
    min-width: 0;
}

.vslide-viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    container-type: inline-size;
}

.vslide-track {
    display: flex;
    align-items: stretch;
    gap: 30px;
    width: max-content;
    max-width: none;
    transition: transform 0.35s ease;
}

.vslide-item {
    box-sizing: border-box;
    flex: 0 0 calc((100cqi - 30px) / 2);
    width: calc((100cqi - 30px) / 2);
}

.vslide .svideo-play {
    width: 60px;
    height: 60px;
}

/* 贊助商 Logo — Figma Desktop 195:59953：大 255×105／小 163×67（170:70）、gap 20 */
.sponsor-logos-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
}

.sponsor-logo-large,
.sponsor-logo-small {
    position: relative;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    aspect-ratio: 170 / 70;
    height: auto;
}

.sponsor-logo-large {
    width: 255px;
    flex: 0 1 255px;
}

.sponsor-logo-small {
    width: 163px;
    flex: 0 1 163px;
}

.sponsor-logo-large img,
.sponsor-logo-small img {
    position: absolute;
    inset: 0;
    max-width: none;
    object-fit: contain;
    object-position: center;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

/* Icon Styles */
.icon-wrapper {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-wrapper svg {
    width: 100%;
    height: 100%;
    display: block;
}

.icon-wrapper span {
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
    font-size: 26px;
}

/* Event Info Item — icon+text vertical center (cps-tech standard; no text-box-trim) */
.event-info-item {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 520px;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* multi-line / list: icon top-aligned with first line */
.event-info-item:has(.event-info-content > p + p),
.event-info-item:has(.event-info-content ul),
.event-info-item:has(.event-info-content ol) {
    align-items: flex-start;
}

.event-info-item.full-width,
.event-info-list .event-info-item {
    width: 100%;
}

.event-info-item .icon-wrapper {
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.event-info-item .icon-wrapper span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    font-size: 26px;
    line-height: 26px;
}

.event-info-content {
    flex: 1;
    display: flex;
    align-items: center;
    min-height: 26px;
    font-weight: 400; /* Figma Regular，不要加粗 */
    font-size: 18px;
    line-height: 26px;
    color: var(--black);
    padding: 0;
}

.module-container > .event-info-grid .event-info-content,
.module-container > .event-info-list .event-info-content {
    padding: 0;
}

.module-container:has(> .event-info-grid) > .sub-heading p,
.module-container:has(> .event-info-list) > .sub-heading p {
    text-box-trim: none;
    text-box-edge: auto;
}

.event-info-content p,
.event-info-content div,
.event-info-content li,
.event-info-content span,
.event-info-content a,
.event-info-content .text-lg,
.event-info-content .font-bold,
.event-info-content .regular-text {
    font-weight: 400;
    font-size: 18px;
    line-height: 26px;
    color: var(--black);
    margin: 0;
    text-box-trim: none;
    text-box-edge: auto;
}

/* multi-line body text: readable leading */
.event-info-item:has(.event-info-content > p + p) .event-info-content > p,
.event-info-item:has(.event-info-content ul) .event-info-content,
.event-info-item:has(.event-info-content ol) .event-info-content,
.event-info-item:has(.event-info-content ul) .event-info-content p,
.event-info-item:has(.event-info-content ol) .event-info-content p,
.event-info-item:has(.event-info-content ul) .event-info-content li,
.event-info-item:has(.event-info-content ol) .event-info-content li {
    line-height: 23.4px;
}

.event-info-content ul {
    padding-left: 27px; /* Figma disc marker 1.5em @ 18px */
    margin: 0;
}
.event-info-content ul li {
    list-style: disc;
 }
.event-info-content ol li {
     list-style: decimal;
 }

.event-info-content ol {
    padding-left: 27px;
    margin: 0;
}

/* Event Info Grid — Figma gap-y 15、兩欄 520、justify-between */
.event-info-grid {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    row-gap: 15px;
    column-gap: 0;
    justify-content: space-between;
}

.event-info-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* CTA / footnote 自身帶 pt，不要再疊 module-inner-gap 20 */
.module-container > .event-info-grid:has(+ .cta-button-container),
.module-container > .event-info-grid:has(+ .footnote),
.module-container > .event-info-list:has(+ .cta-button-container),
.module-container > .event-info-list:has(+ .footnote) {
    margin-bottom: 0;
}

/* CTA Button — Figma Desktop：資訊列到鈕 pt 30；白卡內底距靠 module pad，故卡內 pb=0。
   獨立在 page 底色上（議程與贊助之間等）時上下都要有間距。 */
.cta-button-container {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 30px;
    padding-bottom: 30px;
    width: 100%;
}

.module-container > .cta-button-container,
.module-container > .footnote,
.programme-item .cta-button-container {
    padding-bottom: 0;
}

/* Footnote — Figma Desktop pt 40 */
.footnote {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 40px;
    width: 100%;
}

.footnote,
.footnote p,
.footnote .text-lg,
.footnote .font-bold {
    font-weight: 400;
    font-size: 18px;
    line-height: 23.4px;
    color: var(--black);
    margin: 0;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.footnote a {
    font-weight: 400;
    color: var(--primary-orange);
    text-decoration: underline;
    text-underline-offset: 23%;
}

.footnote a:hover {
    opacity: 0.8;
}

/* Figma List：兩段日期之間空一行（Desktop leading 23.4） */
.event-info-content ul.text-ul {
    padding-bottom: 23.4px;
}

/* Enquiry — icon+text vertical center (same as Event Info / cps-tech; no text-box-trim) */
.enquiry-info-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.enquiry-info-item {
    display: flex;
    gap: 15px;
    width: 100%;
    align-items: center;
}

.enquiry-info-item:has(.enquiry-info-content > p + p) {
    align-items: flex-start;
}

.enquiry-info-item .icon-wrapper {
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.enquiry-info-item .icon-wrapper span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    font-size: 26px;
    line-height: 26px;
}

.enquiry-info-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px 50px;
    justify-content: flex-start;
}

.enquiry-person {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: calc((100% - 50px) / 2); /* 兩欄等寬；第三人換行靠左。不要寫 550／353 */
    min-width: 0;
    box-sizing: border-box;
}

.enquiry-person:only-child {
    width: 100%;
}

.enquiry-info-content {
    flex: 1;
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 26px;
    padding: 0;
}

.module-container:has(> .enquiry-info-grid) > .sub-heading p,
.module-container:has(> .enquiry-info-list) > .sub-heading p {
    text-box-trim: none;
    text-box-edge: auto;
}

.enquiry-info-content p,
.enquiry-info-content .text-lg,
.enquiry-info-content .font-bold {
    margin: 0;
    line-height: 26px;
    text-box-trim: none;
    text-box-edge: auto;
    word-break: break-word;
}

.enquiry-info-content a,
a.email-link {
    color: var(--primary-orange); /* Figma 郵箱字色 #e64800，預設無底線 */
    text-decoration: none;
    word-break: break-word;
}

.enquiry-info-content a:hover,
a.email-link:hover {
    text-decoration: underline;
}

.sponsor-block {
    display: flex;
    flex-direction: column;
    gap: 20px; /* Figma Mobile 416:68023 / Desktop：小標到 Logo 20 */
    width: 100%;
}

/* 頁面若給 .sub-heading 設了 margin-bottom，贊助塊內清掉，只保留 gap 20 */
.sponsor-block > .sub-heading {
    margin-bottom: 0;
}

.module-container > .sponsor-block:not(:last-child) {
    margin-bottom: 50px; /* Figma Desktop 195:59953 兩塊之間 50 */
}

.module-container > .sub-heading:has(+ .text-content) {
    margin-bottom: 30px; /* Figma 純文字卡：小標到正文 30 */
}
/* Programmes Grid */
.programmes-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 30px;
    justify-content: flex-start;
    width: 100%;
}

.programme-item {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 525px;
    max-width: 100%;
    flex-shrink: 1;
    min-width: 0;
    box-sizing: border-box;
}

.programme-item .thumbnail {
    width: 100%;
    height: 217px;
    position: relative;
    overflow: hidden;
    border-radius: 0px;
}

.programme-item .thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.programme-title {
    display: flex;
    gap: 15px;
    align-items: flex-start;
    width: 100%;
}

.programme-title .icon-wrapper {
    top:5px;
  
}

.programme-title p {
    color: var(--black);
    margin: 0;
    flex: 1;
}

.programme-item .event-info-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
}

.programme-item .event-info-item {
    display: flex;
    gap: 15px;
    align-items: flex-start;
    width: 100%;
}

.programme-item .event-info-item .icon-wrapper {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.programme-item .event-info-item .icon-wrapper span {
    font-size: 26px;
    color: var(--primary-orange);
}

.programme-item .event-info-content {
    flex: 1;
    display: flex;
    align-items: center;
    min-height: 1px;
}

.programme-item .event-info-content p {
    color: var(--text-color);
    margin: 0;
   
}

.programme-item .cta-button-container {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-top: 0;
    width: 100%;
}
.tabs-container {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        margin: 0 auto;
        position: relative;
 }
 .tabs-wrapper {
        display: flex;
        gap: 10px;
        border-bottom: 3px solid var(--primary-orange);
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
}

.tabs-wrapper::-webkit-scrollbar {
   height: 4px;
 }
.tabs-wrapper::-webkit-scrollbar-track {
        background: #f1f1f1;
  }
    .tabs-wrapper::-webkit-scrollbar-thumb {
        background: var(--primary-orange);
        border-radius: 2px;
    }

    /* Tab Button */
    .tab-button {
        background: #E6E6E6;
        border: none;
        padding: 20px 30px;
        cursor: pointer;
        font-weight: 700;
        font-size: 16px;
        color: var(--black);
        border-radius: var(--module-radius) var(--module-radius) 0 0;
        transition: all 0.3s ease;
        white-space: nowrap;
        position: relative;
        min-width: fit-content;
    }

    .tab-button:hover {
        background: #d0d0d0;
    }

    .tab-button.active {
        background: var(--primary-orange);
        color: var(--white);
    }

    .tab-button.active:hover {
        background: #d03d00;
    }

    /* Programme Item Button */
    .btn-more {
        margin-top: 0;
    }

 /* Header Section */
    .forum-header {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 15px;
       
    }



    .collapse-all-button {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 12px 15px;
        border: 1px solid var(--dark-grey); /* Figma #444 */
        border-radius: 30px;
        background: transparent;
        cursor: pointer;
        font-family: Poppins !important;
        font-weight: 400;
        font-size: 14px;
        line-height: 18.2px;
        color: var(--dark-grey); /* Figma #444 */
        transition: all 0.3s ease;
    }

    .collapse-all-button:hover {
        background: transparent;
    }

    .collapse-all-button .icon-uniE7A6,
    .collapse-all-button .icon-uniE7A7 {
        display: inline-block;
        font-size: 16px;
        line-height: 1;
        color: var(--dark-grey);
    }

    .collapse-all-button .icon-uniE7A6:before,
    .collapse-all-button .icon-uniE7A7:before {
        color: var(--dark-grey);
    }

    .collapse-all-button .icon-uniE7A6 {
        display: none;
    }

    .collapse-all-button .icon-uniE7A7 {
        display: inline-block;
    }

    .collapse-all-button.expanded .icon-uniE7A6 {
        display: inline-block;
    }

    .collapse-all-button.expanded .icon-uniE7A7 {
        display: none;
    }

    /* Programme Item */
    .programme-item-activity {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .programme-header {
        background: var(--primary-orange);
        display: flex;
        align-items: center;
        gap: 20px;
        padding: 20px 30px;
        border-radius: var(--module-radius);
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .programme-item-activity.expanded .programme-header {
        border-radius: var(--module-radius) var(--module-radius) 0 0;
    }

    .programme-header:hover {
        opacity: 0.95;
    }

    .programme-header-icon {
        width: 60px;
        height: 60px;
        background: var(--white);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .programme-header-icon .icon-wrapper {
        width: 26px;
        height: 26px;
    }

    .programme-header-icon .icon-wrapper span {
        color: var(-primary-orange);
        font-size: 26px;
    }

    .programme-title-activity {
        flex: 1;
       
        color: var(--white);
        margin: 0;
    }

.programme-title-activity {
    display: flex;
    gap: 15px;
    align-items: flex-start;
    width: 100%;
}

    .programme-toggle {
        width: 16px;
        height: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        cursor: pointer;
    }

    .programme-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .programme-toggle .icon-uniE7A6,
    .programme-toggle .icon-uniE7A7 {
       
        color: var(--white);
        display: inline-block;
        font-size: 26px;
        line-height: 1;
    }

    .programme-toggle .icon-uniE7A6 {
        display: none;
    }

    .programme-toggle .icon-uniE7A7 {
        display: inline-block;
    }

    .programme-item-activity.expanded .programme-toggle .icon-uniE7A6 {
        display: inline-block;
    }

    .programme-item-activity.expanded .programme-toggle .icon-uniE7A7 {
        display: none;
    }

    .programme-content {
        background:var(--white);
        padding: 40px;
        border-radius: 0 0 20px 20px;
        display: none;
        flex-direction: column;
        gap: 50px;
        overflow: hidden;
        transition: all 0.3s ease;
    }

    .programme-item-activity.expanded .programme-content {
        display: flex;
    }

    /* Programme Description */
    .programme-description {
       
        color: var(--black);
        margin: 0;
    }

    .speaker-content {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .speaker-content-title {
       
        color: var(--black);
        margin: 0;
    }

    .speaker-content-description {
       
        color: var(--black);
        margin: 0;
    }
/* Programme Item with Border */
.programme-item.bordered {
    border: 1px solid var(--light-grey);
    border-radius: 10px;
    padding: 30px 20px;
}

.programme-item.bordered .thumbnail {
    display: none;
}

/* Guest Speakers Section */
    .guest-speakers-section {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .speakers-container {
        background: var(--white);
        border-radius: var(--module-radius);
        padding: 40px;
        width: 100%;
    }

    .speakers-list {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }

    .speaker-profile {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .speaker-profile:not(:first-child) {
        border-top: 1px solid #ccc;
        padding-top: 30px;
    }

    .speaker-container {
        display: flex;
        gap: 30px;
        align-items: center;
    }

    .speaker-portrait-container {
        display: flex;
        flex-direction: column;
        width: 200px;
        max-width: 100%;
        flex-shrink: 1;
        min-width: 0;
        align-items: center;
    }

    .speaker-portrait {
        width: 200px;
        max-width: 100%;
        aspect-ratio: 1 / 1;
        height: auto;
        border-radius: 50%;
        overflow: hidden;
        flex-shrink: 1;
    }

    .speaker-portrait img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .speaker-content-description ul {
        list-style: disc;
        padding-left: 27px;
        margin: 0;
    }

    
/* Sticky Dropdown Container */

.dropdown-module-wrapper {
    position: sticky;
    top: 83px;
    z-index: 100;
    width: 100%;
    pointer-events: auto;
}

.dropdown-module {
    background: var(--primary-orange);
    border-radius: var(--module-radius) var(--module-radius) 0 0;
    padding: 20px 40px 50px 40px;
    position: relative;
    overflow: hidden;
}

/* Select Session 標題 */
.dropdown-select-header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 0;
}

.dropdown-select-header p {
    font-size: 14px;
    font-weight: bold;
    color: var(--white);
    margin: 0;
}

/* 當前選中議程顯示區域（只在收起時顯示） */
.dropdown-current-session {
    display: none;
    flex-direction: column;
    gap: 15px;
    padding: 5px 0 15px 0;
}

.dropdown-module.collapsed .dropdown-current-session {
    display: flex;
}

.dropdown-current-session .dropdown-info {
    margin-bottom: 0;
}

.dropdown-current-session .dropdown-option-title {
    font-size: 20px;
   
}

.dropdown-other-sessions-btn {
    display: none;
    align-items: center;
    justify-content: center;
  
    cursor: pointer;

}

.dropdown-module.collapsed .dropdown-other-sessions-btn {
    display: flex;
}

.dropdown-other-sessions-btn p {
    
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    margin: 0;
    flex: 1;
    text-align: center;
    padding-top:10px;
}

.dropdown-options-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.dropdown-module.collapsed .dropdown-options-container {
    display: none;
}

.dropdown-module.expanded .dropdown-select-header {
    display: flex;
}

.dropdown-module.collapsed .dropdown-select-header {
    display: none;
}

.dropdown-option-item {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 10px;
    padding: 10px 15px 20px 15px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.dropdown-option-item:hover {
    background: rgba(255, 255, 255, 0.15);
}

.dropdown-option-item.active {
    background: #fff !important;
    border-color: #fff !important;
}

.dropdown-option-item.active .dropdown-info-item p,
.dropdown-option-item.active .dropdown-option-title {
    color: #000 !important;
}

.dropdown-option-item.active .icon-wrapper span {
    color: #000 !important;
}

.dropdown-option-item.active .icon-wrapper span:before,
.dropdown-option-item.active .icon-wrapper span:after {
    color: #000 !important;
}

.dropdown-option-content {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.dropdown-option-title {
   
    font-weight: 700;
    font-size: 18px;
    
    color: #fff;
    margin: 0;
}

.dropdown-info {
    display: flex;
    flex-wrap: wrap;
    gap: 30px 20px;
    align-items: flex-start;
}

.dropdown-info-item {
    display: flex;
    gap: 15px;
    align-items: center;
}

.dropdown-info-item .icon-wrapper {
   
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dropdown-info-item .icon-icon-date-fff span:before {
    
    color: #fff !important;
}

.dropdown-option-item.active .icon-icon-date-fff span,
.dropdown-option-item.active .icon-icon-date-fff span:before,
.dropdown-option-item.active .icon-icon-date-fff span:after {
    color: #000 !important;
}

.dropdown-option-item.active .icon-wrapper .icon-icon-date,
.dropdown-option-item.active .icon-wrapper .icon-icon-time {
    color: #000 !important;
}

.dropdown-option-item.active .icon-wrapper .icon-icon-date:before,
.dropdown-option-item.active .icon-wrapper .icon-icon-date:after,
.dropdown-option-item.active .icon-wrapper .icon-icon-time:before,
.dropdown-option-item.active .icon-wrapper .icon-icon-time:after {
    color: #000 !important;
}

/* 强制覆盖所有可能的图标颜色设置 */
.dropdown-option-item.active .dropdown-info-item .icon-wrapper span,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper span:before,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper span:after,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper .icon-icon-date,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper .icon-icon-time,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper .icon-icon-date:before,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper .icon-icon-date:after,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper .icon-icon-time:before,
.dropdown-option-item.active .dropdown-info-item .icon-wrapper .icon-icon-time:after {
    color: #e64800 !important;
}


.dropdown-arrow {
      background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
   
    cursor: pointer;
    transition: background 0.3s ease;
        border-radius: 0 0 20px 20px;
    padding-bottom: 20px;
}


.dropdown-arrow .icon-wrapper {
    background: var(--primary-orange);
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
    border-radius: 0px 0px 30px 30px;
    padding: 0 65px 30px 65px;
    
    
    
}

.dropdown-arrow .icon-wrapper span {
    color: #fff;
    display: inline-block;
    transition: opacity 0.3s ease;
}

.dropdown-arrow .icon-wrapper .icon-uniE7A6 {
    display: none;
}

.dropdown-arrow .icon-wrapper .icon-uniE7A7 {
    display: inline-block;
}

.dropdown-module-wrapper:has(.dropdown-module.collapsed) .dropdown-arrow .icon-wrapper .icon-uniE7A6 {
    display: inline-block;
}

.dropdown-module-wrapper:has(.dropdown-module.collapsed) .dropdown-arrow .icon-wrapper .icon-uniE7A7 {
    display: none;
}
  


.dropdown-module-wrapper .dropdown-module {
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    }
.dropdown-module[class*="col"]{
        padding: 20px 40px 30px 40px;
    }
.dropdown-arrow .icon-wrapper .icon-uniE7A7:before,
.dropdown-arrow .icon-wrapper .icon-uniE7A6:before {
    color: #ffffff !important;
}

    /* Responsive */
 


@media (max-width: 1350px) {
    :root {
        --module-gap: 20px;
        --module-radius: 5px;
        --module-pad: 20px;
        --module-inner-gap: 20px;
    }

    h3.font-h1, .font-h1 { font-size: 25px; line-height: 32.5px; }
    h3.font-h2, .font-h2 { font-size: 20px; line-height: 26px; }
    h3.font-h3, .font-h3 { font-size: 18px; line-height: 23.4px; }
    h3.font-h4, .font-h4 { font-size: 14px; line-height: 18.2px; }
    h3.font-h5, .font-h5 { font-size: 12px; line-height: 15.6px; }
    h3.font-h6, .font-h6 { font-size: 11px; line-height: 14.3px; }

    .my-b-xl {
        margin-bottom: var(--module-gap);
    }

    .content {
        width: 100%;
    }

    .module-container {
        padding: var(--module-pad);
        border-radius: var(--module-radius);
    }

    .sub-heading {
        padding-bottom: 10px;
    }

    .sub-heading p {
        font-weight: 700;
        font-size: 12px;
        line-height: 15.6px;
        color: var(--dark-grey);
    }

    .module-container .text-lg {
        font-size: 16px;
    }

    .module-container > *:not(:last-child) {
        margin-bottom: 20px;
    }

    .text-content li {
        font-size: 16px;
    }

    .module-container > .sub-heading:has(+ .text-content) {
        margin-bottom: 20px; /* Figma Mobile 196:87170 gap 20 */
    }

    .module-container > .text-content h3,
    .module-container > .text-content .font-h3 {
        font-size: 18px;
        line-height: 23.4px;
        margin-bottom: 20.8px;
    }

    .module-container > .text-content p,
    .module-container > .text-content .text-lg {
        font-size: 16px;
        line-height: 1.3;
        font-weight: 400;
    }

    .module-container > .text-content p + h3,
    .module-container > .text-content p + .font-h3,
    .module-container > .text-content p + ul {
        margin-top: 20.8px;
    }

    .module-container > .text-content li {
        font-size: 16px;
        line-height: 1.3;
        font-weight: 400;
    }

    .programme-info,
    .programme-info p,
    .programme-info .text-lg,
    .programme-info .font-h3,
    /* 權重須蓋過桌面 .content-block .text-content p:not(.sub-text-heading) 的 18px */
    .content-block .text-content p:not(.sub-text-heading),
    .content-block .text-content .text-lg:not(.sub-text-heading),
    .content-block .text-content .sub-text-heading,
    .sub-text-heading {
        font-size: 16px; /* Figma Mobile 196:87169：正文 / 小標 16 / 20.8 */
        line-height: 1.3;
    }

    .content-block h3,
    .content-block .font-h3 {
        font-size: 18px;
        line-height: 1.3; /* Figma Mobile h3：18 / 23.4 */
        margin-bottom: 20px;
    }

    .photo-container .photo-caption,
    .text-image-block .photo-caption {
        font-size: 14px;
        line-height: 1.3;
    }

    .content-block .text-content p + .sub-text-heading,
    .content-block .text-content p.text-lg + .sub-text-heading,
    .content-block .text-content p + ul,
    .content-block .text-content .sub-text-heading + ul,
    .content-block .text-content ul + p,
    .content-block .text-content ul + p.text-lg:not(.sub-text-heading),
    .content-block .text-content ul + .sub-text-heading {
        margin-top: 20.8px;
    }

    .text-image-block {
        padding-top: 0; /* Mobile 196:87171：父層 gap 30，塊內不再加 pt */
    }

    .psteps-tabs .tib2-panel {
        padding: 40px 20px 20px;
    }

    .tib2-panel > *:not(:last-child) {
        margin-bottom: 20px;
    }

    .tib2-intro {
        gap: 20px;
    }

    .tib2-intro > .font-h3,
    .tib2-panel > .font-h3 {
        font-size: 18px;
        line-height: 1.3;
    }

    .tib2-panel > .font-h3 {
        padding-top: 20px;
        margin-bottom: 20px;
    }

    .tib-brand {
        max-width: 180px;
        height: 78px;
    }

    .tib-partner {
        max-width: 180px;
    }

    .tib-partner-logo {
        height: 78px;
    }

    .text-image-container,
    .text-image-container.is-reverse {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 30px;
    }

    .text-image-container > *:not(:last-child) {
        margin-right: 0px;
    }

    .text-image-block .text-base {
        font-size: 14px;
    }

    .photo-container .indicators {
        margin-bottom: 0;
    }

    .image-module .indicators {
        margin-bottom: 30px;
    }

    .photo-container {
        width: 100%;
        max-width: 100%;
        flex: 1 1 auto;
    }

    .photo-container img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    .photo-container .thumbnail img,
    .photo-container .carousel-image img {
        height: 100%;
        object-fit: cover;
        object-position: center;
        border-radius: var(--module-radius);
    }

    .module-container .text-base {
        font-size: 14px;
    }

    .cover-photo img {
        border-radius: var(--module-radius);
    }

    .image-module .image-wrapper {
        gap: 15px; /* Figma Mobile 196:87121 圖到圖說 15 */
    }

    .image-module.single-image .image-wrapper img {
        width: 100%;
        height: auto;
    }

    .image-module.two-images,
    .image-module.three-images,
    .image-module.four-images {
        flex-direction: column;
        gap: 30px;
    }

    .image-module.two-images .image-wrapper,
    .image-module.three-images .image-wrapper,
    .image-module.four-images .image-wrapper {
        flex: none;
        width: 100%;
    }

    .module-container > .sub-heading:has(+ .image-module),
    .module-container > .sub-heading:has(+ .pslide),
    .module-container > .sub-heading:has(+ .svideo),
    .module-container > .sub-heading:has(+ .vslide) {
        margin-bottom: 20px; /* Figma Mobile 小標到內容 20 */
    }

    /* Figma 196:87134：313 列、箭頭 30、圖 230×153、兩側各 11.5（justify-between） */
    .pslide {
        display: grid;
        grid-template-columns: 30px minmax(0, 230px) 30px;
        justify-content: space-between;
        align-items: center;
        gap: 0;
        width: 100%;
    }

    .pslide-nav {
        width: 30px;
        height: 30px;
    }

    .pslide-nav .icon-arrow-left,
    .pslide-nav .icon-arrow-right {
        width: 16px;
        height: 16px;
    }

    .pslide-viewport {
        flex: none;
        width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    .pslide-track {
        gap: 20px;
    }

    .pslide-photo {
        flex: 0 0 100cqi;
        width: 100cqi;
    }

    .svideo-play {
        width: 60px;
        height: 60px;
    }

    /* Figma 196:87158：313 列、箭頭 30、片 230×129、兩側各約 11.5 */
    .vslide {
        display: grid;
        grid-template-columns: 30px minmax(0, 230px) 30px;
        justify-content: space-between;
        align-items: center;
        gap: 0;
        width: 100%;
    }

    .vslide-viewport {
        flex: none;
        width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    .vslide-track {
        gap: 20px;
    }

    .vslide-item {
        flex: 0 0 100cqi;
        width: 100cqi;
    }

    .vslide .svideo-play {
        width: 40px;
        height: 40px;
    }

    .svideo-overlay {
        padding: 24px 16px;
    }

    .svideo-overlay .photo-lightbox-close {
        top: 12px;
        right: 12px;
        width: 28px;
        height: 28px;
    }

    /* Sponsor Logos Mobile：外層去白底／內距（頁面常寫 .module-container{padding:20px!important}，必須 !important） */
    .module-container:has(> .sponsor-block) {
        padding: 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
    }

    .module-container > .sponsor-block {
        background: var(--white);
        padding: var(--module-pad);
        border-radius: var(--module-radius);
        gap: 20px; /* Figma 416:68023 card gap */
    }

    .module-container > .sponsor-block > .sub-heading {
        margin-bottom: 0;
    }

    .module-container > .sponsor-block:not(:last-child) {
        margin-bottom: 20px;
    }

    /* 對齊線上 testconference1／CDN：保持 flex，大 2 欄／小 3 欄；max-width 避免單個 Logo 撐滿整行 */
    .sponsor-logos-grid {
        gap: 15px; /* Figma 416:68023 logo gap */
    }

    .sponsor-logo-large {
        flex: 1 1 calc((100% - 15px) / 2);
        width: auto;
        max-width: calc((100% - 15px) / 2);
    }

    .sponsor-logo-small {
        flex: 1 1 calc((100% - 30px) / 3);
        width: auto;
        max-width: calc((100% - 30px) / 3);
    }

    /* Event Info Mobile 196:87710：線下 15 / 項距 10 / 圖示 16 / 文字 py 3 / CTA·footnote pt 20 */
    .module-container > .sub-heading:has(+ .event-info-grid),
    .module-container > .sub-heading:has(+ .event-info-list) {
        margin-bottom: 15px;
    }

    .event-info-grid {
        flex-direction: column;
        row-gap: 10px;
        column-gap: 0;
    }

    .event-info-list {
        gap: 10px;
    }

    .event-info-item {
        gap: 10px;
        align-items: center;
        width: 100%;
    }

    .event-info-item:has(.event-info-content > p + p),
    .event-info-item:has(.event-info-content ul),
    .event-info-item:has(.event-info-content ol) {
        align-items: flex-start;
    }

    .event-info-item .icon-wrapper {
        width: 16px !important;
        height: 16px !important;
    }

    .event-info-item .icon-wrapper span,
    .event-info-item .icon-wrapper span:before {
        width: 16px !important;
        height: 16px !important;
        font-size: 16px !important;
        line-height: 16px !important;
    }

    .module-container > .event-info-grid .event-info-content,
    .module-container > .event-info-list .event-info-content {
        padding: 0;
        min-height: 16px;
    }

    .event-info-content,
    .event-info-content p,
    .event-info-content div,
    .event-info-content li,
    .event-info-content span,
    .event-info-content a,
    .event-info-content .text-lg,
    .event-info-content .font-bold,
    .footnote,
    .footnote p,
    .footnote .text-lg,
    .enquiry-info-content,
    .enquiry-info-content p,
    .enquiry-info-content .text-lg {
        font-size: 16px;
        font-weight: 400;
        line-height: 16px; /* match 16px icon */
    }

    .event-info-item:has(.event-info-content > p + p) .event-info-content > p,
    .event-info-item:has(.event-info-content ul) .event-info-content p,
    .event-info-item:has(.event-info-content ol) .event-info-content p,
    .event-info-item:has(.event-info-content ul) .event-info-content li,
    .event-info-item:has(.event-info-content ol) .event-info-content li,
    .footnote,
    .footnote p,
    .footnote .text-lg {
        line-height: 20.8px;
    }

    .event-info-content ul.text-ul {
        padding-bottom: 20.8px;
    }

    .icon-wrapper {
        width: auto;
    }

    .icon-wrapper span {
        font-size: 16px;
    }

    .event-info-content ul,
    .event-info-content ol {
        padding-left: 24px; /* 1.5em @ 16px；稿面無 List，跟桌面比例 */
    }

    .cta-button-container,
    .footnote {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .module-container > .cta-button-container,
    .module-container > .footnote,
    .programme-item .cta-button-container {
        padding-bottom: 0;
    }

    .enquiry-info-list {
        gap: 10px;
    }

    .enquiry-info-item {
        gap: 10px;
        align-items: center;
    }

    .enquiry-info-item .icon-wrapper {
        width: 16px !important;
        height: 16px !important;
    }

    .enquiry-info-item .icon-wrapper span,
    .enquiry-info-item .icon-wrapper span:before {
        width: 16px !important;
        height: 16px !important;
        font-size: 16px !important;
        line-height: 16px !important;
    }

    .enquiry-info-content {
        padding: 0;
        min-height: 16px;
    }

    .enquiry-person {
        width: 100%;
        gap: 10px;
    }

    .enquiry-info-grid {
        gap: 30px;
        flex-direction: column;
    }
    .programme-title .icon-wrapper {
    top: 0px;
}
    
.programmes-grid {
    gap: 30px 20px;
 }

.programme-item {
    width: calc((100% - 20px) / 2);
     gap: 20px;
 }

.programme-item .thumbnail {
    height: auto;
    aspect-ratio: 525 / 217;
}

.programme-title {
    gap: 10px;
}

.programme-title p {
   font-size: 16px;
    line-height: 20.8px;
 }

.programme-item .event-info-list {
    gap: 15px;
}

.programme-item .event-info-item {
   gap: 10px;
}

.programme-item .event-info-item .icon-wrapper {
    width: 20px;
}
.programme-item .event-info-item .icon-wrapper span {
   font-size: 20px;
 }
.programme-item {
  width: 100%;
}
        .tabs-container {
            width: 100%;
        }

        .tab-button {
            padding: 15px 20px;
            font-size: 14px;
            line-height: 18.2px;
        }
    
      .programme-content .text-lg{ font-size:16px;}


        .forum-header {
           gap:8px;
        }


        .programme-header {
            padding: 15px 15px;
            gap: 10px;
         align-items: start;
            border-radius:10px;
           
        }
        .programme-item-activity.expanded .programme-header{ border-radius:10px 10px 0 0;}
        
        .programme-toggle .icon-uniE7A6, .programme-toggle .icon-uniE7A7{ font-size:20px; position: relative; top: 3px;}

        .programme-header-icon {
            width: 34px;
            height: 34px;
        }

        .programme-header-icon .icon-wrapper {
            width: 16px;
            height: 16px;
        }

        .programme-header-icon .icon-wrapper span {
            font-size: 20px;
        }

        .programme-title {
            font-size: 18px;
            line-height: 23.4px;
        }

        .programme-content {
            padding: 20px;
           
        }

        .speaker-content {
            gap: 10px;
        }

       


        .collapse-all-button{ 
            font-size:12px;     
            gap: 5px;
    padding: 5px 10px;}
        
        .collapse-all-button .icon-uniE7A6, .collapse-all-button .icon-uniE7A7{ font-size:14px;}    
    
        
        .speaker-container{  gap: 20px;  display: flex;   align-items: center;  flex-direction: column;}
     
        .guest-speakers-section .text-lg{ font-size:16px;}
        .speaker-profile:not(:first-child){ padding-top:20px;}



        .guest-speakers-section {
            margin-bottom: 30px;
        }

        .forum-header {
            margin-bottom: 30px;
        }

        .speakers-container {
            padding: 30px;
        }


      

       



      

        .speaker-portrait-container {
            width: 150px;
            max-width: 100%;
        }

        .speaker-portrait {
            width: 130px;
            max-width: 100%;
            height: auto;
        }

        
    .dropdown-module{ border-radius: 10px 10px 0 0;}
    .dropdown-options-container{gap:10px;}
    .dropdown-info-item{gap:10px;}
    .dropdown-select-header p {
    font-size: 12px;
}
    
    .dropdown-arrow .icon-wrapper{    padding: 3px 40px 20px 40px;}
    
    
    .dropdown-module {
        padding: 0px 20px 30px 20px;
    }
    .dropdown-current-session .dropdown-option-title{font-size: 18px;}
    
    .dropdown-option-title {
        font-size: 16px;
       
    }
    
    .dropdown-info-item p {
        font-size: 16px;
    }
    .dropdown-module[class*="col"] {
    padding: 20px;
}
    .dropdown-other-sessions-btn p{ padding-top:0px;}
    
    
    
    .dropdown-arrow .icon-wrapper .icon-uniE7A6, .dropdown-arrow .icon-wrapper .icon-uniE7A7{ top:0px !important;}
    

}

  @media (max-width: 768px) {
        .tabs-container {
            position: relative;
        }

        .tabs-wrapper {
            gap: 5px;
            border-bottom: 3px solid var(--primary-orange);
            position: relative;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            display: flex;
        }

        .tabs-wrapper::-webkit-scrollbar {
            display: none;
        }

        .tab-button {
            padding: 15px;
            font-size: 14px;
            font-weight: 700;
            line-height: 18.2px;
            border-radius: 10px 10px 0 0;
            flex-shrink: 0;
            white-space: nowrap;
            display: block;
        }

    }


/* ===== v2 additions: headings + Register Now ===== */
.module-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    color: var(--black);
    margin: 0;
}

/* Module: Headings — Figma Desktop 195:60917：三組距 150、標題棧 20、H1–H6 距 40、Expand All py 12；Mobile 196:87776：組距 50、H1–H6 距 50 */
.heading-module {
    display: flex;
    flex-direction: column;
    gap: 150px;
    width: 100%;
    padding: 50px 0;
    box-sizing: border-box;
}

.heading-stack,
.heading-intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    text-align: center;
}

.heading-stack h3,
.heading-intro h3,
.heading-scale h3,
.group-heading-row h3 {
    margin: 0;
    width: 100%;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.group-heading-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
    text-align: center;
}

.heading-scale {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    width: 100%;
    text-align: center;
}

.btn-expand-all {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 15px;
    border: 1px solid var(--dark-grey); /* Figma #444 */
    border-radius: 30px;
    background: var(--white);
    color: var(--dark-grey);
    font-size: 14px;
    font-weight: 400;
    line-height: 18.2px;
    cursor: pointer;
}

.btn-expand-all [class^="icon-"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* 字型 glyph 比 Figma 8px SVG 小，跟 .collapse-all-button 一樣用 16 */
    font-size: 16px;
    line-height: 1;
}

.btn-register-now,
.btn-register-now-theme {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    padding: 17px 25px;
    border-radius: 30px;
    font-size: 18px;
    font-weight: 400;
    line-height: 19.8px;
    cursor: pointer;
    text-decoration: none;
    border: 1px solid var(--primary-orange);
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.btn-register-now {
    background: var(--primary-orange);
    color: var(--white);
}

.btn-register-now:hover {
    background: #cb4200;
    border-color: #cb4200;
    color: var(--white);
}

.btn-register-now-theme {
    background: var(--theme-color, var(--primary-orange));
    border-color: var(--theme-color, var(--primary-orange));
    color: var(--white);
}

.btn-register-now-theme:hover {
    filter: brightness(0.92);
}

.register-now-bar {
    display: flex;
    justify-content: center;
    padding: 20px 0;
}

/* Module: Register Now Button — Desktop 195:61032（Fixed Button 195:61066／鈕 195:61067）
   Mobile 196:88015（Fixed Button 196:88038／鈕 196:88039）
   視窗固定，不是頁內 pill。桌面右上；移動通欄。有 .main-navbar 時 JS 貼在導航下方。
   視覺沿用 .btn-pill-large.btn-solid-primary（桌面 69／移動 43）。z-index 低於 lightbox 10000。 */
a.register-now-fixed {
    position: fixed;
    top: 24px;
    right: 60px; /* Figma 畫布右距 60 */
    z-index: 9999;
    display: inline-flex;
    width: auto;
    margin: 0;
    box-sizing: border-box;
}

a.register-now-fixed .btn-pill-large {
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); /* Figma drop-shadow */
}

.register-now-stage {
    min-height: 900px;
}

@media (max-width: 1350px) {
    a.register-now-fixed {
        top: 20px;
        left: 20px;
        right: 20px;
        display: flex;
    }

    a.register-now-fixed .btn-pill-large {
        width: 100%;
    }
}

/* Module: CTA Buttons — Desktop 195:60940 / Mobile 196:87799
   Outline 在頁灰底置中；Solid 才進白卡。頁內 Learn more / More / Register Now 共用這套 pill token。 */
.cta-module {
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
}

.cta-outline-stack,
.module-container.cta-solid-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
    width: 100%;
    box-sizing: border-box;
}

.cta-outline-stack {
    padding: 50px 0;
}

.module-container.cta-solid-stack {
    padding: 50px 0;
    border-radius: 20px; /* Figma 195:60954，僅此卡；不改全局 --module-radius */
}

.cta-module .module-container > *:not(:last-child),
.cta-outline-stack > *:not(:last-child),
.cta-solid-stack > *:not(:last-child) {
    margin-bottom: 0;
}

.cta-outline-stack .btn-more,
.cta-solid-stack .btn-more {
    display: flex;
    justify-content: center;
    width: 100%;
}

/* 覆蓋 VueCommonStyle pill。高度鎖 Figma instance（trim 在 button 上不生效會把盒撐高）：
   Desktop 195:60949–60951 → 69 / 47 / 34；Mobile 196:87808–87810 → 43 / 38 / 28 */
.btn-pill,
.btn-pill-small,
.btn-pill-large {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    box-sizing: border-box;
    line-height: 1;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.btn-pill-small {
    height: 34px;
    padding: 0 15px;
    border-radius: 30px;
    font-size: 14px;
}

.btn-pill {
    height: 47px;
    padding: 0 25px;
    border-radius: 30px;
    font-size: 18px;
}

.btn-pill-large {
    height: 69px;
    padding: 0 30px !important; /* VueCommonStyle large 帶 !important */
    border-radius: 200px !important;
    font-size: 20px;
}

@media (max-width: 1350px) {
    .btn-register-now,
    .btn-register-now-theme {
        min-width: 160px;
        padding: 12px 20px;
        font-size: 16px;
    }

    .cta-outline-stack,
    .module-container.cta-solid-stack {
        padding: 80px 0;
    }

    .module-container.cta-solid-stack {
        border-radius: 5px; /* Figma 196:87811 */
    }

    .btn-pill-small {
        height: 28px;
        padding: 0 10px;
        font-size: 12px;
    }

    .btn-pill {
        height: 38px;
        padding: 0 15px;
        font-size: 14px;
    }

    .btn-pill-large {
        height: 43px;
        padding: 0 15px !important;
        border-radius: 30px !important;
        font-size: 16px;
    }

    .module-title {
        font-size: 18px;
        line-height: 23.4px;
    }

    .heading-module {
        gap: 50px;
        padding: 50px 0;
    }

    .heading-scale {
        gap: 50px;
    }

    .btn-expand-all {
        gap: 5px;
        padding: 10px;
        font-size: 12px;
        line-height: 15.6px;
    }

    .btn-expand-all [class^="icon-"] {
        font-size: 14px; /* 與 .collapse-all-button 移動端一致；不要寫 6px，字型會比 Figma SVG 更小 */
    }
}

/* ===== Schedule Type 1 — Figma 195:60011 / 195:60153 ===== */
.sch1-stack {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
}

.sch1-day {
    background: var(--white);
    border-radius: 10px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 100%;
}

.sch1-day-title {
    margin: 0;
    color: var(--black);
}

.sch1-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
}

.sch1-row {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
}

.sch1-time {
    width: 200px;
    max-width: 100%;
    flex-shrink: 1;
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding-top: 20px;
}

.sch1-time .icon-wrapper {
    width: 26px;
    height: 26px;
}

.sch1-time .icon-wrapper span {
    font-size: 26px;
    color: var(--primary-orange);
    line-height: 1;
}

.sch1-time p {
    margin: 0;
    padding: 0;
    color: var(--black);
}

.sch1-programme {
    flex: 1;
    min-width: 0;
    background: var(--primary-orange);
    border: 1px solid var(--primary-orange);
    border-radius: 10px;
    padding: 20px;
    cursor: pointer;
}

.sch1-programme-title {
    display: flex;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.sch1-programme-title .icon-wrapper {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}

.sch1-programme-title .icon-wrapper span {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: var(--white);
    line-height: 1;
}

/* font_icon.css 把 flag :before 寫死 #e64800，橘色條上會隱形，這裡改繼承白色 */
.sch1-programme-title .icon-wrapper .icon-icon-flag:before {
    color: inherit;
}

.sch1-programme-title h3 {
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 0;
    color: var(--white);
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    /* Figma text-box-trim：字面與 26px 旗幟垂直置中，不受行高空白撐開 */
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.sch1-chevron {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    /* 字型 glyph 比 Figma 16px SVG 小，字級跟 .programme-toggle 一樣用 26 */
    font-size: 26px;
    line-height: 1;
}

.sch1-programme.is-open {
    background: var(--page-bg);
    border-color: transparent;
}

.sch1-programme.is-open .sch1-programme-title h3 {
    color: var(--primary-orange);
}

.sch1-programme.is-open .sch1-programme-title .icon-wrapper span,
.sch1-programme.is-open .sch1-chevron {
    color: var(--primary-orange);
}

.sch1-subs {
    display: none;
    flex-direction: column;
    gap: 20px;
    padding-top: 20px;
}

.sch1-programme.is-open .sch1-subs {
    display: flex;
}

.sch1-programme.is-open .sch1-subs:empty {
    display: none;
    padding-top: 0;
}

.sch1-sub {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--light-grey);
    width: 100%;
    max-width: 820px; /* Figma 195:60173 桌面固定 820；欄窄時跟灰卡縮 */
}

.sch1-sub:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.sch1-sub-title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    color: var(--black);
}

.sch1-sub-org {
    margin: 0;
    font-size: 18px;
    font-weight: 400;
    line-height: 23.4px;
    color: var(--black);
}

@media (max-width: 1350px) {
    .sch1-stack {
        gap: 20px;
    }

    .sch1-day {
        padding: 20px;
        gap: 20px;
        border-radius: 5px;
    }

    .sch1-day-title {
        font-size: 18px;
        line-height: 23.4px;
    }

    .sch1-list {
        gap: 20px;
    }

    .sch1-row {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .sch1-time {
        width: 100%;
        padding-top: 0;
    }

    .sch1-time .icon-wrapper,
    .sch1-programme-title .icon-wrapper {
        width: 16px;
        height: 16px;
    }

    .sch1-time .icon-wrapper span,
    .sch1-programme-title .icon-wrapper span {
        font-size: 16px;
    }

    .sch1-time p {
        padding: 0;
        font-size: 14px;
        line-height: 18.2px;
    }

    .sch1-programme {
        width: 100%;
        padding: 15px;
        border-radius: 5px;
    }

    .sch1-programme-title {
        align-items: start;
        gap: 10px;
    }

    .sch1-programme-title h3 {
        padding: 0;
        font-size: 18px;
        line-height: 23.4px;
    }

    .sch1-chevron {
        width: 10px;
        height: 10px;
        font-size: 20px;
        margin-top: 3px;
    }

    .sch1-sub-title {
        font-size: 18px;
        line-height: 23.4px;
    }

    .sch1-sub-org {
        font-size: 16px;
        line-height: 20.8px;
    }
}

/* ===== Product Type 1 — Figma 195:59669 / 196:86900 ===== */
.prod1-module {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    padding: 30px 40px;
    width: 100%;
}

.module-container.prod1-module > *:not(:last-child) {
    margin-bottom: 0;
}

.prod1-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
}

.prod1-chip {
    appearance: none;
    margin: 0;
    cursor: pointer;
    background: transparent;
    border: 1px solid var(--light-grey);
    border-radius: 30px;
    padding: 12px 15px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 18.2px;
    color: var(--dark-grey);
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.prod1-chip.is-active {
    background: var(--primary-orange);
    border-color: var(--primary-orange);
    color: var(--white);
}

.prod1-slideshow {
    display: flex;
    align-items: flex-start;
    gap: 25px;
    width: 100%;
    min-width: 0;
}

.prod1-nav {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    margin-top: 130px; /* (圖 300 − 箭頭 40) / 2，對齊正方形圖中心 */
    padding: 0;
    border: 1px solid var(--primary-orange);
    border-radius: 50%;
    background: var(--white);
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    color: var(--primary-orange);
    display: flex;
    align-items: center;
    justify-content: center;
}

.prod1-nav .icon-arrow-left,
.prod1-nav .icon-arrow-right {
    display: block;
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.prod1-nav .icon-arrow-left:before,
.prod1-nav .icon-arrow-right:before {
    content: none !important;
}

.prod1-nav .icon-arrow-left {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23E64800' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.5489 4.07123C9.24863 3.77129 8.76229 3.77126 8.462 4.07123L2.53333 9.99994L8.462 15.9286C8.76229 16.2287 9.24863 16.2286 9.5489 15.9286C9.84929 15.6282 9.84929 15.1412 9.5489 14.8408L4.709 9.99994L9.5489 5.15912C9.84929 4.85872 9.84929 4.37163 9.5489 4.07123ZM7.85156 9.23041C7.42678 9.23041 7.08207 9.57513 7.08207 9.99994C7.08207 10.4248 7.42678 10.7695 7.85156 10.7695H16.6973C17.1222 10.7695 17.4669 10.4248 17.4669 9.99994C17.4668 9.57513 17.1222 9.23041 16.6973 9.23041H7.85156Z'/%3E%3C/svg%3E");
}

.prod1-nav .icon-arrow-right {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23E64800' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.4511 4.07123C10.7514 3.77129 11.2377 3.77126 11.538 4.07123L17.4667 9.99994L11.538 15.9286C11.2377 16.2287 10.7514 16.2286 10.4511 15.9286C10.1507 15.6282 10.1507 15.1412 10.4511 14.8408L15.291 9.99994L10.4511 5.15912C10.1507 4.85872 10.1507 4.37163 10.4511 4.07123ZM12.1484 9.23041C12.5732 9.23041 12.9179 9.57513 12.9179 9.99994C12.9179 10.4248 12.5732 10.7695 12.1484 10.7695H3.30267C2.87784 10.7695 2.53314 10.4248 2.53314 9.99994C2.53317 9.57513 2.87785 9.23041 3.30267 9.23041H12.1484Z'/%3E%3C/svg%3E");
}

.prod1-viewport {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    container-type: inline-size;
}

.prod1-track {
    display: flex;
    align-items: flex-start;
    gap: 25px;
    width: max-content;
    max-width: none;
    transition: transform 0.35s ease;
}

.prod1-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
    flex: 0 0 calc((100cqi - 50px) / 3);
    width: calc((100cqi - 50px) / 3);
    max-width: 300px;
    min-width: 0;
    box-sizing: border-box;
}

.prod1-card.is-off {
    display: none;
}

.prod1-photo {
    width: 100%;
    max-width: 300px;
    aspect-ratio: 1;
    overflow: hidden;
}

.prod1-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.prod1-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
    min-width: 0;
}

.prod1-name {
    margin: 0;
    width: 100%;
    color: var(--primary-orange);
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    text-align: center;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    /* 不要用 text-box-trim：會讓 line-clamp 截不斷，第三行（如 Jacket）漏出來 */
    max-height: 52px;
    min-height: 52px;
}

.prod1-org {
    margin: 0;
    width: 100%;
    color: var(--black);
    font-size: 18px;
    font-weight: 400;
    line-height: 23.4px;
    text-align: center;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.prod1-booth {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    color: var(--medium-grey);
    font-size: 16px;
    font-weight: 700;
    line-height: 20.8px;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    white-space: nowrap;
}

.prod1-booth .icon-wrapper {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.prod1-booth .icon-wrapper span {
    font-size: 20px;
    color: inherit;
    line-height: 1;
}

.prod1-booth .icon-icon-marker:before {
    color: inherit;
}

.prod1-more {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding-top: 20px;
    border-top: 1px solid var(--light-grey);
}

@media (max-width: 1350px) {
    /* Figma 196:86909：白卡 pad 20/10、圓角 10、欄 gap 20 */
    .module-container.prod1-module {
        gap: 20px;
        padding: 20px 10px;
        border-radius: 10px;
    }

    .prod1-filters {
        gap: 8px;
    }

    .prod1-chip {
        padding: 10px;
        font-size: 12px;
        line-height: 15.6px;
    }

    /* 箭頭 30 | 產品最大 250 | 箭頭 30，剩餘空隙均分；圖縮小時跟著縮，不壓箭頭 */
    .prod1-slideshow {
        display: grid;
        grid-template-columns: 30px minmax(0, 250px) 30px;
        justify-content: space-between;
        align-items: start;
        gap: 0;
        width: 100%;
    }

    .prod1-viewport {
        flex: none;
        width: 100%;
        max-width: none;
        min-width: 0;
        overflow: hidden;
        container-type: inline-size;
    }

    .prod1-nav {
        width: 30px;
        height: 30px;
        margin-top: 110px; /* Figma py-[110px]：(250 − 30) / 2 */
    }

    .prod1-nav .icon-arrow-left,
    .prod1-nav .icon-arrow-right {
        width: 16px;
        height: 16px;
    }

    .prod1-track {
        gap: 20px;
    }

    .prod1-card {
        flex: 0 0 100cqi;
        width: 100cqi;
        max-width: none;
        gap: 15px;
    }

    .prod1-photo {
        width: 100%;
        max-width: none;
    }

    .prod1-meta {
        gap: 10px;
    }

    .prod1-name {
        font-size: 18px;
        line-height: 23.4px;
        max-height: 46.8px;
        min-height: 0; /* 移動端跟稿 hug，短標題不要空出第二行 */
    }

    .prod1-org {
        font-size: 16px;
        line-height: 20.8px;
    }

    .prod1-booth {
        font-size: 14px;
        line-height: 18.2px;
    }

    .prod1-booth .icon-wrapper {
        width: 16px;
        height: 16px;
    }

    .prod1-booth .icon-wrapper span {
        font-size: 16px;
    }
}

/* ===== Product Type 2 — Figma 195:59681 / 196:86912 ===== */
.prod2-module {
    padding: 40px;
    width: 100%;
    box-sizing: border-box;
}

.module-container.prod2-module > *:not(:last-child) {
    margin-bottom: 0;
}

.prod2-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: 20px;
    row-gap: 50px;
    width: 100%;
    align-items: start;
}

.prod2-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.prod2-photo {
    width: 100%;
    max-width: 200px;
    aspect-ratio: 1;
    overflow: hidden;
}

.prod2-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.prod2-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
    min-width: 0;
    text-align: center;
}

.prod2-name {
    margin: 0;
    width: 100%;
    color: var(--primary-orange);
    font-size: 18px;
    font-weight: 700;
    line-height: 23.4px;
    text-align: center;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    /* 不要用 text-box-trim：會讓 line-clamp 截不斷 */
    max-height: 46.8px;
    min-height: 46.8px;
}

.prod2-org {
    margin: 0;
    width: 100%;
    color: var(--black);
    font-size: 16px;
    font-weight: 400;
    line-height: 20.8px;
    text-align: center;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.prod2-booth {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    color: var(--medium-grey);
    font-size: 14px;
    font-weight: 700;
    line-height: 18.2px;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    white-space: nowrap;
}

.prod2-booth .icon-wrapper {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.prod2-booth .icon-wrapper span {
    font-size: 20px;
    color: inherit;
    line-height: 1;
}

.prod2-booth .icon-icon-marker:before {
    color: inherit;
}

@media (max-width: 1350px) {
    /* Figma 196:86921：白卡 pad 20、圓角 10、兩欄換行 */
    .module-container.prod2-module {
        padding: 20px;
        border-radius: 10px;
    }

    .prod2-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 20px;
        row-gap: 20px;
    }

    .prod2-card {
        gap: 15px;
    }

    .prod2-photo {
        max-width: none;
    }

    .prod2-meta {
        gap: 10px;
    }

    .prod2-name {
        font-size: 16px;
        line-height: 20.8px;
        max-height: 41.6px;
        min-height: 0;
    }

    .prod2-org {
        font-size: 14px;
        line-height: 18.2px;
    }

    .prod2-booth {
        font-size: 12px;
        line-height: 15.6px;
    }

    .prod2-booth .icon-wrapper {
        width: 16px;
        height: 16px;
    }

    .prod2-booth .icon-wrapper span {
        font-size: 16px;
    }
}

/* ===== Production Steps — Figma 195:59695 / 196:86941 ===== */
.psteps-module {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 40px;
    width: 100%;
    box-sizing: border-box;
}

.module-container.psteps-module > *:not(:last-child) {
    margin-bottom: 0;
}

.psteps-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    min-width: 0;
}

.psteps-head {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px;
    width: 100%;
    min-width: 0;
}

.psteps-num {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 98px;
    flex-shrink: 0;
}

.psteps-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--primary-orange);
    flex-shrink: 0;
}

.psteps-label {
    color: var(--primary-orange);
    font-size: 18px;
    font-weight: 700;
    line-height: 23.4px;
    white-space: nowrap;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.psteps-title {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    color: var(--primary-orange);
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.psteps-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: calc(100% - 8px);
    margin-left: 8px;
    padding: 20px 0 20px 130px;
    box-sizing: border-box;
    border-left: 1px solid var(--light-grey);
}

.psteps-main {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    width: 100%;
    min-width: 0;
}

.psteps-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    flex: 1 1 auto;
    min-width: 0;
}

.psteps-from,
.psteps-desc {
    margin: 0;
    width: 100%;
    font-size: 18px;
    line-height: 23.4px;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.psteps-from {
    color: var(--black);
    font-weight: 700;
}

.psteps-desc {
    color: var(--text-color);
    font-weight: 400;
}

.psteps-logo {
    position: relative;
    width: 100%;
    max-width: 280px;
    height: 64px;
    flex-shrink: 0;
}

.psteps-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.psteps-extra {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
    min-width: 0;
}

.psteps-item.is-open .psteps-extra {
    display: flex;
}

/* Figma 195:59777：每個產品 = 粗體標題 + br + 正文（行高 23.4）；兩段之間空一行 */
.psteps-detail {
    display: flex;
    flex-direction: column;
    gap: 23.4px;
    width: 100%;
    color: var(--black);
    font-size: 18px;
    font-weight: 400;
    line-height: 23.4px;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.psteps-detail p {
    margin: 0;
}

.psteps-detail strong {
    font-weight: 700;
}

.psteps-photos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 30px 20px;
    width: 100%;
}

.psteps-photo {
    position: relative;
    display: block;
    width: 100%;
    max-width: 300px;
    aspect-ratio: 3 / 2;
    box-sizing: border-box;
    border: 1px solid #e6e6e6;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.psteps-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.psteps-zoom {
    position: absolute;
    right: 20px;
    bottom: 17px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--white);
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.25);
    color: var(--medium-grey);
    pointer-events: none;
}

/* Figma icon-zoom-in：握把與鏡圈分開、鏡內 +、圓頭線；不是 IcoMoon .icon-zoom-in */
.psteps-zoom:before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M11.2041%2011.2041C11.4444%2010.9638%2011.8349%2010.9638%2012.0752%2011.2041L14.8965%2014.0264C15.1368%2014.2667%2015.1368%2014.6562%2014.8965%2014.8965C14.6562%2015.1368%2014.2667%2015.1368%2014.0264%2014.8965L11.2041%2012.0742C10.9642%2011.8339%2010.9639%2011.4443%2011.2041%2011.2041ZM6.1543%200C9.55277%200.000243451%2012.3076%202.75577%2012.3076%206.1543C12.3074%209.55262%209.55262%2012.3074%206.1543%2012.3076C2.75577%2012.3076%200.000243453%209.55277%200%206.1543C0%202.75562%202.75562%200%206.1543%200ZM6.1543%201.23047C3.43536%201.23047%201.23047%203.43536%201.23047%206.1543C1.23071%208.87303%203.43551%2011.0771%206.1543%2011.0771C8.87288%2011.0769%2011.0769%208.87288%2011.0771%206.1543C11.0771%203.43551%208.87303%201.23071%206.1543%201.23047ZM6.1543%203.69238C6.49393%203.69263%206.76949%203.96793%206.76953%204.30762V5.53809H8C8.33987%205.53809%208.61523%205.81443%208.61523%206.1543C8.61499%206.49396%208.33972%206.76953%208%206.76953H6.76953V8C6.76953%208.33972%206.49396%208.61499%206.1543%208.61523C5.81443%208.61523%205.53809%208.33987%205.53809%208V6.76953H4.30762C3.96793%206.76949%203.69263%206.49393%203.69238%206.1543C3.69238%205.81445%203.96778%205.53813%204.30762%205.53809H5.53809V4.30762C5.53813%203.96778%205.81445%203.69238%206.1543%203.69238Z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M11.2041%2011.2041C11.4444%2010.9638%2011.8349%2010.9638%2012.0752%2011.2041L14.8965%2014.0264C15.1368%2014.2667%2015.1368%2014.6562%2014.8965%2014.8965C14.6562%2015.1368%2014.2667%2015.1368%2014.0264%2014.8965L11.2041%2012.0742C10.9642%2011.8339%2010.9639%2011.4443%2011.2041%2011.2041ZM6.1543%200C9.55277%200.000243451%2012.3076%202.75577%2012.3076%206.1543C12.3074%209.55262%209.55262%2012.3074%206.1543%2012.3076C2.75577%2012.3076%200.000243453%209.55277%200%206.1543C0%202.75562%202.75562%200%206.1543%200ZM6.1543%201.23047C3.43536%201.23047%201.23047%203.43536%201.23047%206.1543C1.23071%208.87303%203.43551%2011.0771%206.1543%2011.0771C8.87288%2011.0769%2011.0769%208.87288%2011.0771%206.1543C11.0771%203.43551%208.87303%201.23071%206.1543%201.23047ZM6.1543%203.69238C6.49393%203.69263%206.76949%203.96793%206.76953%204.30762V5.53809H8C8.33987%205.53809%208.61523%205.81443%208.61523%206.1543C8.61499%206.49396%208.33972%206.76953%208%206.76953H6.76953V8C6.76953%208.33972%206.49396%208.61499%206.1543%208.61523C5.81443%208.61523%205.53809%208.33987%205.53809%208V6.76953H4.30762C3.96793%206.76949%203.69263%206.49393%203.69238%206.1543C3.69238%205.81445%203.96778%205.53813%204.30762%205.53809H5.53809V4.30762C5.53813%203.96778%205.81445%203.69238%206.1543%203.69238Z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
}

.psteps-toggle {
    appearance: none;
    cursor: pointer;
    font-family: inherit;
}

@media (max-width: 1350px) {
    /* Figma 196:86950：白卡 pad 20、圓角 10；標題在 Step 下方 */
    .module-container.psteps-module {
        padding: 20px;
        border-radius: 10px;
    }

    .psteps-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        padding-bottom: 10px;
    }

    .psteps-num {
        width: auto;
        justify-content: flex-start;
        gap: 15px;
    }

    .psteps-dot {
        width: 10px;
        height: 10px;
    }

    .psteps-label {
        font-size: 16px;
        line-height: 20.8px;
    }

    .psteps-title {
        flex: none;
        width: 100%;
        font-size: 18px;
        line-height: 23.4px;
    }

    .psteps-body {
        width: calc(100% - 5px);
        margin-left: 5px;
        padding: 10px 0 10px 20px;
    }

    .psteps-main {
        flex-direction: column;
        gap: 20px;
    }

    .psteps-copy {
        gap: 15px;
    }

    .psteps-from,
    .psteps-desc {
        font-size: 16px;
        line-height: 20.8px;
    }

    .psteps-desc {
        color: var(--medium-grey);
    }

    .psteps-logo {
        max-width: 175px;
        height: 40px;
    }

    .psteps-detail {
        gap: 20.8px;
        font-size: 16px;
        line-height: 20.8px;
    }

    .psteps-photos {
        flex-wrap: nowrap;
        gap: 15px;
    }

    .psteps-photo {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }

    .psteps-photo img {
        object-fit: cover;
    }

    .psteps-zoom {
        right: 11px;
        bottom: 10px;
        width: 24px;
        height: 24px;
    }

    .psteps-zoom:before {
        width: 12px;
        height: 12px;
    }
}

/* Production Steps (With Tabs) — Desktop 195:59712 / 195:59740 · Mobile 196:86958 / 196:86983 */
.psteps-tabs {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}

.psteps-tabs-title {
    margin: 0 0 50px;
    width: 100%;
    color: var(--black);
    font-size: 25px;
    font-weight: 700;
    line-height: 32.5px;
    text-align: center;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.psteps-tabs-bar {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 20px;
    width: 100%;
    box-sizing: border-box;
    padding: 30px;
    background: var(--primary-orange);
    border-radius: var(--module-radius) var(--module-radius) 0 0;
    /* Figma proto Slot Dropdown Container 195:59730：選項列 sticky top-0；標題捲走，步驟從橙條底下穿過 */
    position: sticky;
    top: 0;
    z-index: 20;
    flex-shrink: 0;
}

/* Figma 195:59733 temp：上圓角外側維持 page-bg，避免白卡從圓角缺口露進來 */
.psteps-tabs-bar::before,
.psteps-tabs-bar::after {
    content: "";
    position: absolute;
    top: 0;
    width: var(--module-radius);
    height: var(--module-radius);
    pointer-events: none;
    z-index: 1;
}

.psteps-tabs-bar::before {
    left: 0;
    background: radial-gradient(circle at bottom right, transparent var(--module-radius), var(--page-bg) calc(var(--module-radius) + 0.5px));
}

.psteps-tabs-bar::after {
    right: 0;
    background: radial-gradient(circle at bottom left, transparent var(--module-radius), var(--page-bg) calc(var(--module-radius) + 0.5px));
}

.psteps-tab {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    margin: 0;
    padding: 25px 15px;
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: var(--module-radius);
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 20.8px;
    text-align: center;
    cursor: pointer;
    appearance: none;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.psteps-tab.is-active {
    background: var(--white);
    border-color: var(--white);
    color: var(--black);
}

.psteps-tabs .psteps-module {
    border-radius: 0 0 var(--module-radius) var(--module-radius);
}

.psteps-tabs-panel[hidden] {
    display: none !important;
}

@media (max-width: 1350px) {
    .psteps-tabs-title {
        margin-bottom: 20px;
        font-size: 20px;
        line-height: 26px;
    }

    .psteps-tabs-bar {
        flex-direction: column;
        gap: 10px;
        padding: 20px;
    }

    .psteps-tab {
        flex: none;
        width: 100%;
        padding: 15px 10px;
        font-size: 14px;
        line-height: 18.2px;
    }

    .psteps-tabs .psteps-module {
        padding: 30px 20px 20px;
        border-radius: 0 0 var(--module-radius) var(--module-radius);
    }
}

/* Figma IconCloseCircle 4:24／實例 196:87966：橙圓 30／移動 25，內層 icon-close 16／13.333 */
.cps-close,
.photo-lightbox-close,
.speaker-lightbox-close {
    position: relative;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 200px;
    background: var(--primary-orange);
    cursor: pointer;
    appearance: none;
}

.cps-close:before,
.photo-lightbox-close:before,
.speaker-lightbox-close:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 16px;
    height: 16px;
    transform: translate(-50%, -50%);
    background-color: var(--white);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M12.8483 2.10651C13.0885 1.86626 13.478 1.86638 13.7184 2.10651C13.9587 2.34683 13.9587 2.73631 13.7184 2.97663L8.86975 7.82429L14.068 13.0225C14.3083 13.2629 14.3083 13.6533 14.068 13.8936C13.8277 14.1337 13.4382 14.1337 13.1979 13.8936L7.99963 8.69538L2.80236 13.8936C2.56213 14.1337 2.17256 14.1336 1.93225 13.8936C1.69192 13.6533 1.69192 13.2629 1.93225 13.0225L7.12951 7.82526L2.28088 2.97663C2.04099 2.73634 2.04086 2.34672 2.28088 2.10651C2.5212 1.86619 2.91165 1.86619 3.15197 2.10651L7.99963 6.95417L12.8483 2.10651Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M12.8483 2.10651C13.0885 1.86626 13.478 1.86638 13.7184 2.10651C13.9587 2.34683 13.9587 2.73631 13.7184 2.97663L8.86975 7.82429L14.068 13.0225C14.3083 13.2629 14.3083 13.6533 14.068 13.8936C13.8277 14.1337 13.4382 14.1337 13.1979 13.8936L7.99963 8.69538L2.80236 13.8936C2.56213 14.1337 2.17256 14.1336 1.93225 13.8936C1.69192 13.6533 1.69192 13.2629 1.93225 13.0225L7.12951 7.82526L2.28088 2.97663C2.04099 2.73634 2.04086 2.34672 2.28088 2.10651C2.5212 1.86619 2.91165 1.86619 3.15197 2.10651L7.99963 6.95417L12.8483 2.10651Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.cps-close:after,
.photo-lightbox-close:after,
.speaker-lightbox-close:after {
    content: none;
}

@media (max-width: 1350px) {
    .cps-close,
    .photo-lightbox-close,
    .speaker-lightbox-close {
        width: 25px;
        height: 25px;
    }

    .cps-close:before,
    .photo-lightbox-close:before,
    .speaker-lightbox-close:before {
        width: 13.333px;
        height: 13.333px;
    }
}

/* Lightbox: Speaker Profile — Desktop 195:60544 / 195:60639 · Mobile 196:87924 / 196:87930 */
.speaker-lightbox-stage {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
}

.speaker-lightbox-stage.has-nav {
    position: relative;
    align-items: stretch;
    gap: 0;
    max-width: 1130px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 90px;
    box-sizing: border-box;
}

.speaker-lightbox-track {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    max-width: 950px;
}

.speaker-lightbox-stage.has-nav .speaker-lightbox-track > .speaker-lightbox {
    display: none;
    max-width: none;
    width: 100%;
}

.speaker-lightbox-stage.has-nav .speaker-lightbox-track > .speaker-lightbox.is-active {
    display: flex;
    min-height: min(573px, 90vh);
    animation: speaker-lightbox-fade 0.35s ease;
}

@keyframes speaker-lightbox-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

.speaker-lightbox {
    position: relative;
    background: var(--white);
    border-radius: var(--module-radius);
    width: 100%;
    max-width: 950px;
    min-width: 0;
    box-sizing: border-box;
    padding: 60px 40px;
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-height: 90vh;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #eaeaea transparent;
}

.speaker-lightbox::-webkit-scrollbar {
    width: 3px;
}

.speaker-lightbox::-webkit-scrollbar-thumb {
    background: #eaeaea;
    border-radius: 20px;
}

.speaker-lightbox-close {
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 2;
}

.speaker-lightbox-header {
    display: flex;
    gap: 30px;
    align-items: center;
    width: 100%;
}

.speaker-lightbox-header.is-text {
    align-items: flex-start;
}

.speaker-lightbox-header.is-text .speaker-content {
    padding-top: 20px;
    padding-bottom: 20px;
}

.speaker-lightbox-header .speaker-portrait-container {
    width: 200px;
    max-width: 100%;
}

.speaker-lightbox-header .speaker-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding-top: 20px;
    padding-bottom: 20px;
}

.speaker-lightbox .font-h3 {
    margin: 0;
    color: var(--black);
    font-size: 20px;
    line-height: 26px;
}

.speaker-lightbox .text-lg {
    font-size: 18px;
    line-height: 1.3;
    font-weight: 400;
}

.speaker-lightbox-meta,
.speaker-lightbox-meta p {
    margin: 0;
    font-weight: 400;
    font-size: 18px;
    line-height: 23.4px;
    color: var(--black);
}

.speaker-logo-frame {
    width: 250px;
    max-width: 100%;
    flex-shrink: 1;
    min-width: 0;
    aspect-ratio: 170 / 70;
    border: 1px solid var(--light-grey);
    background: var(--white);
    position: relative;
}

.speaker-logo-frame img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.speaker-lightbox-section {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
}

.speaker-lightbox .text-content p + p {
    margin-top: 23.4px;
}

.speaker-lightbox .text-content .font-h3 {
    margin: 0 0 23.4px;
}

.speaker-lightbox .text-content p + .speaker-lightbox-topic-title {
    margin-top: 23.4px;
}

.speaker-lightbox-topic-title {
    margin: 0 0 23.4px;
    font-weight: 700;
    font-size: 20px;
    line-height: 26px;
    color: var(--primary-orange);
}

.speaker-lightbox-gallery {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
    width: 100%;
    padding-bottom: 30px;
}

.speaker-lightbox-photo {
    width: 100%;
    position: relative;
    aspect-ratio: 4096 / 2731;
    overflow: hidden;
}

.speaker-lightbox-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.speaker-lightbox-gallery .photo-caption {
    color: var(--medium-grey);
    width: 100%;
    margin: 0;
    font-size: 16px;
    line-height: 20.8px;
}

.speaker-lightbox-nav {
    position: absolute;
    top: 257px;
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    margin-top: 0;
    z-index: 2;
    border: 1px solid var(--primary-orange);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: none;
    cursor: pointer;
    color: var(--primary-orange);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.speaker-lightbox-nav.is-prev {
    left: 0;
}

.speaker-lightbox-nav.is-next {
    right: 0;
}

.speaker-lightbox-nav:hover {
    transform: scale(1.08);
    box-shadow: 0 4px 14px rgba(230, 72, 0, 0.28);
}

.speaker-lightbox-nav .icon-arrow-left,
.speaker-lightbox-nav .icon-arrow-right {
    display: block;
    width: 26px;
    height: 26px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.speaker-lightbox-nav .icon-arrow-left:before,
.speaker-lightbox-nav .icon-arrow-right:before {
    content: none !important;
}

.speaker-lightbox-nav .icon-arrow-left {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23E64800' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.5489 4.07123C9.24863 3.77129 8.76229 3.77126 8.462 4.07123L2.53333 9.99994L8.462 15.9286C8.76229 16.2287 9.24863 16.2286 9.5489 15.9286C9.84929 15.6282 9.84929 15.1412 9.5489 14.8408L4.709 9.99994L9.5489 5.15912C9.84929 4.85872 9.84929 4.37163 9.5489 4.07123ZM7.85156 9.23041C7.42678 9.23041 7.08207 9.57513 7.08207 9.99994C7.08207 10.4248 7.42678 10.7695 7.85156 10.7695H16.6973C17.1222 10.7695 17.4669 10.4248 17.4669 9.99994C17.4668 9.57513 17.1222 9.23041 16.6973 9.23041H7.85156Z'/%3E%3C/svg%3E");
}

.speaker-lightbox-nav .icon-arrow-right {
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23E64800' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.4511 4.07123C10.7514 3.77129 11.2377 3.77126 11.538 4.07123L17.4667 9.99994L11.538 15.9286C11.2377 16.2287 10.7514 16.2286 10.4511 15.9286C10.1507 15.6282 10.1507 15.1412 10.4511 14.8408L15.291 9.99994L10.4511 5.15912C10.1507 4.85872 10.1507 4.37163 10.4511 4.07123ZM12.1484 9.23041C12.5732 9.23041 12.9179 9.57513 12.9179 9.99994C12.9179 10.4248 12.5732 10.7695 12.1484 10.7695H3.30267C2.87784 10.7695 2.53314 10.4248 2.53314 9.99994C2.53317 9.57513 2.87785 9.23041 3.30267 9.23041H12.1484Z'/%3E%3C/svg%3E");
}

@media (max-width: 1350px) {
    .speaker-lightbox {
        padding: 50px 30px 60px;
        max-width: none;
        width: 100%;
        box-sizing: border-box;
        gap: 30px;
        max-height: 90vh;
    }

    .speaker-lightbox-stage.has-nav {
        position: relative;
        gap: 0;
        width: calc(100% + 40px);
        max-width: none;
        margin-left: -20px;
        margin-right: -20px;
        padding: 0 40px;
        box-sizing: border-box;
    }

    .speaker-lightbox-track {
        max-width: none;
    }

    .speaker-lightbox-stage.has-nav .speaker-lightbox-track > .speaker-lightbox {
        max-width: none;
        width: 100%;
        gap: 30px;
    }

    .speaker-lightbox-stage.has-nav .speaker-lightbox-track > .speaker-lightbox.is-active {
        min-height: min(670px, 90vh);
    }

    .speaker-lightbox-close {
        top: 10px;
        right: 10px;
        z-index: 3;
    }

    .speaker-lightbox-header {
        flex-direction: column;
        align-items: stretch;
        gap: 30px;
    }

    .speaker-lightbox-header .speaker-portrait-container {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .speaker-lightbox-header .speaker-portrait {
        width: 130px;
        max-width: 100%;
        height: auto;
    }

    .speaker-lightbox-header .speaker-content,
    .speaker-lightbox-header.is-text .speaker-content {
        padding-top: 0;
        padding-bottom: 0;
        width: 100%;
        gap: 15px;
    }

    .speaker-lightbox-meta,
    .speaker-lightbox-meta p,
    .speaker-lightbox .text-lg {
        font-size: 16px;
        line-height: 20.8px;
    }

    .speaker-lightbox .font-h3 {
        font-size: 18px;
        line-height: 23.4px;
    }

    .speaker-logo-frame {
        width: 148px;
        max-width: 100%;
        height: 61px;
        aspect-ratio: auto;
        align-self: center;
    }

    .speaker-lightbox-header.has-logo {
        align-items: center;
    }

    .speaker-lightbox-section {
        gap: 20px;
    }

    .speaker-lightbox .text-content p + p {
        margin-top: 20.8px;
    }

    .speaker-lightbox .text-content .font-h3 {
        margin-bottom: 20.8px;
    }

    .speaker-lightbox .text-content p + .speaker-lightbox-topic-title {
        margin-top: 20.8px;
    }

    .speaker-lightbox-topic-title {
        margin-bottom: 20.8px;
        font-size: 18px;
        line-height: 23.4px;
    }

    .speaker-lightbox-gallery {
        gap: 15px;
        padding-bottom: 20px;
        align-items: stretch;
    }

    .speaker-lightbox-gallery .photo-caption {
        font-size: 14px;
        line-height: 18.2px;
    }

    .speaker-lightbox-nav {
        position: absolute;
        top: 315px;
        margin-top: 0;
        transform: none;
        width: 40px;
        height: 40px;
        z-index: 2;
    }

    .speaker-lightbox-nav:hover {
        transform: scale(1.08);
    }

    .speaker-lightbox-nav .icon-arrow-left,
    .speaker-lightbox-nav .icon-arrow-right {
        width: 20px;
        height: 20px;
    }

    .speaker-lightbox-nav.is-prev {
        left: 10px;
    }

    .speaker-lightbox-nav.is-next {
        right: 10px;
    }
}

/* Lightbox: Photo — Desktop 195:60561 · Mobile 196:87961 */
.photo-lightbox-stage {
    width: 100%;
    max-width: 950px;
    margin-left: auto;
    margin-right: auto;
}

.photo-lightbox-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.55);
}

.photo-lightbox-overlay.has-nav:not(.is-slideshow) .photo-lightbox {
    max-width: min(950px, calc(100% - 100px));
}

.photo-lightbox-nav {
    appearance: none;
    -webkit-appearance: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.photo-lightbox-nav:hover {
    opacity: 0.7;
}

.photo-lightbox-nav .icon-arrow-left,
.photo-lightbox-nav .icon-arrow-right {
    display: block;
    width: 48px;
    height: 48px;
    background-color: currentColor;
    background-image: none;
}

.photo-lightbox-nav .icon-arrow-left:before,
.photo-lightbox-nav .icon-arrow-right:before {
    content: none !important;
}

.photo-lightbox-nav .icon-arrow-left {
    -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 12L18 24L30 36' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 12L18 24L30 36' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.photo-lightbox-nav .icon-arrow-right {
    -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 12L30 24L18 36' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 12L30 24L18 36' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.photo-lightbox-nav.is-prev {
    left: 20px;
}

.photo-lightbox-nav.is-next {
    right: 20px;
}

.photo-lightbox-nav[hidden] {
    display: none !important;
}

.photo-lightbox-overlay[hidden] {
    display: none;
}

body.photo-lightbox-open {
    overflow: hidden;
}

.photo-lightbox {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    max-width: 950px;
    min-width: 0;
    background: var(--white);
    border-radius: 10px;
    overflow: hidden;
    box-sizing: border-box;
}

.photo-lightbox-overlay:not(.is-slideshow) .photo-lightbox {
    max-height: 90vh;
    width: 100%;
}

/* Photos Slideshow 放大：線上回顧頁式暗底全圖，不是 Lightbox: Photo 白卡 */
.photo-lightbox-overlay.is-slideshow {
    padding: 0;
    background: rgba(0, 0, 0, 0.85);
}

.photo-lightbox-overlay.is-slideshow .photo-lightbox {
    width: auto;
    max-width: none;
    max-height: none;
    background: transparent;
    border-radius: 0;
    overflow: visible;
    pointer-events: none;
}

.photo-lightbox-overlay.is-slideshow .photo-lightbox-media {
    flex: 0 1 auto;
    width: auto;
    max-width: none;
    aspect-ratio: auto;
    background: transparent;
    pointer-events: auto;
}

.photo-lightbox-overlay.is-slideshow .photo-lightbox-media img {
    width: auto;
    height: 90vh;
    max-width: calc(100vw - 140px);
    max-height: 90vh;
    object-fit: contain;
}

.photo-lightbox-overlay.is-slideshow .photo-lightbox-caption {
    display: none;
}

.photo-lightbox-overlay.is-slideshow .photo-lightbox-close {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 3;
    width: 32px;
    height: 32px;
    background: transparent;
    border-radius: 0;
    pointer-events: auto;
}

.photo-lightbox-overlay.is-slideshow .photo-lightbox-close:before {
    width: 18px;
    height: 18px;
}

.photo-lightbox-media {
    position: relative;
    width: 100%;
    aspect-ratio: 3000 / 2069;
    overflow: hidden;
    background: var(--white);
}

.photo-lightbox-overlay:not(.is-slideshow) .photo-lightbox-media {
    flex: 1 1 auto;
    min-height: 0;
}

.photo-lightbox-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photo-lightbox-caption {
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px;
    color: var(--black);
    font-size: 18px;
    font-weight: 400;
    line-height: 23.4px;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.photo-lightbox-close {
    position: absolute;
    top: 30px;
    right: 30px;
    z-index: 2;
}

@media (max-width: 1350px) {
    .photo-lightbox-overlay {
        padding: 20px 10px;
    }

    .photo-lightbox-overlay.has-nav:not(.is-slideshow) .photo-lightbox {
        max-width: min(950px, calc(100% - 80px));
    }

    .photo-lightbox-nav {
        width: 40px;
        height: 40px;
    }

    .photo-lightbox-nav .icon-arrow-left,
    .photo-lightbox-nav .icon-arrow-right {
        width: 40px;
        height: 40px;
    }

    .photo-lightbox-nav.is-prev {
        left: 10px;
    }

    .photo-lightbox-nav.is-next {
        right: 10px;
    }

    .photo-lightbox-caption {
        padding: 20px;
        font-size: 16px;
        line-height: 20.8px;
    }

    .photo-lightbox-close {
        top: 10px;
        right: 10px;
    }

    .photo-lightbox-overlay.is-slideshow .photo-lightbox-media img {
        width: auto;
        height: 85vh;
        max-width: calc(100vw - 80px);
        max-height: 85vh;
    }

    .photo-lightbox-overlay.is-slideshow .photo-lightbox-close {
        top: 12px;
        right: 12px;
        width: 28px;
        height: 28px;
    }
}

/* Module: Trending Topics — Desktop 195:60993（內卡 195:61003）/ Mobile 196:87977（內卡 196:87985）
   全幅底圖 + 60% 黑遮罩 blur；不要白卡、不要圓角。左右 284／281 是 1728 畫布置中，CMS 用欄寬 + 適度 pad。
   拉滿 page-container 的 20px 內距，讓移動端 tags 區對齊稿面 353。 */
.trending-module {
    position: relative;
    overflow: hidden;
    width: calc(100% + 40px);
    max-width: none;
    min-width: 0;
    min-height: 309px;
    margin-left: -20px;
    margin-right: -20px;
    box-sizing: border-box;
}

.trending-media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.trending-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.trending-overlay {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
    width: 100%;
    min-height: 309px;
    box-sizing: border-box;
    padding: 60px 20px 80px;
    background: rgba(0, 0, 0, 0.6);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
}

.trending-title {
    display: flex;
    align-items: center;
    gap: 12px;
}

.trending-title .font-h3 {
    margin: 0;
    color: var(--white);
    text-align: center;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

/* Figma icon-trending（195:61003 匯出），font_icon 無對應 glyph；白底 mask */
.trending-icon {
    flex-shrink: 0;
    display: block;
    width: 30px;
    height: 30px;
    background-color: var(--white);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath fill='black' d='M14.8958 0.288507C15.2074 0.0461988 15.6233 -0.0112681 15.9925 0.115655C16.3616 0.254161 16.6383 0.566022 16.7191 0.94671C16.726 0.997222 17.5887 4.41008 21.4613 7.74261C21.7151 7.96184 21.981 8.1806 22.2464 8.39983C24.3118 10.1191 26.8849 12.2542 27.4964 16.3041C27.9001 18.9927 26.4 25.8811 19.3158 28.8696C17.5273 29.6196 15.8765 29.9076 14.388 29.9076L14.3998 29.9311C9.71552 29.931 6.69242 27.0813 6.53061 26.9311C6.06907 26.4926 6.05797 25.7541 6.49643 25.3041C6.93489 24.8426 7.67339 24.8305 8.12339 25.269C8.29646 25.4305 12.4617 29.2844 18.4271 26.769C24.3922 24.2536 25.4999 18.4849 25.223 16.6733C24.7499 13.5002 22.7306 11.8266 20.7806 10.1996C20.5038 9.96896 20.2267 9.73812 19.973 9.51898C17.2272 7.15385 15.8077 4.75437 15.1039 3.19671C10.7355 7.49617 11.0651 13.3958 11.0658 13.4653C11.0888 13.869 10.9042 14.2618 10.5697 14.4926C10.2351 14.7234 9.80786 14.7575 9.4271 14.5844C7.89248 13.869 6.53076 12.3806 5.66538 11.2729C3.03461 15.3113 4.1079 19.4659 5.05405 21.6928C5.30752 22.281 5.03072 22.9611 4.44272 23.2035C3.85426 23.4459 3.17331 23.1807 2.931 22.5922C1.67332 19.6499 0.242707 13.9042 4.81186 8.56194C5.05413 8.28507 5.41145 8.13463 5.78061 8.15765C6.14972 8.18072 6.48463 8.38827 6.66928 8.69964C7.00389 9.23039 7.84598 10.4078 8.83823 11.3539C9.14976 8.56167 10.3614 3.77311 14.8958 0.288507ZM7.38413 23.8159H7.37241C7.37422 23.8159 7.37646 23.8149 7.37827 23.8149C7.38022 23.8149 7.38217 23.8158 7.38413 23.8159ZM21.6341 13.1655C22.2687 13.1655 22.7884 13.6851 22.7884 14.3198V19.0502C22.7883 19.6848 22.2687 20.2035 21.6341 20.2035C20.9997 20.2034 20.4809 19.6847 20.4808 19.0502V17.0424L15.4271 22.0961C15.2079 22.3153 14.9192 22.431 14.6078 22.4311C14.2962 22.4311 14.0076 22.3038 13.7884 22.0961L11.8382 20.1459L8.14585 23.5151C7.92805 23.7214 7.65338 23.8137 7.37827 23.8149C7.06885 23.8132 6.75985 23.687 6.53061 23.435C6.1037 22.9619 6.13844 22.235 6.59995 21.808L11.0999 17.6996C11.5614 17.2846 12.2534 17.2965 12.6917 17.7348L14.6078 19.6498L18.7953 15.4731H16.6732C16.0387 15.4731 15.5191 14.9542 15.5189 14.3198C15.5189 13.6851 16.0386 13.1655 16.6732 13.1655H21.6341Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath fill='black' d='M14.8958 0.288507C15.2074 0.0461988 15.6233 -0.0112681 15.9925 0.115655C16.3616 0.254161 16.6383 0.566022 16.7191 0.94671C16.726 0.997222 17.5887 4.41008 21.4613 7.74261C21.7151 7.96184 21.981 8.1806 22.2464 8.39983C24.3118 10.1191 26.8849 12.2542 27.4964 16.3041C27.9001 18.9927 26.4 25.8811 19.3158 28.8696C17.5273 29.6196 15.8765 29.9076 14.388 29.9076L14.3998 29.9311C9.71552 29.931 6.69242 27.0813 6.53061 26.9311C6.06907 26.4926 6.05797 25.7541 6.49643 25.3041C6.93489 24.8426 7.67339 24.8305 8.12339 25.269C8.29646 25.4305 12.4617 29.2844 18.4271 26.769C24.3922 24.2536 25.4999 18.4849 25.223 16.6733C24.7499 13.5002 22.7306 11.8266 20.7806 10.1996C20.5038 9.96896 20.2267 9.73812 19.973 9.51898C17.2272 7.15385 15.8077 4.75437 15.1039 3.19671C10.7355 7.49617 11.0651 13.3958 11.0658 13.4653C11.0888 13.869 10.9042 14.2618 10.5697 14.4926C10.2351 14.7234 9.80786 14.7575 9.4271 14.5844C7.89248 13.869 6.53076 12.3806 5.66538 11.2729C3.03461 15.3113 4.1079 19.4659 5.05405 21.6928C5.30752 22.281 5.03072 22.9611 4.44272 23.2035C3.85426 23.4459 3.17331 23.1807 2.931 22.5922C1.67332 19.6499 0.242707 13.9042 4.81186 8.56194C5.05413 8.28507 5.41145 8.13463 5.78061 8.15765C6.14972 8.18072 6.48463 8.38827 6.66928 8.69964C7.00389 9.23039 7.84598 10.4078 8.83823 11.3539C9.14976 8.56167 10.3614 3.77311 14.8958 0.288507ZM7.38413 23.8159H7.37241C7.37422 23.8159 7.37646 23.8149 7.37827 23.8149C7.38022 23.8149 7.38217 23.8158 7.38413 23.8159ZM21.6341 13.1655C22.2687 13.1655 22.7884 13.6851 22.7884 14.3198V19.0502C22.7883 19.6848 22.2687 20.2035 21.6341 20.2035C20.9997 20.2034 20.4809 19.6847 20.4808 19.0502V17.0424L15.4271 22.0961C15.2079 22.3153 14.9192 22.431 14.6078 22.4311C14.2962 22.4311 14.0076 22.3038 13.7884 22.0961L11.8382 20.1459L8.14585 23.5151C7.92805 23.7214 7.65338 23.8137 7.37827 23.8149C7.06885 23.8132 6.75985 23.687 6.53061 23.435C6.1037 22.9619 6.13844 22.235 6.59995 21.808L11.0999 17.6996C11.5614 17.2846 12.2534 17.2965 12.6917 17.7348L14.6078 19.6498L18.7953 15.4731H16.6732C16.0387 15.4731 15.5191 14.9542 15.5189 14.3198C15.5189 13.6851 16.0386 13.1655 16.6732 13.1655H21.6341Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.trending-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.trending-tags .btn-more {
    display: inline-flex;
    width: auto;
    margin: 0;
}

.trending-tags .btn-pill {
    width: auto;
}

@media (max-width: 1350px) {
    .trending-module,
    .trending-overlay {
        min-height: 331px;
    }

    .trending-overlay {
        padding: 40px 20px 60px;
        -webkit-backdrop-filter: blur(7.5px);
        backdrop-filter: blur(7.5px);
    }

    .trending-icon {
        width: 24px;
        height: 24px;
    }

    .trending-tags {
        gap: 10px;
    }
}

/* ==========================================================================
 * Module: Related Events (Horizontal New)
 * Desktop 407:32442 / Mobile 416:67523 (Figma: Schedule Type 4A)
 * New namespace .relh-* ; does not override .programmes-grid / .programme-item
 * ========================================================================== */
.module-container.relh-module {
    padding: 20px;
}

.relh-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
}

.relh-item {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    grid-template-areas:
        "thumb title"
        "thumb info"
        "thumb cta"
        "sponsors sponsors";
    column-gap: 30px;
    row-gap: 15px;
    align-items: start;
    width: 100%;
    padding-bottom: 30px;
    border-bottom: 1px solid var(--border-grey, #c4c4c4);
    box-sizing: border-box;
}

.relh-item:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.relh-item:not(:has(.relh-sponsors)) {
    grid-template-areas:
        "thumb title"
        "thumb info"
        "thumb cta";
}

.relh-thumb {
    grid-area: thumb;
    width: 100%;
    max-width: 250px;
    aspect-ratio: 250 / 167;
    border-radius: var(--module-radius, 10px);
    overflow: hidden;
}

.relh-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.relh-title {
    grid-area: title;
    margin: 0;
    padding: 0; /* override VueCommonStyle h3/font-h3 padding-top */
    font-weight: 700;
    font-size: 20px;
    line-height: 26px;
    color: var(--black);
}

.relh-info {
    grid-area: info;
    width: 100%;
    min-width: 0;
}

.relh-info .event-info-list {
    width: 100%;
    gap: 10px;
}

/* Related Events info rows: same as Enquiry — flex center, no text-box-trim dependency */
.relh-info .event-info-item {
    width: 100%;
    max-width: 100%;
    gap: 15px;
    align-items: center;
}

.relh-info .event-info-item:has(.event-info-content > p + p) {
    align-items: flex-start;
}

.relh-info .event-info-content {
    display: flex;
    align-items: center;
    padding: 0;
    min-height: 26px;
}

.relh-info .event-info-content > p,
.relh-info .event-info-content .text-lg {
    margin: 0;
    line-height: 26px; /* match 26px icon for optical center */
    text-box-trim: none;
    text-box-edge: auto;
}

.relh-cta {
    grid-area: cta;
    width: auto;
}

.relh-cta .btn-more {
    width: auto;
    margin: 0;
}

.relh-sponsors {
    grid-area: sponsors;
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
}

.relh-sponsors > .sub-heading {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

.relh-sponsors > .sub-heading p {
    font-size: 14px;
    line-height: 18.2px;
    color: var(--dark-grey, #444);
}

.relh-sponsor-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.relh-sponsor-logo {
    width: 163px;
    height: 67px;
    flex-shrink: 0;
}

.relh-sponsor-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

@media (max-width: 1350px) {
    .module-container.relh-module {
        padding: 20px;
    }

    .relh-item {
        grid-template-columns: 120px minmax(0, 1fr);
        grid-template-areas:
            "thumb title"
            "info info"
            "sponsors sponsors"
            "cta cta";
        column-gap: 10px;
        row-gap: 20px;
        padding-bottom: 20px;
    }

    .relh-item:not(:has(.relh-sponsors)) {
        grid-template-areas:
            "thumb title"
            "info info"
            "cta cta";
    }

    .relh-thumb {
        max-width: 120px;
        aspect-ratio: 120 / 80;
        border-radius: 5px;
    }

    .relh-title {
        padding: 0;
        font-size: 18px;
        line-height: 23.4px;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .relh-info .event-info-list,
    .relh-info .event-info-item {
        gap: 10px;
    }

    .relh-info .event-info-content {
        padding: 0;
        min-height: 16px;
    }

    .relh-info .event-info-content > p,
    .relh-info .event-info-content .text-lg {
        line-height: 16px; /* 同 Event Info／cps-tech：移動端 lh=icon */
    }

    .relh-info .event-info-item .icon-wrapper {
        width: 16px !important;
        height: 16px !important;
    }

    .relh-info .event-info-item .icon-wrapper span,
    .relh-info .event-info-item .icon-wrapper span:before {
        width: 16px !important;
        height: 16px !important;
        font-size: 16px !important;
        line-height: 16px !important;
    }

    .relh-sponsors {
        gap: 10px;
        margin-top: 0;
    }

    .relh-sponsors > .sub-heading p {
        font-size: 12px;
        line-height: 15.6px;
    }

    .relh-sponsor-logos {
        gap: 15px;
    }

    .relh-sponsor-logo {
        width: 94px;
        height: 39px;
    }
}

/* ==========================================================================
 * Module: Schedule Type 5 — Guest Speakers + Programme Accordion
 * Desktop 407:31522 / Mobile 416:67441
 * Namespace .sch5-* ; Guest Speakers 覆寫僅限 .sch5-page
 * ========================================================================== */

/* Guest Speakers：Figma Speaker Profile (New) 100px 圓頭像 */
.sch5-page .guest-speakers-section {
    align-items: stretch;
    width: 100%;
}

.sch5-page .speakers-container {
    box-sizing: border-box;
}

.sch5-page .speaker-profile:not(:first-child) {
    border-top: 1px solid var(--light-grey, #ccc);
    padding-top: 30px;
}

.sch5-page .speaker-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
}

.sch5-page .speaker-portrait-container {
    width: 100px;
    flex-shrink: 0;
}

.sch5-page .speaker-portrait {
    width: 100px;
    height: 100px;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
}

.sch5-page .speaker-content {
    gap: 10px;
}

.sch5-page .speaker-content-title {
    margin: 0;
    font-size: 18px;
    line-height: 23.4px;
    font-weight: 400;
    color: var(--black);
}

.sch5-page .speaker-content-description {
    margin: 0;
    font-size: 16px;
    line-height: 20.8px;
    color: var(--medium-grey, #888);
}

/* Programme 標題條：Figma p-20（覆寫全局 20×30） */
.sch5-page .programme-header {
    padding: 20px;
}

/* 議程展開：資訊列 + 場次 */
.sch5-page .programme-content {
    display: none;
    flex-direction: column;
    gap: 30px;
    padding: 40px;
    background: var(--white);
    border-radius: 0 0 var(--module-radius) var(--module-radius);
    box-sizing: border-box;
}

.sch5-page .programme-item-activity.expanded .programme-content {
    display: flex;
}

.sch5-intro {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
}

.sch5-intro .event-info-list {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    gap: 20px 50px;
    width: 100%;
}

.sch5-intro .event-info-item {
    width: auto;
    max-width: none;
    display: flex;
    gap: 15px;
    align-items: center; /* Tech：圖示＋文字垂直置中 */
}

.sch5-intro .event-info-item .icon-wrapper {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sch5-intro .event-info-item .icon-wrapper span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    font-size: 26px;
    line-height: 26px;
    color: var(--primary-orange);
}

.sch5-intro .event-info-content {
    display: flex;
    align-items: center;
    padding: 0;
    min-height: 26px;
}

.sch5-intro .event-info-content .text-lg,
.sch5-intro .programme-description {
    margin: 0;
    font-size: 18px;
    line-height: 26px;
    text-box-trim: none !important;
    text-box-edge: auto !important;
}

.sch5-intro .programme-description {
    padding: 0;
    line-height: 23.4px;
}

/* 場次列 Speaker Profile (New)：Figma Speakers gap 30 + 每列 border-t / pt-30 */
.sch5-sessions {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
}

.sch5-session {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
    padding-top: 30px;
    border-top: 1px solid #c4c4c4;
    box-sizing: border-box;
}

/* Time：與 Event Info 同 Tech 置中對齊 */
.sch5-time {
    display: flex;
    align-items: center;
    gap: 10px;
}

.sch5-time .icon-wrapper {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sch5-time .icon-wrapper span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    font-size: 26px;
    line-height: 26px;
    color: var(--primary-orange);
}

.sch5-time .text-lg {
    margin: 0;
    padding: 0;
    font-size: 18px;
    line-height: 26px;
    text-box-trim: none !important;
    text-box-edge: auto !important;
}

.sch5-row {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
}

.sch5-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
}

.sch5-main-title {
    margin: 0;
    padding: 0;
    font-size: 20px;
    line-height: 26px;
    font-weight: 700;
    color: var(--black);
}

.sch5-main-sub {
    margin: 0;
    font-size: 18px;
    line-height: 23.4px;
    color: var(--black);
}

.sch5-main-list {
    margin: 0;
    padding-left: 27px;
    list-style: disc;
}

.sch5-main-list li {
    font-size: 18px;
    line-height: 23.4px;
    color: var(--black);
    margin: 0;
    padding: 0;
    list-style-type: disc;
}

/* 主题下 3 个 li：彼此间隔 10px */
.sch5-main-list li + li {
    padding-top: 10px;
}

/* 嘉宾主持 / 主题：标题与内容间隔 10px */
.sch5-field-block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

/* 对话嘉宾：标题与列表间隔 10px；嘉宾本人紧凑无 padding-top */
.sch5-guest-block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.sch5-guest-block > .sch5-main-sub {
    margin-bottom: 0;
}

.sch5-guest-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.sch5-guest-list li {
    margin: 0;
    padding: 0;
    padding-top: 0 !important;
    font-size: 18px;
    line-height: 23.4px;
    color: var(--black);
}

.sch5-main .btn-more {
    margin: 0;
    width: auto;
}

.sch5-speakers {
    width: 370px;
    max-width: 100%;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-left: 20px;
    border-left: 1px solid #c4c4c4;
    box-sizing: border-box;
    align-self: stretch;
    justify-content: flex-start;
}

/* 前沿对话等：嘉宾头像横排（图下文） */
.sch5-speakers--row {
    width: 100%;
    max-width: none;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 20px 30px;
    padding-left: 0;
    padding-top: 30px;
    margin-top: 15px;
    border-left: none;
    border-top: 1px solid #c4c4c4;
    align-self: stretch;
    box-sizing: border-box;
}

.sch5-speakers--row .sch5-person {
    flex: 1 1 0;
    min-width: 0;
    align-items: flex-start;
}

.sch5-speakers--row .sch5-person-meta {
    padding-top: 0;
}

.sch5-person {
    display: flex;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.sch5-avatar {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    background: var(--white);
}

.sch5-avatar.is-logo {
    border-radius: 0;
    border: 1px solid var(--light-grey, #ccc);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    box-sizing: border-box;
}

.sch5-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sch5-avatar.is-logo img {
    object-fit: contain;
    height: auto;
    max-height: 100%;
}

.sch5-person-meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: center;
}

.sch5-person-name {
    margin: 0;
    font-size: 18px;
    line-height: 23.4px;
    color: var(--black);
}

.sch5-person-name .role {
    display: block;
    font-weight: 700;
}

.sch5-person-title {
    margin: 0;
    font-size: 16px;
    line-height: 20.8px;
    color: var(--medium-grey, #888);
}

@media (max-width: 1350px) {
    .sch5-page .speaker-profile:not(:first-child) {
        padding-top: 20px;
    }

    /* 移動：頭像與姓名頂端對齊（Figma Mobile；勿用 center） */
    .sch5-page .speaker-container {
        flex-direction: row;
        align-items: flex-start;
    }

    .sch5-page .speaker-portrait-container,
    .sch5-page .speaker-portrait {
        width: 60px;
        height: 60px;
    }

    .sch5-page .speaker-content-title {
        font-size: 16px;
        line-height: 20.8px;
    }

    .sch5-page .speaker-content-description {
        font-size: 14px;
        line-height: 18.2px;
    }

    .sch5-page .speakers-container {
        padding: 30px 20px;
    }

    .sch5-page .programme-content {
        padding: 30px 20px;
        gap: 20px;
        border-radius: 0 0 5px 5px;
    }

    .sch5-intro {
        gap: 20px;
    }

    .sch5-intro .event-info-list {
        flex-direction: column;
        gap: 10px;
    }

    .sch5-intro .event-info-item {
        gap: 10px;
        align-items: center;
    }

    .sch5-intro .event-info-item .icon-wrapper {
        width: 16px !important;
        height: 16px !important;
    }

    .sch5-intro .event-info-item .icon-wrapper span,
    .sch5-intro .event-info-item .icon-wrapper span:before {
        width: 16px !important;
        height: 16px !important;
        font-size: 16px !important;
        line-height: 16px !important;
    }

    .sch5-intro .event-info-content {
        padding: 0;
        min-height: 16px;
    }

    .sch5-intro .event-info-content .text-lg {
        font-size: 16px;
        line-height: 16px;
    }

    .sch5-intro .programme-description {
        font-size: 16px;
        line-height: 20.8px;
    }

    .sch5-session {
        padding-top: 20px;
        gap: 15px;
    }

    .sch5-sessions {
        gap: 20px;
    }

    .sch5-time {
        gap: 10px;
        align-items: center;
    }

    .sch5-time .icon-wrapper {
        width: 16px !important;
        height: 16px !important;
    }

    .sch5-time .icon-wrapper span,
    .sch5-time .icon-wrapper span:before {
        width: 16px !important;
        height: 16px !important;
        font-size: 16px !important;
        line-height: 16px !important;
    }

    .sch5-time .text-lg {
        padding: 0;
        font-size: 16px;
        line-height: 16px;
    }

    /* Mobile：標題／副文 → 講者 → More
       勿對 .sch5-main-sub / .sch5-main-list 全域設 order，否則 guest-block 內
       標題（order:2）會排到列表（預設 order:0）後面 */
    .sch5-row {
        flex-direction: column;
        gap: 15px;
    }

    .sch5-main {
        display: contents;
    }

    .sch5-main > .sch5-main-title {
        order: 1;
        font-size: 18px;
        line-height: 23.4px;
    }

    .sch5-main > .sch5-main-sub,
    .sch5-main > .sch5-main-list,
    .sch5-guest-block,
    .sch5-field-block {
        order: 2;
    }

    .sch5-field-block .sch5-main-title {
        font-size: 18px;
        line-height: 23.4px;
    }

    .sch5-main-sub,
    .sch5-main-list li {
        font-size: 16px;
        line-height: 20.8px;
    }

    .sch5-guest-list li {
        font-size: 16px;
        line-height: 20.8px;
        padding-top: 0 !important;
    }

    .sch5-speakers {
        order: 3;
        width: 100%;
        padding-left: 0;
        border-left: none;
        gap: 15px;
    }

    .sch5-speakers--row {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 15px;
        order: 3;
        padding-top: 20px;
        margin-top: 10px;
    }

    .sch5-speakers--row .sch5-person {
        flex: none;
        width: 100%;
    }

    .sch5-main > .btn-more {
        order: 4;
    }

    .sch5-person {
        gap: 15px;
        align-items: flex-start;
    }

    .sch5-avatar {
        width: 60px;
        height: 60px;
    }

    .sch5-person-meta {
        padding-top: 10px;
        gap: 10px;
    }

    .sch5-person-name {
        font-size: 16px;
        line-height: 20.8px;
    }

    .sch5-person-title {
        font-size: 14px;
        line-height: 18.2px;
    }

    .sch5-main .btn-pill-small {
        padding: 10px;
        font-size: 12px;
        line-height: 15.6px;
    }
}

