:root{
  --bg:#0e0e0f;
  --fg:#f7f7f7;
  --muted:#c8c8c8;
  --accent:#ffb11b;
  --accent2:#c79a36;
  --card:#17181a;
  --line:#2a2b2e;
  --loader-in:1.6s;
  --loader-hold:1.4s;
  --loader-out:1.2s;
  --hero-img-dur:.9s;
  --hero-gap:.5s;
  --hero-txt-dur:.9s;
  --gold-1:#ffd777;
  --gold-2:#c9a641;
  --gold-3:#8f742b;
  --ink-1:#0f0f10;
  --ink-2:#1a1b1d;
  --line-gold:rgba(255,222,130,.55);
}

/* Base */
*{box-sizing:border-box}
html,body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:'Noto Sans JP',system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(1080px,100%);margin-inline:auto;padding:0 16px}

/* Sticky CTA 基本 */
.cta-bar{
  position:sticky;
  bottom:0;
  z-index:30;
  background:linear-gradient(180deg,rgba(14,14,15,0),rgba(14,14,15,.85) 35%,rgba(14,14,15,.95));
  backdrop-filter:saturate(140%) blur(8px);
}
.cta-inner{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  padding:10px 16px;
}
.cta-buttons{display:flex;gap:12px}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:.9em 1.2em;
  border-radius:999px;
  border:1px solid var(--accent2);
  background:linear-gradient(180deg,#2a2a2c,#1a1b1d);
  color:#fff;
  font-weight:700;
}
.btn.call{
  background:linear-gradient(180deg,#ffd66e,#f2ad00);
  color:#2a2000;
  border:none;
}
.btn.ghost{
  border:1px solid var(--line);
  background:transparent;
  color:var(--fg);
}

/* Top Navigation */
.topnav-wrap{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .35s ease,border-color .35s ease,backdrop-filter .35s ease,background-color .4s ease,box-shadow .4s ease;
}
.topnav-wrap.scrolled{
  background:rgba(0,0,0,.9);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom-color:var(--line);
  box-shadow:0 2px 12px rgba(0,0,0,.4);
}
.topnav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 16px;
}
.logo-box{
  width:64px;
  height:64px;
  border-radius:12px;
  border:1px dashed var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#131316;
}
.logo-box img{width:100%;height:100%;object-fit:cover}
.logo-box span{
  font-weight:800;
  color:var(--muted);
  font-size:.8rem;
  letter-spacing:.05em;
}

/* Hamburger */
.hamb{
  display:inline-flex;
  cursor:pointer;
  border:1px solid rgba(255,165,0,.4);
  border-radius:10px;
  padding:.55em .7em;
  background:rgba(0,0,0,.45);
  color:#ffa500;
  transition:all .3s ease;
}
.hamb:hover{
  background:rgba(0,0,0,.65);
  border-color:rgba(255,200,0,.7);
  color:#ffcc33;
}
.hamb svg{width:20px;height:20px}
.hamb svg path{stroke:currentColor}

/* Nav links */
.navlinks{
  display:none;
  position:absolute;
  left:0;
  right:0;
  top:64px;
  z-index:41;
  background:rgba(14,14,15,.98);
  border-bottom:1px solid var(--line);
  padding:10px 16px;
}
.navlinks.open{display:grid;gap:8px}
.navlinks a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4em;
  padding:.7em .9em;
  border-radius:10px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  font-weight:700;
}

@media (max-width:880px){
  .logo-box{width:56px;height:56px}
}

/* Brand */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.brand-title{
  display:flex;
  flex-direction:column;
  align-items:center;
  line-height:1.1;
  font-weight:800;
  font-size:.9rem;
  letter-spacing:.16em;
  color:#fff;
  text-transform:uppercase;
  text-align:center;
}
.brand-title-line{display:block}
.brand-title-line-x{
  padding-left:0;
  font-size:.8rem;
  opacity:.9;
}
@media (max-width:880px){
  .brand-title{
    font-size:.8rem;
    letter-spacing:.12em;
  }
}

