/* layout.css — generic layout sections, grids, cards used site-wide */

/* Sections */
.section {
    max-width: 1400px;
    margin: 0 auto;
    padding: 5rem 3rem;
}

.section-header { text-align: center; margin-bottom: 4rem; }

.section-tag {
    color: var(--primary);
    font-weight: 700;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 1rem;
}

.section-title {
    font-size: 2.8rem;
    color: var(--dark);
    font-weight: 800;
    margin-bottom: 1rem;
}

.section-subtitle {
    font-size: 1.2rem;
    color: var(--text-light);
    max-width: 700px;
    margin: 0 auto;
}

/* Generic grid for cards */
.grid-tiles {
    display: grid;
    gap: 2.5rem;
}

/* Courses grid default */
.courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2.5rem;
}

/* Card common */
.card {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.08);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative;
}

.card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 5px;
    background: linear-gradient(90deg, var(--primary), var(--accent));
    transform: scaleX(0);
    transition: transform 0.3s;
}

.card:hover::before { transform: scaleX(1); }

.card-hover-lift:hover { transform: translateY(-15px); box-shadow: 0 20px 60px rgba(0,0,0,0.15); }

/* Utilities for text */
.high-contrast { color: var(--dark); }
.lead { color: var(--text-light); font-size: 1.05rem; line-height:1.7; }
.small { font-size: 0.9rem; }
.center { text-align: center; }
