/* =====================================================
   焼肉 縁 -EN-  |  完全リニューアル CSS
   Luxury Private Room Yakiniku
   ===================================================== */

/* ---- Variables ---- */
:root {
  --gold:        #b8942a;
  --gold-lt:     #d4b06a;
  --gold-pale:   #e8d49a;
  --gold-dim:    rgba(184,148,42,.18);
  --black:       #080808;
  --dark:        #0f0f0f;
  --dark2:       #161616;
  --dark3:       #1c1c1c;
  --cream:       #f2ece0;
  --cream2:      #e8e0d0;
  --white:       #fff;
  --gray:        #777;
  --gray-lt:     #aaa;

  --serif-jp:  'Noto Serif JP', serif;
  --serif-en:  'Cormorant Garamond', serif;
  --sans-jp:   'Noto Sans JP', sans-serif;

  --ease-out:  cubic-bezier(.16,1,.3,1);
  --ease-in:   cubic-bezier(.7,0,.84,0);
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
  font-family:var(--serif-jp);
  background:var(--black);
  color:var(--cream);
  line-height:1.85;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{cursor:pointer;border:none;background:none}

/* =====================================================
   NAV
   ===================================================== */
#header{
  position:fixed;top:0;left:0;width:100%;z-index:900;
  transition:background .5s, box-shadow .5s;
}
#header.on{
  background:rgba(8,8,8,.95);
  box-shadow:0 1px 0 rgba(184,148,42,.25);
  backdrop-filter:blur(14px);
}
.nav{
  max-width:1340px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3rem;
}
.nav__logo{
  display:flex;flex-direction:column;line-height:1.1;
}
.nav__logo-jp{
  font-family:var(--serif-jp);font-size:1.35rem;font-weight:600;
  color:var(--gold-lt);letter-spacing:.25em;
}
.nav__logo-en{
  font-family:var(--serif-en);font-size:.75rem;font-weight:400;
  color:var(--gold);letter-spacing:.5em;margin-top:.15rem;
  text-align:center;
}
.nav__links{
  display:flex;align-items:center;gap:2.8rem;
}
.nav__links a{
  font-family:var(--sans-jp);font-size:.78rem;font-weight:300;
  letter-spacing:.18em;color:rgba(255,255,255,.75);
  position:relative;transition:color .3s;
}
.nav__links a::after{
  content:'';position:absolute;bottom:-5px;left:0;
  width:0;height:1px;background:var(--gold);
  transition:width .4s var(--ease-out);
}
.nav__links a:not(.nav__cta):hover{color:var(--gold-pale);}
.nav__links a:not(.nav__cta):hover::after{width:100%;}
.nav__cta{
  padding:.55rem 1.6rem !important;
  border:1px solid var(--gold) !important;
  color:var(--gold) !important;
  letter-spacing:.22em !important;
  transition:background .35s, color .35s !important;
}
.nav__cta:hover{background:var(--gold) !important;color:var(--black) !important;}
.nav__cta::after{display:none !important;}
.nav__burger{
  display:none;flex-direction:column;gap:6px;padding:4px;
}
.nav__burger span{
  display:block;width:24px;height:1.5px;
  background:var(--gold-lt);
  transition:all .35s var(--ease-out);
}

/* =====================================================
   HERO SLIDER
   ===================================================== */
.hero{
  position:relative;height:100vh;min-height:640px;overflow:hidden;
}
.hero__track{
  display:flex;height:100%;
  transition:transform 1.1s var(--ease-out);
}
.hero__slide{
  min-width:100%;height:100%;position:relative;overflow:hidden;
}
.hero__img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  transform:scale(1.08);
  transition:transform 9s linear;
}
.hero__slide.is-active .hero__img{
  transform:scale(1);
}
.hero__veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(
    160deg,
    rgba(0,0,0,.72) 0%,
    rgba(0,0,0,.22) 55%,
    rgba(0,0,0,.55) 100%
  );
}
.hero__veil--deep{
  background:linear-gradient(
    160deg,
    rgba(0,0,0,.82) 0%,
    rgba(0,0,0,.4) 55%,
    rgba(0,0,0,.65) 100%
  );
}
/* コピー共通 */
.hero__copy{
  position:absolute;z-index:2;
  opacity:0;transform:translateY(28px);
  transition:opacity 1s ease .6s, transform 1s var(--ease-out) .6s;
}
.hero__slide.is-active .hero__copy{opacity:1;transform:none;}

