/* Buttons */
.jv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    padding: 11px 20px;
    border: 1px solid transparent;
    border-radius: var(--jv-radius-sm);
    font-family: var(--jv-font-display);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: transform 180ms var(--jv-ease), background-color 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.jv-btn svg {
    width: 18px;
    height: 18px;
    flex: none;
    transition: transform 180ms var(--jv-ease);
}

.jv-btn:hover svg {
    transform: translateX(3px);
}

.jv-btn:active {
    transform: translateY(1px);
}

.jv-btn--primary {
    background: var(--jv-navy);
    color: #fff;
    box-shadow: 0 6px 16px -8px rgba(38, 55, 115, 0.6);
}

.jv-btn--primary:hover {
    background: var(--jv-navy-deep);
    box-shadow: 0 10px 24px -10px rgba(38, 55, 115, 0.7);
}

html.dark .jv-btn--primary {
    background: var(--jv-mint);
    color: var(--jv-navy-ink);
}

html.dark .jv-btn--primary:hover {
    background: #a5ddc9;
}

.jv-btn--mint {
    background: var(--jv-mint);
    color: var(--jv-navy-ink);
}

.jv-btn--mint:hover {
    background: #a5ddc9;
    box-shadow: 0 10px 26px -12px rgba(144, 208, 186, 0.8);
}

.jv-btn--secondary {
    background: var(--jv-canvas-soft);
    color: var(--jv-ink);
    border-color: var(--jv-border);
}

.jv-btn--secondary:hover {
    border-color: var(--jv-border-strong);
    background: var(--jv-surface);
}

.jv-btn--ghost {
    background: transparent;
    color: var(--jv-ink);
    border-color: var(--jv-border-strong);
}

.jv-btn--ghost:hover {
    border-color: var(--jv-navy);
    background: var(--jv-mint-soft);
}

html.dark .jv-btn--ghost:hover {
    border-color: var(--jv-mint);
}

.jv-btn--ghost-light {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.32);
}

.jv-btn--ghost-light:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.6);
}

.jv-btn--light {
    background: #fff;
    color: var(--jv-navy);
}

.jv-btn--light:hover {
    background: var(--jv-mint);
    color: var(--jv-navy-ink);
}

.jv-btn--lg {
    min-height: 52px;
    padding: 15px 26px;
    font-size: 0.9375rem;
    border-radius: var(--jv-radius-md);
}

.jv-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--jv-navy);
    font-family: var(--jv-font-display);
    font-size: 0.9375rem;
    font-weight: 700;
    transition: gap 180ms var(--jv-ease), color 180ms ease;
}

.jv-link svg {
    width: 17px;
    height: 17px;
    transition: transform 180ms var(--jv-ease);
}

.jv-link:hover {
    gap: 12px;
    color: var(--jv-navy-deep);
}

.jv-link:hover svg {
    transform: translateX(2px);
}

html.dark .jv-link {
    color: var(--jv-mint);
}

.jv-link--sm {
    font-size: 0.8125rem;
}

.jv-link--sm svg {
    width: 15px;
    height: 15px;
}

.jv-pill {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 7px 13px 7px 10px;
    border: 1px solid var(--jv-border-strong);
    border-radius: var(--jv-radius-pill);
    background: var(--jv-glass);
    -webkit-backdrop-filter: blur(10px);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    font-family: var(--jv-font-mono);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--jv-navy);
}

html.dark .jv-pill {
    color: var(--jv-mint);
}

.jv-pill__pulse {
    position: relative;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--jv-success);
}

.jv-pill__pulse::after {
    content: "";
    position: absolute;
    inset: -4px;
    border: 1px solid var(--jv-success);
    border-radius: 50%;
    opacity: 0;
    animation: jvPulse 2.4s ease-out infinite;
}

@keyframes jvPulse {
    0% { transform: scale(0.5); opacity: 0.8; }
    70%, 100% { transform: scale(1.6); opacity: 0; }
}

.jv-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: var(--jv-radius-pill);
    font-family: var(--jv-font-mono);
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.jv-badge--mint {
    background: var(--jv-mint-soft);
    color: #0f766e;
    border: 1px solid rgba(144, 208, 186, 0.5);
}

html.dark .jv-badge--mint {
    color: var(--jv-mint);
}

