:root{
  --red:#dd3333;
  --red-dark:#b82929;
  --gold:#e8cf45;
  --ink:#1a1a1a;
  --ink-soft:#4a4a4a;
  --gray-bg:#f6f7fa;
  --white:#ffffff;
  --green:#3fc75a;
  --line-a:#cac531;
  --line-b:#eef6a0;
  --wrap:1040px;
  --wrap-narrow:900px;
  --wrap-gallery:820px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:hidden;scroll-behavior:smooth}
body{
  font-family:'Noto Sans JP',"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  color:var(--ink);
  line-height:1.8;
  background:var(--white);
  overflow-x:hidden;
  padding-top:64px;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Noto Serif JP',"Hiragino Mincho ProN",serif}
.wrap{width:min(var(--wrap),92%);margin:0 auto}
.wrap--narrow{width:min(var(--wrap-narrow),92%);margin:0 auto}
.wrap--gallery{width:min(var(--wrap-gallery),92%);margin:0 auto}
.section{padding:64px 0}
.section-heading{
  text-align:center;
  font-size:26px;
  font-weight:700;
  color:var(--red);
  letter-spacing:.08em;
  margin-bottom:36px;
}
.section--review .section-heading{color:var(--gold)}
.bg-white{background:var(--white)}
.bg-gray{background:var(--gray-bg)}
.bg-red{background:var(--red);color:var(--white)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== header ===== */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:300;
  background:var(--red);
  display:flex;align-items:center;justify-content:space-between;
  height:64px;padding:0 16px;
  box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.site-head .brand{display:flex;align-items:center;height:100%}
.site-head .brand img{height:34px;width:auto}
.gnav{
  position:fixed;top:64px;right:0;bottom:0;width:82%;max-width:320px;
  background:var(--white);
  transform:translateX(100%);transition:transform .3s ease;
  overflow-y:auto;z-index:280;
  box-shadow:-4px 0 16px rgba(0,0,0,.15);
}
.gnav.open{transform:translateX(0)}
.gnav ul{list-style:none}
.gnav a{
  display:flex;align-items:baseline;gap:10px;
  padding:18px 24px;border-bottom:1px solid #eee;
  font-family:'Noto Serif JP',serif;font-weight:700;color:var(--ink);
}
.gnav a .en{font-family:'Noto Sans JP',sans-serif;font-size:11px;font-weight:400;color:#999;letter-spacing:.1em}
.menu-toggle{
  width:40px;height:40px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  background:none;border:0;cursor:pointer;
}
.menu-toggle span{width:24px;height:2px;background:var(--white);display:block;transition:.25s}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.gnav ul{padding-top:44px}
.gnav-close{
  display:flex;align-items:center;justify-content:center;position:absolute;top:14px;right:14px;
  width:32px;height:32px;border:1px solid #e2e2e2;border-radius:50%;background:var(--white);
  color:var(--ink);font-size:20px;line-height:1;cursor:pointer;z-index:2;
}
.gnav-close:hover{background:var(--gray-bg)}
.nav-overlay{position:fixed;inset:64px 0 0 0;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:.3s;z-index:260}
.nav-overlay.open{opacity:1;pointer-events:auto}
.header-tel{display:none}

/* ===== fixed CTA (phone / LINE) ===== */
.fixed-cta{position:fixed;right:16px;bottom:16px;z-index:250;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.fixed-cta .tel-btn{
  width:48px;height:48px;border-radius:50%;background:var(--green);
  display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.25);
}
.fixed-cta .tel-btn svg{width:22px;height:22px;fill:#fff}
.fixed-cta .line-btn{
  display:flex;align-items:center;gap:6px;padding:10px 18px;border-radius:24px;
  background:linear-gradient(135deg,var(--line-a) 0%,var(--line-b) 100%);
  color:#303030;font-weight:700;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.2);
  white-space:nowrap;
}

/* ===== hero (mv) ===== */
.hero{position:relative;height:62vh;min-height:340px;overflow:hidden;background:#111}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}

/* ===== lead-en (小見出しの英字ラベル) ===== */
.lead-en{display:block;text-align:center;font-family:'Noto Sans JP',sans-serif;font-weight:700;letter-spacing:.24em;font-size:12px;color:var(--gold);margin-bottom:10px}

/* ===== reserve CTA（ファーストビュー直下の予約導線） ===== */
.reserve-cta{background:linear-gradient(135deg,var(--red-dark),#560c0c 75%)}
.rc-box{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.rc-txt{flex:1 1 280px}
.rc-lead{display:block;font-family:'Noto Sans JP',sans-serif;font-weight:700;letter-spacing:.2em;font-size:11px;color:var(--gold);margin-bottom:10px}
.rc-txt h2{font-size:19px;line-height:1.6;color:var(--white);margin-bottom:8px}
.rc-txt p{font-size:13px;color:#ffdede}
.rc-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.rc-tel{display:flex;align-items:center;gap:10px;background:var(--white);color:var(--red);padding:13px 22px;border-radius:4px;font-weight:700}
.rc-tel .ic{font-size:18px}
.rc-tel .num{font-family:'Noto Serif JP',serif;font-size:17px;line-height:1.3}
.rc-tel .num small{display:block;font-size:11px;font-weight:400;color:var(--ink-soft)}
.rc-line{display:flex;align-items:center;gap:8px;padding:13px 24px;border-radius:4px;
  background:linear-gradient(135deg,var(--line-a) 0%,var(--line-b) 100%);color:#303030;font-weight:700;font-size:14px;white-space:nowrap}

/* ===== news ===== */
.news-list{border-top:1px solid #e5e5e5}
.news-list li{border-bottom:1px solid #e5e5e5;padding:20px 8px;display:flex;flex-wrap:wrap;gap:6px 20px;align-items:baseline}
.news-list .date{color:#999;font-size:13px;font-variant-numeric:tabular-nums;flex:0 0 auto}
.news-list .ttl{font-weight:700;font-size:15px}

/* ===== media (embed replacement: static capture, no external iframe) ===== */
.media-wrap{max-width:640px;margin:0 auto;border-radius:4px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.media-wrap img{width:100%}
.media-caption{text-align:center;margin-top:18px;font-size:13px;color:#ffe9e9;letter-spacing:.04em}

/* ===== menu ===== */
.menu-slider{position:relative}
.menu-track{
  display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;
  -webkit-overflow-scrolling:touch;
}
.menu-track::-webkit-scrollbar{height:6px}
.menu-track::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}
.menu-card{
  flex:0 0 84%;scroll-snap-align:start;background:var(--white);border-radius:4px;overflow:hidden;
  box-shadow:0 6px 20px rgba(0,0,0,.08);
}
.menu-card .photo{aspect-ratio:16/10;overflow:hidden}
.menu-card .photo img{width:100%;height:100%;object-fit:cover}
.menu-card .body{padding:20px}
.menu-card h3{font-size:16px;line-height:1.5;margin-bottom:10px}
.menu-card .teaser{font-size:13px;color:var(--ink-soft);margin-bottom:10px}
.menu-card details summary{
  cursor:pointer;font-size:13px;font-weight:700;color:var(--red);list-style:none;
  display:flex;align-items:center;gap:6px;
}
.menu-card details summary::-webkit-details-marker{display:none}
.menu-card details summary::after{content:"＋";font-weight:400}
.menu-card details[open] summary::after{content:"－"}
.menu-card .detail-body{margin-top:12px;font-size:12.5px;color:var(--ink-soft);line-height:1.9;border-top:1px dashed #ddd;padding-top:12px}
.menu-card .detail-body .lbl{font-weight:700;color:var(--ink);display:block;margin-top:10px}
.menu-nav{display:flex;justify-content:center;gap:16px;margin-top:20px}
.menu-nav button{
  width:40px;height:40px;border-radius:50%;border:1px solid #ccc;background:var(--white);
  cursor:pointer;font-size:16px;color:var(--ink);
}
.menu-nav button:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}

/* ===== gallery ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.gallery-grid a{display:block;overflow:hidden;border-radius:2px;aspect-ratio:1/1}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery-grid a:hover img{transform:scale(1.06)}

/* ===== faq ===== */
.faq-list{width:min(760px,94%);margin:0 auto;display:flex;flex-direction:column;gap:10px}
.faq-item{border:1px solid #eee;border-radius:4px;background:var(--gray-bg)}
.faq-item summary{list-style:none;cursor:pointer;padding:16px 44px 16px 40px;font-weight:700;font-size:14px;position:relative;line-height:1.6}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"Q";position:absolute;left:14px;top:16px;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:12px;color:var(--red)}
.faq-item summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:20px;font-weight:400;color:var(--red);transition:transform .25s}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-item p{padding:0 44px 18px 40px;font-size:13.5px;color:var(--ink-soft);line-height:1.9;position:relative}
.faq-item p::before{content:"A";position:absolute;left:0;top:0;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:12px;color:var(--gold)}

/* ===== review ===== */
.review-grid{display:grid;grid-template-columns:1fr;gap:20px}
.review-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:22px}
.review-user{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.review-user img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#fff}
.review-stars{color:var(--gold);font-size:14px;letter-spacing:1px}
.review-time{font-size:11px;color:#ffdcdc;margin-left:8px}
.review-text{font-size:13.5px;line-height:1.9;color:#fff}
.review-more{text-align:center;margin-top:36px}
.review-more a{
  display:inline-flex;align-items:center;gap:10px;padding:14px 30px;border-radius:30px;
  background:var(--white);color:var(--red);font-weight:700;font-size:14px;
}

/* ===== about (shop info) ===== */
.info-table{background:var(--white);border-radius:4px;box-shadow:0 4px 20px rgba(0,0,0,.06);overflow:hidden}
.info-table dl{display:block}
.info-table .row{display:flex;flex-wrap:wrap;padding:18px 24px;border-top:1px solid #eee}
.info-table .row:first-child{border-top:0}
.info-table dt{flex:0 0 120px;font-weight:700;font-size:13.5px}
.info-table dd{flex:1 1 200px;font-size:13.5px;color:var(--ink-soft)}

/* ===== column preview ===== */
.col-cards{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:8px}
.col-card{display:block;background:var(--white);border:1px solid #eee;border-radius:4px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.06)}
.col-card .photo{aspect-ratio:16/10;overflow:hidden}
.col-card .photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.col-card:hover .photo img{transform:scale(1.05)}
.col-card .ct{padding:16px 18px;font-family:'Noto Serif JP',serif;font-size:14px;line-height:1.7;color:var(--ink)}
.col-more{text-align:center;margin-top:26px}
.col-more a{display:inline-flex;align-items:center;gap:8px;padding:12px 26px;border-radius:30px;border:1px solid var(--red);color:var(--red);font-weight:700;font-size:13.5px}

/* ===== access ===== */
.access-section{position:relative;color:#fff}
.access-bg{position:absolute;inset:0;z-index:0}
.access-bg img{width:100%;height:100%;object-fit:cover}
.access-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,10,10,.72),rgba(20,10,10,.86))}
.access-section .wrap{position:relative;z-index:1}
.access-section .section-heading{color:#fff}
.access-text{text-align:center;font-size:14px;line-height:2;margin-bottom:28px}
.map-wrap{max-width:640px;margin:0 auto;aspect-ratio:4/3;border-radius:4px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.4)}
.map-wrap iframe{width:100%;height:100%;border:0}

/* ===== footer ===== */
.site-foot{background:var(--red);color:#fff;text-align:center;padding:44px 20px 0}
.site-foot .flogo{height:40px;margin:0 auto 8px;filter:brightness(0) invert(1)}
.site-foot .fnav{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;font-size:12.5px;margin:18px 0 0;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.25)}
.copy-wrap{padding:16px 0;font-size:11.5px;color:#ffe2e2}
.copy-wrap .credit{display:block;margin-top:6px;color:#ffcccc}
.copy-wrap .credit a{color:#fff;text-decoration:underline}

/* ===== lightbox ===== */
.lb-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:999;padding:24px}
.lb-overlay.open{display:flex}
.lb-overlay img{max-width:92vw;max-height:88vh;box-shadow:0 10px 40px rgba(0,0,0,.6)}
.lb-close{position:absolute;top:20px;right:28px;font-size:34px;color:#fff;background:none;border:0;cursor:pointer;line-height:1}

/* ===== PC (min-width:1024) ===== */
@media (min-width:1024px){
  body{padding-top:84px}
  .site-head{height:84px;padding:0 40px}
  .site-head .brand img{height:44px}
  .menu-toggle{display:none}
  .gnav{
    position:static;width:auto;max-width:none;transform:none;background:none;box-shadow:none;
    display:flex;align-items:center;height:100%;overflow:visible;
  }
  .gnav ul{display:flex;align-items:center;height:100%;padding-top:0}
  .gnav a{
    flex-direction:column;align-items:center;gap:2px;padding:0 18px;border-bottom:0;color:#fff;
    font-size:14px;height:100%;justify-content:center;
  }
  .gnav a .en{color:rgba(255,255,255,.75)}
  .gnav a:hover{opacity:.8}
  .gnav-close{display:none}
  .nav-overlay{display:none}
  .header-tel{display:flex;align-items:center;gap:8px;color:#fff;font-family:'Noto Serif JP',serif;font-size:18px;font-weight:700;margin-left:16px}
  .header-tel svg{width:18px;height:18px;fill:#fff}

  .section{padding:100px 0}
  .section-heading{font-size:32px;margin-bottom:52px}

  .hero{height:88vh}

  .news-list li{padding:26px 10px}
  .news-list .ttl{font-size:16px}

  .menu-track{overflow-x:auto;flex-wrap:nowrap}
  .menu-card{flex:0 0 calc(50% - 12px)}

  .gallery-grid{grid-template-columns:repeat(3,1fr)}

  .review-grid{grid-template-columns:repeat(3,1fr)}

  .info-table .row{padding:22px 32px}
  .info-table dt{flex:0 0 160px;font-size:14.5px}
  .info-table dd{font-size:14.5px}

  .col-cards{grid-template-columns:repeat(3,1fr);gap:24px}

  .access-text{font-size:15px}

  .site-foot{padding-top:60px}
  .site-foot .flogo{height:50px}
}