/* ==========================================================================
   NSS — Page & section styles
   All type sizes come from the preserved --fs-* tokens (nss-core.css)
   ========================================================================== */

/* ==========================================================================
   A. HOME — HERO
   ========================================================================== */
.nss-hero {
    position: relative;
    min-height: 100svh;
    display: grid;
    align-items: center;
    background: var(--nss-deep-800);
    color: #fff;
    overflow: clip;
}

.nss-hero__slides { position: absolute; inset: 0; z-index: 0; }

.nss-hero__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.1s var(--e-out), visibility 1.1s;
}
.nss-hero__slide.is-active { opacity: 1; visibility: visible; }

.nss-hero__img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.12);
    will-change: transform;
}
.nss-hero__slide.is-active .nss-hero__img { animation: nss-kenburns 9s linear forwards; }
@keyframes nss-kenburns {
    from { transform: scale(1.12); }
    to   { transform: scale(1.22); }
}

.nss-hero__scrim {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(95deg, rgba(4, 33, 46, .95) 0%, rgba(4, 33, 46, .72) 42%, rgba(4, 33, 46, .32) 100%),
        linear-gradient(0deg, rgba(4, 33, 46, .92) 0%, transparent 46%);
}

.nss-hero__inner {
    position: relative;
    z-index: 3;
    width: 100%;
    padding-block: 180px 170px;
}

.nss-hero__copy { max-width: 980px; }

.nss-hero__title {
    margin: 0 0 22px;
    font-size: var(--fs-hero);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -.035em;
    color: #fff;
}
.nss-hero__title em {
    font-style: normal;
    background: linear-gradient(120deg, #6FDCEF, #17AFD0 55%, #0A6F8C);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.nss-hero__sub {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    font-size: var(--fs-hero-sub);
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--nss-cyan-300);
}
.nss-hero__sub i {
    width: 54px;
    height: 2px;
    border-radius: var(--r-pill);
    background: var(--grad-brand);
}

.nss-hero__text {
    max-width: 66ch;
    margin: 0 0 var(--sp-4);
    font-size: var(--fs-hero-p);
    line-height: 1.8;
    color: rgba(217, 234, 242, .85);
}

.nss-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

/* Vertical side rail */
.nss-hero__rail {
    position: absolute;
    z-index: 4;
    inset-inline-start: 34px;
    top: 50%;
    display: flex;
    align-items: center;
    gap: 16px;
    transform: translateY(-50%) rotate(180deg);
    writing-mode: vertical-rl;
    font-size: var(--fs-micro);
    font-weight: 700;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .45);
}
.nss-hero__rail-line {
    width: 1px;
    height: 60px;
    background: linear-gradient(rgba(255, 255, 255, .35), transparent);
}
.nss-hero__rail-line:last-child { background: linear-gradient(transparent, rgba(255, 255, 255, .35)); }

@media (max-width: 1399px) { .nss-hero__rail { display: none; } }

/* Slide controls */
.nss-hero__ui {
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    z-index: 4;
    padding-bottom: 36px;
}
.nss-hero__ui-row {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    flex-wrap: wrap;
}

.nss-hero__count {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: var(--fs-small);
    font-weight: 700;
    letter-spacing: .14em;
    color: rgba(255, 255, 255, .6);
    font-variant-numeric: tabular-nums;
}
.nss-hero__count b {
    color: #fff;
    font-size: var(--fs-section-title-sm);
    font-weight: 900;
    line-height: 1;
}
.nss-hero__count-line { width: 34px; height: 1px; background: rgba(255, 255, 255, .3); }

.nss-hero__thumbs { display: flex; gap: 12px; }

.nss-hero__thumb {
    position: relative;
    width: 96px;
    height: 58px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: var(--r-sm);
    background: none;
    cursor: pointer;
    overflow: hidden;
    opacity: .5;
    filter: grayscale(1);
    transition: all var(--t-base) var(--e-out);
}
.nss-hero__thumb img { width: 100%; height: 100%; object-fit: cover; }
.nss-hero__thumb:hover { opacity: .85; filter: grayscale(0); transform: translateY(-3px); }
.nss-hero__thumb.is-active {
    opacity: 1;
    filter: grayscale(0);
    border-color: var(--nss-cyan);
    box-shadow: 0 10px 26px rgba(23, 175, 208, .34);
}

.nss-hero__thumb-bar {
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 3px;
    background: var(--grad-brand);
    transform: scaleX(0);
    transform-origin: 0 50%;
}
body.rtl .nss-hero__thumb-bar { transform-origin: 100% 50%; }
.nss-hero__thumb.is-active .nss-hero__thumb-bar { transform: scaleX(var(--p, 0)); }