.jv-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 11px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--jv-radius-pill);
    font-size: 0.75rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.86);
    white-space: nowrap;
}

.jv-check-list {
    display: grid;
    gap: 9px;
}

.jv-check-list li {
    position: relative;
    padding-left: 24px;
    font-size: 0.875rem;
    color: var(--jv-ink-soft);
}

.jv-check-list li::before {
    content: "";
    position: absolute;
    top: 0.45em;
    left: 0;
    width: 12px;
    height: 7px;
    border-left: 2px solid var(--jv-mint-strong);
    border-bottom: 2px solid var(--jv-mint-strong);
    transform: rotate(-45deg);
}

.jv-check-list--light li {
    color: rgba(255, 255, 255, 0.75);
}

/* Header */
.jv-topbar {
    background: var(--jv-navy-deep);
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.75rem;
}

.jv-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: var(--jv-topbar-h);
}

.jv-topbar__note {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.jv-topbar__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--jv-mint);
}

.jv-topbar__links {
    display: flex;
    align-items: center;
    gap: 20px;
}

.jv-topbar__experience {
    color: rgba(255, 255, 255, 0.55);
}

.jv-topbar__links a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: color 160ms ease;
}

.jv-topbar__links a:hover {
    color: var(--jv-mint);
}

.jv-topbar__links svg {
    width: 13px;
    height: 13px;
}

.jv-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--jv-glass);
    -webkit-backdrop-filter: blur(18px);
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
    border-bottom: 1px solid transparent;
    transition: border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
}

.jv-header.is-scrolled {
    background: var(--jv-glass);
    border-bottom-color: var(--jv-border);
    box-shadow: 0 6px 24px -18px rgba(15, 23, 42, 0.4);
}

.jv-header__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: var(--jv-header-h);
}

.jv-logo {
    display: inline-flex;
    flex: none;
    align-items: center;
}

.jv-logo img {
    width: 142px;
    height: auto;
}

html.dark .jv-logo {
    padding: 7px 9px;
    border-radius: 9px;
    background: #fff;
}

.jv-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
}

.jv-nav-item {
    position: relative;
}

.jv-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 10px 11px;
    border-radius: var(--jv-radius-sm);
    font-family: var(--jv-font-display);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--jv-ink-soft);
    white-space: nowrap;
    transition: color 160ms ease, background-color 160ms ease;
}

.jv-nav-link:hover,
.jv-nav-item.is-open > .jv-nav-link {
    color: var(--jv-navy);
    background: var(--jv-mint-soft);
}

html.dark .jv-nav-link:hover,
html.dark .jv-nav-item.is-open > .jv-nav-link {
    color: var(--jv-mint);
}

.jv-chevron {
    width: 13px;
    height: 13px;
    transition: transform 200ms var(--jv-ease);
}

.jv-nav-item.is-open .jv-chevron {
    transform: rotate(180deg);
}

.jv-mega {
    position: absolute;
    top: calc(100% + 14px);
    left: 50%;
    z-index: 120;
    width: 720px;
    padding: 0;
    border: 1px solid var(--jv-border);
    border-radius: var(--jv-radius-lg);
    background: var(--jv-surface);
    box-shadow: var(--jv-shadow-lg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 8px);
    transition: opacity 180ms ease, transform 220ms var(--jv-ease), visibility 180ms;
}

.jv-mega::before {
    content: "";
    position: absolute;
    top: -16px;
    left: 0;
    right: 0;
    height: 16px;
}

.jv-mega.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.jv-mega--wide {
    width: 740px;
}

.jv-mega--services {
    width: 660px;
}

.jv-mega--narrow {
    width: 320px;
}

.jv-mega--right {
    left: auto;
    right: 0;
    transform: translateY(8px);
}

.jv-mega--right.is-open {
    transform: translateY(0);
}

.jv-mega__head {
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--jv-border);
    background: var(--jv-canvas-soft);
    border-radius: var(--jv-radius-lg) var(--jv-radius-lg) 0 0;
}

.jv-mega__head p {
    margin-top: 6px;
    font-size: 0.8125rem;
    color: var(--jv-ink-mute);
}

.jv-mega__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px;
    padding: 12px;
}

.jv-mega__grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.jv-mega__item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    border-radius: var(--jv-radius-md);
    transition: background-color 150ms ease;
}

