/* =========================================================
   PORTFÓLIO — GC SOLUÇÕES E SISTEMAS
========================================================= */

.portfolio-page {
    background: #f6f9fc;
}

/* HERO */

.portfolio-hero {
    position: relative;

    padding:
        150px 0
        85px;

    overflow: hidden;

    color: #fff;

    background:
        radial-gradient(
            circle at 80% 35%,
            rgba(22,140,255,.18),
            transparent 32%
        ),
        linear-gradient(
            135deg,
            #04111f,
            #071d35
        );
}

.portfolio-hero-grid {
    position: absolute;
    inset: 0;

    opacity: .35;

    background-image:
        linear-gradient(
            rgba(255,255,255,.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.025) 1px,
            transparent 1px
        );

    background-size: 56px 56px;
}

.portfolio-hero-inner {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        1fr
        .9fr;

    align-items: end;

    gap: 70px;
}

.portfolio-hero-copy {
    max-width: 650px;
}

.portfolio-hero h1 {
    margin-bottom: 20px;

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        clamp(
            42px,
            5vw,
            65px
        );

    line-height: 1.02;

    letter-spacing: -2.8px;
}

.portfolio-hero h1 span {
    display: block;

    color: var(--gc-primary);
}

.portfolio-hero-copy p {
    max-width: 580px;

    margin-bottom: 0;

    color: #a0b4c8;

    font-size: 15px;
    line-height: 1.75;
}

.portfolio-hero-stats {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 12px;
}

.portfolio-stat {
    min-height: 110px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    border:
        1px solid rgba(255,255,255,.08);

    border-radius: 13px;

    background:
        rgba(255,255,255,.035);

    backdrop-filter: blur(10px);
}

.portfolio-stat strong {
    color: #fff;

    font-size: 23px;
}

.portfolio-stat span {
    margin-top: 6px;

    color: #7f98af;

    font-size: 9px;
    line-height: 1.4;
}

/* SECTION */

.portfolio-section {
    padding: 85px 0 95px;
}

.portfolio-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 35px;
}

.portfolio-toolbar h2 {
    margin-bottom: 0;

    font-family:
        "Manrope",
        sans-serif;

    font-size: 36px;

    letter-spacing: -1.4px;
}

/* FILTERS */

.portfolio-filters {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;
}

.portfolio-filter {
    min-height: 38px;

    padding: 0 14px;

    border:
        1px solid #dce6ef;

    border-radius: 9px;

    color: #65788b;

    background: #fff;

    font-size: 10px;
    font-weight: 700;

    transition:
        color .2s ease,
        border-color .2s ease,
        background .2s ease;
}

.portfolio-filter:hover,
.portfolio-filter.active {
    color: #fff;

    border-color: var(--gc-primary);

    background: var(--gc-primary);
}

/* GRID */

.portfolio-page-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;
}

.portfolio-project {
    overflow: hidden;

    border:
        1px solid #dae5ef;

    border-radius: 17px;

    background: #fff;

    box-shadow:
        0 12px 35px rgba(7,31,57,.05);

    transition:
        opacity .2s ease,
        transform .25s ease,
        box-shadow .25s ease;
}

.portfolio-project:hover {
    transform: translateY(-6px);

    box-shadow:
        0 24px 55px rgba(7,31,57,.11);
}

.portfolio-project.is-hidden {
    display: none;
}

/* VISUAL */

.portfolio-project-visual {
    position: relative;

    height: 230px;

    padding:
        22px
        22px
        0;
}

.portfolio-theme-dark {
    background:
        linear-gradient(
            135deg,
            #061525,
            #0b355d
        );
}

.portfolio-theme-light {
    background:
        linear-gradient(
            135deg,
            #eef5fb,
            #cbddeb
        );
}

.portfolio-theme-blue {
    background:
        linear-gradient(
            135deg,
            #08203a,
            #0d4c81
        );
}

.portfolio-project-browser {
    height: 100%;

    overflow: hidden;

    border-radius:
        11px 11px
        0 0;

    background: #0c2037;

    box-shadow:
        0 20px 42px rgba(0,0,0,.25);
}

.portfolio-theme-light
.portfolio-project-browser {
    background: #fff;
}

.portfolio-project-topbar {
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 10px;

    border-bottom:
        1px solid rgba(255,255,255,.055);

    background:
        rgba(255,255,255,.03);
}

.portfolio-project-topbar > div {
    display: flex;

    gap: 4px;
}

.portfolio-project-topbar span {
    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: #4d657b;
}

.portfolio-project-topbar small {
    color: #658096;

    font-size: 6px;
}

.portfolio-project-ui {
    display: grid;

    grid-template-columns:
        25% 1fr;

    gap: 8px;

    height:
        calc(100% - 30px);

    padding: 10px;
}

