/* Anjiom Technologies shared visual system — loaded last as the brand layer. */

html { scroll-behavior: smooth; }

body {
    overflow-x: clip;
    background: var(--fm-bg, #fff);
    color: var(--fm-text, #101828);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 1rem;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.preloader { display: none !important; }

.cursor-label { opacity: 0 !important; }
.cursor-label.is-visible { opacity: 1 !important; }
.cursor-ring { transition: width var(--fm-duration-fast), height var(--fm-duration-fast), border-color var(--fm-duration-fast), background-color var(--fm-duration-fast); }
.cursor-ring.is-active { width: 46px; height: 46px; border-color: rgba(37, 117, 252, .75); background: rgba(37, 117, 252, .06); }
body.cursor-in-header .cursor-ring,
body.cursor-in-header .cursor-ring.is-active { width: 18px; height: 18px; }

main { overflow: clip; }
main section[id] { scroll-margin-top: 7rem; }
img { max-width: 100%; }

:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid rgba(244, 122, 22, .62);
    outline-offset: 3px;
}

:where(h1, h2, h3, h4, h5, h6, .display-title, .footer-big) {
    font-family: "Space Grotesk", Inter, system-ui, sans-serif;
    text-wrap: balance;
}

:where(p, li) { text-wrap: pretty; }

.section-padding,
.sw-section,
.ind-section,
.case-section,
.contact-section { padding-block: var(--fm-section-space) !important; }

.section-padding-sm { padding-block: var(--fm-section-space-sm) !important; }

main :where(.container, .sw-container) {
    width: min(calc(100% - 2rem), var(--fm-container));
    max-width: var(--fm-container);
    margin-inline: auto;
}

main .container-fluid {
    width: min(calc(100% - 2rem), var(--fm-container-wide));
    margin-inline: auto;
    padding-inline: 0 !important;
}

.eyebrow,
.about-kicker,
.services-kicker,
.ind-eyebrow,
.case-eyebrow,
.contact-eyebrow,
.sw-eyebrow,
.service-card-number,
.project-index,
.form-kicker {
    color: var(--fm-brand-light) !important;
    font-size: .72rem !important;
    font-weight: 700 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase;
}

.display-title,
.about-pillars h2,
.about-story h2,
.about-values h2,
.about-engineering h2,
.about-people h2,
.services-process h2,
.ind-title,
.case-title,
.contact-title,
.sw-heading h2 {
    max-width: 18ch;
    margin-bottom: 1.25rem;
    color: var(--fm-text);
    font-size: clamp(2.15rem, 4.8vw, 4.5rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.055em !important;
    line-height: .98 !important;
}

:where(.display-title, .about-story h2, .about-values h2, .services-process h2, .ind-title, .case-title, .contact-title, .sw-heading h2) span {
    color: var(--fm-brand-light);
}

.lead-copy,
.about-intro-support,
.about-hero-copy,
.services-hero-copy,
.projects-hero-copy,
.ind-copy,
.case-hero-copy,
.contact-copy,
.contact-lead,
.sw-heading p,
.sw-hero__lead {
    max-width: 62ch;
    color: var(--fm-text-soft);
    font-size: clamp(1rem, 1.2vw, 1.125rem);
    line-height: 1.75;
}

/* Shared actions */
:where(.btn-brand, .btn-primary-custom, .btn-outline-custom, .service-card-link, .project-link, .ind-link, .form-btn, .sw-button, .text-link) {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    border-radius: var(--fm-radius-sm) !important;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .055em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--fm-duration-fast), background-color var(--fm-duration-fast), border-color var(--fm-duration-fast), transform var(--fm-duration-fast);
}

:where(.btn-brand, .btn-primary-custom, .form-btn.primary, .sw-button) {
    border: 1px solid var(--fm-brand) !important;
    background: var(--fm-brand) !important;
    color: var(--fm-navy-950) !important;
    padding: .75rem 1.1rem;
}

:where(.btn-outline-custom, .form-btn.secondary, .sw-button--ghost) {
    border: 1px solid var(--fm-border-soft) !important;
    background: transparent !important;
    color: inherit !important;
    padding: .75rem 1.1rem;
}

:where(.btn-brand, .btn-primary-custom, .btn-outline-custom, .service-card-link, .project-link, .ind-link, .form-btn, .sw-button, .text-link):hover {
    transform: translateY(-2px) !important;
}

:where(.service-card-link, .project-link, .ind-link, .text-link) i { transition: transform var(--fm-duration-fast); }
:where(.service-card-link, .project-link, .ind-link, .text-link):hover i { transform: translate(2px, -2px); }

/* Shared inner hero system */
:where(.about-hero, .services-hero, .ind-hero, .projects-hero, .case-hero, .contact-hero, .sw-hero) {
    min-height: clamp(560px, 76svh, 780px) !important;
    padding-block: clamp(9rem, 16vw, 12rem) clamp(4rem, 7vw, 6.5rem) !important;
    background-color: var(--fm-navy-950) !important;
}

:where(.about-hero, .services-hero, .ind-hero, .projects-hero, .case-hero, .contact-hero, .sw-hero) h1 {
    max-width: 13ch;
    margin: 0;
    color: #fff;
    font-size: clamp(3rem, 7.3vw, 6.75rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.065em !important;
    line-height: .92 !important;
}

:where(.about-hero, .services-hero, .ind-hero, .projects-hero, .case-hero, .contact-hero, .sw-hero) h1 span { color: #f58a34 !important; }

:where(.about-hero-copy, .services-hero-copy, .projects-hero-copy, .ind-copy, .case-hero-copy, .contact-copy, .sw-hero__lead) {
    color: #b7c7da !important;
}

:where(.about-hero-meta, .services-hero-meta, .projects-hero-meta, .case-meta, .contact-side, .sw-hero__meta) {
    color: #8ea5bf !important;
    font-size: .7rem !important;
    font-weight: 600;
    letter-spacing: .12em !important;
    line-height: 1.65;
    text-transform: uppercase;
}

:where(.about-hero-grid, .projects-grid-bg, .ind-grid, .case-grid, .contact-grid, .service-visual-grid) { opacity: .18 !important; }
:where(.about-orbit, .services-hero-machine, .ind-orbit, .case-object) { opacity: .68; filter: saturate(.85); }

/* Cards: quiet surfaces, consistent border and restrained lift. */
:where(.about-pillar, .service-card, .service-capability, .ind-card, .ind-matrix-item, .project-card, .featured-project-card, .process-step, .contact-process-item, .sw-service-card, .sw-capability, .sw-deliverable, .sw-list-card, .sw-project) {
    border: 1px solid var(--fm-border-soft) !important;
    border-radius: var(--fm-radius-md) !important;
    box-shadow: none !important;
    transition: transform var(--fm-duration) var(--fm-ease), border-color var(--fm-duration), box-shadow var(--fm-duration) !important;
}

:where(.about-pillar, .service-card, .service-capability, .ind-card, .ind-matrix-item, .project-card, .contact-process-item, .sw-service-card, .sw-capability):hover {
    transform: translateY(-3px) !important;
    border-color: rgba(37, 117, 252, .32) !important;
    box-shadow: var(--fm-shadow-sm) !important;
}

/* Homepage: preserve the content sequence while removing the legacy showcase feel. */
.hero-section {
    min-height: min(900px, 100svh);
    padding-top: clamp(8rem, 15vw, 11rem);
}

.hero-title {
    max-width: 12ch;
    font-size: clamp(3.3rem, 8vw, 7.2rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.07em !important;
    line-height: .9 !important;
}

.statement-section,
.services-section,
.transformation-section,
.industries-section,
.capabilities-section,
.tools-section,
.why-section,
.insights-section { background: var(--fm-bg); }

.journey-section,
.projects-section,
.precision-section,
.stats-section { background-color: var(--fm-navy-950) !important; }

@media (min-width: 992px) {
    .journey-sticky {
        align-items: flex-start !important;
        padding-top: clamp(15rem, 33vh, 19rem);
    }

    .journey-header {
        top: clamp(2.25rem, 6vh, 4.5rem) !important;
        align-items: flex-start !important;
        gap: 3rem;
    }

    .journey-header .display-title {
        max-width: 10ch;
        margin: 0;
        font-size: clamp(2.8rem, 4.8vw, 4.75rem) !important;
        line-height: .94 !important;
    }

    .journey-intro {
        max-width: 30ch !important;
        margin: 2.35rem 0 0;
    }

    .journey-card { height: clamp(310px, 48vh, 430px) !important; }
    .journey-progress { bottom: clamp(1.25rem, 4vh, 3rem) !important; }
}

@media (min-width: 992px) and (max-height: 700px) {
    .journey-sticky { padding-top: 13.75rem; }
    .journey-header { top: 1.75rem !important; }
    .journey-header .display-title { font-size: clamp(2.6rem, 4.25vw, 4rem) !important; }
    .journey-intro { margin-top: 1.5rem; }
    .journey-card { height: clamp(290px, calc(100vh - 280px), 360px) !important; }
    .journey-content { padding: 3.4rem 2rem 1.5rem !important; }
    .journey-content h3 { font-size: clamp(1.6rem, 2.5vw, 2.35rem) !important; }
    .journey-progress { bottom: .8rem !important; }
}

.service-card-home,
.insight-card {
    border-color: var(--fm-border-soft) !important;
    box-shadow: none !important;
}

.service-card-home:hover,
.insight-card:hover { transform: translateY(-3px) !important; }

.home-software { background: var(--fm-bg-soft); }
.home-software__heading {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.home-software__heading .text-link { margin-top: 1.25rem; color: var(--fm-brand); }
.home-software__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.home-software__service {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    min-height: 112px;
    padding: 1.25rem;
    border: 1px solid var(--fm-border-soft);
    border-radius: var(--fm-radius-md);
    background: #fff;
    color: var(--fm-text);
    text-decoration: none;
    transition: transform var(--fm-duration) var(--fm-ease), border-color var(--fm-duration), box-shadow var(--fm-duration);
}
.home-software__service:hover { transform: translateY(-3px); border-color: rgba(37, 117, 252, .32); box-shadow: var(--fm-shadow-sm); }
.home-software__service span { color: #93a3b6; font-size: .7rem; }
.home-software__service strong { min-width: 0; font-size: clamp(1rem, 1.35vw, 1.25rem); line-height: 1.25; overflow-wrap: break-word; }
.home-software__service i { color: var(--fm-brand); }

/* About */
.about-intro { background: #fff; }
.about-pillars,
.about-people { background: var(--fm-bg-soft); }
.about-pillar { padding: clamp(1.35rem, 2.5vw, 2rem) !important; background: #fff !important; }
.about-story-grid,
.about-engineering-grid { gap: clamp(2rem, 6vw, 6rem) !important; }
.about-values h2 { color: #f4f7fb !important; }
.about-values::before { opacity: .3; }

/* Engineering services */
.service-nav-section {
    position: sticky;
    top: 94px;
    z-index: 20;
    border-block: 1px solid var(--fm-border-soft);
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.service-nav { scrollbar-width: thin; }
.service-nav a { min-height: 50px; font-size: .74rem; }
.services-grid-section,
.services-capabilities { background: var(--fm-bg-soft); }

.services-grid { gap: 1rem !important; }
.service-card {
    min-height: 360px !important;
    overflow: hidden;
    background: #fff !important;
}

.service-card-copy { padding: clamp(1.4rem, 2.7vw, 2.35rem) !important; }
.service-card h3 {
    max-width: 18ch;
    font-size: clamp(1.65rem, 2.8vw, 2.5rem) !important;
    letter-spacing: -.04em;
    line-height: 1.06;
}

.service-card p { max-width: 58ch; color: var(--fm-text-soft) !important; line-height: 1.7; }
.service-tags span,
.project-tag { border-color: var(--fm-border-soft) !important; background: var(--fm-bg-soft) !important; color: #4d6076 !important; }
.service-visual { opacity: .72; }

/* Industries */
.ind-section.alt { background: var(--fm-bg-soft) !important; }
.ind-cards { gap: 1rem !important; }
.ind-card { min-height: 280px; padding: clamp(1.35rem, 2.5vw, 2rem) !important; background: #fff !important; }
.ind-card p,
.ind-matrix-item p { color: var(--fm-text-soft) !important; line-height: 1.7; }
.ind-case { background: var(--fm-navy-950) !important; }

/* Projects */
.project-filter-bar {
    border-block: 1px solid var(--fm-border-soft);
    background: rgba(255, 255, 255, .96) !important;
}

.project-filter {
    min-height: 44px;
    border-radius: 999px !important;
    font-size: .72rem;
}

.featured-project,
.project-collection { background: var(--fm-bg-soft); }
.featured-project-card { overflow: hidden; background: #fff !important; }
.featured-project-visual,
.project-card-visual { aspect-ratio: 16 / 10; min-height: 0 !important; }
.project-card { overflow: hidden; background: #fff !important; }
.project-card-content { padding: clamp(1.25rem, 2.3vw, 1.8rem) !important; }
.project-card h3 { font-size: clamp(1.35rem, 2.3vw, 1.8rem) !important; line-height: 1.15; }
.project-card p { color: var(--fm-text-soft) !important; line-height: 1.65; }
.project-card-visual { transition: transform .45s var(--fm-ease); }
.project-card:hover .project-card-visual { transform: scale(1.02); }

/* Project detail */
.case-section.alt { background: var(--fm-bg-soft) !important; }
.case-block { max-width: 74ch; }
.case-block p { color: var(--fm-text-soft) !important; font-size: 1.04rem; line-height: 1.8; }
.case-visual,
.case-stat,
.case-process-item { border-color: var(--fm-border-soft) !important; border-radius: var(--fm-radius-md) !important; }
.case-index a { min-height: 44px; }

/* Software services: integrate the newer templates with the shared system. */
.software-page { overflow-x: hidden !important; overflow-y: auto !important; background: var(--fm-bg-soft) !important; color: var(--fm-text); font-family: Inter, sans-serif; }
.software-page :where(h1, h2, h3) { font-family: "Space Grotesk", Inter, sans-serif; }
.sw-section:nth-of-type(even):not(.sw-dark) { background: #fff; }
.sw-service-grid,
.sw-list-grid,
.sw-capability-grid,
.sw-project-grid { gap: 1rem !important; }
.sw-service-card { min-height: 300px; padding: clamp(1.35rem, 2.5vw, 2rem) !important; }
.sw-service-card::after { opacity: .35; }
.sw-stack span,
.sw-chips span { border-color: var(--fm-border-soft); border-radius: var(--fm-radius-sm); }
.sw-dark { background: var(--fm-navy-950) !important; }
.sw-dark .sw-heading h2 { color: #f4f7fb !important; }
.sw-faq details { border-color: var(--fm-border-soft); border-radius: var(--fm-radius-md); }

/* Contact: keep the working multi-step form and make it the visual focus. */
.contact-section { background: #fff; }
.contact-section.alt { background: var(--fm-bg-soft) !important; }
.contact-layout { gap: clamp(2.5rem, 7vw, 7rem) !important; }
.contact-form-wrap {
    padding: clamp(1.3rem, 3vw, 2.4rem) !important;
    border: 1px solid var(--fm-border-soft) !important;
    border-radius: var(--fm-radius-lg) !important;
    background: #fff !important;
    box-shadow: var(--fm-shadow-sm) !important;
}

.choice label,
.form-control,
.form-select,
.file-box {
    min-height: 52px;
    border-color: var(--fm-border-soft) !important;
    border-radius: var(--fm-radius-sm) !important;
    background-color: var(--fm-bg-soft) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--fm-brand-light) !important;
    box-shadow: 0 0 0 4px rgba(47, 131, 238, .12) !important;
}

textarea.form-control { min-height: 150px; }
.contact-process { gap: 1rem !important; }
.contact-process-item { background: #fff !important; }

/* CMS detail output */
.service-intro,
.service-content { background: #fff; }
.service-rich-content { max-width: 74ch; color: var(--fm-text-soft); font-size: 1.04rem; line-height: 1.8; }
.service-rich-content :where(h2, h3) { color: var(--fm-text); letter-spacing: -.035em; }
.service-image img { border-radius: var(--fm-radius-md) !important; }

/* Footer */
.site-footer {
    padding: clamp(4rem, 8vw, 7rem) 0 1.5rem !important;
    border-top: 1px solid rgba(15, 34, 58, .09) !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(244, 248, 253, .82)) !important;
    box-shadow: 0 -18px 55px rgba(8, 24, 45, .07);
    -webkit-backdrop-filter: blur(20px) saturate(135%);
    backdrop-filter: blur(20px) saturate(135%);
    color: var(--fm-text) !important;
}

.site-footer > .container-fluid {
    width: min(calc(100% - 2rem), var(--fm-container-wide));
    margin-inline: auto;
    padding-inline: 0 !important;
}

.footer-top {
    align-items: end !important;
    gap: 2rem;
    padding-bottom: clamp(2.5rem, 5vw, 4.5rem) !important;
    border-bottom: 1px solid rgba(15, 34, 58, .1);
}

.footer-logo {
    filter: none !important;
}
.footer-top p { margin: 1rem 0 0; color: var(--fm-text-soft) !important; }
.footer-big {
    max-width: 12ch;
    margin-left: auto;
    color: var(--fm-text) !important;
    font-size: clamp(2.4rem, 5.5vw, 5.4rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.06em !important;
    line-height: .9 !important;
    text-align: right;
}

.footer-big span { color: var(--fm-brand) !important; }
.footer-grid { gap: clamp(2rem, 5vw, 5rem) !important; padding-block: clamp(2.75rem, 5vw, 4.5rem) !important; }
.footer-grid > div { min-width: 0; }
.footer-grid small { color: #748397 !important; letter-spacing: .14em; }
.footer-grid a { min-height: 34px; color: #26384d !important; text-decoration: none; }
.footer-grid a:hover { color: var(--fm-brand) !important; }
.footer-note,
.footer-note a { color: var(--fm-text-soft) !important; }
.footer-contact { overflow-wrap: anywhere; font-size: clamp(1rem, 1.5vw, 1.25rem) !important; }
.footer-bottom { gap: 1rem; border-top-color: rgba(15, 34, 58, .1) !important; color: #748397 !important; }
.footer-bottom a { color: #38536f; }
.footer-bottom a:hover { color: var(--fm-brand); }

@media (max-width: 991px) {
    .section-padding,
    .sw-section,
    .ind-section,
    .case-section,
    .contact-section { padding-block: clamp(4rem, 9vw, 6rem) !important; }

    :where(.about-hero, .services-hero, .ind-hero, .projects-hero, .case-hero, .contact-hero, .sw-hero) {
        min-height: 640px !important;
        padding-top: 9.5rem !important;
    }

    .service-nav-section { top: 84px; }
    .service-card { min-height: 0 !important; }
    .service-visual { min-height: 220px !important; }
    .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .home-software__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    html { scroll-behavior: auto; }
    main :where(.container, .sw-container),
    main .container-fluid,
    .site-footer > .container-fluid { width: min(calc(100% - 1.5rem), var(--fm-container)); }

    .section-padding,
    .sw-section,
    .ind-section,
    .case-section,
    .contact-section { padding-block: clamp(3.25rem, 14vw, 4.75rem) !important; }

    :where(.about-hero, .services-hero, .ind-hero, .projects-hero, .case-hero, .contact-hero, .sw-hero) {
        min-height: 560px !important;
        padding-block: 8rem 3.5rem !important;
    }

    :where(.about-hero, .services-hero, .ind-hero, .projects-hero, .case-hero, .contact-hero, .sw-hero) h1 {
        max-width: 10ch;
        font-size: clamp(2.75rem, 14vw, 4.4rem) !important;
    }

    .hero-title { font-size: clamp(3rem, 14vw, 4.8rem) !important; }
    .display-title,
    .about-pillars h2,
    .about-story h2,
    .about-values h2,
    .about-engineering h2,
    .about-people h2,
    .services-process h2,
    .ind-title,
    .case-title,
    .contact-title,
    .sw-heading h2 { font-size: clamp(2rem, 10vw, 3rem) !important; }

    .service-nav-section { position: relative; top: auto; }
    .service-card { grid-template-columns: 1fr !important; }
    .service-visual { min-height: 180px !important; }
    .featured-project-visual,
    .project-card-visual { aspect-ratio: 16 / 11; }
    .choice-grid { grid-template-columns: 1fr !important; }
    .form-actions { gap: .7rem; }
    .form-btn { flex: 1; }
    .footer-top { display: grid !important; }
    .footer-big { margin: 0; text-align: left; }
    .footer-grid { grid-template-columns: 1fr !important; }
    .footer-bottom { align-items: flex-start !important; flex-direction: column; }
    .home-software__heading,
    .home-software__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
    [data-reveal], .reveal-up, .ind-reveal, .contact-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* Anjiom brand accents. Orange is used for emphasis; navy remains the accessible action color. */
::selection {
    background: var(--primary-color);
    color: var(--fm-navy-950);
}

.hero-title em,
.footer-big span,
.service-title span,
.sw-hero h1 span {
    color: #f58a34 !important;
}

.pulse-dot,
.journey-progress-fill,
.service-image-accent {
    background-color: var(--primary-color) !important;
}

.modern-header__brand img {
    width: clamp(136px, 12vw, 160px);
    max-height: 54px;
    object-fit: contain;
}

.footer-logo {
    width: 160px !important;
    height: auto;
    max-height: 60px;
    object-fit: contain;
}

.software-page .sw-eyebrow,
.software-page .sw-service-card__top i,
.software-page .sw-list-card span,
.software-page .sw-process__step span,
.software-page .sw-process__step::before,
.software-page .sw-deliverable i,
.software-page .sw-faq summary::after {
    color: var(--fm-orange-600) !important;
}

.software-page .sw-service-card:hover {
    border-color: rgba(244, 122, 22, .42) !important;
}

.software-page .sw-service-card a {
    color: var(--primary-color) !important;
}

.software-page .sw-marquee {
    background: var(--fm-bg-blue);
    color: var(--primary-color);
}

.software-page .sw-marquee span::after {
    color: var(--primary-color);
}
