/* ===== 2026 tech aesthetic upgrade (safe overrides) ===== */
:root {
    --tech-ink: #0f1f33;
    --tech-subtext: #526376;
    --tech-cyan: #59d0ff;
    --tech-blue: #2b8ed3;
    --tech-header-bg-top: rgba(241, 248, 255, 0.9);
    --tech-header-bg-bottom: rgba(228, 240, 251, 0.82);
    --tech-surface: #f5f9ff;
    --tech-border: #dbe7f5;
    --tech-shadow: 0 14px 38px rgba(13, 45, 75, 0.12);
    --tech-glow: 0 0 0 1px rgba(89, 208, 255, 0.45), 0 0 24px rgba(89, 208, 255, 0.2);
}

body {
    color: var(--tech-ink);
    background-color: #f8fbff;
    background-image:
        radial-gradient(circle at 14% -8%, rgba(93, 166, 217, 0.22) 0%, rgba(93, 166, 217, 0) 50%),
        linear-gradient(180deg, #f9fcff 0%, #eff5fb 60%, #f7fbff 100%);
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    opacity: 0.45;
    background-image:
        linear-gradient(rgba(43, 142, 211, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(43, 142, 211, 0.08) 1px, transparent 1px);
    background-size: 30px 30px;
}

.tech-canvas-bg {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -2;
    opacity: 0.86;
    filter: saturate(145%);
}

header {
    background: linear-gradient(180deg, var(--tech-header-bg-top) 0%, var(--tech-header-bg-bottom) 100%);
    backdrop-filter: blur(14px) saturate(145%);
    border-bottom: 0;
    box-shadow: 0 2px 10px rgba(15, 31, 51, 0.06);
}

header::after {
    content: none;
}

.com_wrapHeader {
    align-items: center;
}

.com_header_logo_span {
    display: flex;
    align-items: center;
    color: var(--tech-ink);
    font-weight: 700;
    letter-spacing: 0.03em;
    padding-top: 0;
    padding-bottom: 0;
}

.com_header_mainlinks .com_header_link {
    color: #13273f;
    border-bottom-color: transparent;
    transition: color 0.22s ease, border-color 0.22s ease;
}

@media screen and (min-width: 768px) {
    .com_header_wraplink-hasSubs>button.com_header_link {
        border: 0;
        border-bottom: 0.3em solid transparent;
        background: transparent;
        font-family: inherit;
        font-size: inherit;
        font-weight: 700;
        line-height: 1.2;
        -webkit-appearance: none;
        appearance: none;
        cursor: pointer;
    }

    .com_header_wraplink-hasSubs>button.com_header_link:focus-visible {
        outline: 2px solid rgba(89, 208, 255, 0.55);
        outline-offset: 3px;
    }
}

.com_header_mainlinks .com_header_link:hover,
.com_header_link.is-current-page,
.com_header_submainlink.is-current-page {
    color: var(--tech-blue);
    border-bottom-color: var(--tech-cyan);
}

.com_header_wrapsub {
    background:
        radial-gradient(circle at 100% 0%, rgba(86, 203, 255, 0.18) 0%, rgba(86, 203, 255, 0) 36%),
        linear-gradient(180deg, rgba(16, 41, 68, 0.96) 0%, rgba(11, 30, 52, 0.97) 100%);
    border: 1px solid rgba(98, 211, 255, 0.44);
    border-radius: 10px;
    box-shadow: 0 14px 32px rgba(9, 21, 36, 0.36), 0 0 0 1px rgba(86, 203, 255, 0.2);
    backdrop-filter: blur(6px) saturate(125%);
    overflow: hidden;
}

.com_header_wrapsub::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(rgba(98, 211, 255, 0.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(98, 211, 255, 0.12) 1px, transparent 1px);
    background-size: 18px 18px;
    opacity: 0.22;
}

.com_header_wrapsub::after {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: 9px;
    pointer-events: none;
    box-shadow: inset 0 1px 0 rgba(214, 244, 255, 0.24), inset 0 -1px 0 rgba(53, 170, 224, 0.24);
}

.com_header_wrapsub a,
.com_header_wrapsub span {
    color: rgba(240, 248, 255, 0.95);
    position: relative;
    z-index: 1;
}

.com_header_wrapsub a:after {
    border-top-color: rgba(240, 248, 255, 0.9);
    border-right-color: rgba(240, 248, 255, 0.9);
}

.index_kv {
    position: relative;
    overflow: hidden;
}

.index_kv::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 80% 24%, rgba(89, 208, 255, 0.28) 0%, rgba(89, 208, 255, 0) 35%),
        repeating-linear-gradient(90deg, rgba(120, 176, 215, 0.15) 0, rgba(120, 176, 215, 0.15) 1px, transparent 1px, transparent 24px);
}

