
/* ===== Party-specific CSS Variables ===== */
:root {
  --party:#D4272E;--party-dark:#A01A20;--party-gold:#F0C75E;--party-yellow:#FFD700;
  --shadow-party:0 16px 48px rgba(212,39,46,0.15);
}
.sec-label{margin-top:0;margin-bottom:10px}

/* ===== 党建红色锁定：任何主题下保持中国红 ===== */
#main-content{--red:#C41E3A;--red-dark:#8B1528;--red-light:#F5E6E8;--red-lighter:#FDF2F4}

/* ===== Party Banner ===== */
.party-banner{padding:100px 0 80px;background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;text-align:center;position:relative;overflow:hidden}
.party-banner::before{content:'';position:absolute;top:-80px;right:-80px;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.06),transparent 70%);pointer-events:none}
.party-banner::after{content:'';position:absolute;bottom:-60px;left:-60px;width:250px;height:250px;background:radial-gradient(circle,rgba(240,199,94,.12),transparent 70%);pointer-events:none}
.party-banner .emblem{width:72px;height:72px;margin:0 auto 24px;background:rgba(255,255,255,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);border:2px solid rgba(255,255,255,.15);position:relative;z-index:1}
.party-banner .emblem svg{width:36px;height:36px;fill:var(--party-gold);stroke:none}
.party-banner h2{font-family:'Noto Serif SC',serif;font-size:36px;font-weight:900;margin-bottom:12px;position:relative;z-index:1;letter-spacing:2px}
.party-banner p{font-size:15px;color:rgba(255,255,255,.75);line-height:1.8;max-width:600px;margin:0 auto;position:relative;z-index:1}
.party-banner .stars{display:flex;justify-content:center;gap:8px;margin-top:20px;position:relative;z-index:1}
.party-banner .stars span{width:6px;height:6px;border-radius:50%;background:var(--party-gold);opacity:.6;animation:starPulse 2s ease-in-out infinite}
.party-banner .stars span:nth-child(2){animation-delay:.3s}
.party-banner .stars span:nth-child(3){animation-delay:.6s}
.party-banner .stars span:nth-child(4){animation-delay:.9s}
.party-banner .stars span:nth-child(5){animation-delay:1.2s}
@keyframes starPulse{0%,100%{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}

/* ===== Party Org ===== */
.party-org{padding:110px 0;background:var(--off)}
.party-org-header{text-align:center;margin-bottom:56px}
.party-org-header .sec-desc{margin:0 auto}
.party-tree{display:flex;flex-direction:column;align-items:center;gap:0}
/* Level 0 - Party Committee */
.party-root{background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;padding:20px 40px;border-radius:var(--radius);font-family:'Noto Serif SC',serif;font-size:16px;font-weight:700;text-align:center;position:relative;z-index:2;box-shadow:var(--shadow-party);max-width:420px;line-height:1.5;letter-spacing:.5px}
.party-root .tag{display:inline-block;padding:2px 10px;border-radius:100px;background:rgba(255,255,255,.15);font-size:10px;margin-bottom:6px;letter-spacing:1px}
.party-line-v{width:2px;height:40px;background:linear-gradient(to bottom,var(--red),var(--red-light))}
/* Level 1 - General Branch */
.party-branch{background:linear-gradient(135deg,var(--party),var(--party-dark));color:#fff;padding:22px 44px;border-radius:var(--radius-lg);font-family:'Noto Serif SC',serif;font-size:17px;font-weight:700;text-align:center;position:relative;z-index:2;box-shadow:var(--shadow-party);max-width:480px;line-height:1.5;letter-spacing:.5px}
.party-branch .tag{display:inline-block;padding:2px 10px;border-radius:100px;background:rgba(255,255,255,.15);font-size:10px;margin-bottom:6px;letter-spacing:1px}
.party-branch::before{content:'';position:absolute;top:-40px;left:50%;width:2px;height:40px;background:linear-gradient(to bottom,var(--red),var(--party));transform:translateX(-50%)}
/* Connector to sub-branches */
.party-h-line{width:100%;max-width:1000px;height:2px;background:var(--red-light);position:relative}
.party-h-line::before{content:'';position:absolute;left:50%;top:-1px;width:2px;height:40px;background:var(--red-light);transform:translateX(-50%);bottom:100%}
.party-h-line::after{content:'';position:absolute;left:50%;top:1px;width:2px;height:28px;background:var(--red-light);transform:translateX(-50%)}
/* Level 2 - Sub Branches */
.party-sub-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;width:100%;max-width:1000px}
.party-sub-card{background:#fff;border-radius:var(--radius-lg);padding:28px 16px;text-align:center;transition:var(--ease);cursor:default;border:1px solid transparent;position:relative;overflow:hidden}
.party-sub-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),var(--gold));transform:scaleX(0);transform-origin:center;transition:transform var(--ease)}
.party-sub-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--red-light)}
.party-sub-card:hover::before{transform:scaleX(1)}
.party-sub-icon{width:52px;height:52px;border-radius:50%;background:var(--red-light);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;transition:var(--ease)}
.party-sub-card:hover .party-sub-icon{background:var(--red);transform:scale(1.08)}
.party-sub-icon svg{width:24px;height:24px;stroke:var(--red);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:var(--ease)}
.party-sub-card:hover .party-sub-icon svg{stroke:#fff}
.party-sub-card h4{font-family:'Noto Serif SC',serif;font-size:15px;font-weight:700;margin-bottom:4px;transition:var(--ease)}
.party-sub-card:hover h4{color:var(--red)}
.party-sub-card .sub-title{font-size:14px;color:var(--text3);margin-bottom:8px}
.party-sub-card .sub-desc{font-size:14px;color:var(--text2);line-height:1.7}
/* Vertical lines from h-line to sub cards */
.party-sub-v{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;width:100%;max-width:1000px;height:28px}
.party-sub-v .vline{width:2px;height:100%;background:var(--red-light);margin:0 auto}

/* ===== Party Brands ===== */
.party-brands{padding:110px 0;background:var(--white)}
.party-brands-header{text-align:center;margin-bottom:56px}
.party-brands-header .sec-desc{margin:0 auto}
.brand-grid{display:grid;grid-template-columns:1fr;gap:32px}
.brand-card{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:var(--radius-xl);overflow:hidden;background:#fff;transition:var(--ease);border:1px solid #eee}
.brand-card:hover{box-shadow:var(--shadow-lg);border-color:var(--red-light)}
.brand-card.reverse{direction:rtl}
.brand-card.reverse>*{direction:ltr}
.brand-img{position:relative;aspect-ratio:4/3;overflow:hidden;min-height:280px}
.brand-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.brand-card:hover .brand-img img{transform:scale(1.05)}
.brand-img .overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(196,30,58,.15),transparent 60%);pointer-events:none}
.brand-img .badge{position:absolute;top:16px;left:16px;padding:6px 14px;border-radius:100px;background:var(--red);color:#fff;font-size:14px;font-weight:600;letter-spacing:1px}
.brand-content{padding:36px 32px;display:flex;flex-direction:column;justify-content:center}
.brand-content .bc-label{font-size:14px;letter-spacing:2px;color:var(--red);font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.brand-content .bc-label::before{content:'';width:16px;height:1px;background:var(--red)}
.brand-content h3{font-family:'Noto Serif SC',serif;font-size:22px;font-weight:700;margin-bottom:12px;line-height:1.4;transition:var(--ease)}
.brand-card:hover .brand-content h3{color:var(--red)}
.brand-content p{font-size:14px;color:var(--text2);line-height:1.9;margin-bottom:16px}
.brand-content .tags{display:flex;flex-wrap:wrap;gap:8px}
.brand-content .tags span{padding:4px 12px;border-radius:100px;font-size:14px;background:var(--red-lighter);color:var(--red);font-weight:500;transition:var(--ease)}
.brand-card:hover .tags span{background:var(--red);color:#fff}

/* ===== Party Activities ===== */
.party-activities{padding:110px 0;background:var(--off)}
.party-activities-header{text-align:center;margin-bottom:56px}
.party-activities-header .sec-desc{margin:0 auto}
.activities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.activity-card{border-radius:var(--radius-lg);overflow:hidden;background:#fff;transition:var(--ease);cursor:pointer;border:1px solid transparent}
.activity-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--red-light)}
.activity-img{aspect-ratio:16/10;overflow:hidden;position:relative}
.activity-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.activity-card:hover .activity-img img{transform:scale(1.05)}
.activity-img .date-badge{position:absolute;bottom:12px;left:12px;padding:6px 12px;border-radius:var(--radius);background:rgba(0,0,0,.6);backdrop-filter:blur(8px);color:#fff;font-size:14px;font-weight:600}
.activity-info{padding:20px}
.activity-info h4{font-size:15px;font-weight:600;margin-bottom:6px;line-height:1.5;transition:var(--ease);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.activity-card:hover .activity-info h4{color:var(--red)}
.activity-info p{font-size:14px;color:var(--text3);line-height:1.6}

/* ===== Party Spirit ===== */
.party-spirit{padding:80px 0;background:var(--white)}
.spirit-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.spirit-card{padding:32px 20px;border-radius:var(--radius-lg);background:var(--off);text-align:center;transition:var(--ease);cursor:default;border:1px solid transparent;position:relative;overflow:hidden}
.spirit-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),var(--party-gold));transform:scaleX(0);transform-origin:center;transition:transform var(--ease)}
.spirit-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--red-light)}
.spirit-card:hover::before{transform:scaleX(1)}
.spirit-card .si{width:48px;height:48px;border-radius:50%;background:var(--red-light);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:var(--ease)}
.spirit-card:hover .si{background:var(--red);transform:scale(1.05)}
.spirit-card .si svg{width:22px;height:22px;stroke:var(--red);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:var(--ease)}
.spirit-card:hover .si svg{stroke:#fff}
.spirit-card h4{font-family:'Noto Serif SC',serif;font-size:16px;font-weight:700;margin-bottom:8px;transition:var(--ease)}
.spirit-card:hover h4{color:var(--red)}
.spirit-card p{font-size:14px;color:var(--text2);line-height:1.7}

@media(max-width:768px){
  .party-sub-grid{grid-template-columns:1fr}
  .party-sub-v{grid-template-columns:1fr}
  .brand-card{grid-template-columns:1fr}
  .brand-card.reverse{direction:ltr}
  .activities-grid{grid-template-columns:1fr}
  .spirit-cards{grid-template-columns:1fr 1fr}
  .party-h-line{max-width:100%}
  .party-banner h2{font-size:28px}
}