.jv-mega__item:hover {
    background: var(--jv-canvas-soft);
}

.jv-mega__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--jv-border);
    border-radius: 9px;
    background: var(--jv-mint-soft);
    color: var(--jv-navy);
}

html.dark .jv-mega__icon {
    color: var(--jv-mint);
}

.jv-mega__icon svg {
    width: 18px;
    height: 18px;
}

.jv-mega__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.jv-mega__label {
    font-family: var(--jv-font-display);
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--jv-ink);
}

.jv-mega__meta {
    font-family: var(--jv-font-mono);
    font-size: 0.5625rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--jv-ink-mute);
}

.jv-mega__desc {
    font-size: 0.75rem;
    line-height: 1.45;
    color: var(--jv-ink-mute);
}

.jv-mega__item--compact {
    align-items: center;
}

.jv-mega__list {
    padding: 10px;
}

.jv-mega__list-item {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 10px 12px;
    border-radius: var(--jv-radius-sm);
    transition: background-color 150ms ease;
}

a.jv-mega__list-item:hover {
    background: var(--jv-canvas-soft);
}

.jv-mega__list-item--muted {
    opacity: 0.55;
}

.jv-mega__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 24px;
    border-top: 1px solid var(--jv-border);
    background: var(--jv-canvas-soft);
    border-radius: 0 0 var(--jv-radius-lg) var(--jv-radius-lg);
    font-size: 0.75rem;
    color: var(--jv-ink-mute);
}

.jv-mega__foot a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: none;
    font-weight: 600;
    color: var(--jv-navy);
}

html.dark .jv-mega__foot a {
    color: var(--jv-mint);
}

.jv-header__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: none;
}

.jv-header__cta {
    padding: 10px 16px;
    font-size: 0.8125rem;
}

.jv-icon-btn {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--jv-border);
    border-radius: var(--jv-radius-sm);
    background: var(--jv-surface);
    color: var(--jv-ink-soft);
    transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease;
}

.jv-icon-btn:hover {
    border-color: var(--jv-border-strong);
    color: var(--jv-navy);
}

html.dark .jv-icon-btn:hover {
    color: var(--jv-mint);
}

.jv-icon-btn svg {
    width: 18px;
    height: 18px;
}

.jv-theme-toggle__sun {
    display: none;
}

html.dark .jv-theme-toggle__sun {
    display: block;
}

html.dark .jv-theme-toggle__moon {
    display: none;
}

.jv-menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    width: 40px;
    height: 40px;
    padding: 0 9px;
    border: 1px solid var(--jv-border);
    border-radius: var(--jv-radius-sm);
    background: var(--jv-surface);
}

.jv-menu-toggle span {
    display: block;
    height: 2px;
    border-radius: 2px;
    background: var(--jv-ink);
    transition: transform 220ms var(--jv-ease), opacity 160ms ease;
}

.jv-menu-toggle.is-active span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.jv-menu-toggle.is-active span:nth-child(2) {
    opacity: 0;
}

.jv-menu-toggle.is-active span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* Mobile drawer */
.jv-drawer {
    position: fixed;
    inset: 0;
    z-index: 150;
    visibility: hidden;
    pointer-events: none;
}

.jv-drawer.is-open {
    visibility: visible;
    pointer-events: auto;
}

.jv-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 16, 32, 0.5);
    -webkit-backdrop-filter: blur(4px);
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
    opacity: 0;
    transition: opacity 260ms ease;
}

.jv-drawer.is-open .jv-drawer__backdrop {
    opacity: 1;
}

.jv-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    width: min(420px, 100%);
    height: 100%;
    padding: 18px 20px 24px;
    background: var(--jv-canvas);
    border-left: 1px solid var(--jv-border);
    box-shadow: -20px 0 60px rgba(0, 0, 0, 0.18);
    transform: translateX(100%);
    transition: transform 340ms var(--jv-ease);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.jv-drawer.is-open .jv-drawer__panel {
    transform: none;
}

.jv-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--jv-border);
}

.jv-drawer__title {
    font-family: var(--jv-font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--jv-ink-mute);
}

.jv-drawer__nav {
    display: flex;
    flex-direction: column;
    padding: 10px 0;
}

.jv-drawer__group {
    border-bottom: 1px solid var(--jv-border);
}

