/* =========================================================
   NRAS FOUNDATION
   Premium Real Estate Investment Website
========================================================= */

:root {
    --bg: #f4f1e9;
    --bg-soft: #e9e3d7;
    --dark: #151714;
    --dark-2: #1c1e1a;
    --text: #24251f;
    --muted: #706d64;
    --gold: #b49b68;
    --gold-light: #c7b484;
    --line: #d6d0c3;
    --white: #ffffff;

    --serif: "Playfair Display", Georgia, serif;
    --sans: "DM Sans", Arial, sans-serif;
}


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

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--sans);
    font-size: 15px;
    line-height: 1.75;
    overflow-x: hidden;
}

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

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

button {
    font-family: inherit;
}


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

.section {
    padding: 120px 8vw;
}

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

.section-label {
    display: block;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);

    color: var(--gold);

    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.25em;
    text-transform: uppercase;
}

.dark-section .section-label {
    border-color: #3b3d38;
}

.eyebrow {
    color: var(--gold);

    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.25em;
    line-height: 1.5;
    text-transform: uppercase;
}

h1,
h2,
h3 {
    font-family: var(--serif);
    font-weight: 500;
}

h2 {
    font-size: clamp(42px, 5vw, 72px);
    line-height: 1.08;
}

h3 {
    font-size: 26px;
    line-height: 1.25;
}

p {
    color: var(--muted);
}

.dark-section p {
    color: #bcbcb5;
}


/* =========================================================
   NAVIGATION
========================================================= */

#site-header {
    position: fixed;
    z-index: 1000;

    top: 0;
    left: 0;
    right: 0;

    padding: 25px 6vw;

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

    color: var(--white);

    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.55),
        transparent
    );

    transition:
        background 0.35s ease,
        padding 0.35s ease,
        backdrop-filter 0.35s ease;
}

#site-header.scrolled {
    padding: 16px 6vw;

    background: rgba(20, 21, 18, 0.96);

    backdrop-filter: blur(14px);
}


/* LOGO */

.logo {
    display: inline-flex;
    align-items: center;
    width: 190px;
    height: 58px;
    flex-shrink: 0;
}

.logo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 58px;
    object-fit: contain;
    object-position: left center;
}


/* NAV */

#main-navigation {
    display: flex;
    align-items: center;
    gap: 28px;
}

#main-navigation a {
    position: relative;

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

    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;

    transition: color 0.25s ease;
}

#main-navigation a::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -7px;

    width: 0;
    height: 1px;

    background: var(--gold);

    transition: width 0.25s ease;
}

#main-navigation a:hover {
    color: var(--white);
}

#main-navigation a:hover::after {
    width: 100%;
}


/* MOBILE MENU */

#menu-button {
    display: none;

    border: none;
    background: transparent;

    color: var(--white);

    font-size: 27px;
    cursor: pointer;
}


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

.hero {
    position: relative;

    min-height: 100vh;

    display: flex;
    align-items: center;

    color: var(--white);

    background:
        radial-gradient(
            circle at 75% 35%,
            rgba(180, 155, 104, 0.23),
            transparent 28%
        ),
        linear-gradient(
            115deg,
            #10120f 0%,
            #33372f 53%,
            #151714 100%
        );

    overflow: hidden;
}


/* Decorative architecture effect */

.hero::before {
    content: "";

    position: absolute;

    width: 700px;
    height: 700px;

    right: -150px;
    top: 50%;

    transform: translateY(-50%);

    border: 1px solid rgba(197, 177, 134, 0.18);

    border-radius: 50%;
}

.hero::after {
    content: "";

    position: absolute;

    width: 470px;
    height: 470px;

    right: -30px;
    top: 50%;

    transform: translateY(-50%);

    border: 1px solid rgba(197, 177, 134, 0.12);

    border-radius: 50%;
}

.hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.75),
            rgba(0, 0, 0, 0.15)
        );
}

.hero-content {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1050px;

    margin-left: 10vw;
}

.hero h1 {
    margin: 22px 0 25px;

    color: var(--white);

    font-size: clamp(52px, 7vw, 100px);
    line-height: 0.99;
    letter-spacing: -0.02em;
}

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

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

    font-size: 16px;
    line-height: 1.8;
}

