/* =============================================
   HOME PAGE (landing/index.blade.php)
============================================= */

/* ---------- Hero ---------- */
.lp-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: var(--lp-navy-deep, #071a35);
}

.lp-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.04);
}

.lp-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 80% 20%, rgba(74, 222, 128, .18), transparent 32%),
        linear-gradient(100deg, rgba(7, 26, 53, .96) 0%, rgba(13, 43, 85, .88) 48%, rgba(13, 43, 85, .55) 100%);
}

.lp-hero .lp-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    align-items: center;
    gap: 56px;
    padding-top: 96px;
    padding-bottom: 140px;
}

.lp-hero-copy h1 {
    font-family: var(--lp-font-display);
    font-weight: 600;
    font-size: clamp(38px, 5.6vw, 68px);
    line-height: 1.06;
    letter-spacing: -.02em;
    color: #fff;
    margin: 8px 0 22px;
}

.lp-hero-copy h1 em {
    font-style: italic;
    font-weight: 500;
    color: #86efac;
}

.lp-hero-copy > p {
    max-width: 540px;
    font-size: 17.5px;
    line-height: 1.75;
    color: rgba(255, 255, 255, .78);
    margin: 0 0 34px;
}

.lp-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 44px;
}

.lp-hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 36px;
    padding-top: 26px;
    border-top: 1px solid rgba(255, 255, 255, .14);
    max-width: 520px;
}

.lp-hero-trust div { display: flex; flex-direction: column; }

.lp-hero-trust strong {
    font-family: var(--lp-font-display);
    font-size: 26px;
    font-weight: 600;
    color: #fff;
    line-height: 1.1;
}

.lp-hero-trust span { font-size: 13px; color: rgba(255, 255, 255, .6); }

.lp-hero-visual { position: relative; }

.lp-hero-photo {
    border-radius: 28px;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    border: 6px solid rgba(255, 255, 255, .12);
    box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6);
}

.lp-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lp-float-card {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px 12px 12px;
    border-radius: 16px;
    background: #fff;
    color: var(--lp-ink);
    box-shadow: 0 20px 40px -16px rgba(7, 26, 53, .5);
    animation: lp-float 6s ease-in-out infinite;
}

.lp-float-card strong { display: block; font-size: 14px; line-height: 1.2; }
.lp-float-card span:not(.lp-float-icon) { font-size: 12px; color: var(--lp-muted); }

.lp-float-top { top: 28px; left: -36px; }
.lp-float-bottom { bottom: 36px; right: -24px; animation-delay: -3s; }

.lp-float-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    font-size: 18px;
    color: var(--lp-navy);
    background: #eaf1fb;
}

.lp-float-icon.is-accent { color: var(--lp-accent-dark); background: var(--lp-accent-soft); }

@keyframes lp-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

@media (max-width: 991.98px) {
    .lp-hero .lp-hero-inner { grid-template-columns: 1fr; padding-top: 72px; padding-bottom: 120px; }
    .lp-hero-visual { display: none; }
}

@media (max-width: 575.98px) {
    .lp-hero .lp-hero-inner { padding-top: 56px; padding-bottom: 96px; }
    .lp-hero-actions .lp-btn { width: 100%; }
    .lp-hero-trust { gap: 24px; }
}

/* ---------- Sections ---------- */
.lp-section { padding: 104px 0; }
.lp-section-tint { background: var(--lp-bg-tint); }

.lp-section-head {
    max-width: 680px;
    margin: 0 auto 56px;
    text-align: center;
}

.lp-section-head .lp-eyebrow::after {
    content: '';
    width: 22px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
}

.lp-section-head-split {
    max-width: none;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    text-align: left;
}

.lp-section-head-split .lp-eyebrow::after { display: none; }
.lp-section-head-split .lp-heading { margin-bottom: 0; }

@media (max-width: 767.98px) {
    .lp-section { padding: 72px 0; }
    .lp-section-head { margin-bottom: 40px; }
    .lp-section-head-split { flex-direction: column; align-items: flex-start; }
}

/* ---------- About split ---------- */
.lp-section .lp-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    align-items: center;
    gap: 72px;
    padding-top: 32px;
}

.lp-split-media { position: relative; }

.lp-split-media img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    border-radius: var(--lp-radius-lg);
    display: block;
}

.lp-exp-badge {
    position: absolute;
    right: -24px;
    bottom: -24px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 24px;
    border-radius: 20px;
    color: #fff;
    background: var(--lp-navy);
    box-shadow: var(--lp-shadow-lg);
}

