/* =========================================================
   KNOWLEDGE HUB
========================================================= */

.knowledge-hub {

    background:
        radial-gradient(
            circle at 75% 10%,
            rgba(168,117,78,.12),
            transparent 32%
        ),
        #f4f0e9;

    min-height:100vh;
}


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

.knowledge-hub-hero {

    min-height:68vh;

    display:flex;

    flex-direction:column;

    justify-content:center;

    padding:
        150px
        10vw
        100px;

    position:relative;

    overflow:hidden;
}


.knowledge-hub-hero::after {

    content:"";

    position:absolute;

    width:520px;

    height:520px;

    right:-220px;

    bottom:-230px;

    border:
        1px solid
        rgba(168,117,78,.25);

    border-radius:50%;

    animation:
        knowledgeOrbit
        18s
        linear
        infinite;
}


@keyframes knowledgeOrbit {

    from {
        transform:rotate(0deg);
    }

    to {
        transform:rotate(360deg);
    }

}


.hub-eyebrow {

    font-size:12px;

    letter-spacing:.22em;

    color:#a8754e;

    margin-bottom:30px;
}


.knowledge-hub-hero h1 {

    max-width:1000px;

    font-size:
        clamp(
            65px,
            10vw,
            150px
        );

    line-height:.86;

    letter-spacing:-.055em;

    margin:0;
}


.knowledge-hub-hero h1 span {

    color:#a8754e;
}


.knowledge-hub-hero p {

    max-width:760px;

    font-size:21px;

    line-height:1.7;

    color:#57514a;

    margin-top:45px;
}


/* =========================================================
   HUB NAV
========================================================= */

.hub-nav {

    padding:
        24px
        10vw;

    display:flex;

    gap:35px;

    overflow-x:auto;

    border-top:
        1px solid
        rgba(0,0,0,.08);

    border-bottom:
        1px solid
        rgba(0,0,0,.08);

    background:
        rgba(255,255,255,.35);
}


.hub-nav a {

    color:#514b45;

    text-decoration:none;

    font-size:13px;

    white-space:nowrap;
}


.hub-nav a:hover {

    color:#a8754e;
}


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

.hub-content {

    max-width:1200px;

    margin:auto;

    padding:
        80px
        30px
        110px;
}


.hub-section {

    margin-bottom:130px;
}


.hub-label {

    font-size:11px;

    letter-spacing:.2em;

    color:#a8754e;

    margin-bottom:20px;
}


.hub-section h2 {

    font-size:
        clamp(
            40px,
            5vw,
            65px
        );

    line-height:1;

    letter-spacing:-.04em;

    margin-bottom:30px;
}


.hub-section-intro {

    max-width:780px;

    font-size:18px;

    line-height:1.8;

    color:#57514a;

    margin-bottom:50px;
}


/* =========================================================
   PUBLISHED ARTICLES
========================================================= */

.published-articles-section {

    margin-bottom:130px;
}


.published-articles-header {

    display:flex;

    justify-content:space-between;

    align-items:flex-end;

    gap:30px;

    margin-bottom:50px;
}


.published-articles-header h2 {

    margin-bottom:0;
}

.article-count {

    font-size:13px;

    font-weight:600;

    letter-spacing:.14em;

    color:#a8754e;

    white-space:nowrap;

    padding:
        10px
        16px;

    border:
        1px solid
        rgba(168,117,78,.35);

    background:
        rgba(168,117,78,.08);

}


/* =========================================================
   ARTICLE GRID
========================================================= */

.article-grid {

    display:grid;

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

    gap:16px;
}


.article-card {

    display:flex;

    flex-direction:column;

    min-height:330px;

    padding:35px;

    text-decoration:none;

    color:#292522;

    background:
        rgba(255,255,255,.65);

    border:
        1px solid
        rgba(0,0,0,.08);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}


.article-card:hover {

    transform:
        translateY(-8px);

    border-color:
        rgba(168,117,78,.5);

    box-shadow:
        0 25px 60px
        rgba(0,0,0,.08);
}


.article-number {

    font-size:11px;

    letter-spacing:.16em;

    color:#a8754e;

    margin-bottom:45px;
}


.article-card h3 {

    font-size:27px;

    line-height:1.05;

    margin-bottom:18px;
}


.article-card p {

    font-size:15px;

    line-height:1.7;

    color:#57514a;

    margin:0;
}


.article-arrow {

    margin-top:auto;

    padding-top:30px;

    font-size:13px;

    color:#a8754e;
}


/* =========================================================
   DATABASE ARTICLE CARD
========================================================= */

.dynamic-article-card {

    min-height:360px;
}


.dynamic-article-category {

    font-size:10px;

    letter-spacing:.16em;

    text-transform:uppercase;

    color:#a8754e;

    margin-bottom:14px;
}