.index_kvgrad {
    background: linear-gradient(98deg, rgba(15, 31, 51, 0.66) 0%, rgba(15, 31, 51, 0.25) 45%, rgba(15, 31, 51, 0) 76%);
}

.index_kv_inner {
    position: relative;
    z-index: 1;
}

.index_kv_inner h2 {
    max-width: 27ch;
    text-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
    animation: kv-title-float 1.2s ease both;
}

@keyframes kv-title-float {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.com_bigttl,
.com_bigttl-al_center {
    color: var(--tech-ink);
    letter-spacing: 0.015em;
}

.com_bigttl small,
.com_bigttl-al_center small,
.com_smallttl,
.com_smallttl-al_center {
    color: var(--tech-subtext);
}

.com_sect_home-bg_gray {
    background: linear-gradient(180deg, #f4f9ff 0%, #edf5ff 100%);
}

.biz-card-home {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: none;
    transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.biz-card-home::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
    background: none;
}

.biz-card-home:hover {
    transform: translateY(-6px);
    box-shadow: none;
}

.index_wrapbiz-al_center {
    position: relative;
    z-index: 1;
}

.biz-card-home .index_bizdisc {
    color: rgba(255, 255, 255, 0.95);
    line-height: 1.86;
}

.com_listnews {
    border: 1px solid var(--tech-border);
    background: linear-gradient(180deg, #ffffff 0%, var(--tech-surface) 100%);
    border-radius: 12px;
    box-shadow: 0 8px 18px rgba(15, 31, 51, 0.08);
    margin-bottom: 0.75rem;
    padding: 0;
    align-items: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.com_listnews:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 24px rgba(15, 31, 51, 0.12);
}

.com_newsdate {
    color: var(--tech-blue);
}

.com_newstitle p {
    margin: 0;
}

.com_newstitle {
    padding: 1.1em 1.5em 1.1em 0.6em;
    display: flex;
    align-items: center;
}

footer {
    border-top: 0;
    background: transparent;
}

footer .com_sect_home {
    background: transparent;
}

.is-menu-open {
    overflow: hidden;
}

.js-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.js-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media screen and (max-width: 767px) {
    header {
        border-bottom: 0;
        box-shadow: 0 2px 8px rgba(15, 31, 51, 0.06);
    }

    .com_header_mainlinks .com_header_link {
        color: #f4f9ff;
        border-bottom-color: var(--btnlightcolor);
        background: transparent;
    }

    .com_header_logo {
        padding-left: 0;
    }

    .com_header_logo_span {
        font-size: 0.95rem;
        max-width: 56vw;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .index_kvgrad {
        background: linear-gradient(180deg, rgba(15, 31, 51, 0.64) 0%, rgba(15, 31, 51, 0.22) 58%, rgba(15, 31, 51, 0) 100%);
    }

    .index_kv_inner h2 {
        max-width: none;
    }

    .com_newstitle {
        padding: 0.35em 1.5em 1.1em 1.5em;
        align-items: flex-start;
    }

    .biz-card-home {
        border-radius: 14px;
    }

    body::before {
        opacity: 0.3;
        background-size: 24px 24px;
    }

    .tech-canvas-bg {
        opacity: 0.68;
    }
}

@media (prefers-reduced-motion: reduce) {

    .index_kv_inner h2,
    .js-reveal,
    .biz-card-home,
    .com_listnews {
        animation: none !important;
        transition: none !important;
    }

    .tech-canvas-bg {
        display: none;
    }
}