/* =========================================================
   ECONEST GREEN HOMES
   GYPSUM FALSE CEILING PAGE
========================================================= */


:root {

    --gypsum-green-dark: #064b36;
    --gypsum-green: #176b4f;
    --gypsum-green-soft: #eaf4ee;
    --gypsum-lime: #b9e27b;

    --gypsum-cream: #f7f5ef;

    --gypsum-text: #17231e;
    --gypsum-muted: #66736d;

    --gypsum-white: #ffffff;

    --gypsum-border:
        rgba(6, 75, 54, 0.12);

    --gypsum-shadow:
        0 18px 50px
        rgba(17, 42, 32, 0.10);

}


/* =========================================================
   RESET
========================================================= */

* {
    box-sizing: border-box;
}


html {

    scroll-behavior: smooth;

    scroll-padding-top: 90px;

}


body {

    margin: 0;

    color:
        var(--gypsum-text);

    font-family:
        "DM Sans",
        sans-serif;

    background:
        var(--gypsum-white);

    line-height: 1.7;

    overflow-x: hidden;

}


img {

    display: block;

    width: 100%;

}


a {

    text-decoration: none;

}


/* =========================================================
   HEADER
========================================================= */

.gypsum-page-header {

    position: sticky;

    top: 0;

    z-index: 1050;

    width: 100%;

    background:
        rgba(255,255,255,.98);

    border-bottom:
        1px solid
        rgba(9,72,52,.12);

    box-shadow:
        0 4px 20px
        rgba(0,0,0,.05);

    backdrop-filter:
        blur(12px);

}


.gypsum-nav-container {

    width: 100%;

    max-width: 1440px;

    min-height: 68px;

    margin: 0 auto;

    padding:
        0 24px;

    display: flex;

    align-items: center;

    gap: 20px;

}


/* =========================================================
   LOGO
========================================================= */

.gypsum-brand {

    display: inline-flex;

    align-items: center;

    flex:
        0 0 170px;

    width:
        170px;

    max-width:
        170px;

    overflow:
        hidden;

}


.gypsum-brand img {

    display: block;

    width:
        170px !important;

    max-width:
        100% !important;

    height:
        auto !important;

    object-fit:
        contain;

}


/* =========================================================
   PAGE TITLE
========================================================= */

.gypsum-page-title {

    display: flex;

    flex-direction: column;

    flex: 0 0 auto;

    min-width: 165px;

    padding-left: 16px;

    border-left:
        1px solid
        rgba(9,72,52,.18);

    color:
        #12382c;

    line-height: 1.1;

    white-space: nowrap;

}


.gypsum-page-title span {

    font-size: 13px;

    font-weight: 700;

}


.gypsum-page-title small {

    margin-top: 3px;

    color:
        #6d7d76;

    font-size: 10px;

}


/* =========================================================
   NAVIGATION
========================================================= */

.gypsum-page-nav {

    min-width: 0;

    margin-left: auto;

    display: flex;

    align-items: center;

    justify-content: flex-end;

    gap: 3px;

}


.gypsum-page-nav a {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 40px;

    padding:
        8px 10px;

    border-radius: 8px;

    color:
        #263a33;

    font-size: 13px;

    font-weight: 600;

    white-space: nowrap;

    transition:
        .25s ease;

}


.gypsum-page-nav a:hover,
.gypsum-page-nav a.active {

    color:
        var(--gypsum-green-dark);

    background:
        rgba(7,88,62,.07);

}


.gypsum-page-nav
.gypsum-nav-cta {

    margin-left: 6px;

    padding:
        9px 15px;

    background:
        var(--gypsum-green-dark);

    color:
        white;

}


.gypsum-page-nav
.gypsum-nav-cta:hover {

    background:
        #043e2d;

    color:
        white;

}


/* =========================================================
   MOBILE NAV
========================================================= */

.gypsum-nav-toggle {

    display: none;

    width: 44px;

    height: 42px;

    margin-left: auto;

    padding:
        8px 9px;

    border:
        1px solid
        rgba(7,88,62,.2);

    border-radius: 8px;

    background:
        white;

    cursor: pointer;

}


.gypsum-nav-toggle span {

    display: block;

    height: 2px;

    margin:
        5px 0;

    background:
        var(--gypsum-green-dark);

}