/* Sections / Cards / Grid */
section{
  padding:56px 0;
  border-top:1px solid var(--line);
}
.sec-h{
  font-size:1.6rem;
  margin:0 0 18px;
  font-weight:800;
  letter-spacing:.02em;
}
.lead{color:#ddd;opacity:.95}
.grid{display:grid;gap:14px}
.grid.md-2{grid-template-columns:repeat(1,1fr)}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}
.card .pad{padding:14px}
.price{font-weight:800;color:var(--accent)}
.pill{
  display:inline-block;
  padding:.35em .7em;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:.85rem;
}
.menu{display:grid;gap:10px}
.menu-item{
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:space-between;
  border-bottom:1px dashed var(--line);
  padding:8px 2px;
}
.menu-item:last-child{border-bottom:none}
.menu-title{font-weight:700}

@media (min-width:720px){
  .grid.md-2{grid-template-columns:repeat(2,1fr)}
  .cols{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:18px;
  }
}

/* Map / Socials / Footer */
.access-map{
  aspect-ratio:16/10;
  border:0;
  width:100%;
  border-radius:12px;
  filter:grayscale(.15) contrast(1.05);
}
.socials{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:14px;
}
.socials .label{
  font-size:.9rem;
  color:var(--muted);
}
.iconbtn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  padding:.7em .9em;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.02);
}
.iconbtn svg{width:18px;height:18px;display:block}
footer{
  padding:32px 0;
  color:#bdbdbd;
}
.tiny{
  font-size:.85rem;
  color:#aaa;
}
.footer-socials{
  display:flex;
  justify-content:center;
  gap:16px;
  margin:12px auto 0;
}

/* Access section */
#access .grid{display:grid;gap:14px}
@media (max-width:719px){
  #access .grid{grid-template-columns:1fr}
  #access .card img{border-radius:12px 12px 0 0}
  #access .card .pad{padding:16px 14px}
  #access .kv{display:block}
  #access .kv div{margin-bottom:6px}
  #access .btn,
  #access .btn.ghost,
  #access .btn.call{
    width:100%;
    justify-content:center;
  }
}

/* Loader */
#loader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  background:#000;
  overflow:hidden;
}
#loader::before,
#loader::after{
  content:none;
}
#loader .inner{
  position:relative;
  text-align:center;
  padding:18px 20px;
  border-radius:16px;
  background:rgba(0,0,0,.55);
  box-shadow:0 18px 40px rgba(0,0,0,.45);
  opacity:0;
  transform:translateY(18px);
  animation:
    loader-in var(--loader-in) cubic-bezier(.25,.1,.25,1) forwards,
    loader-hold var(--loader-hold) calc(var(--loader-in)) linear forwards,
    loader-out var(--loader-out) calc(var(--loader-in) + var(--loader-hold)) cubic-bezier(.4,0,.2,1) forwards;
}
#loader .logo{
  max-width:260px;
  margin:0 auto 12px;
  filter:drop-shadow(0 4px 25px rgba(0,0,0,.35));
}
#loader .catch{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin-top:8px;
  line-height:1.1;
  font-weight:800;
  font-size:.9rem;
  letter-spacing:.16em;
  color:#fff;
  text-transform:uppercase;
  text-align:center;
  font-family:'Noto Sans JP',system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
#loader .catch-line{display:block}
#loader .catch-line-x{
  font-size:.8rem;
  opacity:.9;
}
@media (max-width:880px){
  #loader .catch{
    font-size:.8rem;
    letter-spacing:.12em;
  }
}
@keyframes loader-in{
  to{opacity:1;transform:none}
}
@keyframes loader-hold{
  to{opacity:1}
}
@keyframes loader-out{
  to{opacity:0;transform:translateY(-12px)}
}
@keyframes loader-bg-in{
  to{opacity:1;transform:scale(1.03)}
}
@keyframes loader-bg-hold{
  to{opacity:1;transform:scale(1.03)}
}
@keyframes loader-bg-out{
  to{opacity:0;transform:scale(1.02)}
}