.portfolio-project-ui aside {
    border-radius: 5px;

    background:
        rgba(255,255,255,.04);
}

.portfolio-theme-light
.portfolio-project-ui aside {
    background: #edf3f8;
}

.portfolio-project-content {
    display: flex;
    flex-direction: column;

    gap: 7px;
}

.portfolio-project-kpis {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 5px;
}

.portfolio-project-kpis span {
    height: 35px;

    border-radius: 5px;

    background:
        rgba(255,255,255,.055);
}

.portfolio-theme-light
.portfolio-project-kpis span {
    background: #edf4f9;
}

.portfolio-project-chart {
    position: relative;

    flex: 1;

    overflow: hidden;

    border-radius: 5px;

    background:
        linear-gradient(
            180deg,
            rgba(22,140,255,.2),
            rgba(22,140,255,.02)
        );
}

.chart-fake-line {
    position: absolute;

    left: 10%;
    right: 8%;
    bottom: 25%;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #168cff 15%,
            #168cff 85%,
            transparent
        );

    transform:
        skewY(-8deg);
}

.portfolio-featured {
    position: absolute;

    top: 14px;
    right: 14px;

    padding:
        6px 9px;

    border-radius: 7px;

    color: #fff;

    background:
        rgba(22,140,255,.9);

    box-shadow:
        0 8px 22px rgba(22,140,255,.22);

    font-size: 7px;
    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: .7px;
}

/* BODY */

.portfolio-project-body {
    padding: 21px;
}

.portfolio-project-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 8px;
}

.portfolio-project-category {
    color: var(--gc-primary);

    font-size: 9px;
    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: .8px;
}

.portfolio-project-number {
    color: #b0bfcc;

    font-size: 8px;
}

.portfolio-project-body h3 {
    margin-bottom: 9px;

    font-size: 17px;
}

.portfolio-project-body > p {
    min-height: 65px;

    margin-bottom: 16px;

    color: var(--gc-text-soft);

    font-size: 12px;
    line-height: 1.65;
}

.portfolio-techs {
    display: flex;
    flex-wrap: wrap;

    gap: 6px;

    margin-bottom: 18px;
}

.portfolio-techs span {
    padding:
        5px 7px;

    border-radius: 6px;

    color: #55718a;

    background: #f0f5f9;

    font-size: 8px;
    font-weight: 600;
}

.portfolio-project-link {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-top: 15px;

    border-top:
        1px solid #edf2f6;

    color: var(--gc-primary);

    font-size: 10px;
    font-weight: 700;
}

/* EMPTY */

.portfolio-empty {
    max-width: 460px;

    margin:
        60px auto
        0;

    text-align: center;
}

.portfolio-empty > div {
    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin:
        0 auto
        15px;

    border-radius: 50%;

    color: var(--gc-primary);

    background: #eaf5ff;

    font-size: 22px;
}

.portfolio-empty h3 {
    margin-bottom: 6px;
}

.portfolio-empty p {
    color: var(--gc-text-soft);

    font-size: 12px;
}

/* CTA */

.portfolio-cta {
    padding: 75px 0;

    color: #fff;

    background:
        radial-gradient(
            circle at 80% 40%,
            rgba(22,140,255,.2),
            transparent 34%
        ),
        #061729;
}

.portfolio-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;
}

.portfolio-cta h2 {
    margin-bottom: 10px;

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        clamp(
            32px,
            4vw,
            45px
        );

    line-height: 1.1;
}

.portfolio-cta h2 span {
    color: var(--gc-primary);
}

.portfolio-cta p {
    max-width: 550px;

    margin-bottom: 0;

    color: #90a6ba;

    font-size: 13px;
    line-height: 1.65;
}

/* RESPONSIVO */

@media (max-width: 1000px) {
    .portfolio-hero-inner {
        grid-template-columns: 1fr;
    }

    .portfolio-page-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .portfolio-toolbar {
        align-items: flex-start;

        flex-direction: column;
    }
}

@media (max-width: 720px) {
    .portfolio-hero {
        padding:
            120px 0
            65px;
    }

    .portfolio-hero h1 {
        font-size:
            clamp(
                38px,
                11vw,
                52px
            );
    }

    .portfolio-hero-stats {
        grid-template-columns: 1fr;
    }

    .portfolio-stat {
        min-height: 80px;
    }

    .portfolio-section {
        padding:
            65px 0
            70px;
    }

    .portfolio-toolbar h2 {
        font-size: 31px;
    }

    .portfolio-filters {
        width: 100%;
    }

    .portfolio-filter {
        flex:
            1 1 auto;
    }

    .portfolio-page-grid {
        grid-template-columns: 1fr;
    }

    .portfolio-project-body > p {
        min-height: auto;
    }

    .portfolio-cta-inner {
        align-items: flex-start;

        flex-direction: column;
    }

    .portfolio-cta-inner .btn {
        width: 100%;
    }
}


