/* =========================================================
   ASSO BLOG
========================================================= */

:root{
    --asso-orange:#f28a1a;
    --asso-dark:#111;
    --asso-text:#303030;
    --asso-muted:#777;
    --asso-soft:#f5f4f1;
}


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

.blog-hero{
    position:relative;

    padding:
        clamp(130px,14vw,210px)
        24px
        clamp(80px,9vw,130px);

    overflow:hidden;

    background:#fff;
}


.blog-hero::after{
    content:"";

    position:absolute;

    right:-180px;
    bottom:-260px;

    width:520px;
    height:520px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(242,138,26,.14),
            transparent 68%
        );
}


.blog-hero__inner{
    position:relative;

    z-index:2;

    width:min(1180px,100%);

    margin:0 auto;
}


.blog-hero__eyebrow{
    display:inline-block;

    margin-bottom:20px;

    color:var(--asso-orange);

    font-size:12px;
    font-weight:700;

    letter-spacing:.18em;

    text-transform:uppercase;
}


.blog-hero h1{
    width:min(900px,100%);

    margin:0 0 28px;

    font-size:
        clamp(48px,6.7vw,96px);

    line-height:.94;

    letter-spacing:-.055em;

    color:var(--asso-dark);
}


.blog-hero h1 span{
    display:block;

    color:var(--asso-orange);
}


.blog-hero p{
    width:min(650px,100%);

    margin:0;

    color:var(--asso-muted);

    font-size:
        clamp(16px,1.5vw,19px);

    line-height:1.75;
}


/* =========================================================
   LIST
========================================================= */

.blog-list{
    padding:
        clamp(70px,8vw,120px)
        24px
        clamp(100px,10vw,150px);

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


.blog-list__inner{
    width:min(1180px,100%);

    margin:0 auto;
}


.blog-grid{
    display:grid;

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

    gap:28px;
}


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

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

    overflow:hidden;

    min-width:0;

    border-radius:24px;

    background:#fff;

    box-shadow:
        0 20px 55px rgba(0,0,0,.055);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}


.blog-card:hover{
    transform:translateY(-6px);

    box-shadow:
        0 28px 75px rgba(0,0,0,.10);
}


.blog-card--featured{
    grid-column:span 2;
}


/* =========================================================
   IMAGE
========================================================= */

.blog-card__image{
    position:relative;

    display:block;

    aspect-ratio:16 / 10;

    overflow:hidden;

    background:#ddd;
}


.blog-card__image img{
    display:block;

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
        transform .65s cubic-bezier(.2,.7,.2,1);
}


.blog-card:hover .blog-card__image img{
    transform:scale(1.035);
}


.blog-card__category{
    position:absolute;

    left:20px;
    bottom:18px;

    padding:7px 11px;

    border-radius:999px;

    background:#fff;

    color:#111;

    font-size:10px;
    font-weight:700;

    letter-spacing:.08em;

    text-transform:uppercase;

    box-shadow:
        0 5px 20px rgba(0,0,0,.12);
}


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

.blog-card__content{
    display:flex;
    flex-direction:column;

    flex:1;

    padding:
        clamp(25px,3vw,34px);
}


.blog-card__meta{
    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin-bottom:15px;

    color:#999;

    font-size:11px;
}


.blog-card h2{
    margin:0 0 17px;

    font-size:
        clamp(21px,2vw,29px);

    line-height:1.15;

    letter-spacing:-.025em;
}


.blog-card h2 a{
    color:#111;

    text-decoration:none;
}


.blog-card p{
    margin:0 0 28px;

    color:#6e6e6e;

    font-size:14px;

    line-height:1.75;
}


.blog-card__link{
    display:flex;

    align-items:center;

    gap:10px;

    margin-top:auto;

    color:#111;

    text-decoration:none;

    font-size:13px;
    font-weight:700;
}


.blog-card__link span{
    color:var(--asso-orange);

    transition:transform .2s ease;
}


.blog-card__link:hover span{
    transform:translateX(4px);
}


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

.article-hero{
    padding:
        clamp(130px,14vw,200px)
        24px
        clamp(60px,7vw,100px);

    background:#fff;
}


.article-hero__inner{
    width:min(900px,100%);

    margin:0 auto;
}


.article-hero__category{
    display:inline-block;

    margin-bottom:20px;

    color:var(--asso-orange);

    font-size:11px;
    font-weight:700;

    letter-spacing:.15em;

    text-transform:uppercase;
}


.article-hero h1{
    margin:0 0 28px;

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

    line-height:1;

    letter-spacing:-.05em;
}


.article-hero__intro{
    width:min(720px,100%);

    margin:0 0 28px;

    color:#666;

    font-size:
        clamp(17px,1.7vw,21px);

    line-height:1.7;
}


.article-hero__meta{
    display:flex;

    flex-wrap:wrap;

    gap:18px;

    color:#999;

    font-size:12px;
}


/* =========================================================
   ARTICLE IMAGE
========================================================= */

.article-image{
    width:min(1180px,calc(100% - 48px));

    margin:0 auto;

    overflow:hidden;

    border-radius:28px;
}


.article-image img{
    display:block;

    width:100%;

    max-height:680px;

    object-fit:cover;
}


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

.article-content{
    width:min(780px,calc(100% - 48px));

    margin:
        clamp(60px,8vw,100px)
        auto;

    color:var(--asso-text);

    font-size:17px;

    line-height:1.85;
}


.article-content p{
    margin:0 0 26px;
}


.article-content h2{
    margin:
        55px
        0
        20px;

    color:#111;

    font-size:
        clamp(28px,3vw,40px);

    line-height:1.15;

    letter-spacing:-.03em;
}


.article-content h3{
    margin:
        40px
        0
        16px;

    color:#111;

    font-size:24px;
}


.article-content ul,
.article-content ol{
    margin:
        0
        0
        28px;

    padding-left:25px;
}


.article-content li{
    margin-bottom:10px;
}


.article-content a{
    color:var(--asso-orange);
}


.article-content img{
    max-width:100%;

    height:auto;

    margin:30px 0;

    border-radius:16px;
}


/* =========================================================
   BACK
========================================================= */

.article-back{
    width:min(780px,calc(100% - 48px));

    margin:
        0 auto
        clamp(100px,10vw,150px);

    padding-top:30px;

    border-top:1px solid #e6e6e6;
}


.article-back a{
    color:#111;

    font-size:13px;
    font-weight:700;

    text-decoration:none;
}


/* =========================================================
   EMPTY
========================================================= */

.blog-empty{
    padding:70px 30px;

    border-radius:24px;

    background:#fff;

    text-align:center;
}


.blog-empty h2{
    margin:0 0 10px;
}


.blog-empty p{
    margin:0;

    color:#888;
}


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

@media(max-width:950px){

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

}


@media(max-width:680px){

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

    .blog-card--featured{
        grid-column:auto;
    }

    .blog-hero,
    .blog-list,
    .article-hero{
        padding-left:18px;
        padding-right:18px;
    }

    .article-image{
        width:calc(100% - 36px);

        border-radius:20px;
    }

    .article-content,
    .article-back{
        width:calc(100% - 36px);
    }

}