.nss-hero__nav { display: flex; gap: 8px; margin-inline-start: auto; }
.nss-hero__arrow,
.nss-hero__play {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 50%;
    background: rgba(255, 255, 255, .07);
    color: #fff;
    cursor: pointer;
    backdrop-filter: blur(10px);
    transition: all var(--t-fast) var(--e-out);
}
.nss-hero__arrow:hover,
.nss-hero__play:hover {
    background: var(--nss-cyan);
    border-color: var(--nss-cyan);
    transform: translateY(-3px);
}

@media (min-width: 1600px) { .nss-hero__title { font-size: var(--fs-hero-xl); } }
@media (max-width: 1199px) { .nss-hero__title { font-size: var(--fs-hero-md); } }
@media (max-width: 991px)  {
    .nss-hero__title { font-size: var(--fs-hero-sm); }
    .nss-hero__sub { font-size: var(--fs-hero-sub-sm); }
    .nss-hero__thumb { width: 74px; height: 46px; }
}
@media (max-width: 767px) {
    .nss-hero__title { font-size: var(--fs-hero-xs); }
    .nss-hero__sub { font-size: var(--fs-hero-sub-xs); }
    .nss-hero__sub i { width: 30px; }
    .nss-hero__text { font-size: var(--fs-hero-p-sm); }
    .nss-hero__inner { padding-block: 150px 180px; }
    .nss-hero__thumb { width: 58px; height: 38px; }
    .nss-hero__count b { font-size: var(--fs-section-sub); }
}
@media (max-width: 480px) {
    .nss-hero__title { font-size: var(--fs-hero-xxs); }
    .nss-hero__sub { font-size: var(--fs-hero-sub-xxs); }
    .nss-hero__text { font-size: var(--fs-hero-p-xs); }
    .nss-hero__nav { margin-inline-start: 0; }
    .nss-hero__ui-row { gap: var(--sp-2); }
}

/* ==========================================================================
   B. ABOUT — intro + sticky media + capability rows
   ========================================================================== */
.nss-about__intro {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: var(--sp-5);
    align-items: end;
    margin-bottom: var(--sp-6);
}

.nss-about__title { font-size: var(--fs-about-title); margin: 0; }

.nss-about__text {
    margin: 0;
    font-size: var(--fs-about-desc);
    line-height: 2.1;
    color: var(--nss-slate);
    padding-inline-start: var(--sp-3);
    border-inline-start: 2px solid var(--nss-line);
}

.nss-about__split {
    display: grid;
    grid-template-columns: .92fr 1.08fr;
    gap: var(--sp-6);
    align-items: start;
}

.nss-about__sticky { position: sticky; top: 120px; }

.nss-about__frame {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
}
.nss-about__frame img {
    width: 100%;
    height: 560px;
    object-fit: cover;
    transform: scale(1.12);
}

.nss-about__chip {
    position: absolute;
    inset-inline-start: -24px;
    bottom: 42px;
    padding: 20px 26px;
    border-radius: var(--r-lg);
    background: var(--grad-brand);
    color: #fff;
    box-shadow: var(--sh-cyan);
}
.nss-about__chip b {
    display: block;
    font-size: var(--fs-about-title-md);
    font-weight: 900;
    line-height: 1;
}
.nss-about__chip span {
    font-size: var(--fs-feature-text);
    letter-spacing: .1em;
    text-transform: uppercase;
    opacity: .92;
}

.nss-about__chip--alt {
    inset-inline-start: auto;
    inset-inline-end: -20px;
    bottom: auto;
    top: 36px;
    background: rgba(255, 255, 255, .92);
    color: var(--nss-deep);
    backdrop-filter: blur(14px);
    box-shadow: var(--sh-md);
}
.nss-about__chip--alt span { color: var(--nss-slate); }

/* Capability rows */
.nss-about__rows { display: grid; gap: 0; }

.nss-row {
    position: relative;
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-4) var(--sp-2);
    border-top: 1px solid var(--nss-line);
    overflow: hidden;
    transition: padding var(--t-base) var(--e-out);
}
.nss-about__rows .nss-row:last-of-type { border-bottom: 1px solid var(--nss-line); }

.nss-row::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(90deg, rgba(23, 175, 208, .07), transparent);
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: transform var(--t-base) var(--e-out);
}
body.rtl .nss-row::before { transform-origin: 100% 50%; }
.nss-row:hover::before { transform: scaleX(1); }
.nss-row:hover { padding-inline-start: var(--sp-3); }