/* =========================================================
   HERO
========================================================= */

.gypsum-hero {

    position: relative;

    min-height:
        78vh;

    display:
        flex;

    align-items:
        center;

    background:
        url("gypsum/gypsum-001.jpg")
        center center /
        cover
        no-repeat;

    color:
        white;

}


.gypsum-hero-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(4,22,16,.88) 0%,
            rgba(4,22,16,.57) 48%,
            rgba(4,22,16,.22) 100%
        );

}


.gypsum-hero-content {

    position: relative;

    z-index: 2;

    padding:
        90px 4%;

}


.gypsum-hero-copy {

    max-width:
        720px;

}


.gypsum-eyebrow,
.gypsum-section-kicker {

    display: inline-flex;

    align-items: center;

    gap: 12px;

    color:
        var(--gypsum-lime);

    font-size:
        13px;

    font-weight:
        700;

    letter-spacing:
        2.2px;

}


.gypsum-eyebrow span {

    width:
        45px;

    height:
        1px;

    background:
        var(--gypsum-lime);

}


.gypsum-hero h1 {

    margin:
        18px 0 20px;

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(54px, 7vw, 92px);

    line-height:
        .98;

    font-weight:
        600;

    letter-spacing:
        -1.5px;

}


.gypsum-hero h1 em {

    color:
        var(--gypsum-lime);

    font-style:
        normal;

}


.gypsum-hero-copy p {

    max-width:
        620px;

    color:
        rgba(255,255,255,.87);

    font-size:
        18px;

}


.gypsum-hero-buttons {

    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        12px;

    margin-top:
        30px;

}


.gypsum-btn-primary,
.gypsum-btn-outline {

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        10px;

    min-height:
        50px;

    padding:
        12px 21px;

    border-radius:
        7px;

    font-size:
        14px;

    font-weight:
        700;

    transition:
        .25s ease;

}


.gypsum-btn-primary {

    background:
        var(--gypsum-lime);

    color:
        #102018;

}


.gypsum-btn-primary:hover {

    color:
        #102018;

    background:
        #c9ed96;

    transform:
        translateY(-2px);

}


.gypsum-btn-outline {

    border:
        1px solid
        rgba(255,255,255,.55);

    color:
        white;

}


.gypsum-btn-outline:hover {

    color:
        var(--gypsum-green-dark);

    background:
        white;

}


/* =========================================================
   GENERIC SECTION
========================================================= */

.gypsum-section {

    padding:
        100px 0;

}


.gypsum-intro-section {

    background:
        white;

}


.gypsum-section-heading {

    max-width:
        760px;

    margin-bottom:
        45px;

}


.gypsum-section-heading.centered {

    margin-left:
        auto;

    margin-right:
        auto;

    text-align:
        center;

}


.gypsum-section-heading h2,
.gypsum-intro-section h2 {

    margin:
        13px 0 17px;

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(38px, 5vw, 58px);

    line-height:
        1.1;

}


.gypsum-section-heading h2 span,
.gypsum-intro-section h2 span {

    color:
        var(--gypsum-green);

}


.gypsum-section-heading p,
.gypsum-intro-section p {

    color:
        var(--gypsum-muted);

}


.gypsum-lead {

    font-size:
        18px;

}


.gypsum-intro-image {

    position:
        relative;

    padding:
        0 35px 35px 0;

}


.gypsum-intro-image img {

    height:
        560px;

    object-fit:
        cover;

    border-radius:
        10px;

}


.gypsum-intro-image::after {

    content:
        "";

    position:
        absolute;

    right:
        0;

    bottom:
        0;

    width:
        70%;

    height:
        70%;

    border:
        2px solid
        var(--gypsum-lime);

    border-radius:
        10px;

    z-index:
        -1;

}


.gypsum-image-badge {

    position:
        absolute;

    left:
        -20px;

    bottom:
        20px;

    padding:
        16px 22px;

    background:
        var(--gypsum-green-dark);

    color:
        white;

    border-radius:
        8px;

    box-shadow:
        var(--gypsum-shadow);

}


.gypsum-image-badge strong,
.gypsum-image-badge span {

    display:
        block;

}


.gypsum-image-badge strong {

    font-size:
        21px;

}


