:root {
    --ink:#171c39;
    --brand:#292b80;
    --muted:#667085;
    --paper:#f6f7fb;
    --line:#e4e6ed;
    --lime:#dceea3;
}

body {
    background:var(--paper);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
}

.site-shell {
    width:min(1240px,calc(100% - 96px));
    margin-inline:auto;
}

.container {
    max-width:1240px;
}

main {
    min-height:60vh;
}

a,button,input,select {
    touch-action:manipulation;
}

a:focus-visible,button:focus-visible {
    outline:3px solid #7882e9;
    outline-offset:5px;
}

.skip-link {
    position:fixed;
    top:-100px;
    left:20px;
    z-index:2000;
    background:#fff;
    padding:12px 20px;
}

.skip-link:focus {
    top:12px;
}

#navbar {
    background:rgba(255,255,255,.96);
    box-shadow:none;
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(16px);
}

.nav-inner {
    height:88px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.brand-logo {
    width:125px;
    height:auto;
}

.desktop-nav {
    display:flex;
    align-items:center;
    gap:27px;
    font-size:13px;
    font-weight:500;
    color:#575b6e;
}

nav a.nav-link {
    padding:10px 0;
    border:0;
}

nav a.nav-link.active,nav a.nav-link:hover {
    border:0;
    color:var(--brand);
}

nav a.nav-link.active {
    font-weight:700;
}

.nav-cta {
    display:inline-flex;
    align-items:center;
    gap:25px;
    background:var(--brand);
    color:white;
    padding:13px 19px;
    border-radius:6px;
    font-size:13px;
    font-weight:600;
}

.nav-cta:hover {
    background:#414499;
}

.nav-spacer {
    height:88px;
}

.menu-toggle {
    display:none;
    padding:8px;
    font-size:22px;
}

.mobile-links a {
    padding:10px 0;
}

.mobile-links {
    gap:3px;
}

.home-hero {
    background:#f6f7fb;
    padding:70px 0 64px;
}

.hero-layout {
    display:grid;
    grid-template-columns:1.05fr 1fr;
    align-items:center;
    gap:60px;
}

.eyebrow {
    font-size:10px;
    font-weight:700;
    letter-spacing:.16em;
    line-height:1.8;
    color:var(--brand);
    margin-bottom:21px;
    text-transform:uppercase;
}

.hero-copy>.eyebrow {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:10px;
    letter-spacing:.1em;
}

.status-dot {
    width:7px;
    height:7px;
    background:#647441;
    border-radius:50%;
    box-shadow:0 0 0 4px #e9eddc;
}

.hero-copy h1 {
    font-size:clamp(44px,4.3vw,64px);
    line-height:1.09;
    letter-spacing:-.055em;
    font-weight:600;
    margin-bottom:24px;
}

.hero-copy h1 em {
    font-style:normal;
    color:var(--brand);
}

.hero-description {
    font-size:16px;
    line-height:1.8;
    color:var(--muted);
    max-width:390px;
    margin-bottom:30px;
}

.button-row {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.primary-button,.secondary-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:25px;
    padding:15px 20px;
    border-radius:5px;
    font-size:12px;
    font-weight:600;
}

.primary-button {
    background:var(--brand);
    color:#fff;
}

.primary-button:hover {
    background:#414499;
}

.secondary-button {
    border:1px solid #d5d8e4;
    background:transparent;
    color:var(--ink);
}

.secondary-button:hover {
    background:white;
}

.hero-note {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:10px;
    color:#707487;
    margin-top:39px;
}

.note-line {
    width:25px;
    height:1px;
    background:#8f93a5;
}

.hero-visual {
    position:relative;
    height:478px;
    background:#1d2850;
    border-radius:9px;
    overflow:hidden;
    color:white;
}

.hero-visual:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(10,20,46,.24),transparent 25%,rgba(11,21,48,.8));
    pointer-events:none;
}

.hero-visual>img {
    height:100%;
    width:100%;
    object-fit:cover;
}

.visual-topline,.visual-caption,.visual-index {
    position:absolute;
    z-index:1;
    left:28px;
    right:28px;
    display:flex;
    justify-content:space-between;
}