.nss-row > * { position: relative; z-index: 1; }

.nss-row__num {
    font-size: var(--fs-micro);
    font-weight: 800;
    letter-spacing: .16em;
    color: var(--nss-slate-300);
    transition: color var(--t-base) var(--e-out);
}
.nss-row:hover .nss-row__num { color: var(--nss-cyan); }

.nss-row__icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: var(--r-md);
    background: rgba(23, 175, 208, .1);
    color: var(--nss-cyan-700);
    font-size: var(--fs-feature-icon);
    transition: all var(--t-base) var(--e-out);
}
.nss-row:hover .nss-row__icon {
    background: var(--grad-brand);
    color: #fff;
    transform: rotate(-8deg);
}

.nss-row__title {
    margin: 0 0 5px;
    font-size: var(--fs-feature-title);
    font-weight: 800;
    letter-spacing: .01em;
}
.nss-row__text {
    margin: 0;
    font-size: var(--fs-feature-text);
    line-height: 1.75;
    color: var(--nss-slate);
}

.nss-row__arrow {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--nss-line);
    color: var(--nss-slate-300);
    opacity: 0;
    transform: translateX(-8px);
    transition: all var(--t-base) var(--e-out);
}
body.rtl .nss-row__arrow { transform: translateX(8px) rotate(180deg); }
.nss-row:hover .nss-row__arrow {
    opacity: 1;
    transform: translateX(0);
    border-color: var(--nss-cyan);
    color: var(--nss-cyan-700);
}
body.rtl .nss-row:hover .nss-row__arrow { transform: translateX(0) rotate(180deg); }

.nss-about__rows .nss-btn { margin-top: var(--sp-3); justify-self: start; }

@media (max-width: 1100px) {
    .nss-about__intro,
    .nss-about__split { grid-template-columns: 1fr; gap: var(--sp-4); }
    .nss-about__sticky { position: relative; top: 0; }
    .nss-about__title { font-size: var(--fs-about-title-md); }
    .nss-about__text {
        font-size: var(--fs-about-desc-sm);
        padding-inline-start: 0;
        border-inline-start: 0;
    }
    .nss-about__frame img { height: 400px; }
    .nss-about__chip { inset-inline-start: 18px; }
    .nss-about__chip--alt { inset-inline-end: 18px; }
}
@media (max-width: 575px) {
    .nss-about__title { font-size: var(--fs-about-title-sm); }
    .nss-row { grid-template-columns: auto 1fr; gap: var(--sp-2); padding-inline: 0; }
    .nss-row__num, .nss-row__arrow { display: none; }
    .nss-row__icon { font-size: var(--fs-feature-icon-sm); }
    .nss-row__title { font-size: var(--fs-feature-title-sm); }
    .nss-row__text { font-size: var(--fs-feature-text-sm); }
}

/* ==========================================================================
   C. VISION & MISSION — stacking cards
   ========================================================================== */
.nss-vm { position: relative; }

.nss-vm__grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: var(--sp-6);
    align-items: center;
}

.nss-vm__media {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
}
.nss-vm__media img { width: 100%; height: 620px; object-fit: cover; }
.nss-vm__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(23, 175, 208, .26), rgba(4, 33, 46, .66));
}

.nss-vm__badge {
    position: absolute;
    z-index: 2;
    inset-inline-start: var(--sp-3);
    bottom: var(--sp-3);
    padding: 16px 22px;
    border-radius: var(--r-md);
    background: rgba(4, 33, 46, .55);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, .16);
    color: #fff;
    font-size: var(--fs-micro);
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.nss-vm__cards { display: grid; gap: var(--sp-3); }

.nss-vm__card {
    position: relative;
    padding: var(--sp-4);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: var(--r-lg);
    background: rgba(255, 255, 255, .04);
    backdrop-filter: blur(14px);
    overflow: hidden;
    transition: border-color var(--t-base) var(--e-out),
                background var(--t-base) var(--e-out);
}
.nss-vm__card:hover {
    border-color: rgba(111, 220, 239, .4);
    background: rgba(255, 255, 255, .07);
}
.nss-vm__card::before {
    content: '';
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--grad-brand);
    transform: scaleY(0);
    transform-origin: 50% 0;
    transition: transform var(--t-base) var(--e-out);
}
.nss-vm__card:hover::before { transform: scaleY(1); }