.gypsum-image-badge span {

    color:
        var(--gypsum-lime);

    font-size:
        12px;

}


.gypsum-text-link {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        9px;

    margin-top:
        15px;

    color:
        var(--gypsum-green);

    font-weight:
        700;

}


.gypsum-text-link:hover {

    color:
        var(--gypsum-green-dark);

}


/* =========================================================
   SOLUTIONS
========================================================= */

.gypsum-solutions-section {

    background:
        var(--gypsum-cream);

}


.gypsum-feature-card {

    height:
        100%;

    padding:
        30px;

    background:
        white;

    border:
        1px solid
        var(--gypsum-border);

    border-radius:
        10px;

    transition:
        .3s ease;

}


.gypsum-feature-card:hover {

    transform:
        translateY(-5px);

    box-shadow:
        var(--gypsum-shadow);

}


.gypsum-feature-icon {

    width:
        54px;

    height:
        54px;

    display:
        grid;

    place-items:
        center;

    margin-bottom:
        22px;

    border-radius:
        50%;

    background:
        var(--gypsum-green-soft);

    color:
        var(--gypsum-green);

    font-size:
        21px;

}


.gypsum-feature-card h3 {

    margin:
        0 0 10px;

    font-size:
        20px;

}


.gypsum-feature-card p {

    margin:
        0;

    color:
        var(--gypsum-muted);

    font-size:
        14px;

}


/* =========================================================
   GALLERY
========================================================= */

.gypsum-gallery-section {

    background:
        white;

}


.gypsum-gallery-grid {

    display:
        grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        16px;

}


.gypsum-gallery-item {

    position:
        relative;

    aspect-ratio:
        4 / 3;

    overflow:
        hidden;

    border-radius:
        10px;

    background:
        #e7ece9;

    cursor:
        zoom-in;

}


.gypsum-gallery-item img {

    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    transition:
        transform .5s ease;

}


.gypsum-gallery-item:hover img {

    transform:
        scale(1.05);

}


.gypsum-gallery-overlay {

    position:
        absolute;

    inset:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    background:
        rgba(6,75,54,.35);

    color:
        white;

    font-size:
        22px;

    opacity:
        0;

    transition:
        .3s ease;

}


.gypsum-gallery-item:hover
.gypsum-gallery-overlay {

    opacity:
        1;

}


/* =========================================================
   PROCESS
========================================================= */

.gypsum-process-section {

    background:
        var(--gypsum-cream);

}


.gypsum-process-grid {

    display:
        flex;

    flex-wrap:
        nowrap;

    align-items:
        stretch;

    margin-left:
        -12px;

    margin-right:
        -12px;

}


.gypsum-process-grid
> [class*="col-"] {

    flex:
        0 0 25%;

    width:
        25%;

    max-width:
        25%;

    display:
        flex;

    padding-left:
        12px;

    padding-right:
        12px;

}


.gypsum-process-card {

    position:
        relative;

    width:
        100%;

    min-height:
        280px;

    padding:
        30px 26px;

    background:
        white;

    border:
        1px solid
        var(--gypsum-border);

    border-radius:
        12px;

    overflow:
        hidden;

    box-shadow:
        0 8px 28px
        rgba(17,42,32,.05);

    transition:
        .25s ease;

}


.gypsum-process-card:hover {

    transform:
        translateY(-5px);

    box-shadow:
        var(--gypsum-shadow);

}


.gypsum-process-number {

    position:
        absolute;

    top:
        17px;

    right:
        20px;

    color:
        rgba(23,107,79,.13);

    font-family:
        "Playfair Display",
        serif;

    font-size:
        48px;

    line-height:
        1;

    font-weight:
        700;

}


.gypsum-process-icon {

    width:
        54px;

    height:
        54px;

    display:
        grid;

    place-items:
        center;

    margin-bottom:
        22px;

    border-radius:
        50%;

    background:
        var(--gypsum-green-soft);

    color:
        var(--gypsum-green);

    font-size:
        20px;

}


.gypsum-process-card h3 {

    margin:
        0 0 10px;

    font-size:
        20px;

}


.gypsum-process-card p {

    margin:
        0;

    color:
        var(--gypsum-muted);

    font-size:
        14px;

    line-height:
        1.7;

}


/* =========================================================
   CONTACT
========================================================= */

