:root {
    --ink: #072f39;
    --teal: #005968;
    --aqua: #69ddca;
    --muted: #526b72;
    --line: #dce7e8;
    --pale: #f0f6f6;
    --white: #fff
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 95px
}

body {
    margin: 0;
    color: var(--ink);
    font: 16px/1.65 'Segoe UI',Arial,sans-serif
}

a {
    color: inherit;
    text-decoration: none
}

button {
    font: inherit;
    cursor: pointer
}

img {
    max-width: 100%;
    display: block
}

h1, h2, h3, p {
    margin: 0
}

h1, h2, h3 {
    line-height: 1.12;
    letter-spacing: -.04em
}

h1 {
    font-size: clamp(2.9rem,5.1vw,4.75rem);
    font-weight: 650
}

h2 {
    font-size: clamp(2.1rem,3.7vw,3.25rem);
    font-weight: 600
}

h3 {
    font-size: 1.4rem;
    font-weight: 600
}

p {
    color: var(--muted)
}

.wrap {
    width: min(1240px,calc(100% - 80px));
    margin: auto
}

.topline {
    background: var(--ink);
    color: #d4e5e8;
    font-size: .8rem;
    padding: 7px 0
}

    .topline .wrap {
        display: flex;
        justify-content: space-between
    }

    .topline a {
        margin-left: 24px
    }

.header {
    position: sticky;
    top: 0;
    background: #ffffffed;
    backdrop-filter: blur(16px);
    z-index: 20;
    border-bottom: 1px solid var(--line)
}

.nav {
    height: 86px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px
}

.brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.65rem;
    font-weight: 600;
    letter-spacing: -.06em;
    color: var(--teal);
    white-space: nowrap
}

.brand-symbol {
    width: 35px;
    height: 38px;
    object-fit: cover;
    object-position: top
}

.navlinks {
    display: flex;
    align-items: center;
    gap: 28px;
    font-size: .9rem
}

    .navlinks a:not(.button):hover, .navlinks a[aria-current] {
        color: var(--teal);
        text-decoration: underline;
        text-underline-offset: 8px
    }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    background: var(--teal);
    color: white;
    padding: 14px 23px;
    border-radius: 6px;
    border: 1px solid var(--teal);
    font-weight: 600;
    font-size: .9rem;
    transition: transform .2s,background .2s
}

    .button:hover {
        background: #073e49;
        transform: translateY(-2px)
    }

    .button.light {
        background: var(--aqua);
        color: var(--ink);
        border-color: var(--aqua)
    }

    .button.outline {
        background: transparent;
        color: var(--ink);
        border-color: #c0d0d3
    }

    .button.white {
        background: white;
        color: var(--ink);
        border-color: white
    }

.menu {
    display: none;
    border: 1px solid var(--line);
    background: white;
    border-radius: 5px;
    padding: 8px 13px
}

.eyebrow {
    display: block;
    color: var(--teal);
    text-transform: uppercase;
    letter-spacing: .18em;
    font-size: .75rem;
    font-weight: 700;
    margin-bottom: 22px
}

.hero {
    padding: 22px 0 65px;
    overflow: hidden;
    background: linear-gradient(110deg,#fff 53%,#eff6f5)
}

.hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 65px;
    align-items: center
}

.hero h1 span {
    color: var(--teal)
}

.hero p {
    font-size: 1.12rem;
    max-width: 490px;
    margin: 25px 0 30px
}

.actions {
    display: flex;
    gap: 13px;
    flex-wrap: wrap
}

.hero-note {
    margin-top: 32px;
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: .85rem;
    color: var(--muted)
}

    .hero-note strong {
        font-size: 2rem;
        color: var(--teal);
        line-height: 1
    }

.visual {
    position: relative;
    padding: 0 0 48px 5px
}

.hero-photo {
    width: 100%;
    height: 440px;
    object-fit: cover;
    border-radius: 10px 10px 95px 10px
}

.photo-caption {
    position: absolute;
    top: 20px;
    left: 25px;
    color: white;
    background: #07343ddd;
    padding: 7px 15px;
    border: 1px solid #ffffff50;
    border-radius: 30px;
    font-size: .78rem
}

.floating-screen {
    position: absolute;
    bottom: 0;
    left: -32px;
    width: 87%;
    background: white;
    border: 1px solid var(--line);
    box-shadow: 0 18px 45px #00323b22;
    border-radius: 8px;
    padding: 12px;
    transform: rotate(-3deg)
}

.screen-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1px 4px 9px;
    font-size: .75rem;
    font-weight: 600;
    color: var(--teal)
}

    .screen-bar small {
        font-weight: 400;
        color: var(--muted)
    }

.floating-screen img {
    border: 1px solid var(--line);
    border-radius: 3px
}

.sector-strip {
    padding: 23px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line)
}

    .sector-strip .wrap {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 20px
    }

    .sector-strip span {
        font-size: .75rem;
        color: var(--muted);
        max-width: 120px
    }

    .sector-strip b {
        font-size: 1rem;
        letter-spacing: .02em;
        font-weight: 500
    }