.dynamic-article-date {

    font-size:11px;

    color:#80776f;

    margin-top:20px;
}


.dynamic-article-tags {

    display:flex;

    flex-wrap:wrap;

    gap:7px;

    margin-top:20px;
}


.dynamic-article-tag {

    font-size:10px;

    letter-spacing:.08em;

    padding:5px 9px;

    border:1px solid rgba(0,0,0,.1);

    color:#6b625b;
}


/* =========================================================
   LOADING / EMPTY STATE
========================================================= */

.articles-loading {

    padding:
        60px
        30px;

    text-align:center;

    color:#77706a;

    border:
        1px solid
        rgba(0,0,0,.08);

    background:
        rgba(255,255,255,.4);
}


.articles-empty {

    padding:
        60px
        30px;

    text-align:center;

    color:#77706a;

    border:
        1px solid
        rgba(0,0,0,.08);

    background:
        rgba(255,255,255,.4);
}


/* =========================================================
   FEATURE CARD
========================================================= */

.feature-card {

    grid-column:
        span 2;

    background:#171513;

    color:#f4f0e9;
}


.feature-card p {

    color:#cfc8bf;
}


.feature-card .article-number,
.feature-card .article-arrow {

    color:#c9956c;
}


/* =========================================================
   PILLAR STRIP
========================================================= */

.pillar-strip {

    display:grid;

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

    border-top:
        1px solid
        rgba(0,0,0,.1);

    border-bottom:
        1px solid
        rgba(0,0,0,.1);

    margin:
        60px 0 100px;
}


.pillar {

    padding:35px 25px;

    border-right:
        1px solid
        rgba(0,0,0,.1);
}


.pillar:last-child {

    border-right:none;
}


.pillar span {

    display:block;

    font-size:10px;

    letter-spacing:.15em;

    color:#a8754e;

    margin-bottom:15px;
}


.pillar h3 {

    font-size:21px;

    margin:0;
}


/* =========================================================
   HUB CTA
========================================================= */

.hub-cta {

    padding:
        90px
        50px;

    background:#171513;

    color:#f4f0e9;

    text-align:center;

    margin-top:80px;
}


.hub-cta h2 {

    max-width:850px;

    margin:
        20px auto;

    font-size:
        clamp(
            42px,
            6vw,
            75px
        );

    line-height:.95;

    letter-spacing:-.04em;
}


.hub-cta h2 span {

    color:#c9956c;
}


.hub-cta p {

    max-width:650px;

    margin:
        30px auto;

    color:#cfc8bf;

    line-height:1.7;
}


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

@media(max-width:900px) {

    .article-grid {

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


    .feature-card {

        grid-column:span 2;
    }


    .pillar-strip {

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


    .pillar {

        border-bottom:
            1px solid
            rgba(0,0,0,.1);
    }


    .published-articles-header {

        align-items:flex-start;

        flex-direction:column;
    }

}


@media(max-width:650px) {

    .knowledge-hub-hero {

        min-height:65vh;

        padding:
            120px
            25px
            70px;
    }


    .hub-content {

        padding:
            70px 22px
            80px;
    }


    .article-grid {

        grid-template-columns:1fr;
    }


    .feature-card {

        grid-column:span 1;
    }


    .pillar-strip {

        grid-template-columns:1fr;
    }


    .pillar {

        border-right:none;
    }


    .hub-cta {

        padding:
            60px 25px;
    }

}
/* =========================================================
   ARTICLE SEARCH
========================================================= */

.article-search {

    margin-bottom:35px;

}

.article-search input {

    width:100%;

    box-sizing:border-box;

    padding:18px 20px;

    font-family:inherit;

    font-size:16px;

    color:#292522;

    background:
        rgba(255,255,255,.65);

    border:
        1px solid
        rgba(0,0,0,.12);

    outline:none;

    transition:
        border-color .25s ease,
        box-shadow .25s ease;

}

.article-search input:focus {

    border-color:
        rgba(168,117,78,.55);

    box-shadow:
        0 0 0 3px
        rgba(168,117,78,.08);

}

.article-search input::placeholder {

    color:#80776f;

}


/* =========================================================
   LOAD MORE
========================================================= */

.article-load-more {

    display:block;

    margin:
        40px
        auto
        0;

    padding:
        15px
        28px;

    font-family:inherit;

    font-size:11px;

    letter-spacing:.16em;

    cursor:pointer;

    color:#292522;

    background:
        transparent;

    border:
        1px solid
        rgba(0,0,0,.15);

    transition:
        background .25s ease,
        color .25s ease,
        border-color .25s ease;

}

.article-load-more:hover {

    background:#171513;

    color:#f4f0e9;

    border-color:#171513;

}