.hero-buttons {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

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

    min-height: 48px;

    margin-top: 28px;
    padding: 13px 24px;

    background: var(--gold);

    color: #171814;

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;

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

    transition:
        transform 0.25s ease,
        background 0.25s ease,
        color 0.25s ease;
}

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

    background: var(--gold-light);
}

.button-outline {
    background: transparent;
    color: var(--white);
    border-color: rgba(255, 255, 255, 0.4);
}

.button-outline:hover {
    background: var(--white);
    color: var(--dark);
}

.scroll-indicator {
    position: absolute;

    z-index: 3;

    right: 6vw;
    bottom: 40px;

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

    font-size: 9px;
    letter-spacing: 0.25em;

    writing-mode: vertical-rl;
}


/* =========================================================
   TWO COLUMN SECTIONS
========================================================= */

.two-column,
.heading {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 9vw;

    padding-top: 75px;
}

.two-column h2,
.heading h2 {
    margin-top: 15px;
}

.copy {
    max-width: 720px;

    color: var(--muted);
}

.copy p {
    margin-bottom: 22px;
}

.dark-section .copy p {
    color: #bcbcb5;
}


/* =========================================================
   CENTER CONTENT
========================================================= */

.center-content {
    max-width: 900px;

    margin: 75px auto;

    text-align: center;
}

.center-content h2 {
    margin: 18px 0 25px;
}

.center-content > p:last-child {
    max-width: 720px;

    margin-left: auto;
    margin-right: auto;
}


/* =========================================================
   PURPOSE GRID
========================================================= */

.three-column-grid {
    display: grid;

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

    gap: 1px;

    background: #3a3d37;
}

.three-column-grid article {
    min-height: 190px;

    padding: 34px;

    background: var(--dark);
}

.three-column-grid article > span {
    color: var(--gold);

    font-size: 10px;
    letter-spacing: 0.18em;
}

.three-column-grid h3 {
    margin: 42px 0 10px;

    color: var(--white);
}

.three-column-grid p {
    font-size: 13px;
}


/* =========================================================
   INVESTMENT GRID
========================================================= */

.investment-grid {
    display: grid;

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

    gap: 1px;

    margin-top: 65px;

    background: var(--line);
}

.investment-grid article {
    min-height: 315px;

    padding: 38px;

    background: var(--bg);

    transition:
        transform 0.3s ease,
        background 0.3s ease;
}

.investment-grid article:hover {
    position: relative;
    z-index: 2;

    transform: translateY(-5px);

    background: #ebe5da;
}

.investment-grid article > span {
    color: var(--gold);

    font-size: 10px;
    letter-spacing: 0.18em;
}

.investment-grid h3 {
    margin-top: 58px;
    margin-bottom: 13px;
}

.investment-grid p {
    font-size: 13px;
}


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

.process {
    display: flex;

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

    flex-wrap: wrap;

    max-width: 1150px;

    margin: 60px auto;

    gap: 10px;
}

.process span {
    padding: 11px 14px;

    border: 1px solid #3d403a;

    color: #d4d4cc;

    font-size: 10px;
    letter-spacing: 0.03em;
}

.process i {
    color: var(--gold);

    font-style: normal;
}

.objective {
    padding-top: 30px;

    border-top: 1px solid #3b3d38;

    text-align: center;
}

.objective small {
    color: var(--gold);

    font-size: 9px;
    letter-spacing: 0.25em;
}

.objective strong {
    display: block;

    max-width: 850px;

    margin: 13px auto 0;

    color: var(--white);

    font-family: var(--serif);

    font-size: 28px;
    font-weight: 500;
    line-height: 1.35;
}


/* =========================================================
   ASSET MANAGEMENT
========================================================= */

.wide-copy {
    max-width: 900px;

    margin-top: 55px;

    font-size: 15px;
}