.hero__copy--left  {bottom:18%;left:8%;}
.hero__copy--center{bottom:18%;left:50%;transform:translateX(-50%) translateY(28px);}
.hero__copy--center.is-active-child{transform:translateX(-50%) translateY(0);}
.hero__copy--right {bottom:18%;right:8%;text-align:right;}

.hero__eyebrow{
  font-family:var(--serif-en);font-size:clamp(.75rem,1.2vw,.9rem);
  font-weight:400;letter-spacing:.4em;text-transform:uppercase;
  color:var(--gold-pale);margin-bottom:1rem;
}
.hero__heading{
  font-family:var(--serif-jp);font-weight:300;
  font-size:clamp(2.4rem,6vw,5rem);
  color:var(--white);line-height:1.25;
  text-shadow:0 4px 30px rgba(0,0,0,.5);
  letter-spacing:.12em;margin-bottom:1.2rem;
}
.hero__sub{
  font-family:var(--sans-jp);font-size:clamp(.78rem,1.3vw,.95rem);
  font-weight:300;letter-spacing:.18em;
  color:rgba(255,255,255,.7);
}
/* 矢印 */
.hero__arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:10;
  width:52px;height:52px;
  border:1px solid rgba(184,148,42,.45);
  color:var(--gold-lt);font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  transition:all .35s;
  backdrop-filter:blur(6px);
  background:rgba(0,0,0,.25);
}
.hero__arrow:hover{
  background:var(--gold);color:var(--black);
  border-color:var(--gold);
}
.hero__arrow--prev{left:2rem;}
.hero__arrow--next{right:2rem;}
/* ドット */
.hero__dots{
  position:absolute;bottom:5%;left:50%;transform:translateX(-50%);
  z-index:10;display:flex;gap:10px;align-items:center;
}
.hero__dot{
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.35);
  cursor:pointer;transition:all .4s;
}
.hero__dot.is-active{
  background:var(--gold);width:30px;border-radius:4px;
}
/* スクロール */
.hero__scroll{
  position:absolute;right:3rem;bottom:5%;z-index:10;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:rgba(255,255,255,.4);
}
.hero__scroll span{
  font-family:var(--serif-en);font-size:.65rem;
  letter-spacing:.4em;writing-mode:vertical-rl;
}
.hero__scroll i{animation:bounce 2s infinite;}
@keyframes bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}

/* =====================================================
   SHARED LAYOUT
   ===================================================== */
.wrap{max-width:1180px;margin:0 auto;padding:0 2rem;}
.sec-head{text-align:center;margin-bottom:5rem;}
.sec-en{
  display:block;
  font-family:var(--serif-en);font-size:.8rem;font-weight:400;
  letter-spacing:.55em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.8rem;
}
.sec-title{
  font-family:var(--serif-jp);font-size:clamp(1.7rem,3.5vw,2.6rem);
  font-weight:300;letter-spacing:.22em;margin-bottom:1.2rem;
}
.sec-rule{
  width:44px;height:1px;background:var(--gold);
  margin:.3rem auto 1.4rem;
}
.sec-desc{
  font-family:var(--sans-jp);font-size:.85rem;font-weight:300;
  letter-spacing:.12em;color:var(--gray-lt);
}

/* =====================================================
   CONCEPT
   ===================================================== */
.concept{
  padding:120px 0;
  background:var(--dark);
}
.concept__grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:5rem;align-items:center;
}
.concept__photo{position:relative;}
.concept__main-img{
  width:100%;height:420px;object-fit:cover;
  filter:brightness(.95);
  transition:filter .6s;
}
.concept__photo:hover .concept__main-img{filter:brightness(1);}
.concept__accent-img{
  position:absolute;bottom:-2.5rem;right:-2.5rem;
  width:45%;border:3px solid var(--dark);
  box-shadow:0 8px 40px rgba(0,0,0,.7);
  overflow:hidden;
}
.concept__accent-img img{width:100%;height:140px;object-fit:cover;}