.gypsum-contact-section {

    padding-top:
        35px;

    padding-bottom:
        100px;

    background:
        var(--gypsum-cream);

}


.gypsum-contact-box {

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        40px;

    padding:
        55px 60px;

    border-radius:
        14px;

    background:
        var(--gypsum-green-dark);

    color:
        white;

    box-shadow:
        var(--gypsum-shadow);

}


.gypsum-contact-content {

    flex:
        1 1 auto;

    max-width:
        620px;

}


.gypsum-contact-content h2 {

    margin:
        10px 0 14px;

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(34px, 4vw, 50px);

    line-height:
        1.1;

}


.gypsum-contact-content h2 span {

    color:
        var(--gypsum-lime);

}


.gypsum-contact-content p {

    margin:
        0;

    color:
        rgba(255,255,255,.74);

}


.gypsum-contact-actions {

    flex:
        0 0 420px;

    display:
        grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        10px;

}


.gypsum-contact-action {

    min-width:
        0;

    min-height:
        76px;

    display:
        flex;

    align-items:
        center;

    gap:
        10px;

    padding:
        12px;

    border:
        1px solid
        rgba(255,255,255,.14);

    border-radius:
        9px;

    background:
        rgba(255,255,255,.06);

    color:
        white;

    transition:
        .25s ease;

}


.gypsum-contact-action:hover {

    color:
        white;

    background:
        rgba(255,255,255,.12);

    transform:
        translateY(-3px);

}


.gypsum-contact-action > i {

    flex:
        0 0 auto;

    color:
        var(--gypsum-lime);

    font-size:
        18px;

}


.gypsum-contact-action span {

    display:
        flex;

    flex-direction:
        column;

    font-size:
        11px;

    font-weight:
        600;

    line-height:
        1.3;

}


.gypsum-contact-action small {

    margin-bottom:
        3px;

    color:
        rgba(255,255,255,.55);

    font-size:
        8px;

    text-transform:
        uppercase;

    letter-spacing:
        1px;

}


/* =========================================================
   FOOTER
========================================================= */

.gypsum-footer {

    padding:
        75px 0 20px;

    background:
        #071e16;

    color:
        white;

}


.gypsum-footer-main {

    display:
        grid;

    grid-template-columns:
        2fr 1fr 1fr 1.3fr;

    gap:
        50px;

    padding-bottom:
        55px;

}


.gypsum-footer-brand p {

    max-width:
        360px;

    margin-top:
        20px;

    color:
        rgba(255,255,255,.62);

}


.gypsum-footer-logo {

    display:
        inline-flex;

    width:
        190px;

    max-width:
        190px;

}


.gypsum-footer-logo img {

    display:
        block;

    width:
        190px !important;

    max-width:
        100% !important;

    height:
        auto !important;

}


.gypsum-footer-links,
.gypsum-footer-contact {

    display:
        flex;

    flex-direction:
        column;

    gap:
        10px;

}


.gypsum-footer-links h4,
.gypsum-footer-contact h4 {

    margin-bottom:
        10px;

    color:
        var(--gypsum-lime);

    font-size:
        16px;

}


.gypsum-footer-links a,
.gypsum-footer-contact a {

    color:
        rgba(255,255,255,.7);

}


.gypsum-footer-links a:hover,
.gypsum-footer-contact a:hover {

    color:
        white;

}


.gypsum-footer-contact i {

    width:
        22px;

    color:
        var(--gypsum-lime);

}


.gypsum-footer-bottom {

    padding-top:
        20px;

    border-top:
        1px solid
        rgba(255,255,255,.1);

    display:
        flex;

    justify-content:
        space-between;

    gap:
        20px;

    color:
        rgba(255,255,255,.45);

    font-size:
        12px;

}


/* =========================================================
   FLOATING WHATSAPP
========================================================= */

.gypsum-floating-whatsapp {

    position:
        fixed;

    right:
        22px;

    bottom:
        22px;

    z-index:
        2000;

    width:
        56px;

    height:
        56px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        #25D366;

    color:
        white;

    font-size:
        26px;

    box-shadow:
        0 8px 24px
        rgba(0,0,0,.20);

    transition:
        .25s ease;

}