.jv-drawer__group summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 2px;
    font-family: var(--jv-font-display);
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.jv-drawer__group summary::-webkit-details-marker {
    display: none;
}

.jv-drawer__group summary span {
    color: var(--jv-ink-mute);
    font-weight: 400;
    transition: transform 180ms ease;
}

.jv-drawer__group[open] summary span {
    transform: rotate(45deg);
}

.jv-drawer__sub {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 0 12px 4px;
}

.jv-drawer__sub a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 10px;
    border-radius: 6px;
    font-size: 0.875rem;
    color: var(--jv-ink-soft);
}

.jv-drawer__sub a:hover {
    background: var(--jv-canvas-soft);
    color: var(--jv-navy);
}

.jv-drawer__sub a span {
    font-family: var(--jv-font-mono);
    font-size: 0.5625rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--jv-ink-mute);
}

.jv-drawer__direct {
    padding: 15px 2px;
    font-family: var(--jv-font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--jv-navy);
}

html.dark .jv-drawer__direct {
    color: var(--jv-mint);
}

.jv-drawer__foot {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: auto;
    padding-top: 22px;
}

.jv-drawer__foot .jv-btn {
    width: 100%;
}

.jv-drawer__foot p {
    margin-top: 4px;
    font-size: 0.6875rem;
    color: var(--jv-ink-mute);
    text-align: center;
}

/* Footer */
.jv-footer {
    position: relative;
    background: var(--jv-navy-ink);
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.8125rem;
}

.jv-footer__top {
    display: grid;
    grid-template-columns: 1.6fr repeat(4, 1fr);
    gap: 40px;
    padding: 72px 0 52px;
}

.jv-footer__brand {
    max-width: 300px;
}

.jv-footer__logo {
    display: inline-block;
    padding: 9px 12px;
    border-radius: 10px;
    background: #fff;
}

.jv-footer__logo img {
    width: 140px;
    height: auto;
}

.jv-footer__brand p {
    margin-top: 18px;
    font-size: 0.8125rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.58);
}

.jv-footer__badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 18px;
    padding: 6px 10px;
    border: 1px solid rgba(144, 208, 186, 0.3);
    border-radius: var(--jv-radius-pill);
    font-family: var(--jv-font-mono);
    font-size: 0.5625rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--jv-mint);
}

.jv-footer__badge svg {
    width: 13px;
    height: 13px;
}

.jv-footer__col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
}

.jv-footer__col h2 {
    margin-bottom: 5px;
    font-family: var(--jv-font-mono);
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.68);
}

.jv-footer__col a {
    font-size: 0.8125rem;
    transition: color 160ms ease;
}

.jv-footer__col a:hover {
    color: var(--jv-mint);
}

.jv-footer__soon {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.62);
}

.jv-footer__soon em {
    padding: 1px 5px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 4px;
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--jv-font-mono);
    font-size: 0.5rem;
    font-style: normal;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.jv-footer__contact {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 28px;
    padding: 18px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.75rem;
}

.jv-footer__contact a,
.jv-footer__contact span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: color 160ms ease;
}

.jv-footer__contact a:hover {
    color: var(--jv-mint);
}

.jv-footer__contact svg {
    width: 14px;
    height: 14px;
    color: var(--jv-mint);
}

.jv-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 0;
    font-size: 0.6875rem;
    color: rgba(255, 255, 255, 0.62);
}

.jv-footer__legal {
    display: flex;
    align-items: center;
    gap: 20px;
}

.jv-footer__legal a:hover {
    color: var(--jv-mint);
}

.jv-footer__social {
    display: flex;
    align-items: center;
    gap: 10px;
}

.jv-footer__social a {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 6px;
    transition: color 160ms ease, border-color 160ms ease;
}

.jv-footer__social a:hover {
    color: var(--jv-mint);
    border-color: rgba(144, 208, 186, 0.4);
}

.jv-footer__social svg {
    width: 12px;
    height: 12px;
}

.jv-backtop {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 90;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--jv-border);
    border-radius: 50%;
    background: var(--jv-surface);
    color: var(--jv-navy);
    box-shadow: var(--jv-shadow-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 200ms ease, transform 200ms var(--jv-ease), visibility 200ms, color 160ms ease;
}