.visual-topline {
    top:25px;
    font-size:8px;
    letter-spacing:.17em;
    align-items:center;
}

.visual-topline>span:last-child {
    font-size:22px;
}

.visual-caption {
    bottom:79px;
    align-items:center;
    font-size:24px;
    line-height:1.4;
    letter-spacing:-.025em;
}

.visual-mark {
    font-size:70px;
    color:var(--lime);
}

.visual-index {
    bottom:27px;
    padding-top:17px;
    border-top:1px solid #ffffff42;
    font-size:7px;
    letter-spacing:.12em;
    gap:12px;
}

.expertise-strip {
    background:white;
    border-block:1px solid var(--line);
}

.expertise-strip>.site-shell {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    min-height:85px;
    font-size:12px;
    font-weight:600;
}

.expertise-strip span:first-child {
    font-size:10px;
    color:var(--muted);
    font-weight:400;
}

.expertise-strip span+span:before {
    content:"+";
    margin-right:13px;
    color:#a6aac0;
}

.home-section {
    padding:90px 0;
    background:white;
}

.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:24px;
    margin-bottom:36px;
}

.section-heading .eyebrow {
    margin-bottom:12px;
}

.home-section h2,.innovation-section h2 {
    font-size:clamp(30px,3vw,43px);
    font-weight:600;
    line-height:1.2;
    letter-spacing:-.04em;
}

.section-heading>p {
    font-size:13px;
    line-height:1.8;
    color:var(--muted);
}

.service-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}

.service-card {
    padding:27px 24px 20px;
    border:1px solid var(--line);
    border-radius:7px;
    transition:transform .2s,background .2s;
}

.service-card:hover {
    transform:translateY(-4px);
    background:#f5f5fc;
}

.service-top {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:38px;
    color:var(--brand);
}

.service-top i {
    font-size:25px;
}

.service-top span {
    font-size:10px;
    color:#8b90a3;
}

.service-card h3 {
    font-size:19px;
    font-weight:600;
    line-height:1.4;
    letter-spacing:-.025em;
    margin-bottom:29px;
}

.service-card a {
    border-top:1px solid var(--line);
    padding-top:16px;
    display:flex;
    justify-content:space-between;
    font-size:11px;
    color:var(--muted);
}

.about-section {
    background:#f4f5f9;
}

.about-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:85px;
    align-items:center;
}

.about-image {
    position:relative;
}

.about-image img {
    height:410px;
    width:100%;
    object-fit:cover;
    border-radius:8px;
}

.since-label {
    position:absolute;
    bottom:-20px;
    right:24px;
    display:flex;
    align-items:center;
    gap:18px;
    background:var(--brand);
    color:#fff;
    padding:20px 27px;
    border-radius:5px;
}

.since-label strong {
    font-size:32px;
    font-weight:500;
    letter-spacing:-.04em;
}

.since-label span {
    max-width:80px;
    font-size:11px;
    line-height:1.7;
}

.about-copy h2 {
    margin-bottom:26px;
}

.about-copy h3 {
    font-size:14px;
    font-weight:600;
    margin-bottom:12px;
}

.about-copy>p:not(.eyebrow) {
    font-size:13px;
    color:var(--muted);
    line-height:1.9;
}

.about-principles {
    display:flex;
    gap:25px;
    border-top:1px solid #dadde7;
    margin-top:26px;
    padding-top:22px;
    font-size:12px;
    font-weight:600;
}

.innovation-section {
    background:#191e48;
    color:white;
    padding:65px 0;
    overflow:hidden;
}

.innovation-layout {
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:45px;
    align-items:center;
}

.innovation-section .eyebrow {
    color:var(--lime);
}

.innovation-section h2 {
    margin-bottom:25px;
}

.innovation-section h2 em {
    font-style:normal;
    color:#c9ccf5;
}

.innovation-section h3 {
    font-weight:500;
    font-size:14px;
    margin-bottom:12px;
}