.section {
    padding: 95px 0
}

.heading-row {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 45px;
    margin-bottom: 42px
}

    .heading-row p {
        max-width: 350px
    }

.services {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    border-top: 1px solid var(--line)
}

.service {
    padding: 30px 25px 20px 0;
    border-right: 1px solid var(--line);
    margin-right: 25px
}

    .service:last-child {
        border: 0;
        margin: 0;
        padding-right: 0
    }

    .service .number {
        font: 500 .85rem monospace;
        color: var(--teal);
        display: block;
        margin-bottom: 40px
    }

    .service h3 {
        margin-bottom: 15px
    }

    .service p {
        font-size: .95rem
    }

.product {
    background: var(--ink);
    color: white;
    overflow: hidden
}

    .product .eyebrow {
        color: var(--aqua)
    }

    .product p {
        color: #b9d0d4
    }

.product-grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 75px;
    align-items: center
}

.product h2 {
    margin: 20px 0
}

.product p {
    margin-bottom: 26px
}

.servus-brand {
    display: flex;
    gap: 12px;
    align-items: center;
    font-size: 1.6rem;
    letter-spacing: -.045em;
    font-weight: 650
}

    .servus-brand img {
        width: 42px;
        height: 42px;
        object-fit: contain;
        border-radius: 50%;
        background: white;
        padding: 3px
    }

.product-screen {
    padding: 14px;
    background: #ffffff0c;
    border: 1px solid #ffffff30;
    border-radius: 8px;
    transform: perspective(1200px) rotateY(-7deg)
}

    .product-screen img {
        border-radius: 4px
    }

.chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 24px 0 32px
}

    .chips span {
        font-size: .75rem;
        border: 1px solid #ffffff35;
        color: #dbeded;
        border-radius: 5px;
        padding: 5px 12px
    }

.about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 100px
}

.about p {
    margin-top: 22px
}

.values {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px
}

    .values span {
        padding: 7px 12px;
        background: var(--pale);
        font-size: .8rem
    }

.mission {
    padding: 28px 0;
    border-top: 1px solid var(--line)
}

    .mission p {
        margin-top: 12px
    }

.contact {
    padding: 65px 0;
    background: var(--pale)
}

.contact-grid {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    align-items: center
}

.contact h2 {
    max-width: 600px
}

.contact p {
    margin-top: 18px
}

.contact-details {
    margin-top: 25px;
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
    font-size: .9rem
}

footer {
    background: #fff;
    padding: 35px 0
}

.footer-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px
}

footer small {
    color: var(--muted);
    font-size: .8rem
}

.footer-links {
    display: flex;
    gap: 20px;
    font-size: .8rem
}

.erp-hero {
    padding: 62px 0 0;
    text-align: center;
    background: radial-gradient(ellipse at bottom,#d5f3eb,#f6fafa 65%)
}

    .erp-hero .servus-brand {
        justify-content: center;
        margin-bottom: 25px
    }

    .erp-hero h1 {
        max-width: 860px;
        margin: auto;
        font-size: clamp(2.8rem,5vw,4.3rem)
    }

        .erp-hero h1 span {
            color: var(--teal)
        }

    .erp-hero p {
        max-width: 650px;
        margin: 24px auto
    }

    .erp-hero .actions {
        justify-content: center
    }

.erp-screen {
    max-width: 990px;
    margin: 45px auto 0;
    border: 10px solid #fff;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    box-shadow: 0 0 45px #00323b16;
    position: relative
}

    .erp-screen img {
        width: 100%
    }

    .erp-screen .screen-bar {
        padding: 5px 8px 10px
    }

.overview {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 35px;
    padding: 35px 0;
    border-bottom: 1px solid var(--line)
}

    .overview strong {
        display: block;
        margin-bottom: 8px
    }

    .overview p {
        font-size: .9rem
    }

.modules {
    background: #fff
}

.module-layout {
    display: grid;
    grid-template-columns: 245px 1fr;
    gap: 48px;
    align-items: start
}

.module-nav {
    position: sticky;
    top: 115px;
    display: flex;
    flex-direction: column;
    gap: 8px
}

    .module-nav a {
        padding: 13px 16px;
        border: 1px solid var(--line);
        border-radius: 5px;
        font-size: .9rem
    }

        .module-nav a:hover, .module-nav a.active {
            background: var(--teal);
            color: white;
            border-color: var(--teal)
        }

.module {
    padding-bottom: 42px;
    margin-bottom: 42px;
    border-bottom: 1px solid var(--line);
    scroll-margin-top: 120px
}

.module-title {
    display: flex;
    gap: 18px;
    align-items: center;
    margin-bottom: 15px
}

    .module-title span {
        color: var(--teal);
        font: 500 .9rem monospace
    }

.module h3 {
    font-size: 1.8rem
}

.features {
    list-style: none;
    padding: 0;
    margin: 24px 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px 24px;
    font-size: .95rem
}

    .features li {
        position: relative;
        padding-left: 22px;
        color: var(--muted)
    }

        .features li:before {
            content: '✓';
            position: absolute;
            left: 0;
            color: var(--teal);
            font-weight: 700
        }

.screenshot-button {
    display: block;
    background: var(--pale);
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 7px;
    width: 100%;
    text-align: left;
    color: var(--teal)
}

    .screenshot-button img {
        width: 100%;
        max-height: 340px;
        object-fit: contain;
        background: white
    }

    .screenshot-button span {
        display: block;
        font-size: .8rem;
        margin-top: 10px
    }

.extra {
    background: var(--pale)
}

.extra-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    margin-top: 40px
}