.jv-backtop.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.jv-backtop:hover {
    color: var(--jv-mint-strong);
}

.jv-backtop svg {
    width: 18px;
    height: 18px;
}

@media (max-width: 1200px) {
    .jv-nav {
        display: none;
    }

    .jv-header__actions {
        margin-left: auto;
    }

    .jv-menu-toggle {
        display: flex;
    }

    .jv-topbar__experience {
        display: none;
    }
}

@media (max-width: 1080px) {
    .jv-footer__top {
        grid-template-columns: 1.4fr repeat(2, 1fr);
        gap: 36px;
    }

    .jv-footer__brand {
        grid-row: span 2;
        max-width: none;
    }
}

@media (max-width: 800px) {
    .jv-topbar__note {
        font-size: 0.6875rem;
    }

    .jv-topbar__links a:last-child {
        display: none;
    }

    .jv-footer__top {
        grid-template-columns: repeat(2, 1fr);
        padding: 56px 0 40px;
    }

    .jv-footer__brand {
        grid-column: 1 / -1;
        grid-row: auto;
        max-width: 420px;
    }

    .jv-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }
}

@media (max-width: 560px) {
    .jv-topbar__inner {
        justify-content: center;
    }

    .jv-topbar__links {
        display: none;
    }

    .jv-logo img {
        width: 124px;
    }

    .jv-header__cta {
        display: none;
    }

    .jv-footer__top {
        gap: 30px 22px;
    }

    .jv-footer__contact {
        flex-direction: column;
        gap: 10px;
    }

    .jv-footer__legal {
        flex-wrap: wrap;
        gap: 12px 18px;
    }

    .jv-backtop {
        right: 16px;
        bottom: 16px;
    }
}

/* ===== Main navigation: a distinct layout per menu ===== */
.jv-header__inner{position:relative}
.jv-nav-item--mega{position:static}
.jv-btn--sm{padding:9px 16px;font-size:.8125rem;min-height:0}
.jv-mega--products,.jv-mega--solutions,.jv-mega--industries,.jv-mega--services{left:50%;max-width:calc(100vw - 48px);overflow:hidden}
.jv-mega--products{width:1000px}
.jv-mega--solutions{width:980px}
.jv-mega--industries{width:960px}
.jv-mega--services{width:960px}
.jv-mega b{font-family:var(--jv-font-display);font-weight:700;color:var(--jv-ink)}
.jv-mega i{font-style:normal}

/* Products: flagship banner + product cards */
.jv-mp{display:flex;flex-direction:column;gap:14px;padding:16px}
.jv-mp__feature{position:relative;display:flex;align-items:center;gap:22px;padding:24px 26px;border-radius:18px;background:linear-gradient(120deg,var(--jv-navy) 0%,#1d2f6b 62%,#17484f 100%);color:#fff;overflow:hidden;transition:box-shadow .25s}
.jv-mp__feature::after{content:"";position:absolute;right:-60px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(111,226,190,.35),transparent 70%);pointer-events:none}
.jv-mp__feature:hover{box-shadow:0 20px 36px -22px rgba(23,40,100,.9)}
.jv-mp__icon{display:grid;flex:none;place-items:center;width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:var(--jv-mint)}
.jv-mp__icon svg{width:32px;height:32px}
.jv-mp__body{position:relative;display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.jv-mp__badge{align-self:flex-start;padding:3px 10px;border-radius:999px;background:rgba(111,226,190,.18);color:var(--jv-mint);font:700 .6rem var(--jv-font-mono);letter-spacing:.1em;text-transform:uppercase}
.jv-mp__feature strong{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;font:800 1.55rem var(--jv-font-display);letter-spacing:-.02em;color:#fff}
.jv-mp__feature strong em{font:600 .68rem var(--jv-font-mono);letter-spacing:.06em;text-transform:uppercase;font-style:normal;color:var(--jv-mint)}
.jv-mp__desc{font-size:.85rem;line-height:1.5;color:rgba(255,255,255,.82)}
.jv-mp__go{position:relative;display:inline-flex;flex:none;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;background:var(--jv-mint);color:var(--jv-navy-ink);font-weight:700;font-size:.85rem;transition:transform .2s}
.jv-mp__go svg{width:16px;height:16px}
.jv-mp__feature:hover .jv-mp__go{transform:translateX(4px)}
.jv-mp__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.jv-mp__card{position:relative;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--jv-border);border-radius:16px;background:var(--jv-surface);overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}
.jv-mp__card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--acc)}
.jv-mp__card:hover{transform:translateY(-3px);border-color:var(--acc);box-shadow:0 16px 28px -18px var(--acc)}
.jv-mp__ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--acc) 15%,transparent);color:var(--acc)}
.jv-mp__ico svg{width:22px;height:22px}
.jv-mp__txt{display:flex;flex-direction:column;gap:3px}
.jv-mp__txt b{font-size:.95rem}
.jv-mp__txt em{font:600 .62rem var(--jv-font-mono);letter-spacing:.05em;text-transform:uppercase;font-style:normal;color:var(--acc)}
.jv-mp__txt i{margin-top:4px;font-size:.74rem;line-height:1.45;color:var(--jv-ink-mute)}