.innovation-section p:not(.eyebrow) {
    max-width:490px;
    font-size:13px;
    line-height:1.9;
    color:#b5bbd4;
}

.innovation-layout>img {
    width:100%;
    height:335px;
    object-fit:contain;
    mix-blend-mode:screen;
}

.light-link {
    display:inline-flex;
    gap:35px;
    margin-top:27px;
    font-size:12px;
    border-bottom:1px solid #737a9a;
    padding-bottom:9px;
}

.portfolio-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:27px;
}

.project-image {
    height:240px;
    overflow:hidden;
    border-radius:7px;
    background:#eff1f7;
}

.project-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .4s;
}

.project-card:hover img {
    transform:scale(1.04);
}

.project-card .eyebrow {
    font-size:8px;
    margin:21px 0 7px;
    color:var(--muted);
}

.project-card h3 {
    font-size:18px;
    font-weight:600;
    letter-spacing:-.025em;
}

.contact-banner {
    background:#eceed8;
    padding:64px 0;
}

.contact-banner>.site-shell {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:35px;
}

.contact-banner .eyebrow {
    margin-bottom:13px;
}

.contact-banner h2 {
    font-size:36px;
    font-weight:600;
    letter-spacing:-.045em;
    line-height:1.2;
    margin-bottom:12px;
}

.contact-banner p:not(.eyebrow) {
    font-size:13px;
    color:#59614d;
}

.site-footer {
    background:#14182e;
    color:#a9afc4;
    padding:45px 0 24px;
}

.footer-top {
    display:flex;
    justify-content:space-between;
    align-items:start;
    gap:30px;
    padding-bottom:35px;
}

.footer-wordmark {
    font-size:26px;
    font-weight:700;
    letter-spacing:-.06em;
    color:white;
}

.footer-wordmark span {
    color:#a8afe7;
}

.footer-top p {
    font-size:11px;
    margin-top:10px;
}

.footer-links {
    display:flex;
    gap:30px;
    font-size:12px;
    flex-wrap:wrap;
}

.footer-links a:hover {
    color:white;
}

.footer-bottom {
    border-top:1px solid #ffffff18;
    padding-top:23px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-size:10px;
}

.footer-bottom a:hover {
    text-decoration:underline;
}

.page-hero {
    padding-block:75px;
    background:#191e48;
}

.card,.tool-card,.info-card {
    box-shadow:0 4px 20px #161b3d04;
    border-color:var(--line);
    border-radius:12px;
}

.tool-card {
    padding:27px;
}

.tool-card p {
    line-height:1.8;
}

.tool-card>div:last-child {
    padding-top:18px;
}

.tool-icon {
    background:#f0f1fa;
    border-radius:10px;
}

.result-box {
    background:linear-gradient(130deg,#242a69,#41468b);
    padding:28px 20px;
}

.btn {
    padding:14px 20px;
}

.field label {
    line-height:1.6;
}

.field input[type=number],.field select {
    padding:11px 12px;
}

.card .flex.justify-between {
    gap:12px;
}

#bmiCategory {
    position:static;
    transform:none;
    white-space:normal;
}

.relief-label {
    padding-right:12px;
}

.relief-input {
    max-width:100px;
}

.tools-intro {
    background:#edeff8!important;
    padding-block:65px!important;
}

.tools-intro h1 {
    letter-spacing:-.04em;
}

.tools-intro p {
    line-height:1.9;
}

.tool-card .flex.items-center.gap-2 {
    flex-wrap:wrap;
}

section[id],header[id] {
    scroll-margin-top:88px;
}

@media(min-width:901px) {
    #mobile-menu.open {
        display:none;
    }
}

@media(max-width:1100px) {
    .site-shell {
        width:calc(100% - 56px);
    }
    .desktop-nav {
        gap:18px;
    }
    .hero-layout {
        gap:30px;
    }
    .hero-visual {
        height:440px;
    }
    .hero-copy h1 {
        font-size:50px;
    }
    .service-card {
        padding:24px 18px;
    }
    .about-layout {
        gap:40px;
    }
    .project-image {
        height:200px;
    }
}