/* Body fade with loader */
body.is-loading main,
body.is-loading header,
body.is-loading .topnav-wrap,
body.is-loading footer{
  opacity:0;
  transition:opacity .9s ease;
}
body.ready main,
body.ready header,
body.ready .topnav-wrap,
body.ready footer{
  opacity:1;
}

/* Scroll reveal / ToTop */
.reveal{
  opacity:0;
  transform:translateY(12px);
  filter:blur(2px);
  transition:opacity .6s ease,transform .6s ease,filter .6s ease;
}
.reveal.in{
  opacity:1;
  transform:none;
  filter:blur(0);
}
#toTop{
  position:fixed;
  right:20px;
  bottom:90px;
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--accent);
  color:#000;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 0 10px rgba(0,0,0,.3);
  z-index:98;
  transition:opacity .3s,transform .25s;
  opacity:0;
  pointer-events:none;
  transform:translateY(6px);
}
#toTop.show{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}

/* Access grid */
.access-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:stretch;
}
.photo-stack{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px;
  border-radius:12px;
  background:rgba(255,255,255,.03);
  box-sizing:border-box;
}
.photo-stack img{
  width:100%;
  height:calc(50% - 6px);
  border-radius:10px;
  object-fit:cover;
}
.access-info{
  padding:16px;
  border-radius:12px;
  background:rgba(255,255,255,.03);
  box-sizing:border-box;
}
@media (max-width:719px){
  .access-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .photo-stack{padding:12px}
  .photo-stack img{
    height:auto;
    border-radius:12px;
  }
  #access .kv{display:block!important}
  #access .kv>div{margin-bottom:6px}
}

/* Luxe buttons */
.btn.gold{
  background:linear-gradient(180deg,var(--gold-1),var(--gold-2));
  color:#231a00;
  border:1px solid rgba(0,0,0,.2);
  box-shadow:0 6px 18px rgba(255,222,130,.15),inset 0 1px 0 rgba(255,255,255,.35);
}
.btn.gold:hover{
  filter:saturate(1.05) contrast(1.02);
  box-shadow:0 8px 24px rgba(255,222,130,.22),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn.outline-gold{
  background:linear-gradient(180deg,rgba(0,0,0,.07),rgba(0,0,0,.18));
  border:1px solid var(--line-gold);
  color:#fff;
}
.btn.outline-gold:hover{
  background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.28));
  box-shadow:0 6px 18px rgba(255,222,130,.12);
}

