/* ============================================
   folk-geo.css — 民俗地理栏目专用样式
   ============================================ */

/* ---- Hero Customization ---- */
.folk-hero {
    background: linear-gradient(160deg, #3e0a0a 0%, #5d1a1a 30%, #8b2500 60%, #2d1b0e 100%);
}

.folk-hero .column-hero-badge .dot {
    background: #FFD700;
}

/* ---- Core Topics ---- */
#core-topics .subcategory-card::before {
    background: linear-gradient(90deg, #B71C1C, #FF6F00);
}

#core-topics .subcategory-icon {
    background: linear-gradient(135deg, #FFEBEE, #FFCDD2) !important;
    color: #B71C1C !important;
}

/* ---- Festival Section ---- */
#festival-section { background: var(--color-card); }

.festival-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-xl);
}

.festival-card {
    background: var(--color-bg);
    border-radius: var(--radius-xl);
    overflow: hidden;
    border: 1px solid var(--color-border-light);
    transition: var(--transition-base);
}

.festival-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
}

.festival-visual {
    width: 100%;
    aspect-ratio: 16/10;
    background: var(--color-card);
}

.festival-visual svg, .festival-visual canvas {
    width: 100%;
    height: 100%;
}

.festival-content {
    padding: var(--space-lg);
}

.festival-content h4 {
    font-family: var(--font-heading);
    font-size: 1.0625rem;
    margin-bottom: var(--space-sm);
    color: var(--color-text);
}

.festival-content p {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    line-height: 1.7;
    margin-bottom: var(--space-md);
}

.festival-tag {
    display: inline-block;
    background: #FFF3E0;
    color: #E65100;
    padding: 3px 10px;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 500;
}

/* ---- Costume Section ---- */
#costume-section { background: var(--color-bg); }

.costume-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
}

.costume-card {
    background: var(--color-card);
    border-radius: var(--radius-xl);
    padding: var(--space-xl);
    text-align: center;
    border: 1px solid var(--color-border-light);
    transition: var(--transition-base);
}

.costume-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}

.costume-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--space-md);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}

.costume-card:nth-child(1) .costume-icon { background: linear-gradient(135deg, #E8F5E9, #C8E6C9); }
.costume-card:nth-child(2) .costume-icon { background: linear-gradient(135deg, #FFF3E0, #FFE0B2); }
.costume-card:nth-child(3) .costume-icon { background: linear-gradient(135deg, #FCE4EC, #F8BBD9); }
.costume-card:nth-child(4) .costume-icon { background: linear-gradient(135deg, #E3F2FD, #BBDEFB); }
.costume-card:nth-child(5) .costume-icon { background: linear-gradient(135deg, #F3E5F5, #E1BEE7); }
.costume-card:nth-child(6) .costume-icon { background: linear-gradient(135deg, #E0F2F1, #B2DFDB); }
.costume-card:nth-child(7) .costume-icon { background: linear-gradient(135deg, #FFF8E1, #FFECB3); }
.costume-card:nth-child(8) .costume-icon { background: linear-gradient(135deg, #ECEFF1, #CFD8DC); }

.costume-card h4 {
    font-family: var(--font-heading);
    font-size: 1rem;
    margin-bottom: var(--space-xs);
    color: var(--color-text);
}

.costume-card .costume-region {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    margin-bottom: var(--space-sm);
}

.costume-card p {
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: 0;
}

/* ---- Data Chart Containers ---- */
#festivalWheel, #beliefMap, #heritageChart, #costumeClimate, #paperCutMap, #riteMap {
    width: 100%;
    height: 100%;
}

/* ---- Responsive ---- */
@media (min-width: 1024px) and (max-width: 1439px) {
    .festival-grid { grid-template-columns: repeat(2, 1fr); }
    .costume-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .festival-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-lg); }
    .costume-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-lg); }
}

@media (max-width: 767px) {
    .festival-grid { grid-template-columns: 1fr; gap: var(--space-lg); }
    .costume-grid { grid-template-columns: 1fr; gap: var(--space-lg); }
    .data-chart-container { min-height: 240px !important; }
}

@media (max-width: 479px) {
    .festival-content { padding: var(--space-md); }
    .costume-card { padding: var(--space-lg); }
    .costume-icon { width: 64px; height: 64px; font-size: 1.5rem; }
}