/* =========================================================
   PORTFÓLIO V2 - IMAGENS REAIS DO BANCO
========================================================= */

.portfolio-real-image-link {
    display: block;
    width: 100%;
    height: 100%;
}

.portfolio-real-image {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
    object-position: center;

    transition:
        transform .35s ease;
}

.portfolio-project:hover
.portfolio-real-image {
    transform: scale(1.035);
}

.portfolio-project-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;
}

.portfolio-project-featured {
    display: inline-flex;
    align-items: center;

    gap: 4px;

    padding: 4px 7px;

    border-radius: 6px;

    color: #966d14;
    background: #fff4d9;

    font-size: 8px;
    font-weight: 700;
}

.portfolio-project-featured i {
    font-size: 7px;
}


/* =========================================================
   PORTFÓLIO V3 - CARDS PREMIUM
========================================================= */

.portfolio-page-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.portfolio-project {
    position: relative;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    border: 1px solid #dfe8ef;
    border-radius: 22px;

    background: #ffffff;

    box-shadow:
        0 14px 38px rgba(7, 31, 57, 0.07);

    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.portfolio-project:hover {
    transform: translateY(-7px);

    border-color:
        rgba(22, 140, 255, .24);

    box-shadow:
        0 24px 55px rgba(7, 31, 57, 0.13);
}


/* =========================================================
   VISUAL / IMAGEM
========================================================= */

.portfolio-project-visual {
    position: relative;

    min-height: 255px;

    overflow: hidden;

    border-bottom:
        1px solid #e8eef3;

    background:
        linear-gradient(
            145deg,
            #0a2038,
            #0c2a49
        );
}

.portfolio-real-image-link {
    position: relative;

    display: block;

    width: 100%;
    height: 255px;

    overflow: hidden;
}

.portfolio-real-image-link::after {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            180deg,
            transparent 58%,
            rgba(5, 20, 36, .08)
        );
}

.portfolio-real-image {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
    object-position: top center;

    transition:
        transform .45s cubic-bezier(.2,.8,.2,1);
}

.portfolio-project:hover
.portfolio-real-image {
    transform: scale(1.045);
}


/* =========================================================
   CORPO DO CARD
========================================================= */

.portfolio-project-body {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 24px 24px 22px;
}

.portfolio-project-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 11px;
}

.portfolio-project-meta > span:first-child {
    color: #637b90;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .2px;
}

.portfolio-project h3 {
    margin: 0;

    color: #102a43;

    font-family: "Manrope", sans-serif;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;

    letter-spacing: -.45px;
}

.portfolio-project-body > p {
    margin: 12px 0 0;

    color: #72879a;

    font-size: 13px;
    line-height: 1.72;
}


/* =========================================================
   DESTAQUE
========================================================= */

.portfolio-project-featured {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 6px;

    padding: 7px 10px;

    border: 1px solid #f0ddb0;
    border-radius: 999px;

    color: #9b7119;

    background:
        linear-gradient(
            180deg,
            #fff9e9,
            #fff2cf
        );

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.7);

    font-size: 9px;
    font-weight: 800;

    white-space: nowrap;
}

.portfolio-project-featured i {
    color: #d39b1f;
    font-size: 8px;
}


/* =========================================================
   LINK FINAL
========================================================= */

.portfolio-project-link {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin-top: auto;
    padding-top: 22px;

    border-top:
        1px solid #e9eff4;

    color: var(--gc-primary, #168cff);

    font-size: 11px;
    font-weight: 800;

    text-decoration: none;

    transition:
        color .2s ease;
}

.portfolio-project-link i {
    width: 28px;
    height: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: #168cff;
    background: #edf6ff;

    transition:
        transform .2s ease,
        background .2s ease,
        color .2s ease;
}

.portfolio-project-link:hover {
    color: #0875df;
}

.portfolio-project-link:hover i {
    transform: translateX(3px);

    color: #ffffff;
    background: #168cff;
}


/* =========================================================
   MOCKUP SEM IMAGEM
========================================================= */

.portfolio-project-browser {
    width: calc(100% - 32px);
    height: calc(100% - 32px);

    margin: 16px;

    border:
        1px solid rgba(255,255,255,.12);

    border-radius: 14px;

    box-shadow:
        0 16px 35px rgba(0,0,0,.20);
}


/* =========================================================
   RESPONSIVO
========================================================= */

@media (max-width: 1100px) {
    .portfolio-page-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .portfolio-page-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .portfolio-project {
        border-radius: 18px;
    }

    .portfolio-project-visual,
    .portfolio-real-image-link {
        min-height: 220px;
        height: 220px;
    }

    .portfolio-project-body {
        padding: 20px;
    }

    .portfolio-project h3 {
        font-size: 20px;
    }

    .portfolio-project-body > p {
        font-size: 12px;
    }
}
