/* =========================================================
   BUILDFRAME BUSINESS SOFTWARE
   Public Website Foundation
   ========================================================= */

:root {
    --navy-950: #071a33;
    --navy-900: #0b2447;
    --navy-800: #123866;

    --blue-600: #1267d6;
    --blue-500: #2186e6;
    --cyan-400: #2cc6e8;

    --cream-100: #f6f2e9;
    --cream-50: #fbf9f4;

    --white: #ffffff;

    --gray-100: #eef2f6;
    --gray-200: #d9e1e9;
    --gray-500: #66798e;
    --gray-700: #334a60;
    --gray-900: #14273a;

    --border: rgba(11, 36, 71, 0.16);

    --shadow:
        0 18px 50px rgba(7, 26, 51, 0.10);

    --shadow-soft:
        0 10px 30px rgba(7, 26, 51, 0.07);

    --radius-sm: 10px;
    --radius-md: 18px;
    --radius-lg: 28px;

    --container: 1180px;
}


/* =========================================================
   RESET
   ========================================================= */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    color: var(--gray-900);
    background: var(--white);

    line-height: 1.6;
}

img,
video {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

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


/* =========================================================
   GLOBAL
   ========================================================= */

.container {
    width: min(calc(100% - 40px),
            var(--container));

    margin-inline: auto;
}

.section {
    padding: 92px 0;
}

.section-white {
    background: var(--white);
}

.section-light {
    background: var(--cream-50);
}

.section-dark {
    position: relative;

    color: var(--white);

    background:
        linear-gradient(135deg,
            var(--navy-950),
            var(--navy-900));

    overflow: hidden;
}

.section-dark::before {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    opacity: 0.18;

    background-image:
        linear-gradient(rgba(44, 198, 232, 0.18) 1px,
            transparent 1px),
        linear-gradient(90deg,
            rgba(44, 198, 232, 0.18) 1px,
            transparent 1px);

    background-size: 42px 42px;
}

.section-dark>* {
    position: relative;
    z-index: 1;
}

.section-heading {
    width: min(760px, 100%);
    margin-bottom: 48px;
}

.section-heading h2 {
    margin: 8px 0 16px;

    color: var(--navy-950);

    font-size:
        clamp(2rem,
            4vw,
            3.2rem);

    line-height: 1.12;
}

.section-heading p {
    margin: 0;

    color: var(--gray-700);
}

.section-heading-light h2 {
    color: var(--white);
}

.section-heading-light p {
    color:
        rgba(255,
            255,
            255,
            0.78);
}

.eyebrow {
    margin: 0 0 10px;

    color: var(--blue-600);

    font-size: 0.8rem;
    font-weight: 800;

    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.eyebrow-light {
    color: var(--cyan-400);
}


/* =========================================================
   BUTTONS
   ========================================================= */

.button {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 48px;

    padding: 12px 22px;

    border: 1px solid transparent;
    border-radius: 999px;

    font-weight: 750;

    transition:
        transform 160ms ease,
        box-shadow 160ms ease,
        background 160ms ease,
        border-color 160ms ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button-primary {
    color: var(--white);

    background: var(--blue-600);

    box-shadow:
        0 10px 24px rgba(18, 103, 214, 0.25);
}

.button-primary:hover {
    background: var(--blue-500);
}

.button-secondary {
    color: var(--navy-900);

    border-color: var(--navy-900);

    background: transparent;
}

.button-secondary:hover {
    background: var(--cream-100);
}

.button-outline-light {
    color: var(--white);

    border-color:
        rgba(255,
            255,
            255,
            0.45);

    background:
        rgba(255,
            255,
            255,
            0.04);
}

.button-group {
    display: flex;

    flex-wrap: wrap;
    gap: 12px;
}

.button-group.centered {
    justify-content: center;
}


/* =========================================================
   HEADER
   ========================================================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;

    background:
        rgba(255,
            255,
            255,
            0.96);

    border-bottom:
        1px solid var(--border);

    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.header-inner {
    min-height: 74px;

    display: flex;
    align-items: center;

    gap: 28px;
}

.brand {
    display: flex;
    flex-direction: column;

    line-height: 1;
}

.brand-name {
    color: var(--navy-950);

    font-size: 1.35rem;
    font-weight: 900;
}

.brand-subtitle {
    margin-top: 5px;

    color: var(--blue-600);

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.main-navigation {
    margin-left: auto;

    display: flex;
    align-items: center;

    gap: 24px;
}

.main-navigation a {
    color: var(--gray-700);

    font-size: 0.92rem;
    font-weight: 700;
}

.main-navigation a:hover {
    color: var(--blue-600);
}

.header-cta {
    white-space: nowrap;
}

.mobile-menu-button {
    display: none;

    margin-left: auto;

    border: 0;

    color: var(--navy-950);
    background: transparent;

    font-size: 1.7rem;

    cursor: pointer;
}


/* =========================================================
   HERO
   ========================================================= */

.hero {
    min-height: 690px;

    display: flex;
    align-items: center;

    padding: 90px 0;
}

.hero-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr) minmax(360px, 0.95fr);

    gap: 70px;

    align-items: center;
}

.hero h1 {
    margin: 8px 0 20px;

    max-width: 720px;

    font-size:
        clamp(3rem,
            6vw,
            5.2rem);

    line-height: 0.98;

    letter-spacing: -0.04em;
}

.hero h1 span {
    display: block;

    color: var(--cyan-400);
}

.hero-tagline {
    margin: 0 0 15px;

    font-size:
        clamp(1.15rem,
            2vw,
            1.5rem);

    font-weight: 800;
}

.hero-description {
    max-width: 660px;

    margin: 0 0 30px;

    color:
        rgba(255,
            255,
            255,
            0.78);

    font-size: 1.05rem;
}

.hero-visual {
    min-height: 430px;
}

.visual-placeholder,
.placeholder {
    min-height: 100%;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 8px;

    text-align: center;

    border:
        1px solid rgba(44,
            198,
            232,
            0.45);

    border-radius: var(--radius-lg);

    background:
        linear-gradient(145deg,
            rgba(255,
                255,
                255,
                0.11),
            rgba(255,
                255,
                255,
                0.03));

    box-shadow: var(--shadow);
}

.visual-placeholder {
    min-height: 430px;
}

.visual-placeholder strong {
    font-size: 1.35rem;
}

.visual-placeholder span {
    color:
        rgba(255,
            255,
            255,
            0.7);
}


/* =========================================================
   BUILDFRAME ADVANTAGES
   ========================================================= */

.advantage-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 16px;
}