/* SNS luxe */
.socials.luxe{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.socials.luxe .label{
  color:#d6d1c3;
  font-size:.9rem;
  margin-right:4px;
}
.sns{
  display:inline-flex;
  align-items:center;
  gap:.45em;
  padding:.5em .75em;
  border-radius:999px;
  background:linear-gradient(180deg,var(--ink-2),#101114);
  border:1px solid var(--line-gold);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 4px 14px rgba(0,0,0,.35);
  font-size:.95rem;
  line-height:1;
  color:#f3f3f3;
  transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease;
}
.sns:hover{
  transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 22px rgba(0,0,0,.45),0 0 0 2px rgba(255,215,130,.08);
  border-color:rgba(255,215,130,.7);
}
.sns svg{width:18px;height:18px;display:block}
.sns svg *{
  stroke:#e9d394;
  fill:#e9d394;
}
.sns.ig{background:linear-gradient(180deg,#151517,#101013)}
.sns.tk{background:linear-gradient(180deg,#141316,#0f1012)}
.sns.ln{background:linear-gradient(180deg,#121416,#0e0f12)}
.hero-in .hero-btns{
  display:flex;
  gap:10px;
  margin-top:12px;
  flex-wrap:wrap;
}
.hero-in .hero-btns .btn{border-radius:999px}
.hero-in .socials.luxe{gap:8px}

/* Eyebrow marker (旧) */
.eyebrow.marker-anim{
  position:relative;
  display:inline-block;
  font-weight:800;
  letter-spacing:.1em;
  color:#f8f8f8;
  background:none;
  border:none;
  font-size:1rem;
  overflow:hidden;
}
.eyebrow.marker-anim .text{
  position:relative;
  z-index:2;
  color:#ffe9a3;
  text-shadow:0 0 8px rgba(255,220,100,.35);
  animation:fadeInText 1.2s ease forwards;
}
.eyebrow.marker-anim .marker{
  position:absolute;
  left:0;
  bottom:.2em;
  height:.6em;
  width:0;
  background:linear-gradient(90deg,rgba(255,215,100,0) 0%,rgba(255,230,150,.9) 40%,rgba(255,215,100,0) 100%);
  border-radius:6px;
  z-index:1;
  animation:drawMarker 1.4s ease-out .6s forwards;
}
@keyframes fadeInText{
  0%{opacity:0;transform:translateY(6px)}
  100%{opacity:1;transform:none}
}
@keyframes drawMarker{
  0%{width:0;opacity:0}
  15%{opacity:1}
  100%{width:100%;opacity:1}
}

/* Eyebrow marker power */
.eyebrow.marker-power{
  background:transparent!important;
  border:0!important;
  padding:0!important;
  position:relative;
  display:inline-block;
  font-weight:900;
  font-size:clamp(1rem,3.2vw,1.2rem);
  letter-spacing:.15em;
  color:#fcefb2;
  text-shadow:0 0 8px rgba(255,223,130,.45),0 0 18px rgba(255,200,80,.25);
  overflow:visible;
}
.marker-power .text{
  position:relative;
  z-index:2;
  white-space:nowrap;
  will-change:transform,opacity;
  animation:eyebrowAppear .6s ease-out forwards;
}
.marker-power .marker-brush{
  position:absolute;
  left:-4%;
  bottom:.14em;
  height:.58em;
  width:108%;
  background:linear-gradient(90deg,rgba(255,200,80,0) 0%,rgba(255,220,100,.9) 35%,rgba(255,210,50,1) 60%,rgba(255,230,150,0) 100%);
  border-radius:6px;
  transform:scaleX(0);
  transform-origin:left center;
  filter:blur(.8px);
  z-index:1;
  will-change:transform,opacity;
  mix-blend-mode:screen;
  animation:brushFlow .8s cubic-bezier(.66,0,.34,1) .4s forwards;
}
@keyframes eyebrowAppear{
  0%{opacity:0;transform:translateY(10px) scale(.95)}
  70%{opacity:1;transform:translateY(0) scale(1.05)}
  100%{transform:scale(1)}
}
@keyframes brushFlow{
  0%{transform:scaleX(0);opacity:0}
  20%{opacity:1}
  60%{transform:scaleX(1.08);opacity:1}
  100%{transform:scaleX(1);opacity:.9}
}
@media (max-width:600px){
  .eyebrow.marker-power{
    font-size:clamp(1rem,3.8vw,1.15rem);
  }
  .marker-power .marker-brush{
    bottom:.10em;
    height:.50em;
    left:-3%;
    width:106%;
  }
}
@media (prefers-reduced-motion:reduce){
  .marker-power .text,
  .marker-power .marker-brush{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}

/* Sticky CTA（SP寄りデザイン＋全デバイス表示最終調整） */
.cta-bar{
  display:block!important;
  min-height:64px;
  background:linear-gradient(
    180deg,
    rgba(10,10,12,0),
    rgba(10,10,12,.92) 40%,
    rgba(8,8,10,.98)
  );
  backdrop-filter:saturate(140%) blur(10px);
  box-shadow:0 -10px 28px rgba(0,0,0,.55);
}
.cta-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 16px 14px;
}
.cta-copy{
  font-size:.8rem;
  line-height:1.5;
  color:#e9e9e9;
  opacity:.92;
}
.cta-buttons{
  display:flex;
  gap:6px;
}
.cta-buttons .btn{
  padding:.55em .9em;
  font-size:.8rem;
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 6px 16px rgba(0,0,0,.45);
}
.cta-buttons .btn.call{
  box-shadow:0 8px 20px rgba(255,215,120,.45);
  font-size:.95rem;
  box-shadow:0 6px 18px rgba(0,0,0,.5),0 0 0 1px rgba(140,90,0,.25);
}
@media (max-width:399px){
  .cta-inner{padding:8px 10px 9px}
  .cta-copy{font-size:.75rem}
  .cta-buttons .btn{
    padding:.5em .8em;
    font-size:.75rem;
  }
}

/* Coupon */
#coupon{
  padding-top:40px;
  padding-bottom:40px;
}
.coupon-card{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(255,222,150,0.42);
  background:
    radial-gradient(1200px 300px at 50% 0%,rgba(255,229,170,0.25),transparent 60%),
    linear-gradient(145deg,#101013,#050507);
  box-shadow:0 18px 45px rgba(0,0,0,0.85),inset 0 0 0 1px rgba(255,255,255,0.04);
}

.coupon-notch{
  position:absolute;
  top:50%;
  width:32px;
  height:32px;
  margin-top:-16px;
  border-radius:50%;
  background:#050506;
  border:1px solid rgba(255,222,150,0.16);
  box-shadow:0 0 14px rgba(0,0,0,0.7);
}
.coupon-notch.left{left:-16px}
.coupon-notch.right{right:-16px}

/* ★ ここを調整 ★ */
.coupon-ribbon{
  position:absolute;
  top:14px;
  left:10px;                 /* -34px → 10px（確実にカード内に入れる） */
  padding:6px 22px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.14em;
  color:#2b1a00;
  background:linear-gradient(90deg,#f9df93,#f1b95a);
  box-shadow:0 6px 16px rgba(0,0,0,0.45);
  border-radius:10px;
  transform:rotate(-8deg);   /* 傾きは少しだけにして雰囲気キープ */
  transform-origin:left center; /* 左端を軸に回転させて、文字が切れにくく */
}

.coupon-inner{padding:24px 20px 20px;}

/* SPのとき微調整 */
@media (max-width:719px){
  .coupon-inner{padding:20px 16px 18px;}
  .coupon-main{font-size:1.45rem;}
  .coupon-main span{font-size:.95rem;}

  .coupon-ribbon{
    top:10px;
    left:8px;               /* こちらもマイナス値をやめる */
    font-size:.7rem;
  }
}

/* Quick info + entry */
#quick-info{
  padding:18px 0 40px;
  border-top:1px solid var(--line);
}
.quick-grid{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.quick-item{
  background:rgba(255,255,255,.03);
  border-radius:14px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.06);
}
.quick-item .label{
  font-size:.8rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 2px;
}
.quick-item .value{
  margin:0 0 4px;
  font-weight:700;
  line-height:1.5;
}
.quick-item .note{
  margin:0;
  font-size:.8rem;
  color:#cfcfcf;
}
.entry-grid{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.entry-card{
  display:block;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid var(--line);
  background:linear-gradient(145deg,#161619,#111015);
  text-decoration:none;
  transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease;
}
.entry-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(0,0,0,.4);
  border-color:rgba(255,215,130,.5);
}
.entry-card .eyebrow-mini{
  font-size:.8rem;
  letter-spacing:.16em;
  color:var(--muted);
  margin:0 0 4px;
}
.entry-card .title{
  margin:0 0 4px;
  font-weight:700;
}
.entry-card .note{
  margin:0;
  font-size:.85rem;
  color:#cfcfcf;
}

/* Menu index */
.menu-index{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:10px 0 14px;
  padding:6px 4px;
  border-radius:999px;
  background:rgba(255,255,255,.02);
}
.menu-index a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.35em .9em;
  border-radius:999px;
  border:1px solid var(--line);
  font-size:.85rem;
  color:#f5f5f5;
  text-decoration:none;
  white-space:nowrap;
  background:rgba(0,0,0,.45);
  transition:background .15s ease,border-color .15s ease,transform .12s ease;
}
.menu-index a:hover{
  background:rgba(255,215,130,.12);
  border-color:rgba(255,215,130,.7);
  transform:translateY(-1px);
}
@media (max-width:719px){
  .menu-index{
    border-radius:12px;
    padding:8px 6px;
    margin:8px 0 12px;
  }
  .menu-index a{
    font-size:.8rem;
    padding:.3em .8em;
  }
}

/* Global small adjustments */
.menu-desc{
  margin:.25rem 0 .6rem;
  font-size:.9rem;
  color:#e0e0e0;
  opacity:.97;
}

/* Hero（全画面ビジュアル＋スライド） */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:112px 0 80px;
  isolation:isolate;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .8s ease,transform .8s ease;
}
body.ready .hero{
  opacity:1;
  transform:none;
}
.hero-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  overflow:hidden;
}
.hero-bg img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.8) saturate(1.15) contrast(1.05);
  opacity:0;
  transition:opacity .9s ease-in-out;
}
.hero-bg img.is-active{opacity:1}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,.2),rgba(0,0,0,.65));
  z-index:-1;
  pointer-events:none;
}
.hero-copy{
  max-width:520px;
  margin:0 auto;
  color:#fff;
  text-align:center;
  text-shadow:0 2px 10px rgba(0,0,0,.65);
}
.hero-copy .kicker{
  font-size:.85rem;
  letter-spacing:.16em;
  margin:0 0 .4rem;
  color:#ffdb8a;
}
.catch-main{
  margin:0 0 .5rem;
  font-size:clamp(2.1rem,6vw,2.8rem);
  line-height:1.2;
  font-weight:800;
}
.catch-sub{
  margin:0 0 1.1rem;
  font-size:.98rem;
  line-height:1.7;
  color:#f5f5f5;
}
.hero-btns{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.hero-btns .btn{
  flex:1 1 140px;
  padding:.8em 1.3em;
  font-size:.9rem;
}
@media (min-width:720px){
  .hero{padding:132px 0 96px}
  .hero-copy{
    text-align:left;
    margin-left:16px;
  }
  .hero-btns{
    justify-content:flex-start;
    max-width:420px;
  }
}
@media (min-width:880px){
  .hero{
    padding:110px 0 60px;
  }
}

/* Business Calendar（最終版） */
#business-calendar .calendar-card{overflow:hidden}
.calendar-embed{
  position:relative;
  width:100%;
  max-width:960px;
  margin:0 auto 0;
  border-radius:16px;
  overflow:hidden;
  background:#000;
  min-height:420px;
}
.calendar-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  border-radius:0 0 16px 16px;
}
@media (max-width:719px){
  #business-calendar .card.calendar-card{border-radius:16px}
  .calendar-embed{min-height:360px}
}

/* メニュー内アンカーのスクロール補正 */
#menu-teishoku,
#menu-morning,
#menu-great,
#menu-chahan,
#menu-topping,
#menu-drink,
#takeout{
  scroll-margin-top:86px;
}