.lp-exp-badge strong {
    font-family: var(--lp-font-display);
    font-size: 46px;
    font-weight: 600;
    line-height: 1;
    color: #86efac;
}

.lp-exp-badge span { font-size: 13px; line-height: 1.4; color: rgba(255, 255, 255, .8); }

.lp-checklist {
    list-style: none;
    padding: 0;
    margin: 28px 0 32px;
    display: grid;
    gap: 14px;
}

.lp-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15.5px;
    font-weight: 600;
    color: var(--lp-ink);
}

.lp-checklist i { color: var(--lp-accent); font-size: 18px; margin-top: 1px; }

.lp-contact-pill {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 10px 24px 10px 10px;
    border-radius: 999px;
    background: var(--lp-bg-tint);
    border: 1px solid var(--lp-line);
}

.lp-contact-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    font-size: 19px;
    background: var(--lp-accent);
}

.lp-contact-pill span:not(.lp-contact-icon) { display: block; font-size: 12.5px; color: var(--lp-muted); }
.lp-contact-pill a { font-size: 17px; font-weight: 700; color: var(--lp-ink); text-decoration: none; }
.lp-contact-pill a:hover { color: var(--lp-accent-dark); }

@media (max-width: 991.98px) {
    .lp-section .lp-split { grid-template-columns: 1fr; gap: 56px; }
    .lp-exp-badge { right: 16px; bottom: -28px; }
}

/* ---------- Stats band ---------- */
.lp-stats-band { padding: 0 0 24px; }

.lp-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius-lg);
    box-shadow: var(--lp-shadow);
}

.lp-stat {
    padding: 32px 28px;
    text-align: left;
}

.lp-stat + .lp-stat { border-left: 1px solid var(--lp-line); }

.lp-stat-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    font-size: 20px;
    color: var(--lp-navy);
    background: #eaf1fb;
    margin-bottom: 18px;
}

.lp-stat-value {
    display: flex;
    align-items: baseline;
    gap: 2px;
    font-family: var(--lp-font-display);
    font-size: 40px;
    font-weight: 600;
    line-height: 1;
    color: var(--lp-ink);
}

.lp-stat-value small { font-size: 26px; color: var(--lp-accent); }

.lp-stat-label { margin-top: 8px; font-size: 14px; font-weight: 600; color: var(--lp-muted); }

@media (max-width: 991.98px) {
    .lp-stats { grid-template-columns: repeat(2, 1fr); }
    .lp-stat:nth-child(3) { border-left: 0; }
    .lp-stat:nth-child(n+3) { border-top: 1px solid var(--lp-line); }
}

@media (max-width: 479.98px) {
    .lp-stat { padding: 24px 20px; }
    .lp-stat-value { font-size: 32px; }
}

/* ---------- Program cards ---------- */
.lp-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

@media (max-width: 991.98px) { .lp-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639.98px) { .lp-card-grid { grid-template-columns: 1fr; } }

.lp-program-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: 20px;
    overflow: hidden;
    transition: transform .25s, box-shadow .25s, border-color .25s;
}

.lp-program-card:hover {
    transform: translateY(-6px);
    border-color: transparent;
    box-shadow: var(--lp-shadow-lg);
}

.lp-program-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }

.lp-program-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s ease;
}

.lp-program-card:hover .lp-program-media img { transform: scale(1.06); }

.lp-program-icon {
    position: absolute;
    left: 20px;
    bottom: -22px;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #fff;
    font-size: 21px;
    background: var(--lp-navy);
    border: 3px solid #fff;
    z-index: 1;
}

.lp-program-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 36px 24px 26px;
}

.lp-program-body h3 { font-size: 19px; font-weight: 700; margin: 0 0 10px; }

.lp-program-body p {
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--lp-body);
    margin: 0 0 20px;
    flex: 1;
}

/* ---------- Steps ---------- */
.lp-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    counter-reset: step;
}

.lp-step {
    position: relative;
    padding: 34px 30px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid var(--lp-line);
}

.lp-step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 58px;
    right: -24px;
    width: 24px;
    border-top: 2px dashed #c9d3e0;
}

.lp-step-num {
    position: absolute;
    top: 26px;
    right: 28px;
    font-family: var(--lp-font-display);
    font-size: 44px;
    font-weight: 600;
    line-height: 1;
    color: #edf1f6;
}

.lp-step-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    font-size: 22px;
    color: var(--lp-accent-dark);
    background: var(--lp-accent-soft);
    margin-bottom: 22px;
}

