/* Services navigation: shared by the homepage and company page. */
@media (min-width: 992px) {
    .header-layout-default .menu-area {
        --nt-logo-column: clamp(180px, 16vw, 250px);
        --nt-nav-gap: clamp(24px, 2vw, 36px);
    }
    .header-layout-default .menu-area > .th-container > .row {
        display: grid;
        grid-template-columns: var(--nt-logo-column) minmax(0, 1fr) auto;
        column-gap: var(--nt-nav-gap);
        margin-inline: 0;
    }
    .header-layout-default .menu-area > .th-container > .row > .col-auto {
        width: auto;
        padding-inline: 0;
        min-width: 0;
    }
    .header-layout-default .menu-area .logo-bg {
        width: calc(max(12px, (100% - 1420px) / 2) + var(--nt-logo-column));
        clip-path: polygon(0 0, 100% 0, calc(100% - 48px) 100%, 0 100%);
    }
    .header-layout-default .main-menu > ul {
        display: flex;
        align-items: center;
        gap: clamp(18px, 1.6vw, 30px);
        margin: 0;
        padding: 0;
    }
    .header-layout-default .main-menu > ul > li { margin: 0; }
    .header-layout-default .main-menu > ul > li > a,
    .header-layout-default .nt-services-toggle {
        padding-block: 32px;
        font-size: 14px;
        font-weight: 600;
        line-height: 24px;
        text-transform: uppercase;
        white-space: nowrap;
    }
    .header-layout-default .header-button > .th-btn { margin-left: 0; }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .header-layout-default .menu-area > .th-container > .row {
        grid-template-columns: var(--nt-logo-column) minmax(0, 1fr);
    }
    .header-layout-default .main-menu > ul { gap: 18px; }
    .header-layout-default .main-menu > ul > li > a,
    .header-layout-default .nt-services-toggle { font-size: 13px; }
}
.main-menu .nt-services { position: static; }
.nt-services-toggle {
    display: inline-flex; align-items: center; gap: 9px;
    padding: 38px 0; border: 0; background: transparent;
    color: var(--title-color); font: inherit; font-weight: 600;
}
.nt-services-toggle::after {
    content: ''; width: 6px; height: 6px; border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor; transform: rotate(45deg);
    transition: transform .2s;
}
.header-layout2 .nt-services-toggle { color: #fff; font-size: 14px; text-transform: uppercase; padding: 37px 0; }
.main-menu .nt-mega a { text-transform: none; }
.nt-services-toggle[aria-expanded="true"] { color: var(--theme-color); }
.nt-services-toggle[aria-expanded="true"]::after { transform: rotate(225deg); }
.nt-services-toggle:focus-visible, .nt-mega a:focus-visible, .nt-mobile-services a:focus-visible,
.nt-mobile-services summary:focus-visible { outline: 2px solid var(--theme-color); outline-offset: 5px; }
.nt-mega[hidden] { display: none; }
.nt-mega {
    position: fixed; top: var(--nt-menu-top, 150px); left: 50%;
    width: min(1120px, calc(100vw - 48px)); transform: translateX(-50%);
    max-height: calc(100dvh - var(--nt-menu-top, 150px) - 24px); overflow-y: auto;
    background: #fff; border: 1px solid #dde3e9; border-top: 3px solid var(--theme-color);
    box-shadow: 0 24px 48px rgb(9 24 41 / 17%); z-index: 10000;
    text-align: left; animation: nt-menu-enter .2s ease-out;
}
.nt-mega-layout { display: grid; grid-template-columns: 1fr 1fr 280px; }
.nt-mega-column { padding: 28px 24px 22px; min-width: 0; }
.nt-mega-column + .nt-mega-column { border-left: 1px solid #e9edf1; }
.nt-mega-label {
    display: block; font-size: 10px; line-height: 1.5; font-weight: 700;
    letter-spacing: 1.8px; text-transform: uppercase; color: #597087; margin: 0 12px 14px;
}
.main-menu .nt-mega a.nt-mega-link {
    display: grid; grid-template-columns: 1fr 16px; gap: 4px 12px;
    padding: 13px 12px; margin: 0; border-bottom: 1px solid #edf0f3;
    color: #152333; white-space: normal; font-size: 15px; line-height: 1.4;
    transition: background .2s, color .2s;
}
.nt-mega-link strong { font-weight: 600; }
.nt-mega-link small { grid-column: 1; color: #667382; font-size: 12px; line-height: 1.6; font-weight: 400; }
.nt-mega-link > span { grid-column: 2; grid-row: 1 / 3; align-self: center; color: #91a3b4; transition: transform .2s; }
.main-menu .nt-mega a.nt-mega-link:hover { background: #f2f6f9; color: var(--theme-color); }
.nt-mega-link:hover > span { transform: translateX(3px); color: var(--theme-color); }
.nt-mega-aside { position: relative; isolation: isolate; overflow: hidden; padding: 28px; background: #26332e; color: #fff; display: flex; flex-direction: column; justify-content: flex-end; }
.nt-mega-aside > img { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.nt-mega-aside::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 35%, rgb(7 16 20 / 22%) 53%, rgb(7 16 20 / 90%) 100%); pointer-events: none; }
.nt-mega-aside h3 { color: #fff; font-size: 27px; line-height: 1.18; letter-spacing: -.5px; margin: 0 0 16px; text-shadow: 0 1px 6px rgb(0 0 0 / 20%); }
.main-menu .nt-mega a.nt-mega-cta { display: flex; justify-content: space-between; gap: 12px; color: #fff; padding: 14px 0 0; margin-top: 0; border-top: 1px solid #ffffff60; font-size: 13px; line-height: 1.5; white-space: normal; }
.main-menu .nt-mega a.nt-mega-cta:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.nt-mega-footer { padding: 14px 36px; border-top: 1px solid #e5eaf0; display: flex; justify-content: space-between; align-items: center; background: #f8fafb; }
.nt-mega-footer > span { font-size: 11px; color: #667382; letter-spacing: .3px; }
.main-menu .nt-mega-footer a { padding: 0; font-size: 12px; font-weight: 700; color: var(--theme-color); }
.nt-mobile-services { text-align: left; }
.nt-mobile-services summary { padding: 12px 0; font-weight: 600; color: var(--title-color); cursor: pointer; }
.nt-mobile-services summary::marker { color: var(--theme-color); }
.nt-mobile-service-list { padding: 0 0 12px 14px; border-left: 2px solid var(--theme-color); margin-bottom: 12px; }
.th-mobile-menu .nt-mobile-service-list a { display: block; padding: 10px 0; font-size: 13px; line-height: 1.5; }
.th-mobile-menu .nt-mobile-service-list a::before { display: none; }
[id^="service-detail-"] { scroll-margin-top: 140px; }
@keyframes nt-menu-enter { from { opacity: 0; translate: 0 -6px; } to { opacity: 1; translate: 0 0; } }
@media (min-width: 992px) and (max-width: 1199px) {
    .nt-mega-layout { grid-template-columns: 1fr 1fr 240px; }
    .nt-mega-column { padding: 22px 16px; }
    .nt-mega-aside { padding: 28px 22px; }
}
@media (max-width: 991px) { .nt-mega { display: none; } }
@media (prefers-reduced-motion: reduce) {
    .nt-mega { animation: none; }
    .nt-services-toggle::after, .nt-mega-link > span, .main-menu .nt-mega a.nt-mega-link { transition: none; }
}