.nss-vm__head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.nss-vm__icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    border-radius: var(--r-md);
    background: rgba(23, 175, 208, .16);
    color: var(--nss-cyan-300);
    font-size: var(--fs-vm-icon);
    transition: all var(--t-base) var(--e-out);
}
.nss-vm__card:hover .nss-vm__icon {
    background: var(--grad-brand);
    color: #fff;
    transform: rotate(-8deg);
}

.nss-vm__title { margin: 0; font-size: var(--fs-vm-title); color: #fff; }

.nss-vm__desc {
    margin: 0;
    font-size: var(--fs-vm-desc);
    line-height: 1.9;
    color: rgba(217, 234, 242, .78);
    max-width: 58ch;
}

.nss-vm__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: var(--sp-3);
}
.nss-vm__tag {
    padding: 6px 14px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: var(--r-pill);
    font-size: var(--fs-micro);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(217, 234, 242, .72);
    transition: all var(--t-fast) var(--e-out);
}
.nss-vm__tag:hover {
    border-color: var(--nss-cyan);
    color: #fff;
    background: rgba(23, 175, 208, .14);
}

@media (max-width: 991px) {
    .nss-vm__grid { grid-template-columns: 1fr; gap: var(--sp-4); }
    .nss-vm__media img { height: 320px; }
    .nss-vm__title { font-size: var(--fs-vm-title-sm); }
    .nss-vm__desc { font-size: var(--fs-vm-desc-sm); }
}
@media (max-width: 575px) {
    .nss-vm__card { padding: var(--sp-3); }
    .nss-vm__title { font-size: var(--fs-vm-title-xs); }
    .nss-vm__desc { font-size: var(--fs-vm-desc-xs); }
    .nss-vm__icon { font-size: var(--fs-vm-icon-sm); width: 48px; height: 48px; }
}

/* ==========================================================================
   D. BUSINESS LINES — handled by the horizontal rail (nss-fx.css)
      Only the intro column lives here.
   ========================================================================== */
.nss-hz__intro .nss-title { margin-bottom: 14px; }
.nss-hz__intro .nss-sub { max-width: 44ch; }

/* ==========================================================================
   E. PROJECTS — sticky showcase lives in nss-fx.css
      Section header helpers only.
   ========================================================================== */
.nss-bl__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--sp-3);
    flex-wrap: wrap;
    margin-bottom: var(--sp-5);
}

/* ==========================================================================
   F. COUNTERS
   ========================================================================== */
.nss-count__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: var(--r-xl);
    overflow: hidden;
    background: rgba(255, 255, 255, .03);
    backdrop-filter: blur(14px);
}

.nss-count__item {
    position: relative;
    padding: var(--sp-5) var(--sp-3);
    text-align: center;
    overflow: hidden;
    transition: background var(--t-base) var(--e-out);
}
.nss-count__item + .nss-count__item { border-inline-start: 1px solid rgba(255, 255, 255, .1); }
.nss-count__item:hover { background: rgba(255, 255, 255, .05); }

.nss-count__item::after {
    content: '';
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 2px;
    background: var(--grad-brand);
    transform: scaleX(0);
    transition: transform var(--t-base) var(--e-out);
}
.nss-count__item:hover::after { transform: scaleX(1); }

.nss-count__icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 20px;
    border-radius: var(--r-md);
    background: rgba(23, 175, 208, .16);
    color: var(--nss-cyan-300);
    font-size: var(--fs-counter-icon);
    transition: all var(--t-base) var(--e-out);
}
.nss-count__item:hover .nss-count__icon {
    background: var(--grad-brand);
    color: #fff;
    transform: rotate(-8deg) scale(1.06);
}

.nss-count__num {
    display: inline-flex;
    justify-content: center;
    font-size: var(--fs-counter-num);
    font-weight: 900;
    line-height: 1;
    color: #fff;
}

.nss-count__label {
    display: block;
    margin-top: 12px;
    font-size: var(--fs-counter-label);
    color: rgba(217, 234, 242, .74);
}

@media (max-width: 991px) {
    .nss-count__grid { grid-template-columns: repeat(2, 1fr); }
    .nss-count__item:nth-child(odd) { border-inline-start: 0; }
    .nss-count__item:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .1); }
}
@media (max-width: 480px) {
    .nss-count__grid { grid-template-columns: 1fr; }
    .nss-count__item { border-inline-start: 0 !important; }
    .nss-count__item + .nss-count__item { border-top: 1px solid rgba(255, 255, 255, .1); }
    .nss-count__num { font-size: var(--fs-counter-num-sm); }
    .nss-count__label { font-size: var(--fs-counter-label-sm); }
}

