:root { --gnu-navbar-height: 82px; --gnu-sticky-offset: 96px; }

.premium-navbar { min-height: var(--gnu-navbar-height); }
:where(main, section, article, div)[id] { scroll-margin-top: var(--gnu-sticky-offset); }

.global-search-trigger,
.global-login-link {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border-radius: 10px;
    font-weight: 750;
    text-decoration: none;
}
.global-search-trigger { padding: .5rem .75rem; border: 1px solid #dbe3ef; color: #334155; background: #fff; }
.global-login-link { padding: .5rem .4rem; color: #334155; }
.global-search-trigger:hover,.global-login-link:hover { color:#2563eb; background:#f8fbff; }
.navbar-right { gap: .55rem; }
.mobile-navigation a.active { color:#1d4ed8; background:#eff6ff; }
.mobile-menu-toggle[aria-expanded="true"] { color:#1d4ed8; background:#eff6ff; }
.mobile-menu-toggle[aria-expanded="true"] > .bi-chevron-down { transform:rotate(180deg); }
.mobile-menu-toggle > .bi-chevron-down { transition:transform .16s ease; }

.global-search-modal .modal-content { overflow: hidden; }
.global-search-modal .modal-header { align-items: center; }
.global-search-eyebrow { display:block; margin-bottom:.1rem; color:#2563eb; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.global-search-field { position:relative; display:flex; align-items:center; min-height:58px; border:1px solid #cbd5e1; border-radius:14px; background:#fff; }
.global-search-field:focus-within { border-color:#7da7fb; box-shadow:0 0 0 .25rem rgba(37,99,235,.16); }
.global-search-field > i { margin-left:1rem; color:#64748b; font-size:1.15rem; }
.global-search-field input { width:100%; min-width:0; min-height:56px; padding:.75rem 3rem .75rem .8rem; border:0; outline:0; color:#0f172a; background:transparent; font-size:1rem; }
.global-search-spinner { position:absolute; right:1rem; width:1.1rem; height:1.1rem; border:2px solid #dbeafe; border-top-color:#2563eb; border-radius:50%; animation:global-spin .7s linear infinite; }
@keyframes global-spin { to { transform:rotate(360deg); } }
.global-search-results { display:grid; gap:.35rem; max-height:min(55vh,450px); margin-top:1rem; overflow-y:auto; }
.global-search-group-label { margin:.55rem .35rem .2rem; color:#64748b; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.global-search-option { display:flex; align-items:center; gap:.75rem; padding:.75rem; border:1px solid transparent; border-radius:12px; color:#334155; text-decoration:none; }
.global-search-option:hover,.global-search-option[aria-selected="true"] { border-color:#bfdbfe; color:#1d4ed8; background:#eff6ff; }
.global-search-option__icon { display:grid; place-items:center; width:2.5rem; height:2.5rem; flex:0 0 auto; border-radius:10px; color:#2563eb; background:#eaf2ff; }
.global-search-option__copy { min-width:0; flex:1; }
.global-search-option__copy strong,.global-search-option__copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.global-search-option__copy small { margin-top:.12rem; color:#64748b; }
.global-search-option mark { padding:0; color:#1d4ed8; background:#dbeafe; }
.global-search-state { padding:2rem 1rem; border:1px dashed #dbe3ef; border-radius:12px; color:#64748b; background:#f8fafc; text-align:center; }
.global-search-state i { display:block; margin-bottom:.5rem; font-size:1.5rem; }
.inline-search-suggestions { position:absolute; z-index:1060; top:calc(100% + .4rem); left:0; right:0; display:grid; gap:.25rem; max-height:320px; padding:.45rem; overflow:auto; border:1px solid #dbe5f2; border-radius:12px; background:#fff; box-shadow:0 16px 35px rgba(15,23,42,.14); }
.inline-search-suggestion { display:flex; align-items:center; gap:.6rem; padding:.55rem .6rem; border-radius:9px; color:#334155; text-decoration:none; }
.inline-search-suggestion:hover,.inline-search-suggestion[aria-selected="true"] { color:#1d4ed8; background:#eff6ff; }
.inline-search-suggestion > i { display:grid; place-items:center; width:28px; height:28px; flex:0 0 auto; border-radius:8px; color:#2563eb; background:#eaf2ff; }
.inline-search-suggestion strong,.inline-search-suggestion small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.inline-search-suggestion strong { font-size:.8rem; }
.inline-search-suggestion small { margin-top:.1rem; color:#64748b; font-size:.68rem; }
.inline-search-suggestions__empty { padding:.8rem .65rem; color:#64748b; font-size:.78rem; }

.gnu-toast-region { position:fixed; top:calc(var(--gnu-navbar-height) + 1rem); right:1rem; z-index:1090; width:min(390px,calc(100vw - 2rem)); }
.gnu-global-toast { width:100%; border:0; border-radius:12px; box-shadow:0 18px 48px rgba(15,23,42,.2); }

.gnu-breadcrumbs { margin-bottom:1rem; }
.gnu-breadcrumbs .breadcrumb { padding:.45rem .65rem; border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc; }
.gnu-breadcrumbs .breadcrumb-item a { color:#475569; font-weight:650; }
.gnu-breadcrumbs .breadcrumb-item a:hover { color:#2563eb; }

.gnu-footer .footer-heading { margin-bottom:1rem; }
.gnu-footer .footer-links { display:grid; gap:.55rem; }
.gnu-footer .footer-subscribe label { color:#fff; }
.gnu-footer .footer-bottom { padding-block:1.15rem; }

.global-newsletter,.global-cta { border:0; border-radius:18px; overflow:hidden; color:#fff; box-shadow:0 18px 50px rgba(15,23,42,.13); }
.global-newsletter { background:linear-gradient(135deg,#1d4ed8,#6d28d9); }
.global-cta { background:linear-gradient(135deg,#1d4ed8,#be123c); }
.global-cta__copy { max-width:600px; }
.global-newsletter__copy { max-width:500px; }
.global-newsletter__icon { display:grid; place-items:center; width:65px; height:65px; margin-inline:auto; border-radius:50%; color:#2563eb; background:#fff; }

.gnu-dash-hero { padding:clamp(1.25rem,4vw,2rem); border:1px solid #dbe3ef; border-radius:16px; background:linear-gradient(135deg,#eff6ff,#f8fafc); }
.gnu-dash-stat { height:100%; padding:1rem; border:1px solid #e2e8f0; border-radius:12px; background:#fff; box-shadow:0 6px 18px rgba(15,23,42,.04); }
.gnu-dash-stat .label { color:#64748b; font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.gnu-dash-stat .value { margin-top:.3rem; color:#0f172a; font-size:clamp(1.25rem,3vw,1.65rem); font-weight:850; }
.gnu-dash-table { overflow:hidden; border:1px solid #e2e8f0; border-radius:12px; background:#fff; }

/* The legacy desktop header is fixed, while tablet/mobile uses sticky flow. */
.mock-test-page--dashboard #main-content,
.mock-test-page--dashboard-attempts #main-content {
    width: min(100% - 2rem, 1320px);
    margin-inline: auto;
    padding-top: calc(var(--gnu-navbar-height) + clamp(1.25rem, 3vw, 2rem));
    padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

@media (max-width: 1199.98px) {
    .mock-test-page--dashboard #main-content,
    .mock-test-page--dashboard-attempts #main-content {
        width: min(100% - 1.5rem, 1320px);
        padding-top: clamp(1rem, 3vw, 1.5rem);
    }
}

@media (max-width: 359.98px) {
    .mock-test-page--dashboard #main-content,
    .mock-test-page--dashboard-attempts #main-content {
        width: min(100% - 1rem, 1320px);
    }
}

.gnu-legal-page { max-width:820px; padding:clamp(1.25rem,4vw,2.5rem); border:1px solid #e2e8f0; border-radius:18px; background:#fff; box-shadow:0 12px 36px rgba(15,23,42,.06); }
.gnu-legal-page h1 { color:#0f172a; font-size:clamp(2rem,5vw,3rem); font-weight:850; letter-spacing:-.04em; }
.gnu-legal-page h2 { margin-top:2rem; color:#0f172a; font-size:1.2rem; font-weight:800; }

@media(max-width:1199.98px){ :root{--gnu-navbar-height:74px;--gnu-sticky-offset:88px}.global-search-trigger span{display:none!important} }
@media(max-width:575.98px){ .gnu-toast-region{top:calc(var(--gnu-navbar-height) + .65rem);right:.65rem;width:calc(100vw - 1.3rem)} .global-search-modal .modal-dialog{align-items:flex-start;margin-top:4.5rem}.global-search-results{max-height:50vh}.footer-bottom-links{justify-content:flex-start!important}.global-newsletter .input-group{display:grid}.global-newsletter .input-group>*{width:100%;border-radius:8px!important}.global-cta .btn{width:100%} }

/* Shared premium footer and public information pages. */
.gnu-footer{padding-top:clamp(3rem,6vw,4.75rem)!important;background:linear-gradient(145deg,#081321 0%,#0b1a2d 55%,#0c2038 100%)!important}
.gnu-footer>.container{position:relative;z-index:1;width:min(100% - 2rem,1320px)}
.gnu-footer .row.g-4{--bs-gutter-x:clamp(1.5rem,4vw,3.25rem);--bs-gutter-y:2.25rem}
.footer-logo{margin-bottom:1rem!important}.footer-logo-img{height:46px!important;max-width:min(100%,270px);filter:none!important}
.footer-desc{max-width:44ch!important;margin-bottom:1.15rem!important;color:#a7b5c8!important;font-size:.84rem!important;line-height:1.75!important;text-wrap:pretty}
.footer-social{gap:.55rem!important}.social-link{width:42px!important;height:42px!important;border:1px solid rgba(255,255,255,.1);border-radius:11px!important;background:rgba(255,255,255,.055)!important;transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .16s ease!important}.social-link:hover{transform:translateY(-2px)!important;border-color:#4f85e8;background:#2563eb!important}
.footer-heading{margin-bottom:1rem!important;padding-bottom:.65rem!important;color:#f8fafc!important;font-size:.86rem!important;letter-spacing:.02em!important}.footer-heading:after{width:34px!important;height:2px!important}
.footer-links{gap:.35rem!important}.footer-links li a{min-height:38px;padding:.25rem 0;color:#9fb0c5!important;font-size:.82rem!important;line-height:1.4;transition:color .16s ease,transform .16s ease!important}.footer-links li a:before{content:"\203A"!important;color:#60a5fa!important}.footer-links li a:hover{transform:translateX(3px)!important;color:#fff!important}
.footer-subscribe .input-group{min-height:54px;border-color:rgba(255,255,255,.15)!important;border-radius:13px!important;background:rgba(255,255,255,.065)!important;transition:border-color .16s ease,box-shadow .16s ease}.footer-subscribe .input-group:focus-within{border-color:#60a5fa!important;box-shadow:0 0 0 4px rgba(59,130,246,.16)}
.footer-subscribe .form-control{min-width:0;height:52px!important;padding-inline:1rem!important}.footer-subscribe .form-control.is-invalid{background-image:none!important}.btn-subscribe{flex:0 0 52px!important;width:52px!important;height:52px!important;border-radius:0!important}.btn-subscribe:focus-visible,.gnu-footer a:focus-visible{outline:3px solid rgba(96,165,250,.55)!important;outline-offset:3px!important}
.footer-subscribe-help,.footer-subscribe-error{margin:.6rem 0 0;font-size:.7rem;line-height:1.5}.footer-subscribe-help{color:#8293aa}.footer-subscribe-error{color:#fda4af}
.footer-contact{display:grid;gap:.25rem}.footer-contact p{display:flex;align-items:flex-start;color:#8799b0!important;line-height:1.5}.footer-contact i{margin-top:.15rem}.footer-contact a{color:#a9bbd1;text-decoration:none;overflow-wrap:anywhere}.footer-contact a:hover{color:#fff}
.footer-divider{margin:clamp(2.25rem,5vw,3.25rem) 0 0!important;background:rgba(255,255,255,.1)!important}
.footer-bottom{padding-block:1.35rem!important}.footer-bottom>.row{--bs-gutter-y:1rem}.copyright,.footer-creator{color:#8293aa!important;font-size:.76rem!important;line-height:1.55}.footer-creator{margin-top:.2rem!important}.footer-creator strong{color:#cbd5e1!important}
.footer-bottom-links{gap:.4rem 1rem!important}.footer-bottom-links li a{display:inline-flex;align-items:center;min-height:38px;color:#91a3ba!important;font-size:.75rem!important}.footer-bottom-links li a:hover{color:#fff!important}

.gnu-legal-page{max-width:900px!important;padding:clamp(1.1rem,4vw,2.75rem)!important;border-color:#dce5f0!important;border-radius:20px!important;box-shadow:0 16px 42px rgba(15,23,42,.065)!important}
.gnu-legal-page header{padding-bottom:1.35rem;border-bottom:1px solid #e5ebf2}.gnu-legal-page header>p:not(.gnu-legal-page__updated){max-width:65ch;color:#5e6d81;font-size:1rem;line-height:1.7}.gnu-legal-page__updated{display:flex;align-items:center;gap:.4rem;margin:.9rem 0 0;color:#718096;font-size:.75rem;font-weight:700}
.gnu-legal-page h2{margin-top:clamp(1.65rem,4vw,2.25rem)!important;margin-bottom:.55rem;color:#162033!important;font-size:clamp(1.05rem,2vw,1.25rem)!important;line-height:1.4}.gnu-legal-page>p{max-width:76ch;margin-bottom:.85rem;color:#566579;font-size:.92rem;line-height:1.8;text-wrap:pretty}.gnu-legal-page a{overflow-wrap:anywhere}

@media(max-width:991.98px){.gnu-footer .col-lg-4:first-child{padding-right:2rem}.footer-bottom-links{justify-content:flex-start!important}}
@media(max-width:575.98px){
    .gnu-footer{padding-top:2.75rem!important}.gnu-footer>.container{width:min(100% - 1.25rem,1320px)}
    .footer-logo-img{height:40px!important}.gnu-footer .col-lg-4:first-child{padding-right:calc(var(--bs-gutter-x)*.5)}
    .gnu-footer .col-6{width:50%!important}.footer-links li a{min-height:42px}
    .footer-subscribe .input-group{display:flex!important;grid-template-columns:none}.footer-subscribe .input-group>*{width:auto!important}.footer-subscribe .form-control{width:1%!important;border-radius:0!important}.btn-subscribe{width:52px!important;border-radius:0!important}
    .footer-bottom-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem .7rem!important}.footer-bottom-links li a{min-height:42px}
    .gnu-legal-page{border-radius:15px!important}.gnu-legal-page h1{font-size:clamp(1.8rem,10vw,2.4rem)!important}.gnu-legal-page>p{font-size:.87rem;line-height:1.72}
}
@media(max-width:359.98px){.gnu-footer .col-6{width:100%!important}.footer-bottom-links{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.social-link,.footer-links li a,.footer-subscribe .input-group{transition:none!important}.social-link:hover,.footer-links li a:hover{transform:none!important}}

/* Balanced light footer: keeps the brand mark legible and separates navigation clearly. */
.gnu-footer{border-top:1px solid #dce5f0;background:linear-gradient(180deg,#f8faff 0%,#f2f6fb 100%)!important;color:#526176!important}
.gnu-footer:before{width:440px!important;height:440px!important;top:-260px!important;right:-140px!important;background:rgba(37,99,235,.06)!important}.gnu-footer:after{width:300px!important;height:300px!important;bottom:-180px!important;left:-100px!important;background:rgba(14,165,233,.045)!important}
.footer-main-grid{align-items:start}.footer-brand-column{padding-right:clamp(1rem,3vw,2.5rem)}
.footer-logo{display:inline-flex!important;align-items:center;max-width:100%;margin-bottom:1.1rem!important;padding:.5rem .65rem;border:1px solid #dbe5f0;border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(15,23,42,.05)}
.footer-logo-img{display:block!important;width:auto!important;height:50px!important;max-width:min(100%,260px)!important;object-fit:contain!important;filter:none!important;opacity:1!important;visibility:visible!important}
.footer-desc{color:#59697e!important}.footer-social-label{margin:0 0 .55rem;color:#34445a;font-size:.72rem;font-weight:800;letter-spacing:.025em}
.social-link{border-color:#d6e0ec!important;background:#fff!important;color:#52657d!important;box-shadow:0 5px 14px rgba(15,23,42,.045)}.social-link:hover{border-color:#2563eb!important;background:#2563eb!important;color:#fff!important}
.footer-heading{color:#172033!important}.footer-heading:after{background:linear-gradient(90deg,#2563eb,#60a5fa)!important}
.footer-links li a{color:#526176!important}.footer-links li a:before{color:#3b82f6!important}.footer-links li a:hover{color:#1d4ed8!important}
.footer-official-links li a{gap:.4rem}.footer-official-links li a i{color:#7b8ba1;font-size:.68rem}.footer-official-note{max-width:28ch;margin:.65rem 0 0;color:#718096;font-size:.67rem;line-height:1.55;text-wrap:pretty}
.footer-newsletter-column{padding:1.15rem!important;border:1px solid #d9e3ef;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.055)}
.footer-newsletter-column .footer-heading{margin-bottom:.7rem!important}.footer-newsletter-column .footer-desc{margin-bottom:.85rem!important}
.footer-subscribe .input-group{border-color:#cbd8e7!important;background:#f8fafc!important}.footer-subscribe .input-group:focus-within{border-color:#60a5fa!important;background:#fff!important}.footer-subscribe .form-control{color:#172033!important;background:transparent!important}.footer-subscribe .form-control::placeholder{color:#8493a7!important}.footer-subscribe-help{color:#718096!important}.footer-subscribe-error{color:#be123c!important}
.footer-contact p{color:#65768b!important}.footer-contact a{color:#315b94!important}.footer-contact a:hover{color:#1d4ed8!important}
.footer-divider{background:#d8e2ee!important}.copyright,.footer-creator{color:#637389!important}.copyright strong,.footer-creator strong{color:#34445a!important}.footer-bottom-links li a{color:#5e6f85!important}.footer-bottom-links li a:hover{color:#1d4ed8!important}

@media(max-width:1199.98px){.footer-brand-column{padding-right:1rem}.footer-newsletter-column{margin-top:.25rem}}
@media(max-width:767.98px){.footer-brand-column{padding-right:calc(var(--bs-gutter-x)*.5)}.footer-newsletter-column{order:5}.footer-bottom{text-align:left}.copyright{text-align:left!important}}
@media(max-width:575.98px){
    .footer-main-grid{--bs-gutter-y:1.75rem!important}.footer-logo{padding:.4rem .5rem}.footer-logo-img{height:44px!important}
    .footer-newsletter-column{margin-inline:calc(var(--bs-gutter-x)*.5);width:calc(100% - var(--bs-gutter-x))!important}
    .footer-official-note{max-width:34ch}.footer-social-label{font-size:.7rem}
}
@media(max-width:359.98px){.footer-newsletter-column{margin-inline:calc(var(--bs-gutter-x)*.5)}.footer-official-column{width:100%!important}}