/* Solutions: problem tiles + aside */
.jv-ms{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr)}
.jv-ms__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}
.jv-ms__tile{display:flex;gap:12px;padding:14px;border:1px solid var(--jv-border);border-radius:14px;background:var(--jv-surface);transition:transform .2s,border-color .2s,box-shadow .2s}
.jv-ms__tile:hover{transform:translateY(-2px);border-color:var(--jv-mint-strong);box-shadow:0 14px 26px -18px rgba(38,55,115,.55)}
.jv-ms__icon{display:grid;flex:none;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--jv-mint-soft),var(--jv-surface));border:1px solid var(--jv-mint-strong);color:var(--jv-mint-strong)}
.jv-ms__icon svg{width:18px;height:18px}
.jv-ms__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.jv-ms__txt b{font-size:.83rem;line-height:1.25}.jv-ms__txt i{font-size:.72rem;line-height:1.4;color:var(--jv-ink-mute)}
.jv-ms__aside{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:26px;background:var(--jv-canvas-soft);border-left:1px solid var(--jv-border)}
.jv-ms__aside h3{margin:0;font:800 1.2rem/1.25 var(--jv-font-display);color:var(--jv-ink)}
.jv-ms__aside p{margin:0;font-size:.82rem;line-height:1.55;color:var(--jv-ink-mute)}
.jv-ms__link{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.82rem;color:var(--jv-navy)}
html.dark .jv-ms__link{color:var(--jv-mint)}
.jv-ms__link svg{width:14px;height:14px}

