/* 公共组件变量：统一标题字号、按钮高度、按钮圆角等基础参数。 */
:root {
    --ghis-shared-heading-size: 40px;
    --ghis-shared-heading-line: 1.16;
    --ghis-shared-heading-weight: 500;
    --ghis-shared-button-height: clamp(36px, 2.55vw, 48px);
    --ghis-shared-button-font: clamp(13px, 1vw, 18px);
    --ghis-shared-button-weight: 500;
    --ghis-shared-button-radius: 4px;
}

a,
a:hover,
a:active,
a:visited{
    text-decoration: none;
}
/* 公共标题结构：用于各页面主标题与副标题的基础排版。 */
.section-heading,
.heading-subtitle {
    display: block;
}

.center-heading {
    margin: 0 auto;
    text-align: center;
}

.section-heading {
    font-size: var(--ghis-shared-heading-size);
    line-height: var(--ghis-shared-heading-line);
    font-weight: var(--ghis-shared-heading-weight);
    color: var(--ghis-navy);
}

.heading-subtitle {
    color: #25283a;
    font-size: clamp(17px, 1.3vw, 25px);
    line-height: 1.42;
}

/* 公共媒体资源：统一横幅图、嘉宾图和内容图片区块展示方式。 */
.hero-bg,
.agenda-hero-img,
.roadshow-hero-img,
.venue-hero-img,
.contact-hero-img,
.venue-media img,
.speaker-photo img {
    display: block;
    width: 100%;
}

.agenda-hero-title,
.roadshow-hero-title,
.hero-title,
.venue-hero-title,
.contact-hero-title {
    display: block;
    color: #ffffff;
    font-size: clamp(26px, 2.25vw, 42px);
    line-height: 1.12;
    font-weight: 500;
    letter-spacing: 0;
    white-space: nowrap;
}

/* 公共按钮行为：统一主操作按钮的尺寸、交互和 hover 反馈。 */
.hero-register-button,
.secondary-action,
.footer-button,
.download-action,
.more-action,
.hero-action,
.outcome-action,
.center-action {
    min-height: var(--ghis-shared-button-height);
    border-radius: var(--ghis-shared-button-radius);
    font-size: var(--ghis-shared-button-font);
    font-weight: var(--ghis-shared-button-weight);
    
}
.hero-register-button,
.download-action,
.more-action,
.hero-action,
.outcome-action,
.center-action,
.secondary-action,
.learn-action {
    display: grid;
    place-items: center;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition:
        transform 0.18s ease,
        background 0.18s ease;
}
.download-action:hover{
    color: white;
}
.download-action,
.more-action,
.hero-action,
.outcome-action,
.center-action,
.secondary-action,
.learn-action {
    color: #ffffff;
}

.download-action:hover,
.more-action:hover,
.hero-action:hover,
.outcome-action:hover,
.center-action:hover,
.secondary-action:hover,
.learn-action:hover {
    transform: translateY(-1px);
}

/* 公共嘉宾卡片：统一头像、姓名和职位信息的展示样式。 */
.speaker-card {
    overflow: hidden;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(16, 24, 40, 0.08);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(16, 24, 40, 0.08);
    cursor: pointer;
    user-select: none;
}

.speaker-photo {
    padding: 8px 8px 0;
    background: #ffffff;
}

.speaker-photo img {
    aspect-ratio: 1 / 1;
    height: auto;
    object-fit: cover;
    object-position: center top;
    border-radius: 12px;
}

.speaker-info {
    flex: 1;
    padding: 16px;
}

.speaker-name,
.speaker-role {
    display: block;
    /*overflow: hidden;*/
    color: #101828;
    line-height: 1.4;
    font-weight: 400;
    /*text-overflow: ellipsis;
    white-space: nowrap;*/
}

.speaker-name {
    font-size: 16px;
}

.speaker-role {
    margin-top: 0;
    font-size: 12px;
}

/* 移动端公共缩放：统一标题、按钮与嘉宾卡片在 750px 以下的表现。 */
@media (max-width: 750px) {
    :root {
        --ghis-shared-heading-size: 28px;
        --ghis-shared-button-height: 38px;
        --ghis-shared-button-font: 14px;
    }

    .agenda-hero-title,
    .roadshow-hero-title,
    .hero-title,
    .venue-hero-title,
    .contact-hero-title {
        font-size: 25px;
        white-space: normal;
    }

    .speaker-name {
        font-size: 12px;
    }

    .speaker-role {
        font-size: 10px;
    }
}