.concept__lead{
  font-family:var(--serif-jp);font-size:clamp(1.5rem,2.8vw,2.2rem);
  font-weight:300;letter-spacing:.18em;line-height:1.6;
  color:var(--cream);margin-bottom:2rem;
}
.concept__lead em{
  font-style:normal;color:var(--gold-lt);
  border-bottom:1px solid var(--gold);padding-bottom:2px;
}
.concept__text{
  font-family:var(--sans-jp);font-size:.88rem;font-weight:300;
  line-height:2.1;color:var(--gray-lt);margin-bottom:2.2rem;
}
.concept__list{display:flex;flex-direction:column;gap:.9rem;}
.concept__list li{
  display:flex;align-items:center;gap:.9rem;
  font-family:var(--sans-jp);font-size:.85rem;font-weight:300;
  letter-spacing:.06em;color:var(--cream2);
}
.concept__icon{
  width:30px;height:30px;border:1px solid var(--gold-dim);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.concept__icon i{color:var(--gold);font-size:.75rem;}

/* =====================================================
   STATS
   ===================================================== */
.stats{
  background:var(--dark3);
  border-top:1px solid rgba(184,148,42,.2);
  border-bottom:1px solid rgba(184,148,42,.2);
  padding:3.5rem 0;
  display:flex;justify-content:center;gap:0;
}
.stats__item{
  flex:1;max-width:220px;
  text-align:center;padding:1rem 1.5rem;
  border-right:1px solid rgba(184,148,42,.15);
}
.stats__item:last-child{border-right:none;}
.stats__num{
  font-family:var(--serif-en);font-size:3.2rem;font-weight:300;
  color:var(--gold-lt);line-height:1;
}
.stats__unit{
  font-family:var(--serif-jp);font-size:1.1rem;
  color:var(--gold);margin-left:2px;
}
.stats__item p{
  font-family:var(--sans-jp);font-size:.75rem;font-weight:300;
  letter-spacing:.14em;color:var(--gray);margin-top:.5rem;
}

/* =====================================================
   MEAT
   ===================================================== */
.meat{
  padding:120px 0;
  background:var(--black);
}
.meat .sec-title{color:var(--cream);}

.meat__block{
  position:relative;margin-bottom:5rem;
  padding:3rem 3rem 3rem 3.5rem;
  border:1px solid rgba(184,148,42,.18);
  background:rgba(255,255,255,.018);
  overflow:hidden;
}
.meat__block::before{
  content:'';position:absolute;top:0;left:0;
  width:3px;height:100%;
  background:linear-gradient(to bottom,var(--gold),transparent);
}
.meat__label{
  display:inline-block;
  background:var(--gold);color:var(--black);
  font-family:var(--serif-jp);font-size:.72rem;font-weight:600;
  letter-spacing:.22em;padding:.3rem 1.1rem;
  position:absolute;top:0;left:3.5rem;
}
.meat__label--pork{background:#8c7052;}

.meat__inner{
  display:grid;grid-template-columns:1fr 1fr;
  gap:3.5rem;align-items:start;
  padding-top:2rem;
}
.meat__block--rev .meat__inner{grid-template-columns:1fr 1fr;}
.meat__block--rev .meat__info{order:1;}
.meat__block--rev .meat__imgs{order:2;}

.meat__imgs{display:flex;flex-direction:column;gap:.8rem;}
.meat__img-big{overflow:hidden;aspect-ratio:4/3;}
.meat__img-big img,.meat__img-sm img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--ease-out);
}
.meat__img-big:hover img,.meat__img-sm:hover img{transform:scale(1.06);}
.meat__img-sm{overflow:hidden;aspect-ratio:16/7;}

.meat__en{
  font-family:var(--serif-en);font-size:1.1rem;font-weight:400;
  letter-spacing:.2em;color:var(--gold);margin-bottom:.3rem;
}
.meat__jp{
  font-family:var(--serif-jp);font-size:clamp(1.3rem,2.5vw,1.9rem);
  font-weight:500;letter-spacing:.18em;
  color:var(--cream);margin-bottom:.7rem;
}
.meat__origin{
  font-family:var(--sans-jp);font-size:.78rem;font-weight:300;
  letter-spacing:.1em;color:var(--gold);margin-bottom:1.2rem;
}
.meat__desc{
  font-family:var(--sans-jp);font-size:.86rem;font-weight:300;
  line-height:2.1;color:var(--gray-lt);margin-bottom:1.5rem;
}
.meat__tags{display:flex;flex-wrap:wrap;gap:.5rem;}
.meat__tags span{
  font-family:var(--sans-jp);font-size:.72rem;font-weight:300;
  padding:.28rem .9rem;
  border:1px solid rgba(184,148,42,.4);
  color:var(--gold-lt);letter-spacing:.06em;
}