.advantage-card {
    display: grid;

    grid-template-columns:
        48px 1fr;

    gap: 18px;

    align-items: start;

    padding: 24px;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);

    background: var(--white);

    box-shadow:
        0 4px 18px rgba(7, 26, 51, 0.03);

    transition:
        transform 160ms ease,
        box-shadow 160ms ease,
        border-color 160ms ease;
}

.advantage-card:hover {
    transform: translateY(-3px);

    border-color:
        rgba(18,
            103,
            214,
            0.32);

    box-shadow: var(--shadow-soft);
}

.advantage-number {
    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    border:
        1px solid rgba(18,
            103,
            214,
            0.22);

    border-radius: 50%;

    color: var(--blue-600);

    background:
        rgba(18,
            103,
            214,
            0.06);

    font-size: 0.74rem;
    font-weight: 900;
}

.advantage-card h3 {
    margin:
        1px 0 8px;

    color: var(--navy-950);

    font-size: 1.08rem;
    line-height: 1.3;
}

.advantage-card p {
    margin: 0;

    color: var(--gray-700);

    font-size: 0.95rem;
}

.advantage-summary {
    margin-top: 34px;

    padding: 34px;

    border:
        1px solid rgba(18,
            103,
            214,
            0.18);

    border-radius: var(--radius-lg);

    background:
        linear-gradient(135deg,
            #ffffff,
            #f4f8fc);

    text-align: center;
}

.advantage-summary h3 {
    width: min(820px, 100%);

    margin:
        6px auto 12px;

    color: var(--navy-950);

    font-size:
        clamp(1.45rem,
            3vw,
            2.25rem);

    line-height: 1.3;
}

.advantage-summary>p:not(.eyebrow) {
    margin:
        0 auto 22px;

    color: var(--gray-700);
}


/* =========================================================
   OFFERS
   ========================================================= */

.offer-grid {
    display: grid;

    grid-template-columns:
        repeat(3,
            minmax(0, 1fr));

    gap: 18px;
}

.offer-card {
    min-height: 220px;

    padding: 26px;

    border:
        1.5px solid var(--navy-900);

    border-radius: var(--radius-md);

    background: var(--white);

    transition:
        transform 160ms ease,
        box-shadow 160ms ease;
}

.offer-card:hover {
    transform: translateY(-4px);

    box-shadow: var(--shadow);
}

.offer-icon {
    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    margin-bottom: 18px;

    border-radius: 50%;

    color: var(--white);
    background: var(--navy-900);

    font-size: 0.76rem;
    font-weight: 900;
}

.offer-card h3 {
    margin: 0 0 10px;

    color: var(--navy-950);
}

.offer-card p {
    margin: 0;

    color: var(--gray-700);
}

.wide-offer-card {
    margin-top: 18px;

    padding: 30px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 28px;

    border:
        1.5px solid var(--navy-900);

    border-radius: var(--radius-md);

    background: var(--cream-50);
}

.wide-offer-card h3 {
    margin: 0 0 8px;

    color: var(--navy-950);

    font-size: 1.5rem;
}

.wide-offer-card p {
    margin: 0;
}


/* =========================================================
   ASSESSMENT
   ========================================================= */

.assessment-section {
    padding: 76px 0;
}

.assessment-panel {
    width: min(850px, 100%);

    margin-inline: auto;

    padding: 48px;

    text-align: center;

    border:
        1px solid rgba(44,
            198,
            232,
            0.34);

    border-radius: var(--radius-lg);

    background:
        rgba(255,
            255,
            255,
            0.05);
}

.assessment-panel h2 {
    margin: 8px 0 14px;

    font-size:
        clamp(2rem,
            4vw,
            3rem);
}

.assessment-panel p {
    max-width: 700px;

    margin:
        0 auto 25px;

    color:
        rgba(255,
            255,
            255,
            0.78);
}


/* =========================================================
   VOCABULARY
   ========================================================= */

.vocabulary-layout {
    display: grid;

    grid-template-columns:
        minmax(270px, 0.7fr) minmax(0, 1.3fr);

    gap: 28px;

    align-items: start;
}

.vocabulary-sidebar {
    max-height: 720px;

    overflow-y: auto;

    padding: 22px;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);

    background: var(--white);
}

