.landing-body { background: #fff; }
.landing-body .candidate-container { --bs-gutter-x: 3rem; }
.landing-body nav.candidate-container { padding-inline: calc(var(--bs-gutter-x) * .5); }
.landing-body section { scroll-margin-top: 100px; }
.landing-body h1 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 800; line-height: 1.22; letter-spacing: -.035em; overflow-wrap: anywhere; margin: 1rem 0 1.5rem; }
.landing-body h2 { font-size: clamp(1.6rem, 2.5vw, 2rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.3; margin-bottom: 1rem; }
.landing-body .navbar-brand { white-space: normal; max-width: calc(100% - 62px); margin-right: 0; }
.landing-body .brand-logo { flex-shrink: 0; }
.landing-body .navbar-brand strong { max-width: 300px; line-height: 1.4; }
.landing-body .navbar-brand > span { min-width: 0; }
.landing-body .navbar-collapse { padding-block: .5rem; }
.landing-skip { position: absolute; z-index: 1100; background: #fff; padding: 1rem; }
.landing-hero { background: linear-gradient(115deg, #f1f8ed 0%, #f5f9ef 48%, #e9f3e5 100%); padding: 4.5rem 0 0; border-bottom: 1px solid #dce8d8; }
.landing-eyebrow { display: flex; align-items: center; gap: .6rem; color: #23673b; font-size: .73rem; font-weight: 700; letter-spacing: .12em; margin-bottom: .8rem; }
.landing-eyebrow > span { width: 8px; height: 8px; border-radius: 50%; background: #267c42; }
.landing-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.landing-intro { color: #526251; line-height: 1.85; font-size: 1.06rem; }
.landing-hero-note { font-size: .82rem; color: #61705e; margin: 1.25rem 0 0; }
.landing-banner { background: #fff; border: 1px solid #d5e4d0; border-radius: 8px; overflow: hidden; }
.landing-banner > img { display: block; width: 100%; max-height: 440px; object-fit: contain; }
.landing-banner figcaption, .landing-gallery figcaption { padding: .85rem 1rem; font-size: .875rem; color: #526251; white-space: pre-wrap; overflow-wrap: anywhere; }
.landing-emblem { min-height: 335px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; background: radial-gradient(circle at center, #ffffffb3 0 42%, transparent 43%), repeating-radial-gradient(circle at center, transparent 0 60px, #c8ddc660 61px 62px, transparent 63px 90px); padding: 2rem; }
.landing-emblem-ring { width: 145px; height: 145px; display: grid; place-items: center; margin-bottom: 1.25rem; }
.landing-emblem img { width: 132px; height: 132px; object-fit: contain; }
.landing-emblem > span { font-size: .65rem; color: #537b49; letter-spacing: .16em; margin-bottom: .65rem; }
.landing-emblem > strong { font-size: 1.5rem; line-height: 1.4; color: #265d33; }
.landing-steps { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d4e2cd; margin-top: 3.5rem; padding: 1.5rem 0; gap: 1.5rem; }
.landing-steps > div { display: flex; gap: 1rem; align-items: center; }
.landing-steps > div > span { color: #568649; font-size: 1.6rem; font-weight: 400; }
.landing-steps p { margin: 0; }
.landing-steps strong { display: block; color: #25452c; font-size: .92rem; }
.landing-steps small { display: block; color: #687561; font-size: .79rem; margin-top: .2rem; }
.landing-section { padding: 4.5rem 0; }
.landing-section-soft { background: #f7f9f5; border-block: 1px solid #e7ede2; }
.landing-rules { background: #fafbf9; border: 1px solid #e0e8dc; border-left: 3px solid #378045; border-radius: 5px; padding: 1.75rem 2rem; line-height: 1.9; }
.landing-gallery { background: #fff; border: 1px solid #e0e8dc; border-radius: 5px; overflow: hidden; height: 100%; }
.landing-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 32/21; object-fit: cover; transition: opacity .2s; }
.landing-gallery a:hover img { opacity: .85; }
.landing-video { background: #142219; border-radius: 6px; overflow: hidden; }
.landing-video video { object-fit: contain; }
.landing-cta { background: #175c32; color: #fff; padding: 3rem 0; }
.landing-cta h2 { font-size: 1.7rem; margin-bottom: .6rem; }
.landing-cta p { color: #d4e6d8; }
.landing-body .candidate-footer { padding: 1.5rem 0; }
@media (max-width: 991.98px) {
    .landing-body .candidate-container { --bs-gutter-x: 1.5rem; }
    .landing-hero { padding-top: 2.5rem; }
    .landing-emblem { min-height: 270px; }
    .landing-steps { margin-top: 2rem; }
    .landing-body .navbar-collapse .nav-item:last-child { margin-top: .5rem; }
}
@media (max-width: 575.98px) {
    .landing-body .navbar-brand strong { font-size: .86rem; }
    .landing-body .navbar-brand small { font-size: .64rem; }
    .landing-body .brand-logo { width: 36px; height: 36px; }
    .landing-section { padding: 3rem 0; }
    .landing-rules { padding: 1.25rem; }
    .landing-steps { grid-template-columns: 1fr; gap: 1rem; }
    .landing-steps > div > span { font-size: 1.3rem; }
    .landing-cta { padding: 2.5rem 0; }
}
@media (prefers-reduced-motion: reduce) { .landing-body { scroll-behavior: auto; } .landing-gallery img { transition: none; } }