.gypsum-floating-whatsapp:hover {

    color:
        white;

    background:
        #1ebe5d;

    transform:
        translateY(-3px);

}


/* =========================================================
   LIGHTBOX
========================================================= */

.gypsum-lightbox {

    position:
        fixed;

    inset:
        0;

    z-index:
        3000;

    display:
        none;

    align-items:
        center;

    justify-content:
        center;

    padding:
        50px;

    background:
        rgba(0,0,0,.92);

}


.gypsum-lightbox.show {

    display:
        flex;

}


.gypsum-lightbox-image-wrapper {

    max-width:
        90vw;

    max-height:
        88vh;

}


.gypsum-lightbox-image-wrapper img {

    width:
        auto;

    max-width:
        90vw;

    max-height:
        88vh;

    object-fit:
        contain;

}


.gypsum-lightbox-close,
.gypsum-lightbox-prev,
.gypsum-lightbox-next {

    position:
        absolute;

    z-index:
        5;

    width:
        44px;

    height:
        44px;

    display:
        grid;

    place-items:
        center;

    border:
        0;

    border-radius:
        50%;

    background:
        white;

    color:
        var(--gypsum-green-dark);

    cursor:
        pointer;

}


.gypsum-lightbox-close {

    top:
        22px;

    right:
        22px;

}


.gypsum-lightbox-prev {

    left:
        25px;

}


.gypsum-lightbox-next {

    right:
        25px;

}