/* ==========================================================================
   G. PARTNERS — dual counter-rotating rails
   ========================================================================== */
.nss-partners__rails { display: grid; gap: var(--sp-2); }

.nss-partners__rail {
    position: relative;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.nss-partners__track {
    display: flex;
    gap: var(--sp-2);
    width: max-content;
    animation: nss-marquee 44s linear infinite;
}
.nss-partners__rail--back .nss-partners__track { animation-direction: reverse; animation-duration: 54s; }
.nss-partners__rail:hover .nss-partners__track { animation-play-state: paused; }

@keyframes nss-marquee { to { transform: translateX(-50%); } }

.nss-partners__item {
    display: grid;
    place-items: center;
    width: 190px;
    height: 108px;
    padding: 22px;
    border: 1px solid var(--nss-line);
    border-radius: var(--r-md);
    background: #fff;
    transition: all var(--t-base) var(--e-out);
}
.nss-partners__item img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .55;
    transition: all var(--t-base) var(--e-out);
}
.nss-partners__item:hover {
    border-color: rgba(23, 175, 208, .45);
    box-shadow: var(--sh-md);
    transform: translateY(-6px) rotate(-1.5deg);
}
.nss-partners__item:hover img { filter: grayscale(0); opacity: 1; }

/* ==========================================================================
   H. CONTACT — offices + map
   ========================================================================== */
.nss-contact__grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: var(--sp-4);
    align-items: start;
}

.nss-offices { display: grid; gap: 12px; }

.nss-office {
    position: relative;
    padding: 22px;
    border: 1px solid var(--nss-line);
    border-radius: var(--r-md);
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    transition: all var(--t-base) var(--e-out);
}
.nss-office::before {
    content: '';
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--grad-brand);
    transform: scaleY(0);
    transform-origin: 50% 0;
    transition: transform var(--t-base) var(--e-out);
}
.nss-office:hover,
.nss-office.is-active {
    border-color: rgba(23, 175, 208, .45);
    box-shadow: var(--sh-md);
    transform: translateX(5px);
}
body.rtl .nss-office:hover,
body.rtl .nss-office.is-active { transform: translateX(-5px); }
.nss-office.is-active::before { transform: scaleY(1); }

.nss-office__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 13px;
}
.nss-office__pin {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: var(--r-sm);
    background: rgba(23, 175, 208, .12);
    color: var(--nss-cyan-700);
    transition: all var(--t-base) var(--e-out);
}
.nss-office.is-active .nss-office__pin,
.nss-office:hover .nss-office__pin { background: var(--grad-brand); color: #fff; }

.nss-office__name { margin: 0; font-size: var(--fs-office-h5); font-weight: 800; }
.nss-office__sub {
    margin: 0;
    font-size: var(--fs-xsmall);
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--nss-slate-300);
}

.nss-office__rows { display: grid; gap: 9px; }
.nss-office__row {
    display: flex;
    gap: 11px;
    font-size: var(--fs-small);
    color: var(--nss-slate);
    line-height: 1.6;
}
.nss-office__row i { color: var(--nss-cyan); width: 16px; flex-shrink: 0; margin-top: 4px; }
.nss-office__row a:hover { color: var(--nss-cyan-700); }

.nss-map {
    position: relative;
    height: 640px;
    border: 1px solid var(--nss-line);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh-md);
    background: var(--nss-surface-2);
}
.nss-map iframe,
.nss-map #nssMap { width: 100%; height: 100%; border: 0; }

@media (max-width: 991px) {
    .nss-contact__grid { grid-template-columns: 1fr; }
    .nss-map { height: 400px; }
}

/* Contact form */
.nss-form {
    padding: var(--sp-5);
    border: 1px solid var(--nss-line);
    border-radius: var(--r-xl);
    background: #fff;
    box-shadow: var(--sh-md);
}
.nss-form__rows { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
.nss-field { display: grid; gap: 8px; }
.nss-field--full { grid-column: 1 / -1; }

.nss-field label {
    font-size: var(--fs-xsmall);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--nss-deep);
}
.nss-field label span { color: var(--nss-cyan); }

