/* RESET */

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

html{
    scroll-behavior:smooth;
}

body{

    background:#000;
    color:#fff;

    font-family:
    "Zen Old Mincho",
    serif;

    line-height:1.9;

    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;

}

h1,
h2,
h3,
.logo,
.subtitle,
.caption,
.footer-nav,
.footer-social{

    font-family:
    "Cormorant Garamond",
    serif;

    letter-spacing:.06em;

}


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

video{
    display:block;
    width:100%;
}

html, body {
    overflow-x: hidden;
}

* {
    box-sizing: border-box;
}

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

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

button{
    border:none;
    background:none;
    cursor:pointer;
    font:inherit;
}

ul{
    list-style:none;
}


/* FADE */

.fade{

    opacity:0;

    transform:translateY(40px);

    transition:
        opacity 2s ease,
        transform 2s ease;

}

.fade.show{

    opacity:1;

    transform:translateY(0);

}


.blend-card img{

    transition:

        transform .9s ease,
        filter .9s ease;

}

.blend-card:hover img{

    transform:scale(1.03);

    filter:brightness(1.05);

}



/* VARIABLES */

:root{

    --black:#000;
    --white:#fff;

    --gray100:#f5f5f5;
    --gray300:#d0d0d0;
    --gray500:#888;
    --gray700:#444;

    --header-height:72px;

    --content-width:1200px;

    --radius:20px;

    --transition:.35s ease;

}


/*  SR ONLY */

.sr-only{

    position:absolute;
    width:1px;
    height:1px;

    overflow:hidden;

    clip:rect(0,0,0,0);

}


/* AGE GATE */

#age-gate{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.72);

    backdrop-filter:blur(10px);

    display:none;

    justify-content:center;

    align-items:center;

    z-index:9999;

    padding:24px;

}

.age-box{

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

    background:rgba(15,15,15,.9);

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

    border-radius:28px;

    padding:48px 36px;

}

.age-box h2{

    font-size:2rem;

    line-height:1.3;

    margin-bottom:28px;

    font-weight:700;

}

.age-box p{

    color:#ddd;

    font-size:15px;

    margin-bottom:36px;

}

.age-buttons{

    display:flex;

    gap:14px;

    flex-wrap:wrap;

}

.age-buttons button{

    flex:1;

    min-height:48px;

    border-radius:999px;

    transition:var(--transition);

    font-weight:600;

}

#age-yes{

    background:#fff;

    color:#000;

}

#age-yes:hover{

    background:#e9e9e9;

}

#age-no{

    background:#2d2d2d;

    color:#fff;

}

#age-no:hover{

    background:#555;

}


/* HEADER */

header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    height:var(--header-height);

    background:rgba(0,0,0,.78);

    backdrop-filter:blur(10px);

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

    z-index:1000;

    transition:.3s;

}

.header-small{

    height:60px;

}

.header-inner{

    width:min(100%,1200px);

    height:100%;

    margin:auto;

    display:flex;

    justify-content:center;

    align-items:center;

    position:relative;

    padding:0 20px;

}

.logo img{

    height:62px;

    width:auto;

    transition:.3s;

}

.header-small .logo img{

    height:48px;

}


/* HAMBURGER */

#menu-button{

    position:absolute;

    right:20px;

    width:34px;

    height:26px;

}

#menu-button span{

    display:block;

    width:100%;

    height:2px;

    background:#fff;

    margin:7px 0;

    transition:.3s;

}


/* MENU */

#menu-popup{

    position:fixed;

    top:72px;

    left:0;

    width:100%;

    background:rgba(0,0,0,.95);

    backdrop-filter:blur(12px);

    display:none;

    flex-direction:column;

    align-items:center;

    gap:34px;

    padding:50px 0;

    z-index:900;

}

#menu-popup.active{

    display:flex;

}

#menu-popup a{

    font-size:15px;

    letter-spacing:.15em;

    transition:.25s;

}

#menu-popup a:hover{

    opacity:.65;

}


/* MAIN */

main{

    padding-top:var(--header-height);

}


/* HERO */

@keyframes heroFade{

from{

opacity:0;

transform:scale(1.03);

}

to{

opacity:1;

transform:scale(1);

}

}


.hero{

    opacity:0;
    animation:heroFade 1.8s ease forwards;
    width:100%;
    max-width:900px;
    margin:24px auto;
    aspect-ratio:3 / 4;
    overflow:hidden;
    border-radius:18px;
}

.hero video{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:1s;

}

.hero:hover video{

    transform:scale(1.02);

}


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

@media(max-width:768px){

.age-box{

padding:36px 24px;

}

.age-box h2{

font-size:1.7rem;

}

.logo img{

height:56px;

}

.hero{

width:calc(100% - 32px);

margin:16px auto;

border-radius:12px;

}

}

/* ======================================================
   CONTAINER
====================================================== */

.container{

    width:min(1100px,92%);
    margin:auto;

}

.container-small{

    width:min(760px,90%);
    margin:auto;

}


/* ======================================================
   INTRO
====================================================== */

.intro{

    padding:80px 20px;
    text-align:center;

}

.intro h2{

    font-size:1.5rem;
    font-weight:600;
    margin-bottom:18px;
    letter-spacing:.05em;

}