.vocabulary-group+.vocabulary-group {
    margin-top: 24px;
}

.vocabulary-group h3 {
    margin: 0 0 10px;

    color: var(--navy-950);

    font-size: 0.78rem;
    font-weight: 900;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vocabulary-buttons {
    display: flex;

    flex-wrap: wrap;

    gap: 8px;
}

.vocab-button {
    padding: 8px 13px;

    border:
        1px solid var(--navy-800);

    border-radius: 999px;

    color: var(--navy-900);

    background: var(--white);

    font-size: 0.84rem;
    font-weight: 700;

    cursor: pointer;

    transition:
        background 140ms ease,
        color 140ms ease,
        transform 140ms ease;
}

.vocab-button:hover {
    transform: translateY(-1px);

    color: var(--white);

    background: var(--navy-800);
}

.vocab-button.active {
    color: var(--white);

    background: var(--blue-600);

    border-color: var(--blue-600);
}

.vocabulary-detail {
    position: sticky;
    top: 100px;

    min-height: 520px;

    padding: 38px;

    border:
        1px solid var(--border);

    border-radius: var(--radius-lg);

    background: var(--white);

    box-shadow: var(--shadow);
}

.vocabulary-detail h3 {
    margin: 0 0 28px;

    color: var(--navy-950);

    font-size:
        clamp(2rem,
            4vw,
            3rem);
}

.vocabulary-detail-block {
    padding: 18px 0;

    border-top:
        1px solid var(--gray-200);
}

.vocabulary-detail-block h4 {
    margin: 0 0 7px;

    color: var(--navy-900);
}

.vocabulary-detail-block p {
    margin: 0;

    color: var(--gray-700);
}

.text-link {
    display: inline-block;

    margin-top: 22px;

    color: var(--blue-600);

    font-weight: 800;
}

.text-link:hover {
    color: var(--blue-500);
}


/* =========================================================
   SYSTEMS
   ========================================================= */

.system-grid {
    display: grid;

    grid-template-columns:
        repeat(3,
            minmax(0, 1fr));

    gap: 22px;
}

.system-card {
    overflow: hidden;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);

    background: var(--white);

    transition:
        transform 160ms ease,
        box-shadow 160ms ease;
}

.system-card:hover {
    transform: translateY(-3px);

    box-shadow: var(--shadow-soft);
}

.system-screenshot {
    min-height: 210px;

    border: 0;
    border-radius: 0;

    color: var(--gray-500);

    background: var(--gray-100);
}

.system-card h3 {
    margin:
        22px 22px 8px;

    color: var(--navy-950);
}