.nss-field input,
.nss-field textarea,
.nss-field select {
    width: 100%;
    padding: 14px 16px;
    border: 1.5px solid var(--nss-line);
    border-radius: var(--r-sm);
    background: var(--nss-surface);
    color: var(--nss-ink);
    font-size: var(--fs-form-control);
    font-family: inherit;
    transition: all var(--t-fast) var(--e-out);
}
.nss-field textarea { resize: vertical; min-height: 140px; }
.nss-field input:focus,
.nss-field textarea:focus {
    outline: 0;
    border-color: var(--nss-cyan);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(23, 175, 208, .13);
}
.nss-field input::placeholder,
.nss-field textarea::placeholder { color: var(--nss-slate-300); }

.nss-field__error { display: none; font-size: var(--fs-form-error); color: #dc3545; }
.nss-field.has-error input,
.nss-field.has-error textarea { border-color: #dc3545; }
.nss-field.has-error .nss-field__error { display: block; }

.nss-form__submit { margin-top: var(--sp-3); font-size: var(--fs-form-submit); padding: 16px 34px; }

.nss-form__note {
    margin-top: var(--sp-2);
    padding: 14px 18px;
    border-radius: var(--r-sm);
    font-size: var(--fs-small);
    display: none;
}
.nss-form__note.is-ok  { display: block; background: rgba(23, 175, 208, .1); color: var(--nss-cyan-700); }
.nss-form__note.is-bad { display: block; background: rgba(220, 53, 69, .08); color: #b02a37; }

@media (max-width: 767px) {
    .nss-form { padding: var(--sp-3); }
    .nss-form__rows { grid-template-columns: 1fr; }
}

/* ==========================================================================
   I. CTA BAND
   ========================================================================== */
.nss-cta {
    position: relative;
    padding-block: var(--sp-8);
    background: var(--grad-deep);
    color: #fff;
    overflow: clip;
}
.nss-cta__inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    flex-wrap: wrap;
}
.nss-cta__copy { max-width: 58ch; }
.nss-cta h2 { color: #fff; margin-bottom: 12px; }
.nss-cta p { margin: 0; color: rgba(217, 234, 242, .76); }

/* ==========================================================================
   J. SERVICE CARDS (inner pages)
   ========================================================================== */
.nss-svcgrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: var(--sp-3);
}

.nss-svc {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--nss-line);
    border-radius: var(--r-lg);
    background: #fff;
    overflow: hidden;
    cursor: pointer;
    transition: transform var(--t-base) var(--e-out),
                box-shadow var(--t-base) var(--e-out),
                border-color var(--t-base) var(--e-out);
}
.nss-svc:hover {
    transform: translateY(-10px);
    border-color: rgba(23, 175, 208, .4);
    box-shadow: var(--sh-lg);
}

.nss-svc__media { position: relative; height: 240px; overflow: hidden; }
.nss-svc__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .9s var(--e-out);
}
.nss-svc:hover .nss-svc__media img { transform: scale(1.1); }
.nss-svc__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 38%, rgba(4, 33, 46, .82) 100%);
}

.nss-svc__num {
    position: absolute;
    z-index: 2;
    inset-inline-end: 16px;
    top: 16px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--r-sm);
    background: rgba(4, 33, 46, .5);
    backdrop-filter: blur(8px);
    color: #fff;
    font-size: var(--fs-bl-card-text);
    font-weight: 800;
}

.nss-svc__icon {
    position: absolute;
    z-index: 2;
    inset-inline-start: 20px;
    bottom: -24px;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: var(--r-md);
    background: var(--grad-brand);
    color: #fff;
    font-size: var(--fs-bl-card-title);
    box-shadow: var(--sh-cyan);
    transition: transform var(--t-base) var(--e-out);
}
.nss-svc:hover .nss-svc__icon { transform: translateY(-4px) rotate(-8deg); }

.nss-svc__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 40px 24px 24px;
}

.nss-svc__title {
    margin: 0 0 10px;
    font-size: var(--fs-svc-card-title);
    line-height: 1.35;
    transition: color var(--t-fast) var(--e-out);
}
.nss-svc:hover .nss-svc__title { color: var(--nss-cyan-700); }

.nss-svc__text {
    flex: 1;
    margin: 0 0 20px;
    font-size: var(--fs-small);
    line-height: 1.75;
    color: var(--nss-slate);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nss-svc__more {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: var(--fs-bl-card-btn);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--nss-cyan-700);
}
.nss-svc__more i { transition: transform var(--t-fast) var(--e-out); }
.nss-svc:hover .nss-svc__more i { transform: translateX(5px); }
body.rtl .nss-svc:hover .nss-svc__more i { transform: translateX(-5px); }

@media (max-width: 600px) {
    .nss-svc__title { font-size: var(--fs-bl-card-title-sm); }
    .nss-svc__text { font-size: var(--fs-bl-card-text-sm); }
}