/* 野菜 */
.veg{
  display:flex;align-items:flex-start;gap:1.8rem;
  padding:2.2rem 2.5rem;
  border:1px solid rgba(120,160,80,.25);
  background:rgba(120,160,80,.04);
}
.veg__icon{
  font-size:1.6rem;color:#7ea055;
  padding-top:.2rem;flex-shrink:0;
}
.veg__body h3{
  font-family:var(--serif-jp);font-size:1rem;font-weight:500;
  color:var(--cream);letter-spacing:.12em;margin-bottom:.5rem;
}
.veg__body h3 span{
  display:block;font-size:.78rem;font-weight:300;
  color:var(--gold);letter-spacing:.2em;margin-top:.2rem;
}
.veg__body p{
  font-family:var(--sans-jp);font-size:.84rem;font-weight:300;
  line-height:2;color:var(--gray-lt);
}

/* =====================================================
   DRINKS
   ===================================================== */
.drinks{padding:120px 0;background:var(--dark2);}

.drinks__hero{
  position:relative;overflow:hidden;margin-bottom:3.5rem;
  aspect-ratio:21/6;
}
.drinks__hero img{
  width:100%;height:100%;object-fit:cover;
  filter:brightness(.6);
  transition:filter .6s;
}
.drinks__hero:hover img{filter:brightness(.75);}
.drinks__hero-overlay{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
}
.drinks__hero-overlay p{
  font-family:var(--serif-jp);font-size:clamp(.9rem,2vw,1.3rem);
  font-weight:300;letter-spacing:.22em;
  color:var(--cream);text-align:center;line-height:2;
  text-shadow:0 2px 12px rgba(0,0,0,.5);
}

.drinks__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
}
.drinks__card{
  padding:2.2rem 2rem;
  border:1px solid rgba(184,148,42,.15);
  background:rgba(255,255,255,.03);
  transition:border-color .4s, transform .4s var(--ease-out);
}
.drinks__card:hover{
  border-color:var(--gold);
  transform:translateY(-5px);
}
.drinks__icon{
  font-size:1.5rem;color:var(--gold);
  margin-bottom:1rem;
}
.drinks__card h3{
  font-family:var(--serif-jp);font-size:.95rem;font-weight:500;
  letter-spacing:.14em;color:var(--cream);margin-bottom:.7rem;
}
.drinks__card p{
  font-family:var(--sans-jp);font-size:.82rem;font-weight:300;
  line-height:2;color:var(--gray-lt);
}

/* =====================================================
   VOICE (testimonials)
   ===================================================== */
.voice{
  padding:120px 0;
  background:linear-gradient(160deg,#0a0800 0%,#110e04 100%);
  border-top:1px solid rgba(184,148,42,.15);
  border-bottom:1px solid rgba(184,148,42,.15);
}
.voice__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;
}
.voice__card{
  padding:2.4rem;
  border:1px solid rgba(184,148,42,.18);
  background:rgba(184,148,42,.03);
  position:relative;
  transition:border-color .4s;
}
.voice__card:hover{border-color:var(--gold);}
.voice__card::before{
  content:'\201C';
  font-family:var(--serif-en);font-size:5.5rem;font-weight:300;
  color:rgba(184,148,42,.12);
  position:absolute;top:.2rem;left:1.2rem;
  line-height:1;pointer-events:none;
}
.voice__stars{
  display:flex;gap:3px;margin-bottom:1.2rem;
  color:var(--gold);font-size:.78rem;
}
.voice__card blockquote{
  font-family:var(--sans-jp);font-size:.83rem;font-weight:300;
  line-height:2.1;color:var(--gray-lt);
  padding:0;border:none;margin-bottom:1.6rem;
}
.voice__card footer{
  display:flex;align-items:center;gap:1rem;
  padding-top:1.2rem;
  border-top:1px solid rgba(184,148,42,.15);
}
.voice__avatar{
  width:40px;height:40px;border-radius:50%;
  background:var(--gold);color:var(--black);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:.88rem;flex-shrink:0;
}
.voice__name{
  font-family:var(--serif-jp);font-size:.88rem;font-weight:500;
  color:var(--gold-pale);margin-bottom:.2rem;
}
.voice__meta{
  font-family:var(--sans-jp);font-size:.72rem;font-weight:300;
  color:var(--gray);
}