/* テキスト系の微調整 */
.lead{color:#e3e3e3}
.tiny{
  font-size:.9rem;
  color:#c7c7c7;
}

/* 夜営業情報強調 */
#access .kv div:nth-child(6){font-weight:600}
#access .kv div:nth-child(6) strong{color:#ffd777}

/* Hero alignment for layout-based hero-layout（保険用） */
@media (min-width:880px){
  .hero-layout{align-items:flex-start}
  .hero-photo{align-self:flex-start}
}

/* Special（年末限定・おせちチャーシュー） */
#special .special-main{margin-top:8px}
#special .special-card{
  margin-top:16px;
  overflow:hidden;
}
#special .special-inner{
  display:grid;
  gap:16px;
  align-items:stretch;
}
#special .special-text{
  display:flex;
  flex-direction:column;
  gap:6px;
}
#special .special-title{
  margin:0 0 4px;
  font-size:1.1rem;
}
#special .special-lead{
  margin:.35rem 0 0;
  line-height:1.9;
}
#special .special-info{
  margin:.7rem 0 0;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(0,0,0,.5);
  border:1px solid rgba(255,255,255,.1);
}
#special .special-info-label{
  margin:0 0 4px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--accent);
  text-transform:uppercase;
}
#special .special-list{
  margin:0;
  padding-left:1.1rem;
  color:#eee;
  font-size:.88rem;
  line-height:1.9;
}
#special .special-foot{margin:.75rem 0 0}
#special .special-note{
  margin:.45rem 0 0;
  opacity:.85;
}
#special .special-photo{margin:0}
#special .special-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media (min-width:720px){
  #special .special-inner{
    grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  }
}
@media (max-width:719px){
  #special .sec-h{
    font-size:1.4rem;
    margin-bottom:10px;
  }
  #special .special-inner{grid-template-columns:1fr}
  #special .special-text{order:1}
  #special .special-photo{order:2}
  #special .special-title{font-size:1rem}
  #special .special-lead,
  #special .special-foot{
    font-size:.9rem;
    line-height:1.8;
  }
  #special .special-list{
    font-size:.82rem;
    line-height:1.8;
  }
  #special .special-note{font-size:.78rem}
}