/* Why cards */
.nss-why__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--sp-3);
}
.nss-why {
    position: relative;
    padding: 36px 30px;
    border: 1px solid var(--nss-line);
    border-radius: var(--r-lg);
    background: #fff;
    text-align: center;
    overflow: hidden;
    transition: all var(--t-base) var(--e-out);
}
.nss-why:hover { transform: translateY(-8px); box-shadow: var(--sh-lg); border-color: rgba(23, 175, 208, .35); }
.nss-why__icon {
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin: 0 auto 20px;
    border-radius: var(--r-md);
    background: var(--grad-brand);
    color: #fff;
    font-size: var(--fs-svc-icon);
    box-shadow: var(--sh-cyan);
    transition: transform var(--t-base) var(--e-out);
}
.nss-why:hover .nss-why__icon { transform: rotate(-8deg) scale(1.06); }
.nss-why h3 { font-size: var(--fs-svc-feature-title); margin-bottom: 11px; }
.nss-why p { margin: 0; color: var(--nss-slate); line-height: 1.75; }

/* ==========================================================================
   K. SERVICE DETAILS
   ========================================================================== */
.nss-sd__grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: var(--sp-6);
    align-items: center;
}
.nss-sd__media {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
}
.nss-sd__media img { width: 100%; height: 500px; object-fit: cover; }

.nss-sd__title { font-size: var(--fs-svc-hero-title); margin-bottom: 16px; }
.nss-sd__text {
    font-size: var(--fs-svc-hero-sub);
    line-height: 1.95;
    color: var(--nss-slate);
    margin-bottom: var(--sp-3);
}

.nss-sd__meta {
    display: grid;
    margin-bottom: var(--sp-3);
    border: 1px solid var(--nss-line);
    border-radius: var(--r-md);
    overflow: hidden;
}
.nss-sd__meta-row {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-2);
    padding: 15px 20px;
    font-size: var(--fs-small);
    transition: background var(--t-fast) var(--e-out);
}
.nss-sd__meta-row:hover { background: var(--nss-surface); }
.nss-sd__meta-row + .nss-sd__meta-row { border-top: 1px solid var(--nss-line); }
.nss-sd__meta-row span { color: var(--nss-slate); }
.nss-sd__meta-row b { color: var(--nss-deep); }

@media (max-width: 991px) {
    .nss-sd__grid { grid-template-columns: 1fr; gap: var(--sp-4); }
    .nss-sd__media img { height: 320px; }
}

/* ==========================================================================
   L. PROJECT CARDS & DETAILS
   ========================================================================== */
.nss-prjgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--sp-3);
}

.nss-prjcard {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--nss-line);
    border-radius: var(--r-lg);
    background: #fff;
    overflow: hidden;
    transition: all var(--t-base) var(--e-out);
}
.nss-prjcard:hover {
    transform: translateY(-9px);
    border-color: rgba(23, 175, 208, .4);
    box-shadow: var(--sh-lg);
}

.nss-prjcard__media { position: relative; height: 220px; overflow: hidden; }
.nss-prjcard__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .9s var(--e-out);
}
.nss-prjcard:hover .nss-prjcard__media img { transform: scale(1.09); }

.nss-prjcard__tag {
    position: absolute;
    z-index: 2;
    inset-inline-start: 14px;
    top: 14px;
    padding: 6px 13px;
    border-radius: var(--r-pill);
    background: rgba(4, 33, 46, .66);
    backdrop-filter: blur(8px);
    color: #fff;
    font-size: var(--fs-micro);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nss-prjcard__body { flex: 1; display: flex; flex-direction: column; padding: 24px; }
.nss-prjcard__title { margin: 0 0 8px; font-size: var(--fs-prj-title); line-height: 1.35; }
.nss-prjcard__type {
    margin: 0 0 12px;
    font-size: var(--fs-prj-type);
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--nss-cyan-700);
    font-weight: 700;
}
.nss-prjcard__text {
    flex: 1;
    margin: 0 0 18px;
    font-size: var(--fs-prj-desc);
    line-height: 1.75;
    color: var(--nss-slate);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nss-pd__grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: var(--sp-6);
    align-items: center;
}
.nss-pd__title { font-size: var(--fs-prj-detail-title); margin-bottom: 20px; }
.nss-pd__body {
    font-size: var(--fs-prj-detail-desc);
    line-height: 1.9;
    color: var(--nss-slate);
}
.nss-pd__body ul { padding-inline-start: 20px; }
.nss-pd__body li { margin-bottom: 9px; }