/* =====================================================
   RESERVE
   ===================================================== */
.reserve{padding:120px 0;background:var(--dark);}
.reserve__layout{
  display:grid;grid-template-columns:1fr 1fr;
  gap:3.5rem;align-items:start;
}
.reserve__methods{display:flex;flex-direction:column;gap:1.2rem;}
.reserve__card{
  display:flex;align-items:flex-start;gap:1.4rem;
  padding:1.8rem 2rem;
  border:1px solid rgba(184,148,42,.2);
  background:rgba(255,255,255,.025);
  transition:border-color .4s, background .4s;
}
.reserve__card:hover{
  border-color:var(--gold);
  background:rgba(184,148,42,.06);
}
.reserve__card--line:hover{
  border-color:#06c755;
  background:rgba(6,199,85,.06);
}
.reserve__card-icon{
  font-size:1.6rem;color:var(--gold);flex-shrink:0;width:32px;
  text-align:center;padding-top:.1rem;
}
.reserve__card--line .reserve__card-icon{color:#06c755;}
.reserve__card h3{
  font-family:var(--serif-jp);font-size:.88rem;font-weight:500;
  letter-spacing:.1em;color:var(--cream);margin-bottom:.4rem;
}
.reserve__contact{
  font-family:var(--serif-en);font-size:1.25rem;font-weight:400;
  letter-spacing:.05em;color:var(--white);display:block;
  margin-bottom:.3rem;
}
.reserve__note{
  font-family:var(--sans-jp);font-size:.76rem;font-weight:300;
  color:var(--gray);
}

.reserve__info-ttl{
  font-family:var(--serif-jp);font-size:1rem;font-weight:500;
  color:var(--gold);letter-spacing:.15em;
  padding-bottom:1rem;margin-bottom:1.5rem;
  border-bottom:1px solid rgba(184,148,42,.25);
}
.reserve__dl{
  display:grid;grid-template-columns:auto 1fr;gap:.1rem 1rem;
}
.reserve__dl dt{
  font-family:var(--sans-jp);font-size:.78rem;font-weight:400;
  color:var(--gold);letter-spacing:.1em;
  padding:.65rem 0;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.reserve__dl dd{
  font-family:var(--sans-jp);font-size:.82rem;font-weight:300;
  color:var(--cream2);line-height:1.7;
  padding:.65rem 0;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.reserve__caution{
  display:flex;gap:.7rem;margin-top:1.5rem;
  padding:1rem 1.2rem;
  background:rgba(184,148,42,.06);
  border-left:2px solid var(--gold);
  font-family:var(--sans-jp);font-size:.78rem;font-weight:300;
  color:var(--gray-lt);line-height:1.9;
}
.reserve__caution i{color:var(--gold);flex-shrink:0;margin-top:2px;}

/* =====================================================
   ACCESS
   ===================================================== */
.access{padding:100px 0;background:var(--dark3);}
.access__grid{
  display:grid;grid-template-columns:1fr 1.6fr;
  gap:3.5rem;align-items:start;
}
.access__row{
  display:flex;gap:1.2rem;margin-bottom:2.2rem;
  align-items:flex-start;
}
.access__row i{
  font-size:1.2rem;color:var(--gold);
  flex-shrink:0;width:22px;text-align:center;margin-top:3px;
}
.access__row h4{
  font-family:var(--serif-jp);font-size:.82rem;font-weight:500;
  color:var(--gold-lt);letter-spacing:.1em;margin-bottom:.4rem;
}
.access__row p{
  font-family:var(--sans-jp);font-size:.82rem;font-weight:300;
  color:var(--gray-lt);line-height:1.85;
}
.access__map{
  overflow:hidden;
  border:1px solid rgba(184,148,42,.2);
}
.access__map iframe{
  display:block;
  filter:grayscale(50%) sepia(20%) brightness(.8);
}

/* =====================================================
   FOOTER
   ===================================================== */
.footer{
  background:var(--black);
  border-top:1px solid rgba(184,148,42,.2);
  padding:5rem 0 2.5rem;
}
.footer__inner{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:2.5rem;
}
.footer__jp{
  font-family:var(--serif-jp);font-size:2rem;font-weight:300;
  color:var(--gold-lt);letter-spacing:.3em;
}
.footer__en{
  font-family:var(--serif-en);font-size:1rem;font-weight:300;
  color:var(--gold);letter-spacing:.6em;margin-top:.2rem;
}
.footer__tagline{
  font-family:var(--serif-en);font-size:.7rem;font-weight:400;
  letter-spacing:.4em;text-transform:uppercase;
  color:var(--gray);margin-top:.4rem;
}
.footer__nav{
  display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem 2.5rem;
  padding:2rem 0;
  border-top:1px solid rgba(184,148,42,.12);
  border-bottom:1px solid rgba(184,148,42,.12);
  width:100%;
}
.footer__nav a{
  font-family:var(--sans-jp);font-size:.75rem;font-weight:300;
  letter-spacing:.14em;color:var(--gray);
  transition:color .3s;
}
.footer__nav a:hover{color:var(--gold);}
.footer__contact{
  display:flex;gap:3rem;
}
.footer__contact p{
  font-family:var(--sans-jp);font-size:.8rem;font-weight:300;
  color:var(--gray-lt);
}
.footer__contact i{color:var(--gold);margin-right:.4rem;}
.footer__copy{
  font-family:var(--sans-jp);font-size:.7rem;font-weight:300;
  color:rgba(255,255,255,.2);letter-spacing:.06em;
}

/* =====================================================
   SCROLL TO TOP
   ===================================================== */
.to-top{
  position:fixed;bottom:2rem;right:2rem;z-index:800;
  width:48px;height:48px;
  border:1px solid rgba(184,148,42,.35);
  color:var(--gold);font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,8,8,.7);
  backdrop-filter:blur(8px);
  opacity:0;transform:translateY(14px);
  pointer-events:none;
  transition:all .4s var(--ease-out);
}
.to-top.show{opacity:1;transform:none;pointer-events:auto;}
.to-top:hover{background:var(--gold);color:var(--black);}

/* =====================================================
   SCROLL REVEAL
   ===================================================== */
.reveal-up,
.reveal-left,
.reveal-right{
  opacity:0;
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);
  transition-delay:var(--delay, 0s);
}
.reveal-up   { transform:translateY(40px); }
.reveal-left { transform:translateX(-40px); }
.reveal-right{ transform:translateX(40px); }

.reveal-up.in,
.reveal-left.in,
.reveal-right.in{
  opacity:1;transform:none;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media(max-width:1080px){
  .concept__grid     { grid-template-columns:1fr; gap:4rem; }
  .concept__accent-img{ bottom:-1.5rem; right:0; }
  .meat__inner,
  .meat__block--rev .meat__inner{ grid-template-columns:1fr; }
  .meat__block--rev .meat__info { order:1; }
  .meat__block--rev .meat__imgs { order:2; }
  .drinks__grid      { grid-template-columns:repeat(2,1fr); }
  .voice__grid       { grid-template-columns:1fr; max-width:560px; margin:0 auto; }
  .reserve__layout   { grid-template-columns:1fr; }
  .access__grid      { grid-template-columns:1fr; }
}

@media(max-width:768px){
  .nav__links{
    display:none;position:fixed;inset:0;
    background:rgba(8,8,8,.97);
    flex-direction:column;justify-content:center;align-items:center;
    gap:2.8rem;z-index:950;
  }
  .nav__links.open{display:flex;}
  .nav__links a{font-size:1.1rem;}
  .nav__burger{display:flex;z-index:960;position:relative;}
  .nav{padding:1.1rem 1.5rem;}

  .hero__arrow{width:40px;height:40px;font-size:.9rem;}
  .hero__arrow--prev{left:.6rem;}
  .hero__arrow--next{right:.6rem;}
  .hero__scroll{display:none;}

  .stats{flex-wrap:wrap;}
  .stats__item{min-width:50%;}

  .drinks__grid{grid-template-columns:1fr;}
  .voice__grid {grid-template-columns:1fr;}

  .footer__contact{flex-direction:column;gap:.7rem;}
  .footer__nav{gap:.8rem 1.5rem;}

  .meat__block{padding:2rem 1.5rem;}
  .veg{flex-direction:column;gap:1rem;}
}

@media(max-width:480px){
  .wrap{padding:0 1.2rem;}
  .concept__accent-img{display:none;}
  .stats__item{min-width:100%;}
  .meat__tags span{font-size:.68rem;}
}