/* Industries: tab list + live preview pane */
.jv-mi{display:grid;grid-template-columns:340px minmax(0,1fr);min-height:380px}
.jv-mi__tabs{display:flex;flex-direction:column;gap:4px;padding:14px;border-right:1px solid var(--jv-border);background:var(--jv-canvas-soft)}
.jv-mi__tab{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid transparent;border-radius:14px;transition:background .15s,border-color .15s}
.jv-mi__tab>svg{width:16px;height:16px;margin-left:auto;opacity:0;transform:translateX(-4px);transition:opacity .15s,transform .15s;color:var(--acc)}
.jv-mi__tab.is-active{background:var(--jv-surface);border-color:var(--acc);box-shadow:0 10px 22px -16px var(--acc)}
.jv-mi__tab.is-active>svg{opacity:1;transform:none}
.jv-mi__icon{display:grid;flex:none;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--acc)}
.jv-mi__icon svg{width:19px;height:19px}
.jv-mi__name{font:700 .85rem/1.25 var(--jv-font-display);color:var(--jv-ink)}
.jv-mi__stage{position:relative;overflow:hidden}
.jv-mi__pane{position:absolute;inset:0;display:none;flex-direction:column;justify-content:center;gap:10px;padding:34px 40px;background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 12%,var(--jv-surface)) 0%,var(--jv-surface) 70%)}
.jv-mi__pane.is-active{display:flex;animation:jvMiIn .3s ease}
@keyframes jvMiIn{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.jv-mi__ghost{position:absolute;right:-20px;bottom:-30px;width:230px;height:230px;color:var(--acc);opacity:.1;pointer-events:none}
.jv-mi__ghost svg{width:100%;height:100%;stroke-width:1}
.jv-mi__kicker{align-self:flex-start;padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--acc);font:700 .66rem var(--jv-font-mono);letter-spacing:.07em;text-transform:uppercase}
.jv-mi__pane h3{margin:0;font:800 1.65rem/1.2 var(--jv-font-display);letter-spacing:-.02em;color:var(--jv-ink)}
.jv-mi__pane p{margin:0;max-width:50ch;font-size:.9rem;line-height:1.6;color:var(--jv-ink-mute)}
.jv-mi__pane ul{display:grid;gap:6px;margin:4px 0 0;padding:0;list-style:none}
.jv-mi__pane li{position:relative;padding-left:20px;font-size:.8rem;line-height:1.45;color:var(--jv-ink)}
.jv-mi__pane li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--acc)}
.jv-mi__cta{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:10px;padding:11px 18px;border-radius:999px;background:var(--acc);color:#fff;font-weight:700;font-size:.85rem}
.jv-mi__cta svg{width:16px;height:16px;transition:transform .2s}
.jv-mi__cta:hover svg{transform:translateX(4px)}

/* Services: intro column + numbered index */
.jv-mv{display:grid;grid-template-columns:280px minmax(0,1fr)}
.jv-mv__intro{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:28px;background:var(--jv-canvas-soft);border-right:1px solid var(--jv-border)}
.jv-mv__intro h3{margin:0;font:800 1.25rem/1.25 var(--jv-font-display);color:var(--jv-ink)}
.jv-mv__intro p{margin:0;font-size:.82rem;line-height:1.55;color:var(--jv-ink-mute)}
.jv-mv__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:12px;list-style:none;gap:0 6px;align-content:start}
.jv-mv__list a{display:flex;align-items:baseline;gap:10px;padding:13px 10px;border-bottom:1px dashed var(--jv-border);transition:background .15s,padding-left .2s}
.jv-mv__list a:hover{background:var(--jv-canvas-soft);padding-left:14px}
.jv-mv__n{flex:none;font:700 .7rem var(--jv-font-mono);color:var(--jv-mint-strong)}
.jv-mv__l{font:600 .82rem/1.3 var(--jv-font-display);color:var(--jv-ink)}

/* Company: editorial list */
.jv-mega--company{width:340px;padding:0}
.jv-mc{margin:0;padding:8px;list-style:none}
.jv-mc a{position:relative;display:grid;gap:2px;padding:14px 44px 14px 18px;border-left:3px solid transparent;border-radius:0 12px 12px 0;transition:background .15s,border-color .15s}
.jv-mc a:hover{background:var(--jv-canvas-soft);border-left-color:var(--jv-mint-strong)}
.jv-mc__t{display:flex;align-items:center;gap:8px}
.jv-mc b{font-size:.92rem}
.jv-mc em{padding:2px 8px;border-radius:999px;background:var(--jv-mint-soft);color:var(--jv-mint-strong);font:700 .6rem var(--jv-font-mono);letter-spacing:.06em;text-transform:uppercase;font-style:normal}
.jv-mc i{font-size:.75rem;color:var(--jv-ink-mute)}
.jv-mc__arrow{position:absolute;right:16px;top:50%;translate:0 -50%;opacity:0;transition:opacity .15s,right .2s;color:var(--jv-mint-strong)}
.jv-mc__arrow svg{width:16px;height:16px}
.jv-mc a:hover .jv-mc__arrow{opacity:1;right:12px}

/* Resources: icon cards */
.jv-mega--resources{width:340px}
.jv-mr{display:grid;gap:8px;padding:12px}
.jv-mr__card{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--jv-border);border-radius:16px;background:var(--jv-surface);transition:transform .2s,border-color .2s,box-shadow .2s}
.jv-mr__card:hover{transform:translateX(-3px);border-color:var(--jv-mint-strong);box-shadow:0 12px 24px -18px rgba(38,55,115,.5)}
.jv-mr__icon{display:grid;flex:none;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--jv-navy);color:var(--jv-mint)}
.jv-mr__icon svg{width:21px;height:21px}
.jv-mr__txt{display:flex;flex-direction:column;gap:2px}.jv-mr__txt b{font-size:.9rem}.jv-mr__txt i{font-size:.74rem;color:var(--jv-ink-mute)}
html.dark .jv-mr__icon{background:rgba(255,255,255,.08)}
@media (max-width:1280px){.jv-mega--industries{width:880px}.jv-mv{grid-template-columns:230px 1fr}}