.management-grid {
    display: grid;

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

    margin-top: 45px;

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

.management-grid div {
    padding: 19px 15px;

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

    font-size: 13px;
}

.management-grid div:nth-child(odd) {
    border-right: 1px solid var(--line);
}

.note {
    max-width: 900px;

    margin-top: 30px;

    font-size: 12px;
    font-style: italic;
}


/* =========================================================
   DEVELOPER EXPOSURE
========================================================= */

.exposure {
    padding: 120px 8vw;

    background: var(--bg-soft);
}

.exposure .center-content {
    margin-top: 0;
    margin-bottom: 65px;
}

.developers {
    display: flex;

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

    gap: 25px;

    padding: 31px 0;

    border-top: 1px solid #c8c0b2;
    border-bottom: 1px solid #c8c0b2;
}

.developers span {
    color: #33332e;

    font-family: var(--serif);

    font-size: 22px;
    letter-spacing: 0.04em;
}

.exposure-note {
    max-width: 850px;

    margin: 30px auto 0;

    text-align: center;

    font-size: 13px;
}


/* =========================================================
   INVESTMENT PHILOSOPHY
========================================================= */

.principles {
    margin-top: 65px;

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

.principles article {
    display: grid;

    grid-template-columns: 90px 1fr;

    gap: 30px;

    padding: 32px 0;

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

.principles article > span {
    color: var(--gold);

    font-size: 10px;
    letter-spacing: 0.2em;
}

.principles h3 {
    margin-bottom: 10px;
}

.principles p {
    max-width: 850px;

    font-size: 13px;
}


/* =========================================================
   EXPERIENCE
========================================================= */

.experience-content {
    align-items: center;
}

.experience-number {
    color: var(--gold);

    font-family: var(--serif);

    font-size: clamp(130px, 17vw, 240px);

    line-height: 0.8;

    letter-spacing: -0.05em;
}

.experience-number span {
    font-size: 0.45em;
}


/* =========================================================
   VISION + MISSION
========================================================= */

.vision-mission {
    display: grid;

    grid-template-columns: 1fr 1fr;
}

.vision,
.mission {
    min-height: 470px;

    padding: 100px 8vw;
}

.vision {
    background: var(--dark);
}

.mission {
    background: var(--gold);
}

.vision .eyebrow {
    color: var(--gold-light);
}

.mission .eyebrow {
    color: #51462f;
}

.vision h2,
.mission h2 {
    margin-top: 30px;

    font-size: clamp(34px, 4vw, 56px);

    line-height: 1.13;
}

.vision h2 {
    color: var(--white);
}

.mission h2 {
    color: #191a16;
}


/* =========================================================
   VALUES
========================================================= */

.values-grid {
    display: grid;

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

    gap: 1px;

    margin-top: 60px;

    background: var(--line);
}

.values-grid article {
    min-height: 190px;

    padding: 35px;

    background: var(--bg);
}

.values-grid h3 {
    margin-bottom: 12px;
}

.values-grid p {
    font-size: 13px;
}


/* =========================================================
   CONTACT
========================================================= */

.contact {
    position: relative;

    padding: 125px 8vw;

    background:
        radial-gradient(
            circle at 80% 25%,
            rgba(180, 155, 104, 0.22),
            transparent 28%
        ),
        linear-gradient(
            120deg,
            #11130f,
            #373a34
        );

    color: var(--white);

    overflow: hidden;
}

.contact::before {
    content: "";

    position: absolute;

    width: 550px;
    height: 550px;

    right: -200px;
    bottom: -300px;

    border: 1px solid rgba(180, 155, 104, 0.18);

    border-radius: 50%;
}

.contact-content {
    position: relative;
    z-index: 2;

    max-width: 1050px;

    margin: auto;
}

.contact h2 {
    margin: 25px 0;

    color: var(--white);

    font-size: clamp(60px, 9vw, 115px);

    line-height: 0.92;
}

.contact-content > p {
    max-width: 650px;

    color: #c4c4bd;
}

.contact-grid {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 60px;

    margin-top: 60px;
    padding-top: 27px;

    border-top: 1px solid #555850;
}

.contact-grid small {
    display: block;

    margin-bottom: 12px;

    color: var(--gold);

    font-size: 9px;
    letter-spacing: 0.22em;
}

.contact-grid strong {
    display: block;

    margin-bottom: 7px;

    color: var(--white);

    font-family: var(--serif);

    font-size: 21px;

    font-weight: 500;
}

.contact-grid p {
    color: #aaa9a2;
}

.contact-grid a {
    display: block;

    margin-bottom: 10px;

    color: var(--white);

    transition: color 0.2s ease;
}

.contact-grid a:hover {
    color: var(--gold-light);
}

.contact-buttons {
    display: flex;

    flex-wrap: wrap;

    gap: 10px;
}


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

footer {
    display: grid;

    grid-template-columns: 1fr 1fr 1fr;

    gap: 50px;

    padding: 70px 8vw 25px;

    background: #0f100e;

    color: #999a93;
}

footer .logo {
    margin-bottom: 22px;
}

footer p {
    max-width: 350px;

    color: #85867f;

    font-size: 12px;
}

footer a {
    color: #aaa;

    font-size: 12px;

    transition: color 0.2s ease;
}

footer a:hover {
    color: var(--gold-light);
}

footer strong {
    color: var(--gold);

    font-family: var(--serif);

    font-size: 19px;

    font-weight: 500;
}

.copyright {
    grid-column: 1 / -1;

    padding-top: 20px;

    border-top: 1px solid #2e302c;

    color: #676862;

    font-size: 10px;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

    #main-navigation {
        gap: 16px;
    }

    #main-navigation a {
        font-size: 9px;
    }

    .hero-content {
        margin-left: 7vw;
        margin-right: 7vw;
    }

    .three-column-grid,
    .investment-grid,
    .values-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .developers {
        justify-content: center;
        flex-wrap: wrap;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 800px) {

    .section {
        padding: 80px 7vw;
    }


    /* Mobile Navigation */

    #site-header {
        padding: 20px 7vw;
    }

    #site-header.scrolled {
        padding: 16px 7vw;
    }

    #menu-button {
        display: block;
    }

    #main-navigation {
        display: none;

        position: absolute;

        top: 72px;
        left: 0;
        right: 0;

        padding: 25px 7vw;

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

        gap: 20px;

        background: rgba(21, 23, 20, 0.98);

        backdrop-filter: blur(12px);
    }

    #site-header.menu-open #main-navigation {
        display: flex;
    }

    #main-navigation a {
        font-size: 11px;
    }


    /* Hero */

    .hero {
        min-height: 90vh;
    }

    .hero-content {
        margin-left: 7vw;
        margin-right: 7vw;
    }

    .hero h1 {
        font-size: clamp(48px, 13vw, 75px);
    }

    .hero-description {
        font-size: 14px;
    }

    .scroll-indicator {
        display: none;
    }


    /* Columns */

    .two-column,
    .heading {
        grid-template-columns: 1fr;

        gap: 30px;

        padding-top: 55px;
    }


    /* Grids */

    .three-column-grid,
    .investment-grid,
    .values-grid {
        grid-template-columns: 1fr;
    }


    .investment-grid article {
        min-height: auto;

        padding: 30px;
    }

    .investment-grid h3 {
        margin-top: 35px;
    }


    /* Process */

    .process {
        justify-content: flex-start;

        margin: 45px 0;
    }

    .process i {
        display: none;
    }


    /* Management */

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

    .management-grid div:nth-child(odd) {
        border-right: none;
    }


    /* Philosophy */

    .principles article {
        grid-template-columns: 45px 1fr;

        gap: 15px;
    }


    /* Experience */

    .experience-number {
        font-size: 120px;
    }


    /* Vision */

    .vision-mission {
        grid-template-columns: 1fr;
    }

    .vision,
    .mission {
        min-height: auto;

        padding: 75px 7vw;
    }


    /* Contact */

    .contact {
        padding: 90px 7vw;
    }

    .contact-grid {
        grid-template-columns: 1fr;

        gap: 30px;
    }


    /* Footer */

    footer {
        grid-template-columns: 1fr;

        gap: 35px;

        padding: 55px 7vw 25px;
    }

    .copyright {
        grid-column: auto;
    }

}


/* =========================================================
   SMALL PHONES
========================================================= */

@media (max-width: 450px) {

    body {
        font-size: 14px;
    }

    h2 {
        font-size: 40px;
    }

    .logo {
        width: 155px;
        height: 48px;
    }

    .logo img {
        max-height: 48px;
    }

    .hero h1 {
        font-size: 48px;
    }

    .hero-buttons {
        flex-direction: column;
        align-items: flex-start;
    }

    .button {
        width: 100%;
    }

    .contact-buttons {
        flex-direction: column;
        align-items: stretch;
    }

}

/* =========================================================
   BRANDED LOGO
   ========================================================= */

footer .logo {
    width: 205px;
    height: 62px;
}

footer .logo img {
    max-height: 62px;
}

@media (max-width: 450px) {
    footer .logo {
        width: 175px;
        height: 54px;
    }

    footer .logo img {
        max-height: 54px;
    }
}
