/* Explain: App-specific reusable component classes. */
.btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9rem 1.75rem;
    background: var(--red);
    color: #ffffff;
    font-weight: 600;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    border-radius: var(--radius);
    border: none;
    letter-spacing: 0.01em;
    transition: all 0.3s ease;
    cursor: pointer;
}

.btn-cta:hover {
    background: var(--red-hover);
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(230, 57, 70, 0.35);
}

.btn-navy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9rem 1.75rem;
    background: var(--navy);
    color: #ffffff;
    font-weight: 600;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    border-radius: var(--radius);
    border: none;
    transition: all 0.3s ease;
    cursor: pointer;
}

.btn-navy:hover {
    background: var(--navy-light);
    transform: translateY(-2px);
}

.btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9rem 1.75rem;
    background: transparent;
    color: #ffffff;
    font-weight: 600;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    border-radius: var(--radius);
    border: 2px solid rgba(255, 255, 255, 0.45);
    transition: all 0.3s ease;
    cursor: pointer;
}

.btn-ghost:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: #ffffff;
}

.section-label {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--red);
    font-family: var(--font-heading);
}

.section-label--light {
    color: #f39aa1;
}

.card-hover {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    transition: all 0.3s ease;
    overflow: hidden;
}

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

.spec-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.65rem;
    background: var(--gray);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--navy);
    letter-spacing: 0.02em;
}

.spec-tag i {
    color: var(--red);
}