.intro .subtitle{

    font-size:1rem;
    letter-spacing:.15em;
    margin-bottom:20px;

}

.intro .jp{

    color:#d7d7d7;
    margin-bottom:8px;
    font-size:.8rem;

}

.intro .en{

    color:#8d8d8d;
    font-size:1rem;
    letter-spacing:.08em;

}


/* ======================================================
   SECTION TITLE
====================================================== */

.section-title{

    text-align:center;
    margin-bottom:70px;

}

.section-title h2{

    font-size:2.8rem;
    font-weight:700;
    margin-bottom:10px;

}

.section-title p{

    color:#9d9d9d;
    font-size:.95rem;
    letter-spacing:.08em;

}


/* ======================================================
   BLENDS
====================================================== */

.blends{

    padding:120px 20px;

}

.blend-grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(320px,1fr));

    gap:60px;

}


.blend-card{

    text-align:center;

}


.blend-card img{

    width:100%;
    border-radius:18px;
    margin-bottom:24px;

    transition:
    transform .6s ease,
    opacity .4s ease;

}


.blend-card:hover img{

    transform:scale(1.02);

}


.blend-card h3{

    font-size:1.5rem;
    letter-spacing:.08em;
    margin-bottom:10px;

}


.blend-herbs{

    color:#9f9f9f;
    font-size:.9rem;
    line-height:1.8;
    margin-bottom:24px;

}


/* ======================================================
   BUTTON LINK
====================================================== */

.button-link{

    display:inline-block;

    border-bottom:1px solid #fff;

    padding-bottom:3px;

    font-size:.9rem;

    transition:.25s;

}


.button-link:hover{

    opacity:.65;

}


/* ======================================================
   QUOTE
====================================================== */

.quote{

    padding:180px 20px;
    text-align:center;

}

.quote h2{

    font-size:3rem;
    line-height:1.4;
    font-weight:300;
    letter-spacing:.04em;

}

.quote .jp{

    margin-top:40px;

    color:#d0d0d0;

    font-size:1rem;

}

.quote .caption{

    margin-top:60px;

    font-size:.75rem;

    color:#777;

    letter-spacing:.35em;

}


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

@media(max-width:768px){

.intro{

padding:70px 24px;

}

.intro h2{

font-size:1.7rem;

}

.section-title{

margin-bottom:50px;

}

.section-title h2{

font-size:2.2rem;

}

.blends{

padding:90px 24px;

}

.blend-grid{

grid-template-columns:1fr;

gap:50px;

}

.quote{

padding:120px 24px;

}

.quote h2{

font-size:1.5rem;

}

}

/* ==========================================
ABOUT BOTANICAL HAZE
========================================== */

.about-haze{

    padding:160px 20px;

    text-align:center;

}

.about-haze h2{

    font-size:1rem;

    font-weight:600;

    margin-bottom:30px;

}

.about-haze .lead{

    font-size:1rem;

    line-height:2.2;

    color:#f0f0f0;

    margin-bottom:30px;

}

.about-haze .description{

    font-size:0.8rem;

    color:#9a9a9a;

    margin-bottom:55px;

}

.outline-button{

    display:inline-flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:6px;

    padding:18px 42px;

    border:1px solid rgba(255,255,255,.8);

    border-radius:999px;

    transition:.35s ease;

}

.outline-button span{

    font-size:.95rem;

    letter-spacing:.08em;

}

.outline-button small{

    color:#888;

    font-size:.72rem;

    letter-spacing:.15em;

}

.outline-button:hover{

    background:#fff;

    color:#000;

}

.outline-button:hover small{

    color:#444;

}

@media(max-width:768px){

.about-haze{

padding:120px 24px;

}

.about-haze h2{

font-size:1.5rem;

}

}

/* ==========================================
NOTICE
========================================== */

.notice{

    padding:120px 20px;

    text-align:center;

}

.notice h2{

    font-size:.65rem;

    letter-spacing:.3em;

    text-transform:uppercase;

    margin-bottom:40px;

    color:#ddd;

}

.notice p{

    color:#999;

    line-height:2.2;

    margin-bottom:20px;

    font-size:.55rem;

}


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

footer{

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

    padding:70px 20px 40px;

}

.footer-inner{

    width:min(1100px,92%);

    margin:auto;

    display:flex;

    flex-direction:column;

    align-items:center;

}

.footer-logo{

    margin-bottom:40px;

}

.footer-logo img{

    height:80px;

    width:auto;

}

.footer-nav{

    display:flex;

    gap:40px;

    flex-wrap:wrap;

    justify-content:center;

    margin-bottom:35px;

}

.footer-nav a{

    font-size:.9rem;

    transition:.3s;

}

.footer-nav a:hover{

    opacity:.6;

}

.footer-social{

    display:flex;

    gap:24px;

    margin-bottom:45px;

}

.footer-social a{

    color:#aaa;

    transition:.3s;

}

.footer-social a:hover{

    color:#fff;

}

.copyright{

    color:#666;

    font-size:.8rem;

    letter-spacing:.08em;

}


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

@media(max-width:768px){

.footer-nav{

gap:20px;

}

.footer-logo img{

height:64px;

}

.notice{

padding:90px 24px;

}

}

.intro h2{
    font-size:.8rem;
}
