/* InstaPaket theme control v128
   Isolated from legacy .ip-theme-toggle-* rules on purpose. */

:root {
    --ip-theme-transition-x: calc(100vw - 44px);
    --ip-theme-transition-y: 44px;
    --ip-theme-motion: cubic-bezier(.22, 1, .36, 1);
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle],
html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] {
    --ip-switch-w: 60px;
    --ip-switch-h: 32px;
    --ip-switch-thumb: 26px;
    --ip-switch-inset: 2px;
    position: relative !important;
    isolation: isolate !important;
    display: inline-grid !important;
    place-items: center !important;
    flex: 0 0 68px !important;
    width: 68px !important;
    min-width: 68px !important;
    max-width: 68px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 6px 4px !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow: none !important;
    color: inherit !important;
    line-height: 1 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch,
html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch {
    position: relative !important;
    isolation: isolate !important;
    display: block !important;
    width: var(--ip-switch-w) !important;
    min-width: var(--ip-switch-w) !important;
    max-width: var(--ip-switch-w) !important;
    height: var(--ip-switch-h) !important;
    min-height: var(--ip-switch-h) !important;
    max-height: var(--ip-switch-h) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(148, 163, 184, .44) !important;
    border-radius: 999px !important;
    background:
        radial-gradient(circle at 22% 18%, rgba(255, 255, 255, .96) 0 6%, transparent 30%),
        linear-gradient(135deg, #fff4c7 0%, #f5f9ff 52%, #e6f1ff 100%) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .92),
        inset 0 -1px 0 rgba(100, 116, 139, .1),
        0 5px 14px rgba(15, 23, 42, .13) !important;
    box-sizing: border-box !important;
    transform: translateZ(0) !important;
    transition:
        background .42s var(--ip-theme-motion),
        border-color .32s ease,
        box-shadow .36s var(--ip-theme-motion),
        transform .2s var(--ip-theme-motion) !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::before,
html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    border-radius: inherit !important;
    background:
        radial-gradient(circle at 20% 72%, rgba(255, 255, 255, .72) 0 3%, transparent 4%),
        radial-gradient(circle at 78% 26%, rgba(99, 102, 241, .13) 0 4%, transparent 22%) !important;
    opacity: .9 !important;
    pointer-events: none !important;
    transition: opacity .36s ease, transform .42s var(--ip-theme-motion) !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::after,
html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    border-radius: inherit !important;
    background:
        radial-gradient(circle at 18% 28%, rgba(255, 255, 255, .62) 0 1px, transparent 1.5px),
        radial-gradient(circle at 36% 68%, rgba(199, 210, 254, .52) 0 1px, transparent 1.5px),
        radial-gradient(circle at 72% 20%, rgba(165, 180, 252, .38) 0 1px, transparent 1.5px),
        linear-gradient(135deg, #111831 0%, #1b2146 54%, #29275a 100%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .4s var(--ip-theme-motion) !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__thumb,
html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__thumb {
    position: absolute !important;
    top: var(--ip-switch-inset) !important;
    left: var(--ip-switch-inset) !important;
    right: auto !important;
    z-index: 2 !important;
    display: block !important;
    width: var(--ip-switch-thumb) !important;
    min-width: var(--ip-switch-thumb) !important;
    max-width: var(--ip-switch-thumb) !important;
    height: var(--ip-switch-thumb) !important;
    min-height: var(--ip-switch-thumb) !important;
    max-height: var(--ip-switch-thumb) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, .96) !important;
    border-radius: 50% !important;
    background: linear-gradient(145deg, #ffffff 0%, #fffaf0 100%) !important;
    box-shadow:
        0 3px 8px rgba(15, 23, 42, .2),
        0 1px 2px rgba(15, 23, 42, .12),
        inset 0 1px 1px rgba(255, 255, 255, .94) !important;
    box-sizing: border-box !important;
    transform: translate3d(0, 0, 0) !important;
    transition:
        transform .42s var(--ip-theme-motion),
        background .34s ease,
        border-color .34s ease,
        box-shadow .34s ease !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon,
html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon {
    position: absolute !important;
    top: var(--ip-switch-inset) !important;
    z-index: 3 !important;
    display: grid !important;
    place-items: center !important;
    width: var(--ip-switch-thumb) !important;
    min-width: var(--ip-switch-thumb) !important;
    max-width: var(--ip-switch-thumb) !important;
    height: var(--ip-switch-thumb) !important;
    min-height: var(--ip-switch-thumb) !important;
    max-height: var(--ip-switch-thumb) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: 14px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
    transition:
        color .3s ease,
        opacity .3s ease,
        transform .42s var(--ip-theme-motion) !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon i,
html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon i::before {
    display: block !important;
    margin: 0 !important;
    color: inherit !important;
    font-size: inherit !important;
    line-height: 1 !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon--sun {
    left: var(--ip-switch-inset) !important;
    right: auto !important;
    color: #dc8500 !important;
    opacity: 1 !important;
    transform: scale(1) rotate(0deg) !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon--moon {
    right: var(--ip-switch-inset) !important;
    left: auto !important;
    color: #64748b !important;
    opacity: .48 !important;
    transform: scale(.78) rotate(12deg) !important;
}

html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch {
    border-color: rgba(129, 140, 248, .48) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .1),
        inset 0 -1px 0 rgba(2, 6, 23, .48),
        0 6px 16px rgba(2, 6, 23, .34) !important;
}

html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::before {
    opacity: .58 !important;
    transform: translateX(10%) !important;
}

html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::after {
    opacity: 1 !important;
}

html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__thumb {
    border-color: rgba(224, 231, 255, .94) !important;
    background: linear-gradient(145deg, #ffffff 0%, #e8eaff 100%) !important;
    box-shadow:
        0 3px 9px rgba(2, 6, 23, .42),
        0 0 0 1px rgba(129, 140, 248, .14),
        inset 0 1px 1px rgba(255, 255, 255, .95) !important;
    transform: translate3d(calc(var(--ip-switch-w) - var(--ip-switch-thumb) - var(--ip-switch-inset) - var(--ip-switch-inset) - 2px), 0, 0) !important;
}

html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon--sun {
    color: #fbbf24 !important;
    opacity: .5 !important;
    transform: scale(.76) rotate(-16deg) !important;
}

html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon--moon {
    color: #4f46a5 !important;
    opacity: 1 !important;
    transform: scale(1) rotate(0deg) !important;
}

@media (hover: hover) and (pointer: fine) {
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle]:hover .ip-theme-switch {
        border-color: rgba(99, 102, 241, .62) !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .94),
            0 8px 19px rgba(37, 99, 235, .17) !important;
        transform: translateY(-1px) !important;
    }

    html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle]:hover .ip-theme-switch {
        border-color: rgba(165, 180, 252, .7) !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .12),
            0 8px 20px rgba(2, 6, 23, .46),
            0 0 16px rgba(99, 102, 241, .14) !important;
    }
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle]:active .ip-theme-switch {
    transform: translateY(0) scale(.97) !important;
    transition-duration: .1s !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle]:focus,
html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle]:focus-visible {
    outline: 0 !important;
}

html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle]:focus-visible .ip-theme-switch {
    border-color: #6366f1 !important;
    box-shadow:
        0 0 0 3px rgba(99, 102, 241, .24),
        0 0 0 6px rgba(255, 255, 255, .9),
        0 6px 16px rgba(15, 23, 42, .16) !important;
}

html[data-theme="dark"][data-ip-theme="dark"] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle]:focus-visible .ip-theme-switch {
    box-shadow:
        0 0 0 3px rgba(129, 140, 248, .32),
        0 0 0 6px rgba(8, 14, 26, .92),
        0 7px 18px rgba(2, 6, 23, .42) !important;
}

html[data-ip-theme-switching="true"]::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    pointer-events: none;
    background: radial-gradient(circle at var(--ip-theme-transition-x) var(--ip-theme-transition-y), rgba(129, 140, 248, .16), transparent min(42vw, 520px));
    animation: ip-theme-ambient-v128 .56s var(--ip-theme-motion) both;
}

