.nav-link{position:relative;padding-bottom:4px;text-decoration:none;transition:color .2s ease}
.nav-link::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold-500);transition:width .25s ease}
.nav-link:hover::after,.nav-link.is-active::after{width:100%}
.nav-link.is-active{color:var(--brand-green-900)}

.arrow-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;cursor:pointer}
.arrow-link .arrow-glyph{transition:transform .25s ease;display:inline-block}
.arrow-link:hover .arrow-glyph{transform:translateX(5px)}

.svc-row{border-top:1px solid var(--border-subtle);padding:44px 0;display:grid;grid-template-columns:96px 1.1fr 1.3fr;gap:32px;align-items:center;transition:background .3s ease;cursor:default}
.svc-row:last-of-type{border-bottom:1px solid var(--border-subtle)}
.svc-row:hover{background:rgba(12,39,32,0.025)}
.svc-row:hover .svc-arrow{transform:translateX(8px);opacity:1}
.svc-arrow{transition:all .25s ease;display:inline-block;opacity:0.55}

.visa-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:56px 0;border-top:1px solid var(--border-subtle)}
.visa-row:last-of-type{border-bottom:1px solid var(--border-subtle)}
.visa-row img{transition:transform .5s ease;display:block;width:100%;height:100%;object-fit:cover}
.visa-row:hover img{transform:scale(1.035)}

.job-row{display:flex;justify-content:space-between;align-items:center;padding:22px 4px;border-top:1px solid var(--border-subtle);transition:padding-left .25s ease,background .25s ease}
.job-row:last-of-type{border-bottom:1px solid var(--border-subtle)}
.job-row:hover{padding-left:10px;background:rgba(12,39,32,0.025)}
.job-row:hover .job-arrow{opacity:1;transform:translateX(0)}
.job-arrow{opacity:0;transform:translateX(-6px);transition:all .25s ease}

.underline-field{display:flex;flex-direction:column;gap:6px}
.underline-field label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.12em;font-family:var(--font-latin)}
.underline-field input,.underline-field select,.underline-field textarea{border:none;border-bottom:1px solid var(--border-default);border-radius:0;background:transparent;padding:10px 2px;font-family:var(--font-sans);font-size:15px;color:var(--text-primary);outline:none;transition:border-color .25s ease;width:100%}
.underline-field input:focus,.underline-field select:focus,.underline-field textarea:focus{border-color:var(--accent-primary)}
.underline-field textarea{resize:vertical}

.course-media{overflow:hidden}
.course-media img{transition:transform .6s ease;display:block;width:100%;height:100%;object-fit:cover}
.course-block:hover .course-media img{transform:scale(1.045)}

.timeline-node{position:relative;flex:1}

.flow-track{position:relative;height:2px;background:rgba(255,255,255,0.15);margin-bottom:0;overflow:hidden}
.flow-track::after{content:'';position:absolute;left:0;top:0;height:100%;width:0;background:var(--gold-500);animation:flowGrow 2.4s cubic-bezier(0.4,0,0.2,1) forwards}
@keyframes flowGrow{to{width:100%}}
.flow-dot{opacity:0;animation:flowDotIn .6s ease forwards}
@keyframes flowDotIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.pager-btn{border:1px solid var(--border-default);background:transparent;border-radius:var(--radius-sm);padding:8px 16px;font-family:var(--font-sans);font-size:13px;cursor:pointer;transition:all .2s ease;color:var(--text-primary)}
.pager-btn:hover:not(:disabled){border-color:var(--brand-green-800);color:var(--brand-green-900)}
.pager-btn:disabled{opacity:0.35;cursor:not-allowed}
.pager-btn.is-active{background:var(--brand-green-900);color:#fff;border-color:var(--brand-green-900)}

.faq-item{border-top:1px solid var(--border-subtle)}
.faq-item:last-child{border-bottom:1px solid var(--border-subtle)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:24px 4px;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--font-sans);font-size:16px;font-weight:500;color:var(--brand-green-950)}
.faq-q .faq-toggle{transition:transform .3s ease;font-size:18px;color:var(--gold-700)}
.faq-a{padding:0 4px 24px;font-size:14px;color:var(--text-secondary);line-height:var(--leading-relaxed);max-width:640px}

.reveal-in{animation:editorialFadeUp .6s cubic-bezier(0.4,0,0.2,1) both}
@keyframes editorialFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

@media (max-width:860px){
.svc-row{grid-template-columns:56px 1fr;grid-template-areas:"num title" "num desc"}
.visa-row{grid-template-columns:1fr;gap:20px}
.visa-row>*:first-child{order:1}
}