.extra h3 {
    margin-bottom: 13px
}

.extra p {
    font-size: .95rem
}

.dialog {
    width: min(1250px,95vw);
    border: 0;
    border-radius: 10px;
    padding: 20px;
    color: var(--ink)
}

    .dialog::backdrop {
        background: #001c28d9;
        backdrop-filter: blur(5px)
    }

.dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 15px
}

.dialog button {
    border: 1px solid var(--line);
    background: white;
    padding: 6px 15px;
    border-radius: 5px
}

.dialog img {
    max-height: 78vh;
    margin: auto;
    object-fit: contain
}

.reveal {
    animation: enter .7s ease both
}

@keyframes enter {
    from {
        opacity: 0;
        transform: translateY(18px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

a:focus-visible, button:focus-visible {
    outline: 3px solid #17ac98;
    outline-offset: 5px
}

.skip {
    position: fixed;
    top: -100px;
    left: 20px;
    background: white;
    padding: 10px;
    z-index: 100
}

    .skip:focus {
        top: 10px
    }

@media(min-width:1450px) {
    .hero {
        padding: 22px 0 90px
    }
}

@media(max-width:1000px) {
    .wrap {
        width: calc(100% - 48px)
    }

    .navlinks {
        gap: 16px
    }

    .hero-grid {
        gap: 35px
    }

    .hero-photo {
        height: 390px
    }

    .floating-screen {
        left: -10px;
        width: 96%
    }

    .services {
        grid-template-columns: 1fr 1fr;
        gap: 30px
    }

    .service:nth-child(2) {
        border: 0
    }

    .product-grid {
        gap: 40px
    }

    .about-grid {
        gap: 45px
    }

    .module-layout {
        grid-template-columns: 210px 1fr;
        gap: 25px
    }
}

@media(max-width:760px) {
    .wrap {
        width: calc(100% - 36px)
    }

    .topline {
        display: none
    }

    .nav {
        height: 72px
    }

    .brand {
        font-size: 1.45rem
    }

    .menu {
        display: block
    }

    .navlinks {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 72px;
        background: white;
        padding: 22px;
        box-shadow: 0 15px 20px #00304015;
        align-items: stretch
    }

        .navlinks.open {
            display: flex;
            flex-direction: column
        }

    .hero {
        padding: 44px 0
    }

    .hero-grid, .product-grid, .about-grid {
        grid-template-columns: 1fr;
        gap: 42px
    }

    .hero h1 {
        font-size: 3rem
    }

    .hero p {
        font-size: 1rem
    }

    .hero-photo {
        height: 330px
    }

    .visual {
        max-width: 510px;
        margin: auto;
        width: 100%;
        padding-bottom: 45px
    }

    .floating-screen {
        left: 0;
        transform: rotate(-2deg);
        width: 86%
    }

    .sector-strip .wrap {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 14px 25px
    }

    .sector-strip span {
        flex-basis: 100%;
        max-width: none
    }

    .sector-strip b {
        font-size: .85rem
    }

    .section {
        padding: 60px 0
    }

    .heading-row {
        display: block
    }

        .heading-row p {
            margin-top: 20px
        }

    .services {
        gap: 20px
    }

    .service {
        padding-right: 10px;
        margin-right: 0
    }

        .service .number {
            margin-bottom: 25px
        }

        .service h3 {
            font-size: 1.2rem
        }

        .service p {
            font-size: .9rem
        }

    .contact-grid, .footer-row {
        flex-direction: column;
        align-items: start
    }

    .contact-details {
        gap: 12px
    }

    .product-screen {
        transform: none
    }

    .erp-hero {
        padding-top: 42px
    }

        .erp-hero h1 {
            font-size: 2.65rem
        }

    .erp-screen {
        border-width: 5px;
        margin-top: 30px
    }

    .overview {
        grid-template-columns: 1fr;
        gap: 22px
    }

    .module-layout {
        display: block
    }

    .module-nav {
        position: static;
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-bottom: 35px;
        gap: 7px
    }

        .module-nav a {
            font-size: .8rem;
            padding: 10px
        }

    .features {
        grid-template-columns: 1fr
    }

    .module h3 {
        font-size: 1.6rem
    }

    .extra-grid {
        grid-template-columns: 1fr;
        gap: 30px
    }

    .footer-links {
        flex-wrap: wrap
    }

    .screen-bar small {
        display: none
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *, *:before, *:after {
        animation: none !important;
        transition: none !important
    }
}