.gypsum-lightbox-counter {

    position:
        absolute;

    bottom:
        22px;

    left:
        50%;

    transform:
        translateX(-50%);

    color:
        white;

    font-size:
        13px;

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {


    .gypsum-nav-container {

        padding:
            0 18px;

        gap:
            14px;

    }


    .gypsum-brand {

        flex-basis:
            155px;

        width:
            155px;

        max-width:
            155px;

    }


    .gypsum-brand img {

        width:
            155px !important;

    }


    .gypsum-page-title {

        min-width:
            145px;

    }


    .gypsum-page-nav a {

        padding-left:
            7px;

        padding-right:
            7px;

        font-size:
            12px;

    }


    .gypsum-gallery-grid {

        grid-template-columns:
            repeat(3, minmax(0,1fr));

    }


    .gypsum-contact-box {

        padding:
            45px;

    }


}


/* =========================================================
   MOBILE NAV / TABLET
========================================================= */

@media (max-width: 991px) {


    .gypsum-page-title {

        display:
            none;

    }


    .gypsum-page-nav {

        display:
            none;

    }


    .gypsum-nav-toggle {

        display:
            block;

    }


    .gypsum-page-nav.is-open {

        position:
            absolute;

        top:
            100%;

        left:
            0;

        right:
            0;

        display:
            flex;

        flex-direction:
            column;

        align-items:
            stretch;

        gap:
            2px;

        padding:
            10px 16px 14px;

        background:
            white;

        border-bottom:
            1px solid
            rgba(9,72,52,.12);

        box-shadow:
            0 12px 22px
            rgba(0,0,0,.08);

    }


    .gypsum-page-nav.is-open a {

        width:
            100%;

        justify-content:
            flex-start;

        padding:
            12px 13px;

    }


    .gypsum-page-nav.is-open
    .gypsum-nav-cta {

        margin:
            5px 0 0;

        justify-content:
            center;

    }


    .gypsum-process-grid {

        flex-wrap:
            wrap;

    }


    .gypsum-process-grid
    > [class*="col-"] {

        flex:
            0 0 50%;

        width:
            50%;

        max-width:
            50%;

        margin-bottom:
            24px;

    }


    .gypsum-contact-box {

        flex-direction:
            column;

        align-items:
            stretch;

    }


    .gypsum-contact-content {

        max-width:
            100%;

    }


    .gypsum-contact-actions {

        flex:
            none;

        width:
            100%;

    }


    .gypsum-footer-main {

        grid-template-columns:
            repeat(2,1fr);

    }


}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {


    .gypsum-nav-container {

        min-height:
            66px;

    }


    .gypsum-brand {

        flex-basis:
            145px;

        width:
            145px;

        max-width:
            145px;

    }


    .gypsum-brand img {

        width:
            145px !important;

    }


    .gypsum-hero {

        min-height:
            72vh;

    }


    .gypsum-hero-content {

        padding:
            75px 6%;

    }


    .gypsum-hero h1 {

        font-size:
            clamp(43px, 12vw, 68px);

    }


    .gypsum-hero-copy p {

        font-size:
            16px;

    }


    .gypsum-hero-buttons {

        flex-direction:
            column;

    }


    .gypsum-hero-buttons a {

        width:
            100%;

    }


    .gypsum-section {

        padding:
            75px 0;

    }


    .gypsum-intro-image {

        padding:
            0 15px 15px 0;

    }


    .gypsum-intro-image img {

        height:
            430px;

    }


    .gypsum-image-badge {

        left:
            0;

    }


    .gypsum-section-heading h2,
    .gypsum-intro-section h2 {

        font-size:
            clamp(34px, 9vw, 48px);

    }


    .gypsum-gallery-grid {

        grid-template-columns:
            repeat(2, minmax(0,1fr));

        gap:
            10px;

    }


    .gypsum-gallery-item {

        aspect-ratio:
            1 / 1;

    }


    .gypsum-process-grid
    > [class*="col-"] {

        flex:
            0 0 100%;

        width:
            100%;

        max-width:
            100%;

        margin-bottom:
            16px;

    }


    .gypsum-process-card {

        min-height:
            0;

    }


    .gypsum-contact-section {

        padding-bottom:
            75px;

    }


    .gypsum-contact-box {

        padding:
            32px 24px;

    }


    .gypsum-contact-actions {

        grid-template-columns:
            1fr;

    }


    .gypsum-footer-main {

        grid-template-columns:
            1fr;

        gap:
            35px;

    }


    .gypsum-footer-bottom {

        flex-direction:
            column;

    }


    .gypsum-lightbox {

        padding:
            20px;

    }


    .gypsum-lightbox-prev {

        left:
            12px;

    }


    .gypsum-lightbox-next {

        right:
            12px;

    }


}


/* =========================================================
   VERY SMALL SCREENS
========================================================= */

@media (max-width: 480px) {


    .gypsum-gallery-grid {

        grid-template-columns:
            1fr;

    }


    .gypsum-gallery-item {

        aspect-ratio:
            4 / 3;

    }


    .gypsum-floating-whatsapp {

        right:
            16px;

        bottom:
            16px;

        width:
            52px;

        height:
            52px;

        font-size:
            24px;

    }


    .gypsum-footer-logo {

        width:
            175px;

    }


    .gypsum-footer-logo img {

        width:
            175px !important;

    }

}

/* =========================================================
   GYPSUM PROJECTS
========================================================= */

.gypsum-projects-section {
    background: #ffffff;
}


.gypsum-projects-grid {
    align-items: stretch;
}


/* PROJECT CARD */

.gypsum-project-card {
    height: 100%;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background: #ffffff;

    border: 1px solid var(--gypsum-border);

    border-radius: 12px;

    box-shadow:
        0 8px 28px rgba(17, 42, 32, 0.05);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


.gypsum-project-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 18px 45px rgba(17, 42, 32, 0.11);
}


/* PROJECT IMAGE */

.gypsum-project-image {
    position: relative;

    width: 100%;

    aspect-ratio: 16 / 10;

    overflow: hidden;

    background: #e7ece9;
}


.gypsum-project-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.5s ease;
}


.gypsum-project-card:hover
.gypsum-project-image img {
    transform: scale(1.05);
}


/* CATEGORY BADGE */

.gypsum-project-category {
    position: absolute;

    left: 16px;
    bottom: 16px;

    display: inline-flex;
    align-items: center;

    padding: 7px 12px;

    border-radius: 5px;

    background:
        rgba(6, 75, 54, 0.92);

    color: #ffffff;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 0.5px;

    text-transform: uppercase;
}


/* PROJECT CONTENT */

.gypsum-project-content {
    display: flex;
    flex-direction: column;

    flex: 1;

    padding: 25px 25px 23px;
}


.gypsum-project-location {
    margin-bottom: 7px;

    color: var(--gypsum-green);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 1px;

    text-transform: uppercase;
}


.gypsum-project-content h3 {
    margin: 0 0 10px;

    color: var(--gypsum-text);

    font-size: 21px;

    line-height: 1.3;

    font-weight: 700;
}