.lp-step h3 { font-size: 19px; font-weight: 700; margin: 0 0 8px; }
.lp-step p { font-size: 14.5px; line-height: 1.7; margin: 0; }

@media (max-width: 767.98px) {
    .lp-steps { grid-template-columns: 1fr; }
    .lp-step:not(:last-child)::after { display: none; }
}

/* ---------- Features (navy band) ---------- */
.lp-section-navy {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 90% 0%, rgba(74, 222, 128, .16), transparent 35%),
        linear-gradient(135deg, var(--lp-navy-deep), var(--lp-navy));
}

.lp-section-head-light .lp-heading { color: #fff; }
.lp-section-head-light .lp-lead { color: rgba(255, 255, 255, .72); }

.lp-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.lp-feature {
    padding: 30px 26px;
    border-radius: 20px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .1);
    transition: background-color .25s, transform .25s, border-color .25s;
}

.lp-feature:hover {
    background: rgba(255, 255, 255, .09);
    border-color: rgba(134, 239, 172, .35);
    transform: translateY(-4px);
}

.lp-feature-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    font-size: 22px;
    color: #86efac;
    background: rgba(134, 239, 172, .12);
    margin-bottom: 22px;
}

.lp-feature h3 { font-size: 18px; font-weight: 700; color: #fff; margin: 0 0 8px; }
.lp-feature p { font-size: 14.5px; line-height: 1.7; color: rgba(255, 255, 255, .66); margin: 0; }

@media (max-width: 991.98px) { .lp-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .lp-feature-grid { grid-template-columns: 1fr; } }

/* ---------- Exam tiles ---------- */
.lp-exam-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.lp-exam {
    position: relative;
    display: block;
    aspect-ratio: 3 / 4;
    border-radius: 20px;
    overflow: hidden;
    text-decoration: none;
    isolation: isolate;
}

.lp-exam img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
    transition: transform .6s ease;
}

.lp-exam::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(7, 26, 53, 0) 35%, rgba(7, 26, 53, .92) 100%);
    transition: background .3s;
}

.lp-exam:hover img { transform: scale(1.07); }

.lp-exam-caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 24px;
}

.lp-exam-tag {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    padding: 5px 10px;
    border-radius: 999px;
    color: var(--lp-navy-deep);
    background: #86efac;
    margin-bottom: 10px;
}

.lp-exam h3 { font-size: 20px; font-weight: 700; color: #fff; margin: 0; }

.lp-exam-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, .8);
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height .3s, opacity .3s, margin .3s;
}

.lp-exam:hover .lp-exam-cta,
.lp-exam:focus-visible .lp-exam-cta { max-height: 24px; opacity: 1; margin-top: 8px; }

@media (max-width: 991.98px) { .lp-exam-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .lp-exam-grid { gap: 12px; } .lp-exam-caption { padding: 16px; } .lp-exam h3 { font-size: 16px; } }

/* ---------- Offices ---------- */
.lp-office {
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: 20px;
    overflow: hidden;
    transition: transform .25s, box-shadow .25s;
}

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

.lp-office-media { aspect-ratio: 16 / 10; overflow: hidden; }
.lp-office-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lp-office-body { padding: 24px; }
.lp-office-body h3 { font-size: 18px; font-weight: 700; margin: 0 0 14px; }

.lp-office-body ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }

.lp-office-body li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
}

.lp-office-body li i { color: var(--lp-accent-dark); margin-top: 2px; }
.lp-office-body a { color: var(--lp-body); text-decoration: none; }
.lp-office-body a:hover { color: var(--lp-navy); }

/* ---------- CTA ---------- */
.lp-cta-wrap { padding: 0 0 104px; background: var(--lp-bg-tint); }

.lp-cta {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 56px;
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 100% 0%, rgba(74, 222, 128, .28), transparent 40%),
        linear-gradient(120deg, var(--lp-navy-deep), var(--lp-navy-soft));
}

.lp-cta h2 {
    font-family: var(--lp-font-display);
    font-weight: 600;
    font-size: clamp(26px, 3vw, 36px);
    color: #fff;
    margin: 0 0 8px;
}

.lp-cta p { font-size: 16px; color: rgba(255, 255, 255, .72); margin: 0; max-width: 520px; }

.lp-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 767.98px) {
    .lp-cta-wrap { padding-bottom: 72px; }
    .lp-cta { flex-direction: column; align-items: flex-start; padding: 36px 28px; }
}
