/* Shared public typography. Keep light cards readable inside dark sections. */
body {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body p,
.prose,
.tw-service-description-content {
    font-size: 16px !important;
    line-height: 1.75;
}

input, select, textarea, button {
    font-family: inherit;
}

input, select, textarea {
    font-size: 16px !important;
}

input::placeholder, textarea::placeholder {
    color: #52627a;
    opacity: 1;
}

:is(.tech-hero, .tw-project-showcase, .tw-journey, .client-universe,
    .tw-quotation-section, .tw-about-hero, .tw-cta, .tw-service-hero,
    .tw-service-cta, .tw-careers-hero, .privacy-hero, .svc-hero,
    .svc-foundation, footer) :is(p, small, label) {
    color: #fff !important;
}

:is(.tw-topbar, .tech-hero, .tw-journey, .client-universe,
    .tw-project-showcase, footer) {
    color: #fff;
}

.tw-location, .tw-top-email, .tw-certification,
.tech-file-name, .tech-code-status,
.tech-stat-card span, .tech-chart-labels, .tech-activity-list small,
.tw-project-number, .tw-journey-range > span,
.tw-timeline-year > span, .client-universe-count span,
.client-stream-top > span, .client-logo-card small,
.client-logo-card-number, .client-logo-details span,
.tw-quote-field > span:first-child,
.tw-file-display, .tw-file-display small,
.nexus-legal-links a, .nexus-scroll-top,
.nexus-links-column nav > a > span, .nexus-contact-copy span {
    color: #fff !important;
}

.tw-quotation-form input::placeholder,
.tw-quotation-form textarea::placeholder {
    color: #dbe7f8;
    opacity: 1;
}

/* The enquiry form is a light surface; quotation fields use a dark surface. */
.tw-enquiry-panel :is(p, small), .tw-textarea-wrap small {
    color: #48566e !important;
}

.tw-enquiry-panel .tw-submit-button small {
    color: #fff !important;
}

/* The animated preview is a miniature website with its own type scale. */
.tech-mini-site .mini-copy p {
    font-size: 9px !important;
    color: #a9bad6 !important;
}

.tech-mini-site .mini-brand small { color: #8297bd !important; }
.tech-mini-site .mini-card small { color: #7790b7 !important; }
.tech-code-output .code-keyword { color: #d777f7 !important; }
.tech-code-output .code-function { color: #55d9ff !important; }
.tech-code-output .code-string { color: #80e9ad !important; }
.tech-code-output .code-property { color: #79a9ff !important; }

.tw-enquiry-panel label {
    color: #233654 !important;
}

:is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid #1686d9 !important;
    outline-offset: 4px;
}

.tw-file-field:focus-within .tw-file-display {
    outline: 3px solid #58ddff;
    outline-offset: 4px;
}

.client-stream-top, .client-universe-summary,
.nexus-bottom-row {
    flex-wrap: wrap;
}

.tw-topbar-inner {
    width: min(1640px, calc(100% - 48px));
    flex-wrap: nowrap;
    gap: 20px;
    padding-block: 8px;
}

.tw-topbar-left {
    flex: 1;
    min-width: 0;
    flex-wrap: nowrap;
    gap: 12px;
}

.tw-location {
    min-width: 0;
    flex: 1;
}

.tw-location-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tw-location svg, .tw-top-divider, .tw-top-email, .tw-certification {
    flex-shrink: 0;
}

.tw-top-email, .tw-certification {
    white-space: nowrap;
}

.tw-header {
    color: #16253c;
    height: auto;
    min-height: 96px;
}

.tw-brand-copy small, .tw-ai-status small {
    color: #48566e;
    letter-spacing: .04em;
}

.tw-navbar {
    width: min(1640px, calc(100% - 48px));
    min-height: 96px;
    flex-wrap: nowrap;
    gap: 18px;
}

.tw-brand {
    min-width: 0;
    flex-shrink: 0;
}

.tw-logo-box {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
}

.tw-logo-box img {
    max-height: 76px;
}

.tw-brand-copy {
    white-space: nowrap;
}

.tw-brand-copy strong {
    font-size: 18px;
}

.tw-navigation {
    flex-shrink: 0;
    gap: 1px;
}

.tw-navigation > a, .tw-dropdown-trigger {
    min-height: 96px;
    padding-inline: 7px;
    font-size: 19px;
}

.tw-mobile-dropdown > a {
    font-size: 20px;
}

.tw-hiring-badge {
    position: static;
    line-height: 1.4;
}

.tw-ai-status {
    white-space: nowrap;
}

.tw-header-actions {
    flex-shrink: 0;
}

@media (max-width: 1600px) {
    .tw-ai-status {
        display: none;
    }
}

@media (max-width: 1400px) {
    .tw-navigation, .tw-header-actions {
        display: none;
    }

    .tw-mobile-menu {
        display: block;
    }

    .tw-brand {
        margin-right: auto;
    }
}

@media (max-width: 600px) {
    .tw-header {
        min-height: 88px;
    }

    .tw-topbar-inner, .tw-navbar {
        width: calc(100% - 32px);
    }

    .tw-navbar {
        min-height: 88px;
        gap: 12px;
    }

    .tw-topbar-left {
        flex: initial;
    }

    .tw-logo-box {
        width: 68px;
        height: 68px;
    }

    .tw-logo-box img {
        max-height: 64px;
    }

    .tw-brand {
        gap: 10px;
    }

    .tw-brand-copy strong {
        font-size: 16px;
    }

    .tw-brand-copy small {
        letter-spacing: .02em;
    }
}

.tw-field, .tw-quote-field, .tw-form-heading,
.tw-project-information, .tw-timeline-content {
    min-width: 0;
}

main p, footer p, .tw-field, .tw-quote-field {
    overflow-wrap: anywhere;
}

@media (max-width: 650px) {
    .client-stream-top {
        padding-block: 12px;
    }

    .tw-form-heading, .tw-contact-form, .tw-quotation-form {
        padding-inline: 20px;
    }

    .tw-contact-form-grid, .tw-quote-fields {
        grid-template-columns: minmax(0, 1fr);
    }
}
