/* 剧团哇音 CMS 集成 - 前台样式 */
.tw-cms-people-list { max-width: 1200px; margin: 0 auto; padding: 20px 0; }
.tw-cms-filter { margin-bottom: 24px; }
.tw-cms-search { width: 100%; max-width: 320px; padding: 10px 16px; border: 1px solid #333; border-radius: 6px; background: #1a1a1a; color: #fff; font-size: 14px; margin-bottom: 16px; }
.tw-cms-categories { display: flex; flex-wrap: wrap; gap: 8px; }
.tw-cms-cat { padding: 8px 20px; border: 1px solid #444; border-radius: 20px; background: transparent; color: #aaa; cursor: pointer; font-size: 14px; transition: all 0.2s; }
.tw-cms-cat:hover, .tw-cms-cat.active { background: #8B1A1A; border-color: #8B1A1A; color: #fff; }
.tw-cms-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; }
.tw-cms-card { display: block; text-decoration: none; color: inherit; border-radius: 8px; overflow: hidden; background: #1a1a1a; transition: transform 0.2s; }
.tw-cms-card:hover { transform: translateY(-4px); }
.tw-cms-card-img { width: 100%; height: 280px; overflow: hidden; background: #2a2a2a; }
.tw-cms-card-img img { width: 100%; height: 100%; object-fit: cover; }
.tw-cms-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 48px; color: #555; }
.tw-cms-card-info { padding: 16px; }
.tw-cms-card-info h3 { margin: 0 0 4px; font-size: 18px; color: #fff; }
.tw-cms-name-en { margin: 0 0 8px; font-size: 13px; color: #888; }
.tw-cms-title { margin: 0; font-size: 13px; color: #aaa; line-height: 1.4; }

/* 个人详情 */
.tw-cms-person-detail { max-width: 1000px; margin: 0 auto; padding: 20px 0; color: #ddd; }
.tw-cms-photo-slider { position: relative; width: 100%; max-height: 500px; overflow: hidden; border-radius: 8px; margin-bottom: 32px; }
.tw-cms-slider-track { display: flex; transition: transform 0.4s; }
.tw-cms-slide { min-width: 100%; }
.tw-cms-slide img { width: 100%; max-height: 500px; object-fit: cover; }
.tw-cms-slider-prev, .tw-cms-slider-next { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,0.5); color: #fff; border: none; width: 44px; height: 44px; border-radius: 50%; cursor: pointer; font-size: 18px; }
.tw-cms-slider-prev { left: 16px; } .tw-cms-slider-next { right: 16px; }
.tw-cms-slider-dots { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; }
.tw-cms-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.4); cursor: pointer; }
.tw-cms-dot.active { background: #fff; }

.tw-cms-person-info h1 { font-size: 32px; color: #fff; margin-bottom: 8px; }
.tw-cms-person-info h1 small { font-size: 18px; color: #888; font-weight: normal; }
.tw-cms-person-title { font-size: 16px; color: #aaa; margin-bottom: 16px; line-height: 1.6; }
.tw-cms-bio { margin-bottom: 20px; line-height: 1.8; }
.tw-cms-contact p { margin: 4px 0; }
.tw-cms-contact a { color: #8B1A1A; }

.tw-cms-sns, .tw-cms-section { margin-top: 32px; padding-top: 24px; border-top: 1px solid #333; }
.tw-cms-sns h2, .tw-cms-section h2 { font-size: 22px; color: #fff; margin-bottom: 16px; }
.tw-cms-sns-list { display: flex; flex-wrap: wrap; gap: 12px; }
.tw-cms-sns-item { display: inline-flex; align-items: center; padding: 8px 16px; background: #1a1a1a; border-radius: 6px; color: #ddd; text-decoration: none; font-size: 14px; }
.tw-cms-sns-item:hover { background: #8B1A1A; color: #fff; }
.tw-cms-sns-item img { width: 80px; height: 80px; margin-right: 8px; }

.tw-cms-list { list-style: none; padding: 0; }
.tw-cms-list li { padding: 10px 0; border-bottom: 1px solid #2a2a2a; line-height: 1.6; }
.tw-cms-year { display: inline-block; min-width: 60px; color: #8B1A1A; font-weight: bold; }

.tw-cms-performances { display: flex; gap: 16px; overflow-x: auto; padding-bottom: 12px; }
.tw-cms-perf-card { min-width: 200px; background: #1a1a1a; border-radius: 8px; overflow: hidden; }
.tw-cms-perf-card img { width: 100%; height: 260px; object-fit: cover; }
.tw-cms-perf-card h4 { padding: 12px 12px 4px; margin: 0; font-size: 15px; color: #fff; }
.tw-cms-perf-card p { padding: 2px 12px; margin: 0; font-size: 13px; color: #aaa; }

.tw-cms-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.tw-cms-gallery-img { width: 100%; height: 180px; object-fit: cover; border-radius: 6px; cursor: pointer; transition: transform 0.2s; }
.tw-cms-gallery-img:hover { transform: scale(1.02); }

@media (max-width: 768px) {
    .tw-cms-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .tw-cms-card-img { height: 200px; }
    .tw-cms-person-info h1 { font-size: 24px; }
}

/* 人员详情页强制样式 */
.tw-cms-person-detail-page {
    background: #000 !important;
    color: #ddd !important;
    padding: 40px 20px !important;
    min-height: 60vh !important;
}
.tw-cms-person-detail-page * { box-sizing: border-box; }
.tw-cms-person-detail-page .tw-cms-person-detail {
    max-width: 1000px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}
.tw-cms-person-detail-page h1,
.tw-cms-person-detail-page h2,
.tw-cms-person-detail-page h3 {
    color: #fff !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
}
.tw-cms-person-detail-page p {
    color: #ccc !important;
    margin: 8px 0 !important;
    padding: 0 !important;
}
.tw-cms-person-detail-page a {
    color: #c9a96e !important;
    text-decoration: none !important;
}
.tw-cms-person-detail-page ul,
.tw-cms-person-detail-page ol {
    margin: 12px 0 !important;
    padding-left: 20px !important;
}
.tw-cms-person-detail-page li {
    color: #ccc !important;
    margin: 6px 0 !important;
    list-style: disc !important;
}
.tw-cms-person-detail-page img {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
}
.tw-cms-person-detail-page .tw-cms-photo-slider {
    position: relative !important;
    width: 100% !important;
    max-height: 500px !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    margin-bottom: 32px !important;
    background: #111 !important;
}
.tw-cms-person-detail-page .tw-cms-slider-track {
    display: flex !important;
    transition: transform 0.4s ease !important;
}
.tw-cms-person-detail-page .tw-cms-slide {
    min-width: 100% !important;
    flex-shrink: 0 !important;
}
.tw-cms-person-detail-page .tw-cms-slide img {
    width: 100% !important;
    max-height: 500px !important;
    object-fit: cover !important;
}
.tw-cms-person-detail-page .tw-cms-achievements,
.tw-cms-person-detail-page .tw-cms-awards,
.tw-cms-person-detail-page .tw-cms-sns,
.tw-cms-person-detail-page .tw-cms-performances,
.tw-cms-person-detail-page .tw-cms-gallery {
    margin-top: 32px !important;
    padding-top: 24px !important;
    border-top: 1px solid #333 !important;
}
.tw-cms-person-detail-page .tw-cms-contact {
    margin-top: 16px !important;
    padding: 16px !important;
    background: #1a1a1a !important;
    border-radius: 8px !important;
}
.tw-cms-person-detail-page .tw-cms-contact strong {
    color: #c9a96e !important;
    margin-right: 8px !important;
}
@media (max-width: 768px) {
    .tw-cms-person-detail-page { padding: 20px 12px !important; }
    .tw-cms-person-detail-page .tw-cms-person-info h1 { font-size: 24px !important; }
    .tw-cms-person-detail-page .tw-cms-photo-slider { max-height: 300px !important; }
    .tw-cms-person-detail-page .tw-cms-slide img { max-height: 300px !important; }
}

/* 头像4:3比例强制覆盖 */
.tw-cms-person-detail-page .tw-cms-photo-slider {
    aspect-ratio: 4/3 !important;
    max-height: none !important;
    height: auto !important;
}
.tw-cms-person-detail-page .tw-cms-slide {
    aspect-ratio: 4/3 !important;
    height: auto !important;
}
.tw-cms-person-detail-page .tw-cms-slide img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    aspect-ratio: 4/3 !important;
}