@keyframes ip-theme-ambient-v128 {
    0% { opacity: 0; }
    30% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes ip-theme-reveal-v128 {
    from { clip-path: circle(0 at var(--ip-theme-transition-x) var(--ip-theme-transition-y)); }
    to { clip-path: circle(150vmax at var(--ip-theme-transition-x) var(--ip-theme-transition-y)); }
}

::view-transition-old(root) {
    z-index: 1;
    animation: none;
}

::view-transition-new(root) {
    z-index: 2;
    animation: ip-theme-reveal-v128 .52s var(--ip-theme-motion) both;
}

html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] body,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] header,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] main,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] section,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] footer,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .wrapper,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-header-main,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-header-search,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-header-tool,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-notify-btn,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-desktop-nav-link,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-desktop-submenu,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-platform-services-section,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-platform-card,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-package-card,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-expertise-card,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-proof-card,
html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"] .ip-footer {
    transition: none !important;
}

html[data-ip-theme-view-transition="true"][data-ip-theme-switching="true"]::after {
    display: none !important;
}

@media (max-width: 767.98px) {
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle],
    html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] {
        --ip-switch-w: 56px;
        --ip-switch-h: 30px;
        --ip-switch-thumb: 24px;
        --ip-switch-inset: 2px;
        flex-basis: 64px !important;
        width: 64px !important;
        min-width: 64px !important;
        max-width: 64px !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        padding-block: 7px !important;
    }

    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon {
        font-size: 13px !important;
    }
}

@media (max-width: 430px) {
    html body header.ip-modern-header .ip-header-actions .ip-notify-wrap,
    html[data-theme][data-ip-theme] body header.ip-modern-header .ip-header-actions .ip-notify-wrap {
        display: none !important;
    }
}

@media (max-width: 340px) {
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle],
    html[data-theme][data-ip-theme] body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] {
        --ip-switch-w: 50px;
        --ip-switch-h: 28px;
        --ip-switch-thumb: 22px;
        --ip-switch-inset: 2px;
        flex-basis: 56px !important;
        width: 56px !important;
        min-width: 56px !important;
        max-width: 56px !important;
        height: 42px !important;
        min-height: 42px !important;
        max-height: 42px !important;
        padding: 7px 3px !important;
    }

    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon {
        font-size: 12px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch,
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::before,
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch::after,
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__thumb,
    html body header.ip-modern-header .ip-mode-btn[data-ip-theme-toggle] .ip-theme-switch__icon,
    html[data-ip-theme-switching="true"]::after,
    ::view-transition-old(root),
    ::view-transition-new(root) {
        animation: none !important;
        transition-duration: .01ms !important;
    }
}