.gypsum-project-content p {
    margin: 0;

    color: var(--gypsum-muted);

    font-size: 14px;

    line-height: 1.7;
}


/* PROJECT LINK */

.gypsum-project-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    width: fit-content;

    margin-top: auto;
    padding-top: 20px;

    color: var(--gypsum-green);

    font-size: 13px;

    font-weight: 700;

    transition:
        gap 0.25s ease,
        color 0.25s ease;
}


.gypsum-project-link:hover {
    gap: 13px;

    color: var(--gypsum-green-dark);
}


/* PROJECT CTA */

.gypsum-projects-cta {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 18px;

    margin-top: 45px;

    padding-top: 25px;

    border-top:
        1px solid
        var(--gypsum-border);
}


.gypsum-projects-cta p {
    margin: 0;

    color: var(--gypsum-muted);

    font-size: 14px;
}


.gypsum-projects-cta-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    color: var(--gypsum-green);

    font-size: 14px;

    font-weight: 700;
}


.gypsum-projects-cta-link:hover {
    color: var(--gypsum-green-dark);
}


/* =========================================================
   PROJECTS - TABLET
========================================================= */

@media (max-width: 991px) {

    .gypsum-project-content {
        padding: 22px;
    }

}


/* =========================================================
   PROJECTS - MOBILE
========================================================= */

@media (max-width: 767px) {

    .gypsum-projects-cta {
        flex-direction: column;

        gap: 10px;

        text-align: center;
    }

}


@media (max-width: 480px) {

    .gypsum-project-image {
        aspect-ratio: 16 / 10;
    }

    .gypsum-project-content h3 {
        font-size: 19px;
    }

}



/* =========================================================
   GYPSUM PROJECT MODAL
========================================================= */

.gypsum-project-modal {

    position: fixed;

    inset: 0;

    z-index: 3000;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 30px;

    visibility: hidden;

    opacity: 0;

    pointer-events: none;

    transition:
        opacity 0.25s ease,
        visibility 0.25s ease;

}


.gypsum-project-modal.show {

    visibility: visible;

    opacity: 1;

    pointer-events: auto;

}


/* OVERLAY */

.gypsum-project-modal-overlay {

    position: absolute;

    inset: 0;

    background:
        rgba(4, 24, 17, 0.78);

    backdrop-filter:
        blur(5px);

}


/* MODAL BOX */

.gypsum-project-modal-box {

    position: relative;

    z-index: 2;

    width: 100%;

    max-width: 900px;

    max-height: 90vh;

    display: grid;

    grid-template-columns:
        1fr 1fr;

    overflow: hidden;

    background:
        #ffffff;

    border-radius: 14px;

    box-shadow:
        0 30px 80px
        rgba(0,0,0,.30);

    transform:
        translateY(20px)
        scale(.97);

    transition:
        transform .3s ease;

}


.gypsum-project-modal.show
.gypsum-project-modal-box {

    transform:
        translateY(0)
        scale(1);

}


/* CLOSE BUTTON */

.gypsum-project-modal-close {

    position: absolute;

    top: 15px;

    right: 15px;

    z-index: 5;

    width: 40px;

    height: 40px;

    display: grid;

    place-items: center;

    border: 0;

    border-radius: 50%;

    background:
        rgba(255,255,255,.95);

    color:
        var(--gypsum-green-dark);

    font-size: 17px;

    cursor: pointer;

    box-shadow:
        0 4px 15px rgba(0,0,0,.12);

    transition:
        .25s ease;

}


.gypsum-project-modal-close:hover {

    background:
        var(--gypsum-green-dark);

    color:
        white;

    transform:
        rotate(90deg);

}


/* IMAGE */

.gypsum-project-modal-image {

    min-height: 460px;

    background:
        #e7ece9;

}


.gypsum-project-modal-image img {

    width: 100%;

    height: 100%;

    min-height: 460px;

    object-fit: cover;

}


/* CONTENT */

.gypsum-project-modal-content {

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        center;

    padding:
        45px;

}


.gypsum-project-modal-category {

    display:
        inline-flex;

    align-self:
        flex-start;

    padding:
        6px 11px;

    margin-bottom:
        15px;

    border-radius:
        5px;

    background:
        var(--gypsum-green-soft);

    color:
        var(--gypsum-green);

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        1px;

    text-transform:
        uppercase;

}


