/* =============================================
 * School Website Builder — Reusable Components
 * =============================================
 * Styles for reusable template components only.
 * Section-specific styles (hero, stats, about, etc.)
 * live in homepage.css to avoid duplication.
 * Premium CBSE school website UI.
 */

/* =============================================
 * Card Component
 * ============================================= */
.school-card {
    background: #ffffff;
    border-radius: var(--school-border-radius);
    box-shadow: var(--school-shadow-sm);
    overflow: hidden;
    transition: all var(--school-transition);
}

.school-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--school-shadow-hover);
}

.school-card__image img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.school-card:hover .school-card__image img {
    transform: scale(1.05);
}

.school-card__body {
    padding: 1.5rem;
}

.school-card__title {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--school-primary);
    line-height: 1.3;
}

.school-card__excerpt {
    font-size: 0.95rem;
    color: #666;
    line-height: 1.6;
}

/* =============================================
 * Section Header Component
 * ============================================= */
.school-section-header {
    text-align: center;
    margin-bottom: 3rem;
}

.school-section-header__title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--school-primary);
    margin-bottom: 0.75rem;
    position: relative;
}

.school-section-header__title::after {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background: var(--school-secondary);
    margin: 0.75rem auto 0;
    border-radius: 2px;
}

.school-section-header__subtitle {
    font-size: 1.1rem;
    color: #666;
    max-width: 600px;
    margin: 1rem auto 0;
    line-height: 1.6;
}

/* =============================================
 * Icon Card Component
 * ============================================= */
.school-icon-card {
    text-align: center;
    padding: 2.5rem 1.5rem;
    background: #ffffff;
    border-radius: var(--school-border-radius);
    box-shadow: var(--school-shadow-sm);
    transition: all var(--school-transition);
}

.school-icon-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--school-shadow-hover);
}

.school-icon-card__icon {
    font-size: 3rem;
    color: var(--school-primary);
    margin-bottom: 1.25rem;
    display: block;
}

.school-icon-card__title {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
    color: var(--school-primary);
}

.school-icon-card__text {
    font-size: 0.95rem;
    color: #666;
    line-height: 1.6;
}

/* =============================================
 * Timeline Item Component
 * ============================================= */
.school-timeline-item {
    display: flex;
    gap: 1.5rem;
    padding: 1.5rem 0;
    border-left: 3px solid var(--school-primary);
    padding-left: 1.5rem;
    margin-left: 1rem;
    position: relative;
}

.school-timeline-item::before {
    content: '';
    position: absolute;
    left: -9px;
    top: 1.5rem;
    width: 15px;
    height: 15px;
    background: var(--school-primary);
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--school-primary);
}

.school-timeline-item__year {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--school-primary);
    min-width: 80px;
}

.school-timeline-item__text {
    font-size: 0.95rem;
    color: #555;
    line-height: 1.6;
}

/* =============================================
 * Responsive
 * ============================================= */
@media (max-width: 768px) {
    .school-section-header__title {
        font-size: 1.75rem;
    }

    .school-section-header {
        margin-bottom: 2rem;
    }
}

@media (max-width: 480px) {
    .school-section-header__title {
        font-size: 1.5rem;
    }
}