/* Hero-layout（旧構造用：保険で残し） */
.hero-layout{
  display:grid;
  gap:24px;
  align-items:center;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
}
.hero-text{max-width:540px}
.hero-photo img{
  border-radius:18px;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
  margin-top:70px;
}
@media (max-width:719px){
  .hero-layout{grid-template-columns:1fr}
}

/* メニュー説明の補完（保険用重複だが害なし） */
.menu-desc{
  margin:.25rem 0 .6rem;
  color:#ddd;
  opacity:.95;
}

.footer-marks{
  max-width:220px;          /* 全体の横幅 */
  margin:0 auto 18px;       /* 中央寄せ＋下に少し余白 */
  display:flex;
  flex-direction:column;    /* 上：ぶたさん／下：ロゴ の縦並び */
  align-items:center;
  gap:8px;                  /* 画像どうしの間隔 */
}

.footer-marks img{
  display:block;
  width:100%;
  height:auto;
}

.footer-marks-icon{
  max-width:100px;          /* 上のぶたさんは少し小さめ */
}

.footer-marks-logo{
  max-width:220px;          /* 下のロゴは少し大きめ */
}

/* Hero 内：おせちリンク（控えめ導線） */
.hero-sub-link {
  margin-top: 8px;
  font-size: 0.8rem;
  color: var(--muted);
}

.hero-sub-link a {
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.18em;
  opacity: 0.9;
  transition: color 0.25s ease, opacity 0.25s ease;
}

.hero-sub-link a:hover,
.hero-sub-link a:focus-visible {
  color: var(--accent);
  opacity: 1;
}

/* スマホ時は少しだけ余白を広げると読みやすい */
@media (max-width: 600px) {
  .hero-sub-link {
    margin-top: 10px;
    font-size: 0.78rem;
  }
}

.calendar-link {
  margin-top: 0.5rem;
  text-align: right;
  font-size: 0.9rem;
}

.calendar-link a {
  text-decoration: underline;
}
