/**
 * Homepage redesign — vocational support focus, Apple/Meta-inspired visual
 * language (soft gradients, generous whitespace, subtle motion). Scoped
 * entirely to its own `voc-*` classes so it never touches the shared
 * navbar/footer markup from layouts/application.blade.php.
 */

.voc-hero {
    position: relative;
    overflow: hidden;
    padding: 5rem 0 6rem;
    margin-top: -1.5rem;
    background: radial-gradient(circle at 15% 20%, rgba(83, 109, 121, .08), transparent 45%),
        radial-gradient(circle at 85% 80%, rgba(83, 109, 121, .06), transparent 45%),
        #fbfcfd;
}

.voc-hero-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: .35;
    z-index: 0;
    animation: voc-float 10s ease-in-out infinite;
}

.voc-hero-blob-1 {
    width: 320px;
    height: 320px;
    top: -80px;
    right: -60px;
    background: var(--primary-color, #536d79);
}

.voc-hero-blob-2 {
    width: 260px;
    height: 260px;
    bottom: -100px;
    left: -60px;
    background: #8ab4c8;
    animation-delay: 2s;
}

@keyframes voc-float {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-20px) scale(1.05); }
}

.voc-hero .container {
    position: relative;
    z-index: 1;
}

.voc-badge {
    display: inline-block;
    background: rgba(83, 109, 121, .1);
    color: var(--primary-color, #536d79);
    font-weight: 600;
    font-size: .8rem;
    padding: .4rem .9rem;
    border-radius: 2rem;
    margin-bottom: 1.25rem;
}

.voc-hero-title {
    font-size: 2.75rem;
    font-weight: 800;
    letter-spacing: -.02em;
    color: #1d2630;
    margin-bottom: 1rem;
}

.voc-hero-subtitle {
    font-size: 1.1rem;
    color: #5c6b78;
    margin-bottom: 2rem;
    max-width: 540px;
}

.voc-hero-form {
    max-width: 520px;
}

.voc-hero-form .conference-id {
    height: 3.2rem;
    border-radius: .8rem 0 0 .8rem;
    border: 2px solid #e3e6f0;
    border-right: none;
    font-size: 1rem;
    padding-left: 1.2rem;
}

.voc-hero-form .conference-id:focus {
    border-color: var(--primary-color, #536d79);
    box-shadow: none;
}

.voc-btn-primary {
    height: 3.2rem;
    padding: 0 1.75rem;
    background: var(--primary-color, #536d79);
    border: 2px solid var(--primary-color, #536d79);
    color: #fff;
    font-weight: 700;
    border-radius: 0 .8rem .8rem 0;
    transition: transform .15s ease-in-out, box-shadow .15s ease-in-out;
}

.voc-btn-primary:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(83, 109, 121, .3);
}

.voc-hero-link {
    display: inline-block;
    margin-top: .5rem;
    font-weight: 600;
    color: var(--primary-color, #536d79);
}

.voc-btn-light {
    background: #fff;
    color: var(--primary-color, #536d79);
    font-weight: 700;
    padding: .85rem 2.25rem;
    border-radius: 2.5rem;
    transition: transform .15s ease-in-out;
}

.voc-btn-light:hover {
    color: var(--primary-color, #536d79);
    transform: translateY(-2px);
}

/* hero illustration (pure CSS, no external image dependency) */
.voc-hero-art {
    position: relative;
    height: 380px;
}

.voc-hero-card {
    position: absolute;
    background: #fff;
    border-radius: 1.25rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .12);
}

.voc-hero-card-main {
    width: 220px;
    height: 220px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: linear-gradient(135deg, var(--primary-color, #536d79), #2d3a44);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 5rem;
    color: #fff;
}

.voc-hero-card-float {
    padding: .85rem 1.1rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    font-weight: 600;
    font-size: .85rem;
    color: #1d2630;
    animation: voc-bob 4s ease-in-out infinite;
}

.voc-hero-card-float i {
    color: var(--primary-color, #536d79);
    font-size: 1.1rem;
}

.voc-float-1 {
    top: 10%;
    left: 0;
    animation-delay: 0s;
}

.voc-float-2 {
    top: 65%;
    left: 5%;
    animation-delay: 1.3s;
}

.voc-float-3 {
    top: 35%;
    right: 0;
    animation-delay: 2.6s;
}

@keyframes voc-bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

/* stats band */
.voc-stats {
    padding: 2.5rem 0;
    background: linear-gradient(135deg, var(--primary-color, #536d79), #2d3a44);
    color: #fff;
}

.voc-stat-number {
    font-size: 2.25rem;
    font-weight: 800;
}

.voc-stat-label {
    font-size: .85rem;
    opacity: .85;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* generic section */
.voc-section {
    padding: 5rem 0;
}

.voc-section-alt {
    background: #f7f8fa;
}

.voc-section-head {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 3rem;
}

.voc-eyebrow {
    display: inline-block;
    font-weight: 700;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--primary-color, #536d79);
    margin-bottom: .5rem;
}

.voc-section-head h2 {
    font-size: 2rem;
    font-weight: 800;
    color: #1d2630;
}

/* how it works */
.voc-steps {
    margin-top: 1rem;
}

.voc-step {
    text-align: center;
    padding: 1.5rem 1rem;
    height: 100%;
}

.voc-step-number {
    width: 2.2rem;
    height: 2.2rem;
    margin: 0 auto .75rem;
    border-radius: 50%;
    background: var(--primary-color, #536d79);
    color: #fff;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.voc-step-icon {
    font-size: 1.6rem;
    color: var(--primary-color, #536d79);
    margin-bottom: .75rem;
    display: block;
}

.voc-step h5 {
    font-weight: 700;
    margin-bottom: .5rem;
}

.voc-step p {
    color: #5c6b78;
    font-size: .9rem;
    margin: 0;
}

/* feature cards */
.voc-feature-card {
    background: #fff;
    border-radius: 1rem;
    padding: 1.75rem 1.25rem;
    height: 100%;
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .05);
    transition: transform .2s ease-in-out, box-shadow .2s ease-in-out;
}

.voc-feature-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, .1);
}

.voc-feature-icon {
    width: 3rem;
    height: 3rem;
    border-radius: .85rem;
    background: rgba(83, 109, 121, .1);
    color: var(--primary-color, #536d79);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    margin-bottom: 1rem;
}

.voc-feature-card h5 {
    font-weight: 700;
    margin-bottom: .5rem;
}

.voc-feature-card p {
    color: #5c6b78;
    font-size: .88rem;
    margin: 0;
}

/* FAQ */
.voc-faq-item {
    border-bottom: 1px solid #e3e6f0;
}

.voc-faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem 0;
    font-weight: 700;
    color: #1d2630;
}

.voc-faq-question:hover {
    color: var(--primary-color, #536d79);
}

.voc-faq-question i {
    transition: transform .2s ease-in-out;
}

.voc-faq-question[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.voc-faq-answer {
    padding-bottom: 1.1rem;
    color: #5c6b78;
}

/* final CTA */
.voc-cta {
    padding: 5rem 0;
    background: #fff;
}

.voc-cta h2 {
    font-size: 2rem;
    font-weight: 800;
    color: #1d2630;
    margin-bottom: .75rem;
}

.voc-cta p {
    color: #5c6b78;
    max-width: 560px;
    margin: 0 auto 1.75rem;
}

.voc-cta {
    background: linear-gradient(135deg, var(--primary-color, #536d79), #2d3a44);
}

.voc-cta h2, .voc-cta p {
    color: #fff;
}

.voc-cta p {
    opacity: .9;
}

/* scroll-reveal (see public/js/home-vocational.js) */
.voc-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s ease-out, transform .6s ease-out;
}

.voc-reveal.voc-revealed {
    opacity: 1;
    transform: translateY(0);
}

.voc-reveal-delay-1.voc-revealed { transition-delay: .1s; }
.voc-reveal-delay-2.voc-revealed { transition-delay: .2s; }
.voc-reveal-delay-3.voc-revealed { transition-delay: .3s; }

@media (max-width: 991.98px) {
    .voc-hero-title {
        font-size: 2.1rem;
    }

    .voc-hero {
        padding: 3.5rem 0 4rem;
        text-align: center;
    }

    .voc-hero-subtitle {
        margin-left: auto;
        margin-right: auto;
    }

    .voc-hero-form {
        margin: 0 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .voc-hero-blob, .voc-hero-card-float {
        animation: none;
    }

    .voc-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