.gypsum-project-modal-content h2 {

    margin:
        0 0 7px;

    color:
        var(--gypsum-text);

    font-family:
        "Playfair Display",
        serif;

    font-size:
        38px;

    line-height:
        1.15;

}


.gypsum-project-modal-location {

    margin:
        0 0 20px;

    color:
        var(--gypsum-green);

    font-size:
        13px;

    font-weight:
        600;

}


.gypsum-project-modal-description {

    color:
        var(--gypsum-muted);

    font-size:
        15px;

    line-height:
        1.75;

}


/* DETAILS */

.gypsum-project-modal-details {

    display:
        grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap:
        10px;

    margin-top:
        25px;

    padding-top:
        20px;

    border-top:
        1px solid
        var(--gypsum-border);

}


.gypsum-project-modal-details div {

    display:
        flex;

    flex-direction:
        column;

    gap:
        3px;

}


.gypsum-project-modal-details span {

    color:
        var(--gypsum-muted);

    font-size:
        9px;

    font-weight:
        600;

    letter-spacing:
        .8px;

    text-transform:
        uppercase;

}


.gypsum-project-modal-details strong {

    color:
        var(--gypsum-text);

    font-size:
        12px;

}


/* CTA */

.gypsum-project-modal-cta {

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        9px;

    align-self:
        flex-start;

    margin-top:
        27px;

    padding:
        12px 18px;

    border-radius:
        6px;

    background:
        var(--gypsum-green-dark);

    color:
        white;

    font-size:
        13px;

    font-weight:
        700;

    transition:
        .25s ease;

}


.gypsum-project-modal-cta:hover {

    background:
        #043e2d;

    color:
        white;

    transform:
        translateY(-2px);

}


/* =========================================================
   MODAL - MOBILE
========================================================= */

@media (max-width: 767px) {

    .gypsum-project-modal {

        padding:
            15px;

    }


    .gypsum-project-modal-box {

        max-height:
            92vh;

        grid-template-columns:
            1fr;

        overflow-y:
            auto;

    }


    .gypsum-project-modal-image {

        min-height:
            240px;

        max-height:
            280px;

    }


    .gypsum-project-modal-image img {

        min-height:
            240px;

        max-height:
            280px;

    }


    .gypsum-project-modal-content {

        padding:
            28px 24px 30px;

    }


    .gypsum-project-modal-content h2 {

        font-size:
            30px;

    }


    .gypsum-project-modal-details {

        grid-template-columns:
            1fr 1fr;

    }


    .gypsum-project-modal-cta {

        width:
            100%;

    }

}


@media (max-width: 420px) {

    .gypsum-project-modal-details {

        grid-template-columns:
            1fr;

    }

}


/* =========================================================
   FIX - VIEW PROJECT BUTTONS
========================================================= */

.gypsum-project-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    width: fit-content;

    margin-top: auto;
    padding: 11px 16px;

    border: 1px solid var(--gypsum-green);

    border-radius: 6px;

    background: transparent;

    color: var(--gypsum-green);

    font-family: "DM Sans", sans-serif;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;

    text-decoration: none;

    cursor: pointer;

    appearance: none;
    -webkit-appearance: none;

    box-shadow: none;

    transition:
        background-color 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease,
        gap 0.25s ease;
}


/* Arrow */

.gypsum-project-link i {
    font-size: 12px;

    transition:
        transform 0.25s ease;
}


/* Hover */

.gypsum-project-link:hover {
    background: var(--gypsum-green);

    border-color: var(--gypsum-green);

    color: #ffffff;

    transform: translateY(-2px);

    gap: 12px;
}


.gypsum-project-link:hover i {
    transform: translateX(2px);
}


/* Click */

.gypsum-project-link:active {
    transform: translateY(0);
}


/* Remove browser focus styling */

.gypsum-project-link:focus {
    outline: none;
}


/* Keyboard accessibility */

.gypsum-project-link:focus-visible {
    outline: 2px solid var(--gypsum-green);

    outline-offset: 3px;
}


/* Keep project content consistent */

.gypsum-project-content {
    display: flex;
    flex-direction: column;

    flex: 1;

    padding: 25px 25px 26px;
}