@media(max-width:900px) {
    .desktop-nav,.nav-inner>.nav-cta {
        display:none;
    }
    .menu-toggle {
        display:block;
    }
    .nav-inner,.nav-spacer {
        height:74px;
    }
    .brand-logo {
        width:110px;
    }
    .hero-layout {
        gap:24px;
    }
    .hero-copy h1 {
        font-size:40px;
    }
    .hero-visual {
        height:400px;
    }
    .hero-description {
        font-size:14px;
    }
    .visual-caption {
        font-size:19px;
    }
    .visual-mark {
        font-size:44px;
    }
    .visual-index {
        font-size:6px;
    }
    .expertise-strip>.site-shell {
        flex-wrap:wrap;
        justify-content:center;
        padding-block:22px;
        gap:15px 25px;
    }
    .expertise-strip span:first-child {
        width:100%;
        text-align:center;
    }
    .service-grid {
        grid-template-columns:repeat(2,1fr);
    }
    .home-section {
        padding:65px 0;
    }
    .about-layout {
        gap:30px;
    }
    .about-image img {
        height:380px;
    }
    .innovation-layout {
        grid-template-columns:1.2fr .8fr;
        gap:20px;
    }
    .project-image {
        height:165px;
    }
    .contact-banner h2 {
        font-size:30px;
    }
    .footer-links {
        gap:15px;
    }
    section[id],header[id] {
        scroll-margin-top:74px;
    }
}

@media(max-width:620px) {
    .site-shell {
        width:calc(100% - 40px);
    }
    .home-hero {
        padding:38px 0;
    }
    .hero-layout,.about-layout,.innovation-layout {
        grid-template-columns:1fr;
    }
    .hero-copy h1 {
        font-size:clamp(38px,10vw,52px);
    }
    .hero-copy>.eyebrow {
        font-size:8px;
    }
    .hero-description {
        max-width:340px;
    }
    .hero-note {
        margin-top:25px;
    }
    .hero-visual {
        height:360px;
        margin-top:12px;
    }
    .visual-caption {
        font-size:24px;
    }
    .visual-index {
        font-size:7px;
    }
    .button-row {
        gap:10px;
    }
    .primary-button,.secondary-button {
        font-size:11px;
        gap:15px;
        padding:14px 17px;
    }
    .expertise-strip>.site-shell {
        font-size:10px;
    }
    .expertise-strip span+span:before {
        margin-right:7px;
    }
    .section-heading {
        align-items:start;
        flex-direction:column;
        gap:14px;
    }
    .section-heading>p br {
        display:none;
    }
    .home-section {
        padding:52px 0;
    }
    .service-grid {
        gap:12px;
    }
    .service-card {
        padding:20px 16px;
    }
    .service-card h3 {
        font-size:16px;
    }
    .service-top {
        margin-bottom:25px;
    }
    .about-image {
        margin-bottom:26px;
    }
    .about-image img {
        height:290px;
    }
    .about-layout {
        gap:30px;
    }
    .innovation-section {
        padding:50px 0;
    }
    .innovation-layout>img {
        height:250px;
    }
    .portfolio-grid {
        grid-template-columns:1fr;
        gap:32px;
    }
    .project-image {
        height:auto;
        aspect-ratio:1.5;
    }
    .project-card .eyebrow {
        margin-top:15px;
    }
    .contact-banner {
        padding:45px 0;
    }
    .contact-banner>.site-shell {
        align-items:start;
        flex-direction:column;
        gap:24px;
    }
    .contact-banner h2 {
        font-size:30px;
    }
    .footer-top,.footer-bottom {
        flex-direction:column;
        gap:22px;
    }
    .footer-links {
        flex-direction:column;
        gap:12px;
    }
    .page-hero h1 {
        font-size:36px;
    }
    .card {
        padding:20px;
    }
    .card .text-4xl {
        font-size:30px;
    }
    .relief-label {
        font-size:12px;
    }
    .tools-intro h1 {
        font-size:32px;
    }
    .tools-intro {
        padding-block:45px!important;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    *,*:before,*:after {
        transition:none!important;
    }
}