.system-card p {
    margin:
        0 22px 24px;

    color: var(--gray-700);
}


/* =========================================================
   PROVEN BUILDFRAME PROJECTS
   ========================================================= */

.project-grid {
    display: grid;

    grid-template-columns:
        repeat(3,
            minmax(0, 1fr));

    gap: 24px;

    align-items: stretch;
}

.project-card {
    display: flex;
    flex-direction: column;

    min-width: 0;

    overflow: hidden;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);

    background: var(--white);

    box-shadow:
        0 7px 24px rgba(7, 26, 51, 0.05);

    transition:
        transform 160ms ease,
        box-shadow 160ms ease,
        border-color 160ms ease;
}

.project-card:hover {
    transform: translateY(-4px);

    border-color:
        rgba(18,
            103,
            214,
            0.26);

    box-shadow: var(--shadow-soft);
}

.project-preview {
    position: relative;

    min-height: 220px;

    display: flex;

    align-items: center;
    justify-content: center;

    overflow: hidden;

    padding: 24px;

    border-bottom:
        1px solid var(--border);

    background:
        linear-gradient(145deg,
            #edf3f8,
            #fafcfe);

    color: var(--gray-500);

    text-align: center;

    font-weight: 800;
}

.project-preview::after {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(rgba(18,
                103,
                214,
                0.035) 1px,
            transparent 1px),
        linear-gradient(90deg,
            rgba(18,
                103,
                214,
                0.035) 1px,
            transparent 1px);

    background-size: 26px 26px;
}

.project-preview img {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    z-index: 1;

    transition:
        transform 220ms ease;
}

.project-preview span {
    position: relative;
    z-index: 2;
}

.project-card:hover .project-preview img {
    transform: scale(1.025);
}

.project-card-body {
    flex: 1;

    display: flex;
    flex-direction: column;

    padding: 24px;
}

.project-type {
    display: inline-flex;

    align-self: flex-start;

    margin-bottom: 12px;

    padding: 6px 11px;

    border:
        1px solid rgba(18,
            103,
            214,
            0.16);

    border-radius: 999px;

    color: var(--blue-600);

    background:
        rgba(18,
            103,
            214,
            0.055);

    font-size: 0.7rem;
    font-weight: 900;

    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.project-card-body h3 {
    margin: 0 0 11px;

    color: var(--navy-950);

    font-size: 1.25rem;
    line-height: 1.3;
}

.project-card-body>p {
    margin: 0 0 18px;

    color: var(--gray-700);

    font-size: 0.94rem;
}

.project-status {
    margin-top: auto;

    padding-top: 8px;

    color: var(--gray-500);

    font-size: 0.78rem;
    font-weight: 800;
}

.card-actions {
    margin-top: 16px;
}

.card-actions .text-link {
    margin-top: 0;
}


/* =========================================================
   SYSTEMS IN DEVELOPMENT
   ========================================================= */

.systems-development-heading {
    margin-top: 88px;
}

.upcoming-grid {
    margin-top: 0;
}

.upcoming-card {
    background:
        linear-gradient(180deg,
            #ffffff,
            #f8fbfd);

    border-style: dashed;

    border-color:
        rgba(18,
            103,
            214,
            0.25);
}

.upcoming-preview {
    color: var(--blue-600);

    background:
        linear-gradient(145deg,
            #f3f8fd,
            #edf5fb);
}

.upcoming-preview::before {
    content: "IN DEVELOPMENT";

    position: absolute;

    top: 16px;
    left: 16px;

    z-index: 3;

    padding: 5px 9px;

    border-radius: 999px;

    color: var(--white);

    background: var(--blue-600);

    font-size: 0.62rem;
    font-weight: 900;

    letter-spacing: 0.09em;
}

.upcoming-status {
    color: var(--blue-600);
}


/* =========================================================
   WORK CTA
   ========================================================= */

.work-cta {
    margin-top: 34px;

    padding: 30px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 26px;

    border:
        1px solid rgba(18,
            103,
            214,
            0.18);

    border-radius: var(--radius-lg);

    background:
        linear-gradient(135deg,
            #ffffff,
            #f4f8fc);
}

.work-cta p {
    margin: 0;

    color: var(--gray-700);
}

.work-cta strong {
    color: var(--navy-950);

    font-size: 1.02rem;
}

.work-cta .button {
    flex: none;
}


/* =========================================================
   VIDEO
   ========================================================= */

.video-shell {
    width: min(900px, 100%);

    margin-inline: auto;
}

.video-placeholder {
    aspect-ratio: 16 / 9;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 10px;

    border:
        1px solid rgba(44,
            198,
            232,
            0.4);

    border-radius: var(--radius-lg);

    background:
        rgba(255,
            255,
            255,
            0.05);
}

.video-play {
    width: 76px;
    height: 76px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    color: var(--navy-950);

    background: var(--cyan-400);

    font-size: 1.5rem;
}


/* =========================================================
   INDUSTRIES
   ========================================================= */

.industry-grid {
    display: grid;

    grid-template-columns:
        repeat(4,
            minmax(0, 1fr));

    gap: 14px;
}

.industry-item {
    min-height: 96px;

    display: grid;
    place-items: center;

    padding: 18px;

    text-align: center;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);

    color: var(--navy-900);

    background: var(--white);

    font-weight: 800;

    transition:
        transform 150ms ease,
        border-color 150ms ease,
        box-shadow 150ms ease;
}

.industry-item:hover {
    transform: translateY(-2px);

    border-color:
        rgba(18,
            103,
            214,
            0.3);

    box-shadow:
        0 8px 20px rgba(7, 26, 51, 0.05);
}

.industry-more {
    margin-top: 30px;

    padding: 24px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 24px;

    border-top:
        1px solid var(--border);

    border-bottom:
        1px solid var(--border);
}

.industry-more p {
    margin: 0;

    color: var(--gray-700);

    font-weight: 700;
}

.industry-more .text-link {
    flex: none;

    margin-top: 0;
}


/* =========================================================
   PROCESS
   ========================================================= */

.process-grid {
    display: grid;

    grid-template-columns:
        repeat(4,
            minmax(0, 1fr));

    gap: 16px;
}

.process-card {
    padding: 26px;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);

    background: var(--white);
}

.process-card span {
    color: var(--blue-600);

    font-size: 0.8rem;
    font-weight: 900;
}

.process-card h3 {
    margin: 12px 0 10px;

    color: var(--navy-950);
}

.process-card p {
    margin: 0;
}

.starting-card {
    margin-top: 22px;

    padding: 30px;

    border-radius: var(--radius-md);

    color: var(--white);

    background: var(--navy-900);
}

.starting-card h3 {
    margin: 5px 0 8px;

    font-size: 1.6rem;
}

.starting-card p {
    margin: 0;

    color:
        rgba(255,
            255,
            255,
            0.78);
}


/* =========================================================
   PACKAGES
   ========================================================= */

.package-grid {
    display: grid;

    grid-template-columns:
        repeat(3,
            minmax(0, 1fr));

    gap: 20px;
}

.package-card {
    padding: 30px;

    border:
        1.5px solid var(--navy-900);

    border-radius: var(--radius-md);

    background: var(--white);
}

.package-card.featured {
    position: relative;

    transform: translateY(-8px);

    box-shadow: var(--shadow);
}

.package-type {
    margin: 0;

    color: var(--blue-600);

    font-size: 0.8rem;
    font-weight: 900;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.package-card h3 {
    margin: 8px 0 18px;

    color: var(--navy-950);

    font-size: 1.6rem;
}

.package-price {
    margin: 0 0 16px;

    color: var(--navy-950);

    font-size: 2rem;
    font-weight: 900;
}

.package-price span {
    font-size: 0.9rem;
    font-weight: 700;
}

.package-card>p:not(.package-type):not(.package-price) {
    margin-bottom: 24px;
}

/* =========================================================
   ENGAGEMENT
   ========================================================= */

.engagement-grid {
    display: grid;

    grid-template-columns:
        repeat(2,
            minmax(0, 1fr));

    gap: 20px;
}

.engagement-card {
    padding: 32px;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);

    background: var(--white);
}

.engagement-card h3 {
    margin-top: 0;

    color: var(--navy-950);
}

.engagement-flow {
    margin-top: 22px;

    padding: 16px;

    border-radius: var(--radius-sm);

    color: var(--navy-900);

    background: var(--cream-100);

    font-weight: 800;
}


/* =========================================================
   EXPECTATIONS
   ========================================================= */

.expectation-grid {
    display: grid;

    grid-template-columns:
        repeat(3,
            minmax(0, 1fr));

    gap: 20px;
}

.expectation-column {
    padding: 28px;

    border:
        1px solid var(--border);

    border-radius: var(--radius-md);
}

.expectation-column h3 {
    margin-top: 0;

    color: var(--navy-950);
}

.expectation-column ul {
    margin: 18px 0 0;

    padding-left: 20px;
}

.expectation-column li+li {
    margin-top: 10px;
}


/* =========================================================
   SECTION NOTE
   ========================================================= */

.section-note {
    margin-top: 32px;

    padding: 24px;

    border-left:
        4px solid var(--cyan-400);

    border-radius:
        0 var(--radius-md) var(--radius-md) 0;

    background: var(--cream-100);
}

.section-note strong {
    color: var(--navy-950);
}

.section-note p {
    margin: 6px 0 0;
}


/* =========================================================
   FAQ
   ========================================================= */

.faq-container {
    width:
        min(calc(100% - 40px),
            900px);
}

.faq-list {
    border-top:
        1px solid rgba(255,
            255,
            255,
            0.18);
}

.faq-item {
    border-bottom:
        1px solid rgba(255,
            255,
            255,
            0.18);
}

.faq-question {
    width: 100%;

    padding: 22px 0;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    text-align: left;

    border: 0;

    color: var(--white);

    background: transparent;

    font-weight: 800;

    cursor: pointer;
}

.faq-question span {
    flex: none;

    color: var(--cyan-400);

    font-size: 1.5rem;
}

.faq-answer {
    display: none;

    padding: 0 0 22px;

    color:
        rgba(255,
            255,
            255,
            0.76);
}

.faq-answer p {
    margin: 0;
}

.faq-item.open .faq-answer {
    display: block;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.final-cta {
    text-align: center;
}

.final-cta-inner {
    width:
        min(calc(100% - 40px),
            760px);
}

.final-cta h2 {
    margin: 6px 0 14px;

    color: var(--navy-950);

    font-size:
        clamp(2rem,
            4vw,
            3.2rem);
}

.final-cta p {
    margin: 0 auto 26px;

    color: var(--gray-700);
}


/* =========================================================
   FOOTER
   ========================================================= */

.site-footer {
    padding: 70px 0 26px;

    color: var(--white);

    background: var(--navy-950);
}

.footer-grid {
    display: grid;

    grid-template-columns:
        1.4fr repeat(4, 1fr);

    gap: 34px;

    padding-bottom: 42px;
}

.footer-brand h2 {
    margin: 0;

    font-size: 1.9rem;
}

.footer-brand>p {
    margin: 2px 0 12px;

    color: var(--cyan-400);

    font-weight: 800;
}

.footer-brand strong {
    color:
        rgba(255,
            255,
            255,
            0.75);

    font-size: 0.9rem;
}

.footer-column {
    display: flex;
    flex-direction: column;

    gap: 9px;
}

.footer-column h3 {
    margin: 0 0 6px;

    color: var(--cyan-400);

    font-size: 0.9rem;
}

.footer-column a {
    color:
        rgba(255,
            255,
            255,
            0.72);

    font-size: 0.87rem;
}

.footer-column a:hover {
    color: var(--white);
}

.footer-bottom {
    padding-top: 24px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    border-top:
        1px solid rgba(44,
            198,
            232,
            0.28);
}

.footer-bottom p {
    margin: 0;

    color:
        rgba(255,
            255,
            255,
            0.6);

    font-size: 0.82rem;
}

.footer-social {
    display: flex;

    flex-wrap: wrap;

    gap: 14px;
}

.footer-social a {
    color:
        rgba(255,
            255,
            255,
            0.7);

    font-size: 0.82rem;
}


/* =========================================================
   RESPONSIVE — TABLET / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1000px) {

    .hero-grid {
        grid-template-columns: 1fr;
    }

    .hero-visual {
        min-height: 360px;
    }

    .visual-placeholder {
        min-height: 360px;
    }

    .advantage-grid,
    .offer-grid,
    .system-grid,
    .project-grid,
    .package-grid,
    .expectation-grid {
        grid-template-columns:
            repeat(2,
                minmax(0, 1fr));
    }

    .industry-grid {
        grid-template-columns:
            repeat(3,
                minmax(0, 1fr));
    }

    .process-grid {
        grid-template-columns:
            repeat(2,
                minmax(0, 1fr));
    }

    .footer-grid {
        grid-template-columns:
            repeat(3,
                minmax(0, 1fr));
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

    .work-cta {
        align-items: flex-start;

        flex-direction: column;
    }
}


/* =========================================================
   RESPONSIVE — TABLET
   ========================================================= */

@media (max-width: 820px) {

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

    .header-cta {
        display: none;
    }

    .main-navigation {
        position: absolute;

        top: 74px;
        left: 20px;
        right: 20px;

        display: none;

        flex-direction: column;
        align-items: stretch;

        padding: 20px;

        border:
            1px solid var(--border);

        border-radius: var(--radius-md);

        background: var(--white);

        box-shadow: var(--shadow);
    }

    .main-navigation.open {
        display: flex;
    }

    .vocabulary-layout {
        grid-template-columns: 1fr;
    }

    .vocabulary-sidebar {
        max-height: none;
    }

    .vocabulary-detail {
        position: static;
    }

    .engagement-grid {
        grid-template-columns: 1fr;
    }

    .industry-more {
        align-items: flex-start;

        flex-direction: column;
    }

    .footer-bottom {
        align-items: flex-start;

        flex-direction: column;
    }
}


/* =========================================================
   RESPONSIVE — MOBILE
   ========================================================= */

@media (max-width: 640px) {

    .section {
        padding: 68px 0;
    }

    .container {
        width:
            min(calc(100% - 28px),
                var(--container));
    }

    .hero {
        padding: 72px 0;
    }

    .hero h1 {
        font-size:
            clamp(2.6rem,
                14vw,
                4rem);
    }

    .advantage-grid,
    .offer-grid,
    .system-grid,
    .project-grid,
    .package-grid,
    .expectation-grid,
    .industry-grid,
    .process-grid,
    .footer-grid {
        grid-template-columns: 1fr;
    }

    .advantage-card {
        grid-template-columns:
            42px 1fr;

        padding: 20px;
    }

    .advantage-summary {
        padding: 28px 20px;
    }

    .wide-offer-card {
        align-items: flex-start;

        flex-direction: column;
    }

    .assessment-panel {
        padding: 34px 22px;
    }

    .vocabulary-detail {
        padding: 26px 22px;
    }

    .project-preview {
        min-height: 190px;
    }

    .project-card-body {
        padding: 21px;
    }

    .systems-development-heading {
        margin-top: 68px;
    }

    .work-cta {
        padding: 24px;
    }

    .package-card.featured {
        transform: none;
    }

    .button-group {
        align-items: stretch;

        flex-direction: column;
    }

    .button {
        width: 100%;
    }

    .industry-more {
        padding:
            22px 4px;
    }
}

/* =========================================================
   WAYS TO WORK WITH BUILDFRAME
   ========================================================= */

.work-with-buildframe {
    background: var(--white);
}

.work-heading {
    max-width: 820px;
}

.work-options-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.work-option-card {
    position: relative;

    display: flex;
    flex-direction: column;

    min-height: 390px;

    padding: 32px;

    border: 1px solid var(--border);
    border-radius: var(--radius-md);

    background: var(--white);

    box-shadow:
        0 8px 28px rgba(7, 26, 51, 0.05);

    transition:
        transform 160ms ease,
        box-shadow 160ms ease,
        border-color 160ms ease;
}

.work-option-card:hover {
    transform: translateY(-4px);

    border-color:
        rgba(18, 103, 214, 0.28);

    box-shadow: var(--shadow-soft);
}

.work-option-label {
    display: inline-flex;
    align-self: flex-start;

    margin-bottom: 16px;

    padding: 7px 12px;

    border-radius: 999px;

    color: var(--blue-600);

    background:
        rgba(18, 103, 214, 0.07);

    border:
        1px solid rgba(18, 103, 214, 0.16);

    font-size: 0.72rem;
    font-weight: 900;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.work-option-card h3 {
    margin: 0 0 14px;

    color: var(--navy-950);

    font-size:
        clamp(1.45rem,
            2.5vw,
            2rem);

    line-height: 1.2;
}

.work-option-card>p {
    margin: 0 0 16px;

    color: var(--gray-700);
}

.work-option-note {
    padding: 14px 16px;

    border-left:
        3px solid rgba(18, 103, 214, 0.35);

    border-radius:
        0 var(--radius-sm) var(--radius-sm) 0;

    background: var(--cream-50);

    font-size: 0.92rem;
}

.work-option-price {
    display: block;

    margin: 4px 0 20px;

    color: var(--navy-950);

    font-size: 1.55rem;
    font-weight: 900;
}

.work-option-price small {
    font-size: 0.85rem;
    font-weight: 700;

    color: var(--gray-500);
}

.work-option-card .button {
    align-self: flex-start;

    margin-top: auto;
}


/* =========================================================
   FEATURED ASSESSMENT CARD
   ========================================================= */

.work-option-featured {
    border:
        1.5px solid rgba(18, 103, 214, 0.40);

    background:
        linear-gradient(145deg,
            #f5f9ff,
            #ffffff);

    box-shadow:
        0 16px 40px rgba(18, 103, 214, 0.10);
}

.work-option-featured::before {
    content: "RECOMMENDED STARTING POINT";

    position: absolute;

    top: 18px;
    right: 18px;

    padding: 6px 10px;

    border-radius: 999px;

    color: var(--white);
    background: var(--blue-600);

    font-size: 0.60rem;
    font-weight: 900;

    letter-spacing: 0.07em;
}

.work-option-featured h3 {
    color: var(--blue-600);
}


/* =========================================================
   WORK OPTIONS FOOTER
   ========================================================= */

.work-options-footer {
    margin-top: 28px;

    padding: 24px 28px;

    display: flex;

    align-items: center;

    gap: 16px;

    border:
        1px solid rgba(18, 103, 214, 0.16);

    border-radius: var(--radius-md);

    background: var(--cream-50);
}

.work-options-footer strong {
    color: var(--navy-950);
}

.work-options-footer span {
    color: var(--gray-700);
}

.work-options-footer .text-link {
    margin-top: 0;
    margin-left: auto;

    white-space: nowrap;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 820px) {

    .work-options-grid {
        grid-template-columns: 1fr;
    }

    .work-option-card {
        min-height: 0;
    }

    .work-option-featured::before {
        position: static;

        align-self: flex-start;

        margin-bottom: 16px;
    }

    .work-options-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .work-options-footer .text-link {
        margin-left: 0;
    }
}


@media (max-width: 640px) {

    .work-option-card {
        padding: 24px;
    }

    .work-option-card .button {
        width: 100%;
    }

    .work-options-footer {
        padding: 22px;
    }
}

/* =========================================================
   BUILDFRAME HEADER LOGO
   ========================================================= */

.brand {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.brand-logo {
    display: block;
    width: auto;
    height: 84px;
    max-width: 380px;
    object-fit: contain;
}

/* Tablet */
@media (max-width: 820px) {
    .brand-logo {
        height: 68px;
        max-width: 300px;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .brand-logo {
        height: 54px;
        max-width: 240px;
    }
}

/* =========================================================
   BUILDFRAME CAPABILITY SECTION
   ========================================================= */

.compact-system-heading {
    max-width: 820px;
    margin-bottom: 40px;
}

.capability-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.capability-card {
    padding: 26px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--white);

    box-shadow:
        0 8px 24px rgba(7, 26, 51, 0.05);

    transition:
        transform 160ms ease,
        box-shadow 160ms ease,
        border-color 160ms ease;
}

.capability-card:hover {
    transform: translateY(-3px);

    border-color:
        rgba(18, 103, 214, 0.28);

    box-shadow:
        0 14px 32px rgba(7, 26, 51, 0.08);
}

.capability-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    margin-bottom: 18px;

    border-radius: 50%;

    background:
        rgba(18, 103, 214, 0.08);

    color: var(--blue-600);

    font-size: 0.78rem;
    font-weight: 900;
}

.capability-card h3 {
    margin: 0 0 10px;

    color: var(--navy-950);

    font-size: 1.15rem;
    line-height: 1.3;
}

.capability-card p {
    margin: 0;

    color: var(--gray-700);

    font-size: 0.95rem;
    line-height: 1.65;
}


/* =========================================================
   CAPABILITY SUMMARY
   ========================================================= */

.capability-summary {
    margin-top: 28px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;

    padding: 28px 30px;

    border: 1px solid rgba(18, 103, 214, 0.16);

    border-radius: var(--radius-md);

    background: var(--cream-50);
}

.capability-summary>div {
    max-width: 720px;
}

.capability-summary .eyebrow {
    margin-bottom: 8px;
}

.capability-summary h3 {
    margin: 0 0 8px;

    color: var(--navy-950);

    font-size: 1.35rem;
}

.capability-summary p {
    margin: 0;

    color: var(--gray-700);

    line-height: 1.6;
}

.capability-summary .button {
    flex-shrink: 0;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 960px) {

    .capability-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 720px) {

    .capability-grid {
        grid-template-columns: 1fr;
    }

    .capability-summary {
        flex-direction: column;
        align-items: flex-start;
    }

}


@media (max-width: 640px) {

    .capability-card {
        padding: 22px;
    }

    .capability-summary {
        padding: 24px;
    }

    .capability-summary .button {
        width: 100%;
    }

}