/* Mobile: comfortable tap targets and no horizontal bleed */
html{overflow-x:clip}
.jv-backtop{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}
@media (pointer:coarse){
    .jv-link,.jv-footer__col a,.jv-footer__legal>a{display:inline-flex;align-items:center;min-height:40px}
}

/* Mobile drawer: roomier, two-line items, clear open state */
.jv-drawer__panel{padding-bottom:max(20px,env(safe-area-inset-bottom))}
.jv-drawer__group summary{min-height:56px;padding:0 4px}
.jv-drawer__group summary span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--jv-canvas-soft);font-size:1.1rem}
.jv-drawer__group[open]>summary{color:var(--jv-navy)}
html.dark .jv-drawer__group[open]>summary{color:var(--jv-mint)}
.jv-drawer__sub{margin:0 0 14px 6px;padding:2px 0 2px 14px;border-left:2px solid var(--jv-mint-strong);gap:0}
.jv-drawer__sub a{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-height:48px;padding:8px 10px;font-size:.92rem;font-weight:600;color:var(--jv-ink)}
.jv-drawer__sub a span{font-size:.62rem;font-weight:500;letter-spacing:.03em;text-transform:none;color:var(--jv-ink-mute)}
.jv-drawer__direct{display:flex;align-items:center;min-height:56px}
@media (max-width:520px){.jv-ind-theme .jv-svc-hero__cta .jv-btn,.jv-btn--lg{min-height:48px}}

/* ===== Footer: link groups ===== */
.jv-fd summary{list-style:none;cursor:default;pointer-events:none}
.jv-fd summary::-webkit-details-marker{display:none}
.jv-fd summary i{display:none}
.jv-fd__links{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.jv-footer__col h2{margin:0 0 9px}

/* ===== Footer: calm, scannable mobile layout ===== */
@media (max-width:760px){
    .jv-footer__top{display:flex;flex-direction:column;gap:0;padding:40px 0 8px}
    .jv-footer__brand{max-width:none;margin-bottom:24px}
    .jv-footer__brand p{display:none}
    .jv-footer__logo img{width:140px}
    .jv-footer__badge{margin-top:14px}
    .jv-footer__col{display:block;border-top:1px solid rgba(255,255,255,.1)}
    .jv-fd summary{display:flex;align-items:center;justify-content:space-between;min-height:54px;cursor:pointer;pointer-events:auto}
    .jv-footer__col h2{margin:0;font-size:.72rem}
    .jv-fd summary i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.08);position:relative}
    .jv-fd summary i::before,.jv-fd summary i::after{content:"";position:absolute;width:10px;height:1.5px;background:var(--jv-mint);transition:transform .2s}
    .jv-fd summary i::after{transform:rotate(90deg)}
    .jv-fd[open] summary i::after{transform:rotate(0)}
    .jv-fd__links{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:0 0 14px}
    .jv-fd__links a{min-height:42px}
    .jv-footer__soon{display:none}
    .jv-footer__contact{flex-direction:row;flex-wrap:wrap;gap:10px;padding:18px 0;border-top:1px solid rgba(255,255,255,.1)}
    .jv-footer__contact a{flex:1 1 100%;min-height:44px;padding:0 14px;border:1px solid rgba(255,255,255,.14);border-radius:12px;justify-content:center}
    .jv-footer__bottom{gap:14px;padding:18px 0 28px;border-top:1px solid rgba(255,255,255,.1)}
    .jv-footer__bottom p{font-size:.72rem}
    .jv-footer__legal{width:100%;justify-content:flex-start}
}
@media (max-width:760px){
    .jv-footer__bottom{padding-bottom:84px}
    .jv-footer__legal{flex-wrap:wrap;gap:10px 18px}
    .jv-footer__social{flex:1 1 100%;margin-top:4px}
}

@media (max-width:760px){
    .jv-footer__legal{gap:6px 22px}
    .jv-footer__logo{padding:10px 14px;border-radius:12px;line-height:0}
    .jv-footer__logo img{width:148px;display:block}
    .jv-footer__social{gap:12px;margin-top:6px}
    .jv-footer__social a{width:44px;height:44px;border-radius:50%;border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.05)}
    .jv-footer__social svg{width:18px;height:18px}
}

.jv-turnstile{margin:6px 0 14px;min-height:65px}
