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

.hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    display:flex;
    align-items:center;
    min-height:min(680px,calc(100svh - var(--header-h)));
    padding:90px 7%;
    color:#fff;
}

.hero-bg{
    position:absolute;
    inset:0;
    z-index:-2;
    background:url("../images/banners/hero-banner.jpg") center/cover no-repeat;
    animation:kenburns 24s ease-in-out infinite alternate;
}

.hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        radial-gradient(circle at 80% 20%,rgba(236,214,168,.16),transparent 45%),
        linear-gradient(100deg,rgba(52,30,30,.95) 0%,rgba(96,52,56,.8) 45%,rgba(52,30,30,.22) 100%);
}

.hero-content{
    max-width:640px;
}

.hero-content > *{
    opacity:0;
    animation:fadeUp 1s var(--ease) forwards;
}

.hero-content > :nth-child(1){ animation-delay:.15s; }
.hero-content > :nth-child(2){ animation-delay:.3s; }
.hero-content > :nth-child(3){ animation-delay:.5s; }
.hero-content > :nth-child(4){ animation-delay:.7s; }

.hero-tag{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:9px 20px;
    border-radius:50px;
    background:var(--gold-light);
    color:#2a1c10;
    font-size:.78rem;
    font-weight:600;
    letter-spacing:.22em;
    text-transform:uppercase;
    margin-bottom:24px;
    box-shadow:0 8px 24px rgba(0,0,0,.35);
}

.hero-tag::before{
    content:"✦";
    color:#8a5a1c;
}

.hero h1{
    color:#fff;
    font-size:clamp(2.7rem,6.4vw,5.4rem);
    font-weight:600;
    line-height:1.04;
    margin-bottom:24px;
}

/* The shop's name in gold. The first line of the headline is plain, like the rest. */

.hero h1 span:not(.hero-line){
    white-space:nowrap;
    padding-right:.08em;
    font-style:italic;
    background:linear-gradient(100deg,#b98b4e 0%,#f6e4bd 30%,#b98b4e 55%,#f6e4bd 80%,#b98b4e 100%);
    background-size:220% 100%;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    animation:shimmer 6s linear infinite;
}

.hero p{
    max-width:520px;
    margin-bottom:38px;
    font-size:1.1rem;
    color:rgba(255,255,255,.82);
}

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

.hero .btn-primary{
    background:linear-gradient(135deg,var(--gold),#d9b77c);
    border-color:transparent;
    color:var(--on-fill);
    font-weight:600;
}

.hero .btn-primary:hover{
    box-shadow:0 14px 34px rgba(185,139,78,.45);
}

.hero .btn-outline{
    background:rgba(255,255,255,.96);
    color:#2a1c10;
    border-color:transparent;
    font-weight:600;
}

.hero .btn-outline:hover{
    background:var(--gold-light);
    color:#2a1c10;
    box-shadow:0 14px 34px rgba(0,0,0,.4);
}

/* Sparkles */

.sparkle{
    position:absolute;
    color:var(--gold-light);
    font-size:18px;
    line-height:1;
    animation:twinkle 3.6s ease-in-out infinite;
    pointer-events:none;
}

.sparkle::before{
    content:"✦";
}

.sparkle.s1{ top:16%; right:14%; font-size:26px; }
.sparkle.s2{ top:38%; right:30%; animation-delay:.9s; }
.sparkle.s3{ bottom:22%; right:10%; font-size:22px; animation-delay:1.7s; }
.sparkle.s4{ top:22%; right:46%; font-size:12px; animation-delay:2.4s; }
.sparkle.s5{ bottom:16%; right:38%; font-size:14px; animation-delay:.4s; }

/* Scroll hint */

.scroll-indicator{
    position:absolute;
    bottom:26px;
    left:50%;
    transform:translateX(-50%);
}

.scroll-indicator span{
    display:block;
    width:24px;
    height:40px;
    border:1px solid rgba(255,255,255,.6);
    border-radius:30px;
    position:relative;
}

.scroll-indicator span::before{
    content:"";
    position:absolute;
    left:50%;
    top:8px;
    width:3px;
    height:8px;
    margin-left:-1.5px;
    background:var(--gold-light);
    border-radius:10px;
    animation:scrollDot 2s infinite;
}

/* ==========================================
   FEATURES
========================================== */

.features{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
    padding:54px 5%;
    background:var(--surface);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.feature-card{
    text-align:center;
    padding:14px 18px;
}

.feature-card i{
    width:46px;
    height:46px;
    border-radius:50%;
    display:inline-grid;
    place-items:center;
    font-size:17px;
    color:var(--accent);
    background:var(--bg-deep);
    border:1px solid var(--line);
    margin-bottom:14px;
    transition:transform .6s var(--ease),background .4s,color .4s;
}

.feature-card:hover i{
    background:var(--fill);
    color:var(--on-fill);
    transform:translateY(-6px) rotate(-8deg);
}

.feature-card h3{
    font-size:1.25rem;
    margin-bottom:6px;
}

.feature-card p{
    font-size:.93rem;
    line-height:1.6;
}

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

@media(max-width:992px){

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

}

@media(max-width:768px){

    .hero{
        min-height:540px;
        padding:64px 22px 70px;
    }

    .hero::before{
        background:linear-gradient(180deg,rgba(52,30,30,.92),rgba(96,52,56,.84));
    }

    .hero p{
        font-size:1rem;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:stretch;
        max-width:300px;
    }

    .scroll-indicator{
        display:none;
    }

    .sparkle.s2,
    .sparkle.s4{
        display:none;
    }

    .features{
        padding:36px 12px;
        gap:14px 6px;
    }

    .feature-card h3{
        font-size:1.15rem;
    }

    .feature-card p{
        font-size:.85rem;
    }

}