.nss-pd__media {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
}
.nss-pd__media img { width: 100%; height: 500px; object-fit: cover; }

/* feature list + stats shared by project views */
.nss-prj__feats {
    display: grid;
    gap: 9px;
    padding: 0;
    margin: 0 0 var(--sp-3);
    list-style: none;
}
.nss-prj__feats li {
    display: flex;
    gap: 11px;
    font-size: var(--fs-prj-desc);
    color: var(--nss-slate);
}
.nss-prj__feats li::before {
    content: '\f058';
    font-family: 'Font Awesome 6 Free', 'Font Awesome 5 Free';
    font-weight: 900;
    color: var(--nss-cyan);
    flex-shrink: 0;
}

.nss-prj__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    padding-block: var(--sp-2);
    margin-bottom: var(--sp-3);
    border-block: 1px solid var(--nss-line);
}
.nss-prj__stat b {
    display: block;
    font-size: var(--fs-counter-num-sm);
    font-weight: 900;
    line-height: 1.1;
    background: var(--grad-brand);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.nss-prj__stat span {
    font-size: var(--fs-xsmall);
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--nss-slate);
}

@media (max-width: 991px) {
    .nss-pd__grid { grid-template-columns: 1fr; gap: var(--sp-4); }
    .nss-pd__title { font-size: var(--fs-prj-title-sm); }
    .nss-pd__body { font-size: var(--fs-section-sub-sm); }
    .nss-pd__media img { height: 300px; }
}

/* ==========================================================================
   M. ABOUT / VISION-MISSION STANDALONE PARTIALS
   ========================================================================== */
.nss-aboutcard {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: var(--sp-4);
    padding: var(--sp-4);
    border: 1px solid var(--nss-line);
    border-radius: var(--r-xl);
    background: #fff;
    box-shadow: var(--sh-md);
}
.nss-aboutcard__thumb { border-radius: var(--r-lg); overflow: hidden; }
.nss-aboutcard__thumb img {
    width: 100%;
    height: 100%;
    min-height: 300px;
    object-fit: cover;
    transition: transform 1s var(--e-out);
}
.nss-aboutcard:hover .nss-aboutcard__thumb img { transform: scale(1.05); }

.nss-aboutcard__heading { margin: 0 0 14px; font-size: var(--fs-aboutcard-heading); letter-spacing: .03em; }
.nss-aboutcard__text {
    margin: 0;
    font-size: var(--fs-aboutcard-text);
    line-height: 1.95;
    color: var(--nss-slate);
}

.nss-vmcards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); }
.nss-vmcard {
    position: relative;
    padding: var(--sp-4);
    border: 1px solid var(--nss-line);
    border-radius: var(--r-lg);
    background: #fff;
    overflow: hidden;
    transition: all var(--t-base) var(--e-out);
}
.nss-vmcard:hover { transform: translateY(-7px); box-shadow: var(--sh-lg); border-color: rgba(23, 175, 208, .4); }
.nss-vmcard__icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin-bottom: 18px;
    border-radius: var(--r-md);
    background: var(--grad-brand);
    color: #fff;
    font-size: var(--fs-vm-icon);
    box-shadow: var(--sh-cyan);
    transition: transform var(--t-base) var(--e-out);
}
.nss-vmcard:hover .nss-vmcard__icon { transform: rotate(-8deg); }
.nss-vmcard__title { margin: 0 0 10px; font-size: var(--fs-vmcard-title); }
.nss-vmcard__text { margin: 0; line-height: 1.85; color: var(--nss-slate); }

@media (max-width: 991px) {
    .nss-aboutcard { grid-template-columns: 1fr; }
    .nss-aboutcard__thumb img { min-height: 230px; }
    .nss-vmcards { grid-template-columns: 1fr; }
}

/* ==========================================================================
   N. EMPTY STATE
   ========================================================================== */
.nss-empty {
    grid-column: 1 / -1;
    padding: var(--sp-7) var(--sp-3);
    text-align: center;
    border: 1px dashed var(--nss-line);
    border-radius: var(--r-lg);
    background: var(--nss-surface);
}
.nss-empty i { font-size: var(--fs-svc-icon); color: var(--nss-slate-300); margin-bottom: 16px; }
.nss-empty h3 { font-size: var(--fs-vm-title-xs); color: var(--nss-slate); }
.nss-empty p { color: var(--nss-slate-300); margin-bottom: var(--sp-3); }
