
:root {
  --fire: #FF4500;
  --ember: #FF8C00;
  --coal: #1a1008;
  --smoke: #2d2820;
  --ash: #4a4035;
  --cream: #fff8ee;
  --gold: #FFD700;
  --white: #ffffff;
  --accent: #FF4500;
}

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

html { scroll-behavior: smooth; }

body {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  background: var(--coal);
  color: var(--cream);
  overflow-x: hidden;
}

/* ── NAV ── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  height: 64px;
  background: rgba(26,16,8,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(255,69,0,0.2);
  gap: 12px;
}

.nav-logo {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 0.78rem;
  color: var(--fire);
  text-decoration: none;
  letter-spacing: 0.02em;
  line-height: 1.3;
  flex-shrink: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-links {
  display: flex;
  gap: 12px;
  list-style: none;
  align-items: center;
  flex-shrink: 0;
  white-space: nowrap;
}

.nav-links a {
  color: var(--cream);
  text-decoration: none;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  transition: color 0.2s;
  white-space: nowrap;
}

.nav-links a:hover { color: var(--fire); }

.nav-links .nav-cta {
  background: var(--fire);
  color: #fff;
  padding: 7px 16px;
  border-radius: 4px;
  transition: background 0.2s, transform 0.2s;
  display: inline-block;
}

.nav-links .nav-cta:hover {
  background: var(--ember);
  color: #fff;
  transform: translateY(-1px);
}

.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--cream);
  transition: all 0.3s;
}

.mobile-menu {
  display: none;
  position: fixed;
  top: 64px; left: 0; right: 0;
  background: var(--coal);
  padding: 24px 32px;
  border-bottom: 1px solid rgba(255,69,0,0.2);
  z-index: 99;
  flex-direction: column;
  gap: 20px;
}

.mobile-menu.open { display: flex; }

.mobile-menu a {
  color: var(--cream);
  text-decoration: none;
  font-size: 1rem;
  font-weight: 700;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.mobile-menu a.mobile-cta {
  background: var(--fire);
  color: #fff;
  text-align: center;
  padding: 14px;
  border-radius: 4px;
  border: none;
  margin-top: 8px;
}

/* ── BUTTONS ── */
.btn {
  display: inline-block;
  padding: 16px 40px;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 1rem;
  letter-spacing: 0.1em;
  text-decoration: none;
  border-radius: 4px;
  transition: all 0.25s;
  cursor: pointer;
}

.btn-primary {
  background: var(--fire);
  color: #fff;
  border: 2px solid var(--fire);
}
.btn-primary:hover {
  background: transparent;
  color: var(--fire);
  transform: translateY(-2px);
}

.btn-outline {
  background: transparent;
  color: var(--cream);
  border: 2px solid var(--cream);
}
.btn-outline:hover {
  background: var(--cream);
  color: var(--coal);
  transform: translateY(-2px);
}

/* ── SECTION LABELS ── */
.section-label {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  color: var(--fire);
  text-transform: uppercase;
  margin-bottom: 12px;
}

.section-title {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700;
  font-size: clamp(1.6rem, 3.5vw, 2.6rem);
  line-height: 1.3;
  margin-bottom: 20px;
  letter-spacing: -0.01em;
}

.section-sub {
  font-size: 0.95rem;
  line-height: 1.8;
  color: rgba(255,248,238,0.75);
  max-width: 600px;
}

/* ── CONTAINER + UTILS ── */
.container { max-width: 1100px; margin: 0 auto; padding: 0 32px; }
.text-fire { color: var(--fire); }
.text-gold { color: var(--gold); }

/* ── FOOTER ── */
footer {
  background: #0f0905;
  padding: 60px 40px 32px;
  border-top: 1px solid rgba(255,69,0,0.2);
}

.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 48px;
}

.footer-brand h3 {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 1.1rem;
  color: var(--fire);
  margin-bottom: 12px;
}

.footer-brand p {
  font-size: 0.85rem;
  line-height: 1.8;
  color: rgba(255,248,238,0.6);
}

.footer-nav h4, .footer-info h4 {
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  color: var(--cream);
  margin-bottom: 16px;
  text-transform: uppercase;
}

.footer-nav ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-nav a {
  color: rgba(255,248,238,0.6);
  text-decoration: none;
  font-size: 0.85rem;
  transition: color 0.2s;
}
.footer-nav a:hover { color: var(--fire); }

.footer-info p {
  font-size: 0.85rem;
  line-height: 2;
  color: rgba(255,248,238,0.6);
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 24px;
  text-align: center;
  font-size: 0.75rem;
  color: rgba(255,248,238,0.35);
}

/* ── TICKER ── */
.ticker-wrap {
  background: var(--fire);
  padding: 10px 0;
  overflow: hidden;
  white-space: nowrap;
}

.ticker-track {
  display: inline-flex;
  animation: ticker 20s linear infinite;
}

.ticker-track span {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  padding: 0 32px;
  color: #fff;
}

@keyframes ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ── PAGE HERO (menu & contact shared base) ── */
.breadcrumb {
  font-size: 0.75rem;
  color: rgba(255,248,238,0.4);
  margin-bottom: 20px;
  letter-spacing: 0.1em;
}
.breadcrumb a { color: var(--fire); text-decoration: none; }
.breadcrumb span { margin: 0 8px; }

.pg-menu .page-hero {
  padding: 140px 32px 80px;
  background: linear-gradient(to bottom, rgba(26,16,8,0.75), rgba(26,16,8,0.96)),
              url('https://bbq-fujiya.lp-web.net/wp-content/uploads/2021/07/DSC06696-1024x683.jpg') center/cover no-repeat;
  text-align: center;
}

.pg-contact .page-hero {
  padding: 140px 32px 80px;
  background: linear-gradient(to bottom, rgba(26,16,8,0.85), var(--smoke)),
              url('https://bbq-fujiya.lp-web.net/wp-content/uploads/2021/04/P5230161-e1619329259119.jpg') center/cover no-repeat;
  text-align: center;
}

.page-hero-sub {
  margin: 0 auto;
  text-align: center;
}

/* ── INDEX: HERO ── */
/* ─── HERO（案F: Neo-Brutalist Marquee 2026-06-30 全面刷新）───
   出典: 2d872d0d Neo-Brutalist Interactive Hero / 9147bbf8 will-change /
         3bef4c0b GPU acceleration / ec9226cc grain noise / a1c1b34e text-wrap */
.hero {
  position: relative;
  height: 100svh;
  min-height: 680px;
  overflow: hidden;
  background: #0a0604;
}
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; z-index: 0; filter: saturate(1.08); }
/* grid 装飾（オーバーレイなし） */
.hero-grid { position: absolute; inset: 0; z-index: 2; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 60px 60px; opacity: .5; }
/* SVG ノイズ */
.hero-noise { position: absolute; inset: 0; z-index: 3; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/></svg>"); opacity: .15; mix-blend-mode: overlay; }

/* Marquee（seamless infinite + GPU layer 強制化） */
.hero-marquee { position: absolute; top: 80px; left: 0; right: 0; z-index: 4; overflow: hidden; transform: rotate(-3deg) translateZ(0); pointer-events: none; }
.hero-marquee-inner {
  display: flex;
  width: max-content;
  animation: heroMarquee 38s linear infinite;
  white-space: nowrap;
  font-family: 'Oswald', sans-serif;
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 700;
  -webkit-text-stroke: 1.5px #ffb800;
  -webkit-text-fill-color: transparent;
  letter-spacing: -.02em;
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}
.hero-marquee-inner > span { display: inline-block; padding: 0 30px; }
@keyframes heroMarquee {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-50%, 0, 0); }
}

.hero-content {
  position: relative;
  z-index: 5;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 32px 28px;
  max-width: 1080px;
  margin: 0 auto;
  width: 100%;
  text-align: left;
}
@media (max-width: 480px) {
  .hero-content { padding: 24px 20px; justify-content: flex-end; padding-bottom: 60px; }
}

.hero-title {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-size: clamp(2.4rem, 7vw, 4.8rem);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.015em;
  text-wrap: balance;
  margin-bottom: 1.6rem;
}
.hero-line { display: block; overflow: hidden; }
.hero-line span { display: inline-block; animation: heroSlideRight 1.1s cubic-bezier(.65,0,.25,1) backwards; }
.hero-line:nth-child(1) span { animation-delay: .2s; }
.hero-line:nth-child(2) span { animation-delay: .45s; }
.hero-line:nth-child(3) span { animation-delay: .7s; }
@keyframes heroSlideRight {
  from { transform: translateX(-40px); opacity: 0; filter: blur(8px); }
  to { transform: translateX(0); opacity: 1; filter: blur(0); }
}
/* L1: brutalist yellow block — 自身の背景で可読性確保 */
.hero-l1 { display: inline-block; background: #ffb800; color: #0a0604; padding: 4px 16px; transform: rotate(-1deg); font-weight: 900; box-shadow: 6px 6px 0 rgba(0,0,0,.5); }
/* L2: 白文字 + 多層 text-shadow + 黄下線 */
.hero-l2 { color: #fff; font-weight: 700; font-size: .72em; display: inline-block; border-bottom: 4px solid #ffb800; padding-bottom: 4px; text-shadow: 0 2px 12px rgba(0,0,0,.85), 0 0 24px rgba(0,0,0,.6); }
/* L3: 多層黒シャドウで写真背景でも読める */
.hero-l3 { color: #fff; font-weight: 900; text-shadow: 0 4px 16px rgba(0,0,0,.85), 0 0 32px rgba(0,0,0,.7), 0 2px 4px rgba(0,0,0,.9); }

.hero-desc {
  font-size: clamp(.88rem, 1.7vw, 1.05rem);
  font-weight: 700;
  color: #fff;
  margin-bottom: 1.6rem;
  animation: heroSlideRight 1.1s backwards 1s;
  font-family: 'Noto Sans JP', sans-serif;
  text-shadow: 0 2px 8px rgba(0,0,0,.85), 0 0 16px rgba(0,0,0,.6);
}
.hero-desc-hi { background: #ffb800; color: #0a0604; padding: 1px 8px; font-weight: 900; text-shadow: none; }

.hero-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 1.8rem; animation: heroSlideRight 1.1s backwards 1.2s; }
.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  color: #0a0604;
  padding: 8px 14px;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .02em;
  border: 3px solid #0a0604;
  box-shadow: 4px 4px 0 #ffb800;
  transition: all .2s;
  font-family: 'Noto Sans JP', sans-serif;
}
.hero-tag:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 #ffb800; }
/* SVG アイコン（絵文字廃止・CLAUDE.md 7 準拠 2026-07-09）*/
.hero-tag-icon {
  width: 16px;
  height: 16px;
  color: #ffb800;
  flex-shrink: 0;
}

.hero-btns { display: flex; gap: 16px; flex-wrap: wrap; animation: heroSlideRight 1.1s backwards 1.4s; }
.hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: #ffb800;
  color: #0a0604;
  padding: 22px 38px;
  font-size: 1.1rem;
  font-weight: 900;
  text-decoration: none;
  border: 3px solid #0a0604;
  box-shadow: 8px 8px 0 #fff;
  transition: all .25s;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: .02em;
}
.hero-cta:hover { transform: translate(-4px, -4px); box-shadow: 12px 12px 0 #fff; }
.hero-cta-arrow { transition: transform .3s; }
.hero-cta:hover .hero-cta-arrow { transform: translateX(6px) rotate(-12deg); }

@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

/* ── INDEX: ABOUT ── */
.about { padding: 100px 0; background: var(--smoke); }
.about-inner { max-width: 1100px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.about-img { position: relative; }
.about-img img { width: 100%; border-radius: 4px; display: block; object-fit: cover; aspect-ratio: 4/3; position: relative; z-index: 1; }
.about-img::before { content: ''; position: absolute; top: -12px; left: -12px; right: 12px; bottom: 12px; border: 2px solid var(--fire); border-radius: 4px; z-index: 0; }
.about-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.06); margin-top: 32px; }
.stat { background: var(--smoke); padding: 20px 24px; text-align: center; }
.stat-num { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-size: 2rem; color: var(--fire); line-height: 1; }
.stat-label { font-size: 0.75rem; color: rgba(255,248,238,0.6); margin-top: 4px; }
.about-features { display: flex; flex-direction: column; gap: 20px; margin-top: 32px; }
.feature-item { display: flex; gap: 16px; align-items: flex-start; }
.feature-text strong { display: block; font-size: 0.9rem; font-weight: 700; margin-bottom: 4px; }
.feature-text p { font-size: 0.82rem; color: rgba(255,248,238,0.65); line-height: 1.6; }

/* ── INDEX: PLANS ── */
.plans { padding: 100px 0; background: var(--coal); }
.section-header { text-align: center; margin-bottom: 60px; }
.plans-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: 1100px; margin: 0 auto; padding: 0 32px; }
.plan-card { background: var(--smoke); border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; overflow: hidden; transition: transform 0.3s, border-color 0.3s; position: relative; }
.plan-card:hover { transform: translateY(-6px); border-color: var(--fire); }
.plan-card.featured { border-color: var(--fire); }
.plan-badge { position: absolute; top: 12px; right: 12px; background: var(--fire); color: #fff; font-size: 0.65rem; font-weight: 700; padding: 4px 10px; border-radius: 50px; z-index: 2; }
.plan-img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.plan-body { padding: 24px 20px; }
.plan-name { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 1rem; margin-bottom: 8px; }
.plan-price { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 900; font-size: 1.5rem; color: var(--fire); margin-bottom: 12px; }
.plan-price span { font-size: 0.75rem; color: rgba(255,248,238,0.6); font-weight: 400; }
.plan-desc { font-size: 0.8rem; color: rgba(255,248,238,0.65); line-height: 1.7; margin-bottom: 16px; }
.plan-features { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.plan-features li { font-size: 0.78rem; color: rgba(255,248,238,0.8); padding-left: 18px; position: relative; }
.plan-features li::before { content: '✓'; position: absolute; left: 0; color: var(--fire); font-weight: 700; }
.plan-note { text-align: center; margin-top: 24px; font-size: 0.82rem; color: rgba(255,248,238,0.5); }

/* ── INDEX: NOODLE PLAN SECTION WRAPPER ── */
.noodle-plan-section { max-width: 1100px; margin: 40px auto 0; padding: 0 32px; }
.noodle-plan-title { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--gold); text-align: center; margin-bottom: 20px; }

/* ── INDEX: MEAT ── */
.meat { padding: 100px 0; background: var(--smoke); }
.meat-singles-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 48px; }
.meat-card { background: var(--coal); border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; overflow: hidden; transition: transform 0.3s; position: relative; }
.meat-card:hover { transform: translateY(-4px); }
.meat-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.meat-body { padding: 16px; }
.meat-badge { position: absolute; top: 10px; left: 10px; background: var(--fire); color: #fff; font-size: 0.62rem; font-weight: 700; padding: 3px 9px; border-radius: 50px; }
.meat-name { font-weight: 700; font-size: 0.95rem; margin-bottom: 4px; }
.meat-weight { font-size: 0.72rem; color: rgba(255,248,238,0.5); margin-bottom: 8px; }
.meat-desc { font-size: 0.75rem; color: rgba(255,248,238,0.65); line-height: 1.6; margin-bottom: 10px; }
.meat-price { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 900; font-size: 1.25rem; color: var(--fire); }
.meat-price span { font-size: 0.7rem; font-weight: 400; color: rgba(255,248,238,0.5); }

.set-menus { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 40px; }
.set-header { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--gold); text-align: center; margin-bottom: 24px; }

.veggie-list { margin-top: 32px; background: var(--coal); border: 1px solid rgba(255,255,255,0.06); border-radius: 6px; padding: 24px; text-align: center; }
.veggie-list h4 { font-weight: 700; font-size: 0.85rem; margin-bottom: 16px; color: rgba(255,248,238,0.7); }
.veggie-tags { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.veggie-tag { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); padding: 6px 14px; border-radius: 50px; font-size: 0.78rem; color: rgba(255,248,238,0.7); }

/* ── INDEX: NOODLE EXP ── */
.noodle-exp { padding: 100px 0; background: var(--coal); }
.noodle-notes { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); border-radius: 8px; padding: 24px 32px; display: flex; flex-direction: column; gap: 10px; }
.noodle-note-item { font-size: 0.82rem; color: rgba(255,248,238,0.6); padding-left: 20px; position: relative; line-height: 1.7; }
.noodle-note-item::before { content: '▸'; position: absolute; left: 0; color: var(--fire); }

/* ── INDEX: NOODLE CARD INTERIOR (index) ── */
.noodle-body { display: flex; }
.noodle-num { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-size: 1.4rem; color: var(--fire); background: rgba(255,69,0,0.08); border-right: 1px solid rgba(255,69,0,0.15); padding: 24px 16px; display: flex; align-items: flex-start; min-width: 56px; justify-content: center; flex-shrink: 0; }
.noodle-text { padding: 24px; }
.noodle-name { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 1.05rem; margin-bottom: 10px; }
.noodle-desc { font-size: 0.8rem; color: rgba(255,248,238,0.6); line-height: 1.8; margin-bottom: 18px; }
.noodle-prices { display: flex; flex-direction: column; gap: 8px; }
.noodle-price-row { display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); border-radius: 4px; padding: 9px 14px; }
.noodle-price-row.featured-row { background: rgba(255,69,0,0.08); border-color: rgba(255,69,0,0.2); }
.noodle-plan { font-size: 0.8rem; color: rgba(255,248,238,0.75); }
.noodle-price-val { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 900; font-size: 1rem; color: var(--fire); }
.noodle-price-val small { font-size: 0.68rem; font-weight: 400; color: rgba(255,248,238,0.45); }

/* ── INDEX: PRICING ── */
.pricing { padding: 100px 0; background: var(--coal); }
.price-tables { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 60px; }
.price-table { background: var(--smoke); border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; overflow: hidden; }
.price-table h3 { background: rgba(255,69,0,0.1); border-bottom: 1px solid rgba(255,69,0,0.2); padding: 16px 24px; font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 0.9rem; color: var(--fire); }
.price-table table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.price-table th { background: rgba(255,255,255,0.04); padding: 10px 16px; text-align: left; font-size: 0.73rem; color: rgba(255,248,238,0.5); font-weight: 700; }
.price-table td { padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 0.85rem; font-weight: 500; }
.price-table tr:last-child td { border-bottom: none; }
.price-table td:first-child { font-weight: 700; }
.price-note { margin-top: 24px; background: rgba(255,69,0,0.07); border: 1px solid rgba(255,69,0,0.15); border-radius: 6px; padding: 20px 24px; font-size: 0.82rem; line-height: 1.9; color: rgba(255,248,238,0.75); }
.price-note strong { color: var(--cream); }

/* ── INDEX: REVIEWS ── */
.reviews { padding: 100px 0; background: var(--smoke); }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 60px; }
.review-card { background: var(--coal); border: 1px solid rgba(255,255,255,0.07); border-radius: 6px; padding: 28px 24px; transition: transform 0.3s; }
.review-card:hover { transform: translateY(-4px); }
.review-stars { color: var(--gold); font-size: 0.85rem; letter-spacing: 2px; margin-bottom: 14px; }
.review-text { font-size: 0.82rem; line-height: 1.9; color: rgba(255,248,238,0.8); margin-bottom: 20px; padding-left: 16px; position: relative; }
.review-text::before { content: '"'; position: absolute; left: 0; top: -4px; font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-size: 1.5rem; color: var(--fire); line-height: 1; }
.review-author { font-size: 0.75rem; color: rgba(255,248,238,0.4); }
.review-author strong { display: block; color: rgba(255,248,238,0.7); font-size: 0.82rem; margin-bottom: 2px; }

/* ── INDEX: FLOW ── */
.flow { padding: 100px 0; background: var(--coal); }
.flow-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin-top: 60px; position: relative; }
.flow-steps::before { content: ''; position: absolute; top: 32px; left: 10%; right: 10%; height: 1px; background: linear-gradient(to right, var(--fire), var(--ember), var(--fire)); z-index: 0; }
.flow-step { text-align: center; padding: 0 12px; position: relative; z-index: 1; }
.flow-num { width: 64px; height: 64px; background: var(--coal); border: 2px solid var(--fire); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-size: 1.1rem; color: var(--fire); margin: 0 auto 20px; }
.flow-title { font-weight: 700; font-size: 0.85rem; margin-bottom: 8px; }
.flow-desc { font-size: 0.75rem; color: rgba(255,248,238,0.55); line-height: 1.7; }

/* ── INDEX: FAQ (accordion) ── */
.faq { padding: 100px 0; background: var(--smoke); }
.pg-index .faq-list { max-width: 800px; margin: 60px auto 0; display: flex; flex-direction: column; gap: 2px; }
.pg-index .faq-item { background: var(--coal); border: 1px solid rgba(255,255,255,0.07); border-radius: 4px; overflow: hidden; }
.pg-index .faq-q { width: 100%; background: none; border: none; cursor: pointer; padding: 20px 24px; display: flex; align-items: center; gap: 16px; text-align: left; color: var(--cream); font-size: 0.92rem; font-weight: 700; font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; }
.faq-q-label { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-size: 1rem; color: var(--fire); flex-shrink: 0; }
.faq-arrow { margin-left: auto; color: var(--fire); font-size: 0.8rem; transition: transform 0.3s; }
.pg-index .faq-item.open .faq-arrow { transform: rotate(180deg); }
.pg-index .faq-a { display: none; padding: 0 24px 20px 56px; font-size: 0.85rem; line-height: 1.9; color: rgba(255,248,238,0.7); }
.pg-index .faq-item.open .faq-a { display: block; }

/* ── CTA SECTION (shared base) ── */
.cta-section {
  position: relative;
  padding: 100px 32px;
  background: #1a1008;                     /* fallback: 画像読込前も dark */
  text-align: center;
  overflow: hidden;
  isolation: isolate;
  color: #fff;                             /* テキスト全体 明色化 */
}
.pg-index .cta-section { padding: 120px 32px; }
/* 背景画像：河口湖写真（ABOUT から移設・可読性優先で暗めのオーバーレイ強め）*/
.cta-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;                              /* 画像そのもの opacity は 1 */
  z-index: 0;
}
.cta-section::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,6,4,0.78) 0%, rgba(26,16,8,0.88) 100%);   /* 濃いめ overlay で可読性確保・::before はグレインが使用中なので ::after */
  z-index: 1;
  pointer-events: none;
}
.cta-inner {
  position: relative;
  z-index: 2;
}
.cta-section .section-title { font-size: clamp(1.6rem, 3.5vw, 2.6rem); margin-bottom: 16px; color: #fff8ee; }
.cta-section .section-sub { margin: 0 auto 40px; text-align: center; color: rgba(255,248,238,0.92); }
.cta-section .section-label { color: #0a0604; background: #ffb800; }  /* Contact ラベル黄色くしっかり */
.cta-meta { font-size: 0.78rem; color: rgba(255,248,238,0.85); margin-top: 20px; letter-spacing: 0.15em; }

/* ── SHARED: NOODLE PLAN GRID ── */
.noodle-plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 36px; }
.pg-index .noodle-plan-grid { margin-top: 0; }

.noodle-plan-card { border-radius: 6px; padding: 24px 20px; }
.pg-index .noodle-plan-card { background: var(--smoke); border: 1px solid rgba(255,215,0,0.25); }
.pg-menu .noodle-plan-card { background: var(--coal); border: 1px solid rgba(255,215,0,0.2); border-radius: 8px; }
.noodle-plan-card.highlight { border-color: rgba(255,69,0,0.4); }
.noodle-plan-name { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--gold); margin-bottom: 10px; }
.noodle-plan-price { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 900; font-size: 1.4rem; color: var(--fire); margin-bottom: 12px; }
.noodle-plan-price small { font-size: 0.72rem; font-weight: 400; color: rgba(255,248,238,0.5); }
.noodle-plan-desc { font-size: 0.78rem; color: rgba(255,248,238,0.65); line-height: 1.7; margin-bottom: 14px; }
.noodle-plan-features { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.noodle-plan-features li { font-size: 0.76rem; color: rgba(255,248,238,0.8); padding-left: 18px; position: relative; }
.noodle-plan-features li::before { content: '✓'; position: absolute; left: 0; color: var(--gold); font-weight: 700; }
.noodle-plan-addon { margin-top: 20px; background: rgba(255,215,0,0.05); border: 1px solid rgba(255,215,0,0.15); border-radius: 6px; padding: 16px 20px; text-align: center; }
.noodle-plan-addon p { font-size: 0.8rem; color: rgba(255,248,238,0.65); line-height: 1.9; }
.noodle-plan-addon strong { color: var(--gold); }

/* ── SHARED: NOODLE GRID ── */
.noodle-grid { display: grid; grid-template-columns: 1fr 1fr; }
.pg-index .noodle-grid { gap: 24px; margin-top: 60px; margin-bottom: 32px; }
.pg-menu .noodle-grid { gap: 22px; margin-top: 36px; }

.noodle-card { border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; overflow: hidden; transition: border-color 0.3s; }
.pg-index .noodle-card { background: var(--smoke); }
.pg-menu .noodle-card { background: var(--coal); }
.noodle-card:hover { border-color: var(--fire); }

/* ── SHARED: SET CARD ── */
.pg-index .set-card {
  background: var(--coal);
  border: 1px solid rgba(255,215,0,0.2);
  border-radius: 6px;
  padding: 24px 20px;
  text-align: center;
}
.pg-index .set-name { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 1rem; color: var(--gold); margin-bottom: 12px; }
.pg-index .set-contents { font-size: 0.78rem; color: rgba(255,248,238,0.65); line-height: 2; margin-bottom: 16px; }
.pg-index .set-price { font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif; font-weight: 900; font-size: 1.5rem; color: var(--fire); margin-bottom: 4px; }
.pg-index .set-savings { font-size: 0.72rem; color: rgba(255,248,238,0.45); }
.pg-index .set-savings del { color: rgba(255,248,238,0.3); }

/* ── MENU: SECTIONS ── */
.menu-section { padding: 80px 0; }
.menu-section.bg-smoke { background: var(--smoke); }
.menu-section.bg-coal  { background: var(--coal); }

.split-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
.split-layout.reverse { direction: rtl; }
.split-layout.reverse > * { direction: ltr; }

.split-img-wrap { position: relative; }
.split-img-wrap::before {
  content: '';
  position: absolute;
  top: -10px; left: -10px; right: 10px; bottom: 10px;
  border: 2px solid var(--fire);
  border-radius: 6px;
  z-index: 0;
}
.split-img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover;
  border-radius: 6px; display: block; position: relative; z-index: 1;
}

/* ── MENU: 3 tier COURSE CARDS (Goldilocks 中央強調・2026-07-11) ── */
.course-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 24px 0 16px;
}
@media (min-width: 768px) {
  .course-cards {
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
    gap: 20px;
  }
}
.course-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  color: #0a0604;
  border: 3px solid #0a0604;
  box-shadow: 6px 6px 0 rgba(255, 184, 0, 0.85);
  padding: 24px 20px 20px;
  transition: transform .2s, box-shadow .2s;
}
.course-card:hover {
  transform: translate(-2px, -2px);
  box-shadow: 8px 8px 0 #ffb800;
}
.course-card-label {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: 1rem;
  color: #555;
  letter-spacing: 0.05em;
}
.course-card-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 6px 0 4px;
}
.course-card-price-val {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 2.4rem;
  color: #0a0604;
  line-height: 1;
  letter-spacing: -0.02em;
}
.course-card-price-unit {
  font-size: .78rem;
  font-weight: 700;
  color: #555;
}
.course-card-desc {
  font-size: .8rem;
  color: #555;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 2px dashed #ececec;
  font-weight: 600;
}
.course-card-incl {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.course-card-incl li {
  position: relative;
  padding-left: 22px;
  font-size: .82rem;
  color: #333;
  font-weight: 600;
}
.course-card-incl li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 14px;
  height: 14px;
  background: #ffb800;
  border: 2px solid #0a0604;
  border-radius: 50%;
}
.course-card-incl li::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 8px;
  width: 4px;
  height: 7px;
  border-right: 2px solid #0a0604;
  border-bottom: 2px solid #0a0604;
  transform: rotate(45deg);
}
.course-card-cta {
  display: block;
  padding: 14px;
  background: #0a0604;
  color: #fff;
  text-align: center;
  font-weight: 900;
  font-size: .9rem;
  text-decoration: none;
  letter-spacing: 0.03em;
  border: 3px solid #0a0604;
  transition: background .2s, color .2s;
}
.course-card-cta:hover {
  background: #ffb800;
  color: #0a0604;
}
/* Popular（3h・Goldilocks 中央強調）*/
.course-card-popular {
  border-color: #ffb800;
  border-width: 4px;
  background: #fffbea;
  transform: none;
}
@media (min-width: 768px) {
  .course-card-popular { transform: translateY(-8px); }
}
.course-card-badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 14px;
  background: #ffb800;
  color: #0a0604;
  border: 3px solid #0a0604;
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 900;
  font-size: .78rem;
  letter-spacing: 0.05em;
  box-shadow: 3px 3px 0 #0a0604;
  white-space: nowrap;
}
.course-card-cta-popular {
  background: #ffb800;
  color: #0a0604;
  border-color: #0a0604;
}
.course-card-cta-popular:hover {
  background: #0a0604;
  color: #ffb800;
}
/* doubt-remover: CTA 直下の安心コピー */
.course-doubt-remover {
  text-align: center;
  font-size: .78rem;
  color: #d5d0c4;
  margin: 12px 0 24px;
  letter-spacing: 0.05em;
  font-weight: 600;
}

/* ── MENU: PRICE BLOCK ── */
.price-block {
  background: var(--smoke);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 20px;
}
.bg-smoke .price-block { background: var(--coal); }

.price-block-header {
  background: rgba(255,69,0,0.12);
  border-bottom: 1px solid rgba(255,69,0,0.25);
  padding: 14px 20px;
}
.price-block-header h3 {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700; font-size: 0.95rem; color: var(--fire);
}
.price-block-header p {
  font-size: 0.75rem; color: rgba(255,248,238,0.5); margin-top: 3px;
}

.price-block table { width: 100%; border-collapse: collapse; table-layout: fixed; }

.price-block th {
  background: rgba(255,255,255,0.03);
  padding: 10px 14px;
  text-align: left;
  font-size: 0.73rem;
  color: rgba(255,248,238,0.5);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  font-weight: 700;
}

.price-block td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  font-size: 0.86rem;
  vertical-align: middle;
}
.price-block tr:last-child td { border-bottom: none; }
.price-block td:first-child { font-weight: 700; }

.price-val {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 900; font-size: 1rem; color: var(--fire);
}

.note-box {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 6px;
  padding: 18px 22px;
  font-size: 0.82rem;
  line-height: 1.9;
  color: rgba(255,248,238,0.65);
  margin-top: 20px;
}
.note-box strong { color: var(--cream); }

/* ── MENU: CHILDREN NOTICE ── */
.children-notice {
  background: rgba(255,69,0,0.06);
  border: 1px solid rgba(255,69,0,0.2);
  border-radius: 8px;
  padding: 20px 24px;
  margin-top: 20px;
}
.children-notice-title {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--fire);
  letter-spacing: 0.08em;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.children-notice-title::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 14px;
  background: var(--fire);
  border-radius: 2px;
  flex-shrink: 0;
}
.children-age-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,69,0,0.15);
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 16px;
}
.children-age-cell {
  background: rgba(26,16,8,0.6);
  padding: 12px 10px;
  text-align: center;
}
.children-age-label {
  font-size: 0.7rem;
  color: rgba(255,248,238,0.45);
  letter-spacing: 0.06em;
  margin-bottom: 4px;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
}
.children-age-range {
  font-size: 0.72rem;
  color: rgba(255,248,238,0.35);
  margin-bottom: 8px;
}
.children-age-value {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 900;
  font-size: 0.95rem;
  color: var(--fire);
}
.children-note-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-top: 1px solid rgba(255,69,0,0.15);
  padding-top: 14px;
}
.children-note-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.78rem;
  color: rgba(255,248,238,0.6);
  line-height: 1.75;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
}
.children-note-list li::before {
  content: '–';
  color: var(--fire);
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── MENU: DRINK GRID ── */
.drink-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 40px;
}
.drink-card {
  background: var(--coal);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px; overflow: hidden;
}
.drink-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; filter:brightness(0.8); }
.drink-card-body { padding: 18px; }
.drink-category {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700; font-size: 0.8rem; color: var(--fire);
  letter-spacing: 0.08em; margin-bottom: 12px;
  padding-bottom: 8px; border-bottom: 1px solid rgba(255,69,0,0.2);
}
.drink-category.gold { color: var(--gold); border-bottom-color: rgba(255,215,0,0.2); }
.drink-list { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.drink-list li {
  font-size: 0.8rem; color: rgba(255,248,238,0.75);
  padding-left: 12px; position: relative;
}
.drink-list li::before { content: '–'; position: absolute; left: 0; color: var(--fire); }
.drink-add-note {
  margin-top: 14px;
  background: rgba(255,215,0,0.07);
  border: 1px solid rgba(255,215,0,0.2);
  border-radius: 6px; padding: 12px 14px;
  font-size: 0.78rem; color: rgba(255,248,238,0.8); line-height: 1.8;
}
.drink-add-note strong { color: var(--gold); }

/* ── MENU: FOOD PHOTOS ── */
.food-photo-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 36px 0;
}
.food-photo-row img {
  width: 100%; aspect-ratio: 1;
  object-fit: cover; border-radius: 6px; display: block;
}

/* ── MENU: SET GRID & CARD ── */
.set-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 28px;
}
.pg-menu .set-card {
  background: var(--smoke);
  border: 1px solid rgba(255,215,0,0.15);
  border-radius: 8px; overflow: hidden;
}
.bg-coal .set-card { background: var(--smoke); }
.set-card-header {
  background: rgba(255,215,0,0.08);
  border-bottom: 1px solid rgba(255,215,0,0.15);
  padding: 12px 18px;
}
.set-card-header h3 {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700; font-size: 0.9rem; color: var(--gold);
}
.set-card-body { padding: 16px 18px 18px; }
.set-contents { font-size: 0.78rem; color: rgba(255,248,238,0.65); line-height: 2; margin-bottom: 14px; }
.set-price-row { display: flex; align-items: baseline; gap: 6px; margin-bottom: 4px; }
.set-price-num { font-family:'Noto Sans JP',sans-serif; font-weight:900; font-size:1.5rem; color:var(--fire); }
.set-price-unit { font-size:0.72rem; color:rgba(255,248,238,0.45); }
.set-savings { font-size:0.7rem; color:rgba(255,248,238,0.45); }
.set-savings del { color:rgba(255,248,238,0.3); }

/* ── MENU: NOODLE CARD INTERIOR (menu) ── */
.noodle-card-img { width:100%; aspect-ratio:16/7; object-fit:cover; display:block; filter:brightness(0.7); }
.noodle-card-body { padding: 22px; }
.noodle-card-body h3 { font-family:'Noto Sans JP',sans-serif; font-weight:700; font-size:1.05rem; margin-bottom:8px; }
.noodle-card-body p { font-size:0.8rem; color:rgba(255,248,238,0.6); line-height:1.8; margin-bottom:18px; }
.noodle-price-rows { display:flex; flex-direction:column; gap:8px; }
.noodle-row {
  display: flex; justify-content: space-between; align-items: center;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07);
  border-radius: 4px; padding: 10px 14px;
}
.noodle-row.featured { background:rgba(255,69,0,0.08); border-color:rgba(255,69,0,0.2); }
.noodle-row-label { font-size:0.82rem; color:rgba(255,248,238,0.75); }
.noodle-row-price { font-family:'Noto Sans JP',sans-serif; font-weight:900; font-size:0.98rem; color:var(--fire); }
.noodle-row-price small { font-size:0.67rem; font-weight:400; color:rgba(255,248,238,0.4); margin-left:2px; }

/* ── MENU: CTA BAR ── */
.cta-bar {
  background: rgba(255,69,0,0.08);
  border: 1px solid rgba(255,69,0,0.2);
  border-radius: 8px; padding: 26px 34px;
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 40px; gap: 24px;
}
.cta-bar-text h4 { font-family:'Noto Sans JP',sans-serif; font-weight:700; font-size:0.98rem; margin-bottom:4px; }
.cta-bar-text p { font-size:0.8rem; color:rgba(255,248,238,0.6); }

/* ── CONTACT: SECTION ── */
.contact-section {
  padding: 80px 0;
  background: var(--coal);
}

.contact-card-wrap {
  max-width: 600px;
  margin: 60px auto 0;
}

.contact-card {
  background: var(--smoke);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.3s, transform 0.3s;
}

.contact-card:hover {
  border-color: var(--fire);
  transform: translateY(-4px);
}

.contact-card-top {
  padding: 40px 40px 32px;
  text-align: center;
}

.contact-icon {
  font-size: 2rem;
  margin-bottom: 12px;
  display: block;
  font-weight: 700;
  color: #06C755;
  letter-spacing: 0.1em;
}

.contact-card h3 {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  margin-bottom: 12px;
}

.contact-card p {
  font-size: 0.9rem;
  color: rgba(255,248,238,0.7);
  line-height: 1.8;
  margin-bottom: 0;
}

.contact-card-bottom {
  padding: 28px 40px;
  border-top: 1px solid rgba(255,255,255,0.06);
  background: rgba(0,0,0,0.15);
  text-align: center;
}

.line-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #06C755;
  color: #fff;
  padding: 16px 40px;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  letter-spacing: 0.05em;
  min-height: 44px;
  width: 100%;
  justify-content: center;
}

.line-btn:hover {
  background: #05b84e;
  transform: translateY(-2px);
}

.tel-note {
  font-size: 0.78rem;
  color: rgba(255,248,238,0.45);
  margin-top: 12px;
}

/* ── CONTACT: TEMPLATE BOX ── */
.template-box-wrap {
  margin-top: 20px;
  background: var(--smoke);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  overflow: hidden;
}

.template-label {
  padding: 14px 20px;
  font-size: 0.8rem;
  color: rgba(255,248,238,0.55);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  letter-spacing: 0.03em;
}

.template-box {
  padding: 20px;
}

.template-text {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 0.85rem;
  line-height: 1.9;
  color: rgba(255,248,238,0.85);
  white-space: pre-wrap;
  word-break: break-word;
  margin-bottom: 16px;
}

.copy-btn {
  display: block;
  width: 100%;
  background: rgba(255,255,255,0.07);
  color: rgba(255,248,238,0.85);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 6px;
  padding: 12px;
  font-size: 0.9rem;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  min-height: 44px;
  letter-spacing: 0.05em;
}

.copy-btn:hover {
  background: rgba(255,255,255,0.14);
}

.copy-btn.copied {
  background: #06C755;
  color: #fff;
  border-color: #06C755;
}

/* ── CONTACT: PRICE CARD ── */
.price-card {
  margin-top: 20px;
  background: var(--smoke);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 28px 24px;
  text-align: center;
}

.price-card-label {
  font-size: 0.72rem;
  color: rgba(255,248,238,0.4);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.price-card-price {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 2rem;
  color: var(--cream);
  margin-bottom: 16px;
  line-height: 1.2;
}

.price-card-price span {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 0.85rem;
  font-weight: 400;
  color: rgba(255,248,238,0.55);
  display: block;
  margin-top: 4px;
}

.price-card-link {
  display: inline-block;
  color: var(--fire);
  font-size: 0.85rem;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,69,0,0.35);
  padding-bottom: 2px;
  letter-spacing: 0.03em;
  transition: border-color 0.2s, opacity 0.2s;
}

.price-card-link:hover {
  border-color: var(--fire);
  opacity: 0.8;
}

/* ── CONTACT: FAQ (always visible) ── */
.pg-contact .faq-section {
  padding: 80px 0;
  background: var(--coal);
}

.faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 48px;
}

.pg-contact .faq-item {
  background: var(--smoke);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
  padding: 28px 24px;
}

.pg-contact .faq-q {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--cream);
  margin-bottom: 12px;
  line-height: 1.5;
}

.pg-contact .faq-q::before {
  content: 'Q. ';
  color: var(--fire);
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
}

.pg-contact .faq-a {
  font-size: 0.85rem;
  color: rgba(255,248,238,0.65);
  line-height: 1.8;
}

/* ── CONTACT: INFO SECTION ── */
.info-section {
  padding: 80px 0;
  background: var(--smoke);
}

.info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 48px;
}

.info-block {
  background: var(--coal);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
  padding: 32px;
}

.info-block-title {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  color: var(--fire);
  letter-spacing: 0.2em;
  margin-bottom: 20px;
  text-transform: uppercase;
}

.info-block-title-secondary {
  margin-top: 32px;
}

.info-rows {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.info-row {
  display: flex;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  font-size: 0.85rem;
}

.info-row:last-child { border-bottom: none; }

.info-label {
  color: rgba(255,248,238,0.45);
  white-space: nowrap;
  min-width: 80px;
}

.info-value {
  color: rgba(255,248,238,0.85);
  line-height: 1.7;
}

.info-value-highlight {
  color: #4ade80;
  font-weight: 700;
}

/* ── CONTACT: CTA EXTRAS ── */
.cta-line-btn { margin-top: 40px; }
.cta-note {
  margin-top: 20px;
  font-size: 0.78rem;
  color: rgba(255,248,238,0.35);
  letter-spacing: 0.1em;
}

/* ── CONTACT: STICKY LINE BUTTON ── */
.sticky-line-btn {
  position: fixed;
  bottom: 20px;
  right: 16px;
  z-index: 8500;
  background: #06C755;
  color: #fff;
  border-radius: 50px;
  padding: 12px 20px;
  font-size: 0.9rem;
  font-weight: 700;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  box-shadow: 0 4px 16px rgba(0,0,0,0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  transition: transform 0.3s cubic-bezier(.4,0,.2,1), box-shadow 0.2s ease;
  min-height: 44px;
  white-space: nowrap;
}
.sticky-bar-sub { display: none; }

.sticky-line-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.55);
}

@media (max-width: 768px) {
  .sticky-line-btn {
    bottom: 0; right: 0; left: 0;
    border-radius: 0;
    flex-direction: column;
    gap: 2px;
    min-height: 60px;
    padding: 10px 16px;
    box-shadow: 0 -2px 10px rgba(0,0,0,.2);
    transform: translateY(100%);
  }
  .sticky-line-btn.is-visible { transform: translateY(0); }
  .sticky-line-btn:hover { transform: translateY(0); box-shadow: 0 -2px 10px rgba(0,0,0,.2); }
  .sticky-bar-label { font-size: .88rem; letter-spacing: .06em; }
  .sticky-bar-sub { display: block; font-size: .7rem; font-weight: 400; opacity: .85; letter-spacing: .04em; }
  body.pg-index { padding-bottom: 60px; }
}

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .plans-grid { grid-template-columns: repeat(2, 1fr); }
  .reviews-grid { grid-template-columns: repeat(2, 1fr); }
  .flow-steps { grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .flow-steps::before { display: none; }
  .noodle-plan-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .split-layout { grid-template-columns: 1fr; }
  .split-layout.reverse { direction: ltr; }
  .split-img-wrap::before { display: none; }
  .drink-grid { grid-template-columns: 1fr; }
  .set-grid { grid-template-columns: 1fr; }
  .noodle-grid { grid-template-columns: 1fr; }
  .food-photo-row { grid-template-columns: repeat(2, 1fr); }
  .children-age-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .nav-links { display: none; }
  .hamburger { display: flex; }

  .footer-inner { grid-template-columns: 1fr; gap: 32px; }

  .about-inner { grid-template-columns: 1fr; gap: 40px; }
  .plans-grid { grid-template-columns: 1fr; }
  .meat-singles-grid { grid-template-columns: 1fr; }
  .set-menus { grid-template-columns: 1fr; }
  .price-tables { grid-template-columns: 1fr; }
  .reviews-grid { grid-template-columns: 1fr; }
  .flow-steps { grid-template-columns: repeat(2, 1fr); }

  .contact-card-top { padding: 32px 24px; }
  .contact-card-bottom { padding: 24px; }
  .faq-grid { grid-template-columns: 1fr; }
  .info-grid { grid-template-columns: 1fr; }
  .cta-section { padding: 80px 24px; }
  .pg-index .cta-section { padding: 80px 24px; }
}

@media (max-width: 600px) {
  .cta-bar { flex-direction: column; text-align: center; }
}

@media (max-width: 480px) {
  .flow-steps { grid-template-columns: 1fr; }
}



/* ─── USP BENTO（3つの他にはない・Brutalist B案：外側 Warm Cream / カード Brutalist 黒×黄キープ） 2026-06-30 ─── */
/* 出典: no-ai-design.md / Bento Grid 概念 f31d4a7f / sibling-index() a1c1b34e */
.usp-bento {
  background: #FAF5EB;
  padding: 96px 20px 80px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .usp-bento { padding: 100px 32px 80px; }
}
/* 背景SVGグレイン（Wabi-Sabi / Imperfect by Design 2026 反AI均質化） */
/* 出典: freeCodeCamp SVG filters / Canva Design Trends 2026 / Awwwards sakazuki.io SOTD 2026-06-14 */
.usp-bento::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.usp-inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; }

.usp-h2 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  text-align: left;
  margin-bottom: 32px;
  line-height: 1.3;
}
.usp-h2-mark {
  display: inline-block;
  background: #ffb800;
  color: #0a0604;
  padding: 4px 14px;
  font-size: clamp(.9rem, 2.5vw, 1.1rem);
  font-weight: 900;
  margin-bottom: 12px;
  transform: rotate(-1deg);
  box-shadow: 4px 4px 0 #0a0604;
}
.usp-h2-main {
  display: block;
  font-size: clamp(1.6rem, 5vw, 2.4rem);
  font-weight: 900;
  color: #0a0604;
  letter-spacing: -.01em;
}

/* mobile-first: 1列縦積み */
.usp-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "noodle"
    "private"
    "food"
    "stats";
  gap: 16px;
}
.usp-card-1 { grid-area: noodle; }
.usp-card-2 { grid-area: private; }
.usp-card-3 { grid-area: food; }
.usp-card-4 { grid-area: stats; }

/* タブレット以上: 2:2 Bento 4 枚レイアウト */
@media (min-width: 768px) {
  .usp-grid {
    grid-template-columns: 2fr 1fr;
    grid-template-areas:
      "noodle private"
      "noodle food"
      "stats  stats";
  }
}
@media (min-width: 1024px) {
  .usp-grid {
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-areas:
      "noodle private stats"
      "noodle food    stats";
  }
}

/* カード共通 Brutalist（黒枠×黄影は元のまま） */
.usp-card {
  background: #fff;
  color: #0a0604;
  border: 3px solid #0a0604;
  box-shadow: 8px 8px 0 #ffb800;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform .25s, box-shadow .25s;
  font-family: 'Noto Sans JP', sans-serif;
  animation: uspReveal .7s cubic-bezier(.6,0,.2,1) backwards;
}
.usp-card:hover { transform: translate(-4px, -4px); box-shadow: 12px 12px 0 #ffb800; }
@media (min-width: 768px) {
  .usp-card { padding: 32px; }
  .usp-card-1 { padding: 40px; }
}
.usp-card:nth-child(1) { animation-delay: .1s; }
.usp-card:nth-child(2) { animation-delay: .25s; }
.usp-card:nth-child(3) { animation-delay: .4s; }
@supports (animation-delay: calc(sibling-index() * 100ms)) {
  .usp-card { animation-delay: calc(sibling-index() * 130ms); }
}
@keyframes uspReveal {
  from { transform: translate(-12px, 12px); opacity: 0; }
  to { transform: translate(0, 0); opacity: 1; }
}

.usp-icon {
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.usp-card-1 .usp-icon { width: 64px; height: 64px; }
.usp-icon svg { width: 100%; height: 100%; }

.usp-card-title {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-size: clamp(1.1rem, 3vw, 1.35rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: -.01em;
}
.usp-card-1 .usp-card-title { font-size: clamp(1.3rem, 4vw, 1.7rem); }

.usp-card-desc {
  font-size: clamp(.88rem, 2.2vw, .98rem);
  font-weight: 500;
  line-height: 1.7;
  color: #333;
}
.usp-emph {
  background: linear-gradient(transparent 60%, #ffb800 60%);
  font-weight: 700;
  padding: 0 2px;
}

/* 麺種リスト */
.usp-noodle-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  padding: 0;
}
.usp-noodle-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #f7f3eb;
  border: 2px solid #0a0604;
  padding: 10px 14px;
  font-family: 'Noto Sans JP', sans-serif;
  transition: transform .2s, background .2s;
}
.usp-noodle-list li:hover { transform: translateX(4px); background: #fff4d0; }
.usp-noodle-num {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: #ffb800;
  background: #0a0604;
  padding: 2px 8px;
  letter-spacing: .05em;
  flex-shrink: 0;
}
.usp-noodle-name {
  font-weight: 900;
  font-size: clamp(.95rem, 2.4vw, 1.05rem);
  color: #0a0604;
  flex: 1;
}
.usp-noodle-tag {
  font-size: .7rem;
  font-weight: 700;
  color: #555;
  background: #fff;
  border: 1.5px solid #0a0604;
  padding: 2px 8px;
}
.usp-noodle-note {
  font-size: .78rem;
  font-weight: 600;
  color: #555;
  margin-top: 4px;
  border-left: 3px solid #ffb800;
  padding-left: 12px;
}

/* --- usp-card-4「基本情報」の 4 stats グリッド（ABOUT から移設） --- */
.usp-stats {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.usp-stats li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 12px;
  border: 2px solid #0a0604;
  background: #fafaf7;
}
.usp-stat-num {
  font-family: 'Oswald', 'Zen Kaku Gothic New', sans-serif;
  font-size: clamp(1.4rem, 5vw, 1.8rem);
  font-weight: 900;
  line-height: 1;
  color: #0a0604;
  letter-spacing: -0.02em;
}
.usp-stat-unit {
  font-size: .7em;
  font-weight: 700;
  margin-left: 2px;
}
.usp-stat-label {
  font-size: .7rem;
  font-weight: 700;
  color: #555;
  margin-top: 4px;
}
@media (min-width: 768px) {
  .usp-stat-num { font-size: clamp(1.6rem, 3vw, 2.2rem); }
  .usp-stat-label { font-size: .78rem; }
}
@media (min-width: 768px) {
  .usp-noodle-list { gap: 10px; margin-top: 16px; }
  .usp-noodle-list li { padding: 14px 18px; }
  .usp-card-1 { justify-content: flex-start; }
}

/* ─── COMPARE TABLE（他のBBQ場との比較・A案：Deep Forest Green 背景） 2026-06-30 ─── */
/* 出典: NotebookLM lm-marketing [9cb35b2f] / lm-design [cd4f29cc] Deep Forest Green でリズム生成 */
.compare {
  background: #3A4D2E;
  padding: 20px 20px 40px;  /* note の下に呼吸ある余白 */
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .compare { padding: 96px 32px 56px; }
}
.compare::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .14;
  mix-blend-mode: screen;
}
.compare::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  right: -80px; bottom: -80px; width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(255,92,52,.14), transparent 65%);
  filter: blur(20px);
}
.compare-inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; }

.compare-h2 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  text-align: left;
  margin-bottom: 32px;
  line-height: 1.3;
}
.compare-h2-mark {
  display: inline-block;
  background: #ffb800;
  color: #0a0604;
  padding: 4px 14px;
  font-size: clamp(.9rem, 2.5vw, 1.1rem);
  font-weight: 900;
  margin-bottom: 12px;
  transform: rotate(-1deg);
  box-shadow: 4px 4px 0 #0a0604;
}
.compare-h2-main {
  display: block;
  font-size: clamp(1.6rem, 5vw, 2.4rem);
  font-weight: 900;
  color: #FAF5EB;
  letter-spacing: -.01em;
}

/* 4比較項目のグリッド */
.compare-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .compare-list { gap: 20px; }
}

/* 各比較項目（カード） */
.compare-row {
  background: #fff;
  border: 3px solid #0a0604;
  box-shadow: 8px 8px 0 #ffb800;
  padding: 20px;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "label"
    "general"
    "fuji";
  gap: 14px;
  transition: transform .25s, box-shadow .25s;
  font-family: 'Noto Sans JP', sans-serif;
  animation: cmpReveal .7s cubic-bezier(.6,0,.2,1) backwards;
}
.compare-row:hover { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 #ffb800; }
.compare-row:nth-child(1) { animation-delay: .05s; }
.compare-row:nth-child(2) { animation-delay: .15s; }
.compare-row:nth-child(3) { animation-delay: .25s; }
.compare-row:nth-child(4) { animation-delay: .35s; }
@supports (animation-delay: calc(sibling-index() * 100ms)) {
  .compare-row { animation-delay: calc(sibling-index() * 100ms); }
}
@keyframes cmpReveal {
  from { transform: translate(-10px, 10px); opacity: 0; }
  to { transform: translate(0, 0); opacity: 1; }
}

/* PC以上: ラベル | 一般 | 富士家 の3列 */
@media (min-width: 768px) {
  .compare-row {
    grid-template-columns: 1fr 1.5fr 1.5fr;
    grid-template-areas: "label general fuji";
    align-items: center;
    padding: 24px 28px;
  }
}

/* 項目ラベル */
.compare-label {
  grid-area: label;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-size: clamp(1rem, 2.6vw, 1.15rem);
  font-weight: 900;
  color: #0a0604;
  letter-spacing: -.01em;
  display: flex;
  align-items: center;
  gap: 10px;
}
.compare-label::before {
  content: ""; width: 6px; height: 24px; background: #ffb800; flex-shrink: 0;
}

/* 一般的なBBQ場側 */
.compare-general {
  grid-area: general;
  background: #f5f1e8;
  border: 2px solid #d3cdbe;
  padding: 14px 16px;
  font-size: clamp(.88rem, 2.2vw, .98rem);
  line-height: 1.6;
  color: #5a534a;
  position: relative;
}
.compare-general::before {
  content: "一般的なBBQ場";
  position: absolute;
  top: -10px; left: 12px;
  background: #f5f1e8;
  padding: 0 8px;
  font-size: .7rem;
  font-weight: 700;
  color: #8a8270;
  letter-spacing: .03em;
}

/* 富士家側 */
.compare-fuji {
  grid-area: fuji;
  background: #fffdf3;
  border: 2px solid #0a0604;
  padding: 14px 16px;
  font-size: clamp(.92rem, 2.3vw, 1rem);
  line-height: 1.6;
  color: #0a0604;
  font-weight: 600;
  position: relative;
}
.compare-fuji::before {
  content: "富士家BBQ";
  position: absolute;
  top: -10px; left: 12px;
  background: #ffb800;
  padding: 2px 10px;
  font-size: .7rem;
  font-weight: 900;
  color: #0a0604;
  letter-spacing: .03em;
}
.compare-fuji-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px; height: 20px;
  background: #0a0604;
  color: #ffb800;
  font-weight: 900;
  font-size: .85rem;
  margin-right: 6px;
  flex-shrink: 0;
}
.compare-emph {
  background: linear-gradient(transparent 60%, #ffb800 60%);
  font-weight: 900;
  padding: 0 2px;
}

/* 注釈（緑背景に映えるよう色調整） */
.compare-note {
  margin-top: 20px;
  font-size: .75rem;
  color: #d5d0c4;
  line-height: 1.6;
  padding-left: 12px;
  border-left: 3px solid #6a7d5d;
}

/* ─── LOSS AVERSION STORY（損失回避ストーリー・Hero直下・PAS型・A案：黒背景） 2026-06-30 ─── */
/* 出典: NotebookLM lm-marketing [9cb35b2f] 損失フレーム+30% / PAS framework / lm-design [cd4f29cc] 明度リズム */
.loss {
  background: #0a0604;
  padding: 80px 20px 64px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .loss { padding: 96px 32px 80px; }
}
.loss::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .18;
  mix-blend-mode: screen;
}
.loss::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  left: -60px; top: 20%; width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(255,184,0,.12), transparent 60%);
  filter: blur(30px);
}
.loss-inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; }

/* 見出し（PAS の P） */
.loss-h2 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  text-align: left;
  margin-bottom: 32px;
  line-height: 1.4;
}
.loss-h2-mark {
  display: inline-block;
  background: #ffb800;
  color: #0a0604;
  padding: 4px 14px;
  font-size: clamp(.9rem, 2.5vw, 1.05rem);
  font-weight: 900;
  margin-bottom: 12px;
  transform: rotate(-1deg);
  box-shadow: 4px 4px 0 #0a0604;
}
.loss-h2-main {
  display: block;
  font-size: clamp(1.5rem, 4.8vw, 2.3rem);
  font-weight: 900;
  color: #FAF5EB;
  letter-spacing: -.01em;
}

/* 3つの「もったいない」リスト */
/* シンプル リスト（アイコン + テキスト・カード style 廃止 2026-07-04） */
/* モバイル: 縦積み / PC: 横並び 3列 */
.loss-list {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
@media (min-width: 768px) {
  .loss-list {
    flex-direction: row;
    gap: 24px;
    margin-bottom: 40px;
    align-items: flex-start;
  }
  .loss-item { flex: 1; }
}

.loss-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 8px 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(1rem, 2.5vw, 1.1rem);
  line-height: 1.6;
  color: #f0ece5;
  font-weight: 500;
  animation: lossReveal .6s cubic-bezier(.6,0,.2,1) backwards;
}
.loss-item:nth-child(1) { animation-delay: .1s; }
.loss-item:nth-child(2) { animation-delay: .22s; }
.loss-item:nth-child(3) { animation-delay: .34s; }
@keyframes lossReveal {
  from { transform: translateX(-8px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

.loss-item-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FAF5EB;
  border: 2.5px solid #0a0604;
  border-radius: 8px;
}
.loss-item-icon svg { width: 32px; height: 32px; }
@media (min-width: 768px) {
  .loss-item-icon { width: 56px; height: 56px; }
  .loss-item-icon svg { width: 38px; height: 38px; }
}

.loss-item-text { flex: 1; }
.loss-emph {
  background: #ffb800;
  color: #0a0604;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 2px;
}

/* 解決策ブロック（PAS の S・黒背景の中で Warm Cream に反転 = 暗→明のコントラスト） */
.loss-solution {
  background: #FAF5EB;
  color: #0a0604;
  border: 3px solid #FAF5EB;
  box-shadow: 8px 8px 0 #ffb800;
  padding: 28px 24px;
  font-family: 'Noto Sans JP', sans-serif;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .loss-solution { padding: 36px 40px; }
}
.loss-solution::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.loss-solution > * { position: relative; z-index: 1; }
.loss-solution-h3 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-size: clamp(1.2rem, 3.5vw, 1.6rem);
  font-weight: 900;
  line-height: 1.4;
  margin-bottom: 18px;
  letter-spacing: -.01em;
}
.loss-solution-h3-mark {
  display: inline-block;
  background: #ffb800;
  color: #0a0604;
  padding: 4px 14px;
  margin-bottom: 10px;
  font-size: clamp(.95rem, 2.8vw, 1.2rem);
  font-weight: 900;
  transform: rotate(-1deg);
  box-shadow: 4px 4px 0 rgba(0,0,0,.3);
}
.loss-solution-list {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding: 0;
  margin: 0;
}
@media (min-width: 768px) {
  .loss-solution-list { grid-template-columns: repeat(3, 1fr); gap: 18px; }
}
.loss-solution-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: clamp(.88rem, 2.2vw, .98rem);
  line-height: 1.6;
  color: #2a241d;
}
.loss-solution-check {
  flex-shrink: 0;
  width: 22px; height: 22px;
  background: #0a0604;
  color: #ffb800;
  font-weight: 900;
  font-size: .9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}
.loss-solution-hi {
  background: linear-gradient(transparent 60%, #ffb800 60%);
  color: #0a0604;
  font-weight: 900;
  padding: 0 2px;
}

/* ─── ABOUT サービス紹介型・B案 Warm Cream + SVGグレイン + Brutalist特徴カード 2026-07-01 ─── */
/* 出典: NotebookLM lm-design [0eed79d2] Wabi-Sabi / Imperfect by Design 2026 / Awwwards sakazuki.io SOTD 2026-06-14 / freeCodeCamp SVG feTurbulence */
.about {
  background: #FAF5EB;
  padding: 80px 20px 64px;
  position: relative;
  overflow: hidden;
  color: #0a0604;
}
@media (min-width: 768px) {
  .about { padding: 100px 32px 88px; }
}
.about::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .10;
  mix-blend-mode: multiply;
}
.about-inner {
  position: relative; z-index: 1;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  align-items: start;
}
@media (min-width: 900px) {
  .about-inner {
    grid-template-columns: 1.1fr .9fr;
    gap: 56px;
  }
}

.about-text { display: flex; flex-direction: column; align-items: flex-start; }

.about-label {
  display: inline-block;
  background: #0a0604;
  color: #ffb800;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-size: clamp(.82rem, 2.2vw, .95rem);
  font-weight: 700;
  letter-spacing: .12em;
  margin: 0 0 16px;
}
.about-h2 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-size: clamp(1.75rem, 5.6vw, 2.6rem);
  font-weight: 900;
  color: #0a0604;
  line-height: 1.35;
  letter-spacing: -.015em;
  margin: 0 0 20px;
  text-align: left;
}
.about-h2-mark {
  background: linear-gradient(transparent 55%, #ffb800 55%);
  padding: 0 4px;
  font-weight: 900;
}
.about-lead {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(.95rem, 2.5vw, 1.05rem);
  font-weight: 500;
  line-height: 1.9;
  color: #2a241d;
  margin: 0 0 28px;
}
.about-lead strong {
  font-weight: 900;
  color: #0a0604;
}

/* 統計 4つ（Brutalist 白カード内・グリッド） */
.about-stats {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 20px;
  padding: 20px 20px;
  margin: 0 0 28px;
  width: 100%;
  background: #fff;
  border: 3px solid #0a0604;
  box-shadow: 6px 6px 0 #ffb800;
  box-sizing: border-box;
}
@media (min-width: 520px) {
  .about-stats { grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 22px 18px; }
}
.about-stats li {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
}
.about-stat-num {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.6rem, 5vw, 2rem);
  font-weight: 700;
  color: #0a0604;
  line-height: 1;
}
.about-stat-unit {
  font-size: .55em;
  font-weight: 700;
  margin-left: 2px;
  color: #0a0604;
}
.about-stat-label {
  font-size: .72rem;
  font-weight: 700;
  color: #666;
  letter-spacing: .02em;
  line-height: 1.3;
}

/* 特徴カード（Brutalist・縦積み） */
.about-features {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  padding: 0;
  margin: 0;
  width: 100%;
}
.about-feature {
  background: #fff;
  border: 3px solid #0a0604;
  box-shadow: 6px 6px 0 rgba(10,6,4,.16);
  padding: 18px 20px 16px;
  font-family: 'Noto Sans JP', sans-serif;
  transition: transform .25s, box-shadow .25s;
}
.about-feature:hover { transform: translate(-2px, -2px); box-shadow: 8px 8px 0 rgba(10,6,4,.22); }
.about-feature-title {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-size: clamp(1rem, 2.6vw, 1.1rem);
  font-weight: 900;
  color: #0a0604;
  margin: 0 0 6px;
  letter-spacing: -.005em;
}
.about-feature-desc {
  font-size: clamp(.85rem, 2.1vw, .93rem);
  line-height: 1.7;
  color: #333;
  margin: 0;
  font-weight: 500;
}

/* 写真（Brutalist 黒枠 + 黄オフセット影・sakazuki 型: 装飾最小・静的） */
.about-photo {
  position: relative;
  z-index: 1;
}
.about-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
  border: 3px solid #0a0604;
  box-shadow: 10px 10px 0 #ffb800;
}
@media (min-width: 900px) {
  .about-photo { position: sticky; top: 100px; }
}

/* ─── PRICE FLASH（料金早見・ヒーロー直下・B案 Brutalist+SVGグレイン） 2026-07-02 ─── */
/* 出典: NotebookLM lm-design [0eed79d2] 飲食・BBQ LP は Light mode + Warm Cream 推奨 / Tactile Brutalism 黒枠カードは明るい単色背景で最大コントラスト / Baymard 2026 カート放棄 #1「総額わからない」48.2% / atlasperk: hero に pricing 混ぜない・直下配置 / Balsamiq No links */
/* 背景リズム: hero（黒）→ price-flash（Cream）→ loss（黒）で明暗コントラスト・呼吸ポイント化 */
.price-flash {
  background: #FAF5EB;
  padding: 32px 20px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .price-flash { padding: 44px 32px; }
}
.price-flash::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.price-flash-inner {
  position: relative; z-index: 1;
  max-width: 1080px;
  margin: 0 auto;
  background: #fff;
  border: 3px solid #0a0604;
  box-shadow: 8px 8px 0 #ffb800;
  padding: 22px 22px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  align-items: center;
}
@media (min-width: 768px) {
  .price-flash-inner {
    grid-template-columns: auto 1fr auto;
    padding: 22px 28px;
    gap: 28px;
  }
}
.price-flash-badge {
  display: inline-block;
  background: #0a0604;
  color: #ffb800;
  padding: 4px 12px;
  font-family: 'Oswald', sans-serif;
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .12em;
  justify-self: flex-start;
}
.price-flash-price {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  line-height: 1.2;
}
.price-flash-price-main {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(2rem, 6vw, 2.6rem);
  font-weight: 700;
  background: linear-gradient(transparent 60%, #ffb800 60%);
  padding: 0 4px;
}
.price-flash-price-unit {
  font-size: clamp(.85rem, 2.2vw, 1rem);
  font-weight: 700;
  margin-left: 6px;
  color: #333;
}
.price-flash-sub {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: .82rem;
  font-weight: 500;
  color: #444;
  margin-top: 6px;
  line-height: 1.6;
}
.price-flash-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #0a0604;
  color: #fff;
  padding: 12px 20px;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-size: .95rem;
  font-weight: 900;
  text-decoration: none;
  border: 3px solid #0a0604;
  box-shadow: 4px 4px 0 rgba(10,6,4,.25);
  transition: transform .2s, box-shadow .2s;
  justify-self: stretch;
  text-align: center;
  justify-content: center;
}
@media (min-width: 768px) {
  .price-flash-link { justify-self: end; }
}
.price-flash-link:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 rgba(10,6,4,.35); }
.price-flash-link-arrow {
  font-family: 'Oswald', sans-serif;
  color: #ffb800;
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════
   P0 統一：後半 8 セクションを B案 Warm Cream 化（世界観統一）
   出典: NotebookLM lm-design [0eed79d2] 飲食BBQ Light mode 推奨 /
         lm-marketing [9cb35b2f] 視覚的階層一貫性 = CVR / 
         c33ad94a Design System Tokens (Color palette + Typography + Spacing)
   対象: reviews / plans / meat / noodle-exp / pricing / flow / faq / cta-section
   2026-07-02
   ═══════════════════════════════════════════════════════ */

/* ── Base backgrounds ── */
.plans, .meat, .noodle-exp, .pricing, .reviews, .faq {
  background: #FAF5EB;
  color: #0a0604;
  position: relative;
  overflow: hidden;
}
.flow {
  background: #3A4D2E;
  color: #FAF5EB;
  position: relative;
  overflow: hidden;
}
/* .cta-section 2284: 旧 Warm Cream 定義は L587 の新 dark 定義を優先するため無効化 (2026-07-08) */

/* ── SVG グレイン ── */
.plans::before, .meat::before, .noodle-exp::before, .pricing::before,
.reviews::before, .faq::before, .cta-section::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.flow::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .14;
  mix-blend-mode: screen;
}

/* ── コンテンツを ::before の上に ── */
.plans .container, .meat .container, .noodle-exp .container,
.pricing .container, .reviews .container, .faq .container,
.cta-section .container, .flow .container {
  position: relative; z-index: 1;
}
.plans-grid, .meat-singles-grid, .set-menus, .noodle-notes,
.price-tables, .reviews-grid, .flow-steps, .faq-list,
.noodle-plan-section, .noodle-plan-grid, .veggie-list {
  position: relative; z-index: 1;
}

/* ── section-header (label/title/sub) — Cream 背景で黒文字 ── */
.plans .section-title, .meat .section-title, .noodle-exp .section-title,
.pricing .section-title, .reviews .section-title, .faq .section-title {
  color: #0a0604;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  letter-spacing: -.015em;
}
.plans .section-sub, .meat .section-sub, .noodle-exp .section-sub,
.pricing .section-sub, .reviews .section-sub, .faq .section-sub {
  color: #444;
}
.plans .section-label, .meat .section-label, .noodle-exp .section-label,
.pricing .section-label, .reviews .section-label, .faq .section-label,
.cta-section .section-label {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: .85rem;
  margin-bottom: 16px;
}
.plans .text-fire, .meat .text-fire, .noodle-exp .text-fire,
.pricing .text-fire, .reviews .text-fire, .faq .text-fire {
  background: linear-gradient(transparent 55%, #ffb800 55%);
  color: #0a0604;
  padding: 0 4px;
  -webkit-text-fill-color: initial;
}
/* CTA は dark 背景なので text-fire を full yellow background にして可読性確保 (2026-07-08) */
.cta-section .text-fire {
  background: #ffb800;
  color: #0a0604;
  padding: 0 8px;
  -webkit-text-fill-color: initial;
}

/* Flow (Forest Green) — 白文字 */
.flow .section-title { color: #FAF5EB; }
.flow .section-sub { color: rgba(250,245,235,.8); }
.flow .section-label {
  background: #ffb800;
  color: #0a0604;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: .85rem;
  margin-bottom: 16px;
}
.flow .text-fire { color: #ffb800; -webkit-text-fill-color: initial; }

/* ── Plans カード → Brutalist 白×黒枠×黄影 ── */
.plan-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  transition: transform .25s, box-shadow .25s;
}
.plan-card:hover {
  transform: translate(-3px, -3px);
  border-color: #0a0604;
  box-shadow: 9px 9px 0 #ffb800;
}
.plan-card.featured { border-color: #0a0604; box-shadow: 6px 6px 0 #ff5c34; }
.plan-badge {
  background: #ff5c34;
  color: #fff;
  border-radius: 0;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .1em;
  padding: 4px 10px;
}
.plan-name {
  color: #0a0604;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  letter-spacing: -.01em;
}
.plan-price {
  color: #0a0604;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
}
.plan-price span { color: #666; font-weight: 500; }
.plan-desc { color: #333; }
.plan-features li { color: #0a0604; font-weight: 500; }
.plan-features li::before {
  content: '✓';
  color: #ffb800;
  background: #0a0604;
  padding: 0 4px;
  font-weight: 900;
  font-size: .7rem;
  border-radius: 0;
  left: 0;
}
.plan-note { color: #666; }

/* ── Meat カード ── */
.meat-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  transition: transform .25s, box-shadow .25s;
}
.meat-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #ffb800;
}
.meat-badge {
  background: #ff5c34;
  color: #fff;
  border-radius: 0;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .05em;
}
.meat-name { color: #0a0604; font-weight: 900; }
.meat-weight { color: #666; }
.meat-desc { color: #333; }
.meat-price { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }
.meat-price span { color: #666; font-weight: 500; }
.set-header { color: #0a0604; font-weight: 900; }
.veggie-list {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.veggie-list h4 { color: #0a0604; font-weight: 900; }
.veggie-tag {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  color: #0a0604;
  border-radius: 0;
  font-weight: 700;
}

/* ── Noodle-exp カード ── */
.noodle-notes {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.noodle-note-item { color: #333; }
.noodle-note-item::before { color: #ff5c34; font-weight: 900; }
.noodle-num {
  background: #0a0604;
  color: #ffb800;
  border-right: none;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
}
.noodle-name { color: #0a0604; font-weight: 900; }
.noodle-desc { color: #333; }
.noodle-price-row {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  border-radius: 0;
}
.noodle-price-row.featured-row { background: #ffb800; border-color: #0a0604; }
.noodle-plan { color: #0a0604; font-weight: 700; }
.noodle-price-val { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }
.noodle-price-val small { color: #666; font-weight: 500; }

/* Noodle plan cards (index.html) */
.pg-index .noodle-plan-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.pg-index .noodle-plan-card.highlight { box-shadow: 6px 6px 0 #ff5c34; }
.noodle-plan-name { color: #0a0604; font-weight: 900; }
.noodle-plan-title { color: #0a0604; font-weight: 900; }

/* ── Pricing table ── */
.price-table {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  overflow: hidden;
}
.price-table h3 {
  background: #0a0604;
  color: #ffb800;
  border-bottom: none;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .08em;
}
.price-table th {
  background: #FAF5EB;
  color: #333;
  border-bottom: 3px solid #0a0604;
  font-weight: 700;
}
.price-table td {
  color: #0a0604;
  border-bottom: 1px solid #d3cdbe;
  font-weight: 500;
}
.price-table td:first-child { font-weight: 900; }
.price-note {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 4px 4px 0 rgba(10,6,4,.15);
  color: #333;
}
.price-note strong { color: #0a0604; font-weight: 900; }

/* ── Reviews カード ── */
.review-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  transition: transform .25s, box-shadow .25s;
}
.review-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #ffb800;
}
.review-stars { color: #ffb800; font-weight: 900; }
.review-text { color: #0a0604; }
.review-text::before { color: #ff5c34; font-weight: 900; }
.review-author { color: #666; }
.review-author strong { color: #0a0604; font-weight: 900; }

/* ── Flow ステップ（Forest Green 上に淡カード） ── */
.flow-steps::before { background: linear-gradient(to right, #ffb800, #ff5c34, #ffb800); height: 2px; }
.flow-num {
  background: #FAF5EB;
  border: 3px solid #0a0604;
  color: #0a0604;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  border-radius: 0;
  box-shadow: 4px 4px 0 #ffb800;
}
.flow-title { color: #FAF5EB; font-weight: 900; }
.flow-desc { color: rgba(250,245,235,.85); }

/* ── FAQ ── */
.pg-index .faq-item {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 4px 4px 0 rgba(10,6,4,.18);
}
.pg-index .faq-q {
  color: #0a0604;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
}
.faq-q-label {
  background: #0a0604;
  color: #ffb800;
  padding: 2px 8px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
}
.faq-arrow { color: #0a0604; font-weight: 900; }
.pg-index .faq-a { color: #333; }

/* ── CTA Section (2026-07-08 Dark 化：河口湖背景に white テキストで可読性確保) ── */
.cta-section .section-title { color: #fff8ee; }
.cta-section .section-sub { color: rgba(255,248,238,0.92); }
.cta-meta { color: rgba(255,248,238,0.85); }
.cta-section .btn.btn-primary {
  background: #0a0604;
  color: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  letter-spacing: -.01em;
  padding: 16px 32px;
  transition: transform .25s, box-shadow .25s;
}
.cta-section .btn.btn-primary:hover {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #ffb800;
}

/* ── P0 追加：残置のダークカードを Brutalist 化 ── */

/* Noodle-exp .noodle-card 外枠 → 白カード */
.pg-index .noodle-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  transition: transform .25s, box-shadow .25s;
  overflow: hidden;
}
.pg-index .noodle-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #ffb800;
  border-color: #0a0604;
}
.pg-index .noodle-card img {
  filter: brightness(1) !important;
}
.noodle-num {
  background: #0a0604;
  color: #ffb800;
  border-right: none;
}
.noodle-body { background: #fff; }

/* Meat セットメニューカード → 白 Brutalist */
.pg-index .set-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  padding: 24px 22px;
  transition: transform .25s, box-shadow .25s;
}
.pg-index .set-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #ffb800;
}
.pg-index .set-name {
  color: #0a0604;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
}
.pg-index .set-contents { color: #333; }
.pg-index .set-price {
  color: #0a0604;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
}
.pg-index .set-savings { color: #666; }
.pg-index .set-savings del { color: #999; }

/* Noodle plan cards（plans内） 詳細スタイル */
.noodle-plan-price { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }
.noodle-plan-price small { color: #666; font-weight: 500; }
.noodle-plan-desc { color: #333; }
.noodle-plan-features li { color: #0a0604; font-weight: 500; }
.noodle-plan-features li::before {
  content: '✓';
  color: #ffb800;
  background: #0a0604;
  padding: 0 4px;
  font-weight: 900;
  font-size: .7rem;
}
.noodle-plan-addon {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  border-radius: 0;
  color: #333;
}
.noodle-plan-addon p { color: #333; }
.noodle-plan-addon strong { color: #0a0604; font-weight: 900; }

/* Plan-note (plansセクション内の注意書き) */
.plans .plan-note { color: #666 !important; }
.meat p, .noodle-exp p { color: #444; }

/* ═══════════════════════════════════════════════════════
   P0 統一 拡張：menu.html / contact.html を B案 Warm Cream 化
   2026-07-02
   出典: NotebookLM lm-design [0eed79d2] / lm-marketing [c33ad94a]
   ═══════════════════════════════════════════════════════ */

/* ── MENU: page-hero → Cream + Brutalist ── */
.pg-menu .page-hero {
  background: linear-gradient(to bottom, rgba(250,245,235,0.9), rgba(250,245,235,0.2)),
              url('https://bbq-fujiya.lp-web.net/wp-content/uploads/2021/07/DSC06696-1024x683.jpg') center/cover no-repeat;
  color: #0a0604;
}
.pg-menu .page-hero .section-title { color: #0a0604; }
.pg-menu .page-hero .section-sub { color: #333; }
.pg-menu .page-hero .section-label {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
}
.pg-menu .breadcrumb, .pg-menu .breadcrumb a { color: #333; }
.pg-menu .breadcrumb a:hover { color: #0a0604; }

/* ── CONTACT: page-hero → Cream + Brutalist ── */
.pg-contact .page-hero {
  background: linear-gradient(to bottom, rgba(250,245,235,0.9), rgba(250,245,235,0.2)),
              url('https://bbq-fujiya.lp-web.net/wp-content/uploads/2021/04/P5230161-e1619329259119.jpg') center/cover no-repeat;
  color: #0a0604;
}
.pg-contact .page-hero .section-title { color: #0a0604; }
.pg-contact .page-hero .section-sub { color: #333; }
.pg-contact .page-hero .section-label {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
}
.pg-contact .breadcrumb, .pg-contact .breadcrumb a { color: #333; }
.pg-contact .breadcrumb a:hover { color: #0a0604; }

/* ── MENU: 全 menu-section を Warm Cream 化 + グレイン ── */
.menu-section,
.menu-section.bg-smoke,
.menu-section.bg-coal {
  background: #FAF5EB !important;
  color: #0a0604;
  position: relative;
  overflow: hidden;
}
.menu-section::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.menu-section .container { position: relative; z-index: 1; }
.menu-section .section-title { color: #0a0604; font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-weight: 900; }
.menu-section .section-sub { color: #444; }
.menu-section .section-label {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: .85rem;
  margin-bottom: 16px;
}
.menu-section .text-fire {
  background: linear-gradient(transparent 55%, #ffb800 55%);
  color: #0a0604;
  padding: 0 4px;
  -webkit-text-fill-color: initial;
}

/* Split layout 画像枠 */
.split-img-wrap::before { border-color: #0a0604; border-radius: 0; border-width: 3px; }
.split-img { border-radius: 0; border: 3px solid #0a0604; box-shadow: 8px 8px 0 #ffb800; }

/* Price block */
.price-block,
.bg-smoke .price-block {
  background: #fff !important;
  border: 3px solid #0a0604 !important;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  overflow: hidden;
}
.price-block-header {
  background: #0a0604;
  border-bottom: none;
}
.price-block-header h3 {
  color: #ffb800;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .08em;
}
.price-block-header p { color: rgba(255,184,0,.75); }
.price-block th {
  background: #FAF5EB;
  color: #333;
  border-bottom: 3px solid #0a0604;
  font-weight: 700;
}
.price-block td {
  color: #0a0604;
  border-bottom: 1px solid #d3cdbe;
  font-weight: 500;
}
.price-block td:first-child { font-weight: 900; }
.price-val { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }

/* Note box */
.note-box {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 4px 4px 0 rgba(10,6,4,.15);
  color: #333;
}
.note-box strong { color: #0a0604; font-weight: 900; }

/* Children notice */
.children-notice {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.children-notice-title { color: #0a0604; font-weight: 900; }
.children-notice-title::before { background: #ffb800; }
.children-age-grid {
  background: #0a0604;
  border-radius: 0;
}
.children-age-cell { background: #FAF5EB; }
.children-age-label { color: #666; }
.children-age-range { color: #444; }
.children-age-value { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }
.children-note-list { border-top-color: #d3cdbe; }
.children-note-list li { color: #333; }
.children-note-list li::before { color: #ff5c34; font-weight: 900; }

/* Drink cards */
.drink-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  overflow: hidden;
}
.drink-card img { filter: brightness(1); }
.drink-category {
  color: #ffb800;
  background: #0a0604;
  padding: 6px 12px;
  margin-bottom: 12px;
  border-bottom: none;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .08em;
  display: inline-block;
}
.drink-category.gold { color: #ff5c34; background: #0a0604; border-bottom-color: transparent; }
.drink-list li { color: #0a0604; font-weight: 500; }
.drink-list li::before { color: #ff5c34; font-weight: 900; }
.drink-add-note {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  border-radius: 0;
  color: #333;
}
.drink-add-note strong { color: #0a0604; font-weight: 900; }

/* ── CONTACT: contact-section → Cream + グレイン ── */
.contact-section {
  background: #FAF5EB;
  color: #0a0604;
  position: relative;
  overflow: hidden;
}
.contact-section::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.contact-section .container { position: relative; z-index: 1; }
.contact-section .section-title { color: #0a0604; font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-weight: 900; }
.contact-section .section-sub { color: #444; }
.contact-section .section-label {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: .85rem;
  margin-bottom: 16px;
}
.contact-section .text-fire {
  background: linear-gradient(transparent 55%, #ffb800 55%);
  color: #0a0604;
  padding: 0 4px;
  -webkit-text-fill-color: initial;
}

/* Contact card → 白 Brutalist */
.contact-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.contact-card:hover {
  border-color: #0a0604;
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #ffb800;
}
.contact-icon { color: #06C755; font-family: 'Oswald', sans-serif; }
.contact-card h3 { color: #0a0604; font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-weight: 900; }
.contact-card p { color: #333; }
.contact-card-bottom {
  border-top: 3px solid #0a0604;
  background: #FAF5EB;
}
.tel-note { color: #666; }

/* Template box → 白 Brutalist */
.template-box-wrap {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.template-label {
  color: #333;
  border-bottom: 2px solid #d3cdbe;
  background: #FAF5EB;
  font-weight: 700;
}
.template-text { color: #0a0604; }
.copy-btn {
  background: #0a0604;
  color: #ffb800;
  border: 3px solid #0a0604;
  border-radius: 0;
  font-weight: 900;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
}
.copy-btn:hover { background: #1a1008; color: #ffb800; }
.copy-btn.copied { background: #06C755; color: #fff; border-color: #06C755; }

/* Price card */
.price-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.price-card-label { color: #666; }
.price-card-price {
  color: #0a0604;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
}
.price-card-price span { color: #666; }
.price-card-link {
  color: #0a0604;
  background: #ffb800;
  padding: 6px 12px;
  border-bottom: none;
  font-weight: 900;
}
.price-card-link:hover { opacity: .85; border-bottom: none; }

/* Contact FAQ section */
.pg-contact .faq-section {
  background: #FAF5EB;
  color: #0a0604;
  position: relative;
  overflow: hidden;
}
.pg-contact .faq-section::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.pg-contact .faq-section .container { position: relative; z-index: 1; }
.pg-contact .faq-section .section-title { color: #0a0604; }
.pg-contact .faq-section .section-label {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: .85rem;
  margin-bottom: 16px;
}
.pg-contact .faq-section .text-fire {
  background: linear-gradient(transparent 55%, #ffb800 55%);
  color: #0a0604;
  padding: 0 4px;
  -webkit-text-fill-color: initial;
}
.pg-contact .faq-item {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 4px 4px 0 rgba(10,6,4,.15);
}
.pg-contact .faq-q { color: #0a0604; font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-weight: 900; }
.pg-contact .faq-q::before {
  color: #ffb800;
  background: #0a0604;
  padding: 2px 8px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  margin-right: 8px;
}
.pg-contact .faq-a { color: #333; }

/* Info section */
.info-section {
  background: #FAF5EB;
  color: #0a0604;
  position: relative;
  overflow: hidden;
}
.info-section::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}
.info-section .container { position: relative; z-index: 1; }
.info-section .section-title { color: #0a0604; font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-weight: 900; }
.info-section .section-sub { color: #444; }
.info-section .section-label {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: .85rem;
  margin-bottom: 16px;
}
.info-section .text-fire {
  background: linear-gradient(transparent 55%, #ffb800 55%);
  color: #0a0604;
  padding: 0 4px;
  -webkit-text-fill-color: initial;
}

/* Info block cards */
.info-block {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
.info-block-title {
  color: #ffb800;
  background: #0a0604;
  padding: 6px 12px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  display: inline-block;
}
.info-row { border-bottom: 1px solid #d3cdbe; }
.info-label { color: #666; }
.info-value { color: #0a0604; font-weight: 500; }
.info-value-highlight { color: #ff5c34; font-weight: 900; }
.cta-note { color: #666; }

/* ── TICKER 統一（黒地 + 黄文字・B案 Brutalist 準拠） 2026-07-02 ── */
.ticker-wrap {
  background: #0a0604;
  padding: 12px 0;
}
.ticker-track span {
  color: #ffb800;
  font-family: 'Oswald', 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 700;
  letter-spacing: .18em;
  font-size: .82rem;
}

/* ═══════════════════════════════════════════════════════
   P0 統一 完成：残る全ての白文字継承を修正（cta-bar / set-card / noodle-row 等）
   2026-07-02
   ═══════════════════════════════════════════════════════ */

/* Menu page: セット・カード類（.set-card 未上書き分） */
.pg-menu .set-card,
.bg-coal .set-card {
  background: #fff !important;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  overflow: hidden;
  color: #0a0604;
}
.pg-menu .set-card-header {
  background: #0a0604;
  border-bottom: none;
}
.pg-menu .set-card-header h3 {
  color: #ffb800;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .08em;
}
.pg-menu .set-card-body { color: #0a0604; }
.pg-menu .set-contents { color: #333; }
.pg-menu .set-price-num { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }
.pg-menu .set-price-unit { color: #666; font-weight: 500; }
.pg-menu .set-savings { color: #666; }
.pg-menu .set-savings del { color: #999; }

/* Menu page: Noodle Card */
.pg-menu .noodle-card {
  background: #fff !important;
  border: 3px solid #0a0604 !important;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  overflow: hidden;
}
.pg-menu .noodle-card:hover {
  border-color: #0a0604 !important;
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #ffb800;
}
.pg-menu .noodle-card-img { filter: brightness(1) !important; }
.pg-menu .noodle-card-body { color: #0a0604; }
.pg-menu .noodle-card-body h3 { color: #0a0604; font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-weight: 900; }
.pg-menu .noodle-card-body p { color: #333; }
.pg-menu .noodle-row {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  border-radius: 0;
}
.pg-menu .noodle-row.featured { background: #ffb800; border-color: #0a0604; }
.pg-menu .noodle-row-label { color: #0a0604; font-weight: 700; }
.pg-menu .noodle-row-price { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }
.pg-menu .noodle-row-price small { color: #666; font-weight: 500; }

/* CTA bar（オレンジ薄地 → 黒地 Brutalist） */
.cta-bar {
  background: #0a0604;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
  color: #fff;
}
.cta-bar-text h4 {
  color: #ffb800;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
}
.cta-bar-text p { color: #fff; }
.cta-bar .btn.btn-primary {
  background: #ffb800;
  color: #0a0604;
  border: 3px solid #ffb800;
  border-radius: 0;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  box-shadow: 4px 4px 0 rgba(255,255,255,.2);
  transition: transform .25s, box-shadow .25s;
}
.cta-bar .btn.btn-primary:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 rgba(255,255,255,.3);
}

/* Base 文字色を Cream 基調ページで黒に統一（menu / contact のみ・pg-index は個別セクションで既存） */
.pg-menu .menu-section,
.pg-menu .menu-section h1,
.pg-menu .menu-section h2,
.pg-menu .menu-section h3,
.pg-menu .menu-section h4,
.pg-menu .menu-section h5,
.pg-menu .menu-section p,
.pg-menu .page-hero,
.pg-menu .page-hero h1,
.pg-menu .page-hero h2,
.pg-contact .contact-section,
.pg-contact .contact-section h1,
.pg-contact .contact-section h2,
.pg-contact .contact-section h3,
.pg-contact .contact-section h4,
.pg-contact .contact-section p,
.pg-contact .faq-section,
.pg-contact .faq-section h2,
.pg-contact .faq-section p,
.pg-contact .info-section,
.pg-contact .info-section h2,
.pg-contact .info-section h3,
.pg-contact .info-section p,
.pg-contact .page-hero,
.pg-contact .page-hero h1,
.pg-contact .page-hero h2 { color: #0a0604; }

/* menu-section 内の見出しは Zen Kaku 900 */
.pg-menu .menu-section h3,
.pg-menu .menu-section h4 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
}

/* ═══════════════════════════════════════════════════════
   P0 統一 修正：特異度上げて色競合を解消
   2026-07-02
   ═══════════════════════════════════════════════════════ */

/* Menu / Contact の .section-label = 黒バッジ + 黄文字（p 汎用override より特異度上）*/
body.pg-menu .menu-section .section-label,
body.pg-menu .page-hero .section-label,
body.pg-contact .contact-section .section-label,
body.pg-contact .faq-section .section-label,
body.pg-contact .info-section .section-label,
body.pg-contact .page-hero .section-label {
  background: #0a0604;
  color: #ffb800;
}
body.pg-contact .info-block-title,
body.pg-contact .info-block-title-secondary {
  background: #0a0604;
  color: #ffb800;
  display: inline-block;
  padding: 6px 12px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
}

/* Menu: noodle-plan-card (pg-menu 未上書きだった) */
body.pg-menu .noodle-plan-card {
  background: #fff;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
body.pg-menu .noodle-plan-card.highlight { box-shadow: 6px 6px 0 #ff5c34; }
body.pg-menu .noodle-plan-name { color: #0a0604; font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-weight: 900; }
body.pg-menu .noodle-plan-price { color: #0a0604; font-family: 'Oswald', sans-serif; font-weight: 700; }
body.pg-menu .noodle-plan-price small { color: #666; font-weight: 500; }
body.pg-menu .noodle-plan-desc { color: #333; }
body.pg-menu .noodle-plan-features li { color: #0a0604; font-weight: 500; }
body.pg-menu .noodle-plan-features li::before { color: #ffb800; background: #0a0604; padding: 0 4px; font-weight: 900; font-size: .7rem; }
body.pg-menu .noodle-plan-addon { background: #FAF5EB; border: 2px solid #0a0604; border-radius: 0; color: #333; }
body.pg-menu .noodle-plan-addon p { color: #333; }
body.pg-menu .noodle-plan-addon strong { color: #0a0604; font-weight: 900; }

/* Menu: cta-bar 黒背景 = 黄h4 + 白p（特異度上） */
body.pg-menu .cta-bar {
  background: #0a0604;
  border: 3px solid #0a0604;
  border-radius: 0;
  box-shadow: 6px 6px 0 #ffb800;
}
body.pg-menu .cta-bar-text h4 {
  color: #ffb800;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
}
body.pg-menu .cta-bar-text p { color: #fff; }
body.pg-menu .cta-bar .btn.btn-primary {
  background: #ffb800;
  color: #0a0604;
  border: 3px solid #ffb800;
  font-weight: 900;
  box-shadow: 4px 4px 0 rgba(255,255,255,.2);
}

/* Index: btn-outline (pricing 末尾のメニュー導線)がCream地に white text で見えない */
body.pg-index .btn.btn-outline {
  background: #0a0604;
  color: #ffb800;
  border: 3px solid #0a0604;
  border-radius: 0;
  padding: 14px 28px;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  box-shadow: 4px 4px 0 #ffb800;
  text-decoration: none;
  display: inline-block;
  transition: transform .25s, box-shadow .25s;
}
body.pg-index .btn.btn-outline:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 #ffb800;
}

/* section-title 内の <br> 前後がインライン span で色継承漏れ対策 */
.menu-section .section-title,
.contact-section .section-title,
.pg-contact .faq-section .section-title,
.info-section .section-title { color: #0a0604 !important; }

/* ═══ P0 統一 最終：黒ヘッダー内の h3/p を黄色に（.pg-menu .menu-section h3 の広範override より特異度上）═══ */
body.pg-menu .price-block-header h3,
body.pg-menu .set-card-header h3 {
  color: #ffb800;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .08em;
}
body.pg-menu .price-block-header p { color: rgba(255,184,0,.75); }

/* Page-hero h1 (page-hero bg image + overlay) は黒文字で明確) */
body.pg-menu .page-hero .section-title,
body.pg-contact .page-hero .section-title {
  color: #0a0604 !important;
  text-shadow: 0 2px 12px rgba(250,245,235,.9), 0 0 4px rgba(250,245,235,.95);
}
body.pg-menu .page-hero .section-sub,
body.pg-contact .page-hero .section-sub {
  color: #0a0604 !important;
  text-shadow: 0 1px 8px rgba(250,245,235,.9), 0 0 3px rgba(250,245,235,.95);
}

/* ═══════════════════════════════════════════════════════
   MENU-PLANS 統合セクション + Sticky Stacked Cards 2026-07-02
   出典: NotebookLM lm-frontend [b9a4c953] animation-timeline: view() Chrome 115+/Safari 26+
         Cover 82.96% Baseline / scroll-driven-animations.style / css-tricks / codyhouse
         lm-marketing 情報探索優先度: Pain-to-Proof-to-Process (Involve Digital 2026)
         Accordion +9% CVR (Digital Applied) / モバイル 64% first viewport only
   統合対象: plans + meat + noodle-exp + pricing 4 セクション → 1 セクション
   期待効果: 縦スクロール ~9,300px → ~2,000px (78% 圧縮)
   ═══════════════════════════════════════════════════════ */

.menu-plans {
  background: #FAF5EB;
  padding: 80px 20px 40px;
  position: relative;
  overflow: clip;  /* clip = sticky を壊さずコンテンツ切り取り (Chrome 90+/Safari 16+/Firefox 111+) */
  color: #0a0604;
}
@media (min-width: 768px) {
  .menu-plans { padding: 96px 32px 60px; }
}
.menu-plans::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: .09;
  mix-blend-mode: multiply;
}

/* Header */
.menu-plans-header {
  position: relative; z-index: 1;
  max-width: 900px;
  margin: 0 auto 40px;
}
.menu-plans-header .section-label {
  display: inline-block;
  background: #0a0604;
  color: #ffb800;
  padding: 4px 14px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: .85rem;
  margin-bottom: 16px;
}
.menu-plans-header .section-title {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(1.7rem, 5vw, 2.5rem);
  line-height: 1.35;
  margin: 0 0 12px;
  letter-spacing: -.015em;
}
.menu-plans-header .section-sub {
  color: #444;
  margin: 0;
  font-size: clamp(.9rem, 2.3vw, 1rem);
  line-height: 1.7;
}

/* ═══ MENU-PLANS 簡略化 (2026-07-08) — 4 sticky cards から 2 card summary へ ═══ */
.mp-summary {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (min-width: 768px) {
  .mp-summary { grid-template-columns: 1fr 1fr; gap: 24px; padding: 0 32px; }
}
.mp-card {
  background: #fff;
  border: 3px solid #0a0604;
  box-shadow: 8px 8px 0 #ffb800;
  padding: 24px;
  color: #0a0604;
}
@media (min-width: 768px) {
  .mp-card { padding: 32px; }
}
.mp-card-title {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 900;
  font-size: clamp(1.1rem, 3vw, 1.35rem);
  margin: 0 0 6px;
  padding-bottom: 12px;
  border-bottom: 3px solid #0a0604;
  letter-spacing: 0.02em;
}
.mp-card-note {
  font-size: .78rem;
  color: #555;
  margin: 8px 0 20px;
  font-weight: 600;
}
/* 基本コース料金表 */
.mp-price-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'Noto Sans JP', sans-serif;
}
.mp-price-table th,
.mp-price-table td {
  padding: 12px 8px;
  text-align: center;
  border-bottom: 2px solid #ececec;
}
.mp-price-table thead th {
  background: #0a0604;
  color: #ffb800;
  font-size: .82rem;
  font-weight: 700;
  border-bottom: 3px solid #0a0604;
  letter-spacing: 0.05em;
}
.mp-price-table tbody td {
  font-family: 'Oswald', sans-serif;
  font-size: 1rem;
  font-weight: 500;
}
.mp-price-table tbody td:first-child {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: .9rem;
}
.mp-price-table tbody td strong {
  font-size: 1.15rem;
  font-weight: 900;
  color: #0a0604;
}
.mp-price-table tbody tr:last-child td { border-bottom: none; }
/* 追加オプションリスト */
.mp-option-list {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.mp-option-list li {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 2px 12px;
  padding: 10px 12px;
  background: #fafaf7;
  border-left: 4px solid #ffb800;
}
.mp-option-name {
  font-weight: 700;
  font-size: .92rem;
}
.mp-option-price {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 1.02rem;
  color: #0a0604;
  text-align: right;
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}
.mp-option-desc {
  font-size: .72rem;
  color: #666;
  grid-column: 1 / 3;
  grid-row: 2 / 3;
}

/* ═══ GSAP ScrollTrigger Peel-off Pattern (KDDI準拠 v2 - 中央固定) 2026-07-02 ═══ */
/* Pin container：GSAP がここを pin する。header は外に出したので pin 内は cards のみ */
.pin-container {
  position: relative;
  z-index: 1;
  height: 100vh;
  display: flex;
  align-items: center;    /* カードを画面中央に */
  justify-content: center;
  padding: 0 20px;
}

/* Stack Cards Stage：カードが absolute で重ねられる領域 */
.stack-cards {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 900px;
  height: min(88vh, 780px);   /* カード領域高さ（画面中央に配置される）*/
}

/* Card base：全て absolute 同じ位置に重ねる */
.stack-card {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  border: 3px solid #0a0604;
  box-shadow: 8px 8px 0 #ffb800;
  padding: 20px 18px;
  overflow-y: auto;
  transform-origin: center top;
  will-change: transform, opacity;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 768px) {
  .stack-card { padding: 28px 32px; }
}

/* Card 順序：z-index のみで層を作る。offset 廃止（4枚重ね deck 見た目なし・topの1枚だけ視認）*/
.stack-card:nth-child(1) { z-index: 4; }
.stack-card:nth-child(2) { z-index: 3; }
.stack-card:nth-child(3) { z-index: 2; }
.stack-card:nth-child(4) { z-index: 1; }

/* Reduced motion or GSAP 未ロード時のフォールバック（縦積み表示）*/
@media (prefers-reduced-motion: reduce) {
  .pin-container { height: auto; display: block; padding: 0; }
  .stack-cards { height: auto; }
  .stack-card {
    position: relative;
    top: auto; bottom: auto; left: 0; right: 0;
    transform: none !important;
    margin-bottom: 20px;
    max-height: none;
  }
}
body:not(.gsap-ready) .pin-container { height: auto; display: block; padding: 0; }
body:not(.gsap-ready) .stack-cards { height: auto; }
body:not(.gsap-ready) .stack-card {
  position: relative;
  top: auto; bottom: auto; left: 0; right: 0;
  transform: none;
  margin-bottom: 20px;
  max-height: none;
}

/* stack-details-open (元アコーディオン・常時表示) */
.stack-details-open {
  margin-top: 14px;
  border-top: 2px dashed #0a0604;
  padding-top: 12px;
}
.stack-details-title {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.82rem, 2.05vw, .92rem);
  margin: 0 0 10px;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.stack-details-title::before {
  content: '▼';
  color: #ff5c34;
  font-size: .8em;
}

/* Card head */
.stack-card-head { margin-bottom: 18px; }
.stack-badge {
  display: inline-block;
  background: #0a0604;
  color: #ffb800;
  padding: 4px 12px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .1em;
  font-size: .75rem;
  margin-bottom: 12px;
}
.stack-badge.persimmon { background: #ff5c34; color: #fff; }
.stack-h3 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(1.35rem, 4vw, 1.9rem);
  line-height: 1.35;
  margin: 0 0 8px;
  letter-spacing: -.015em;
}
.stack-h3 .marker {
  background: linear-gradient(transparent 55%, #ffb800 55%);
  padding: 0 4px;
}
.stack-sub {
  color: #333;
  font-size: clamp(.82rem, 2.1vw, .92rem);
  margin: 0;
  line-height: 1.7;
}

/* Card 1: Plans mini grid */
.plans-mini-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 16px 0 14px;
}
@media (min-width: 640px) {
  .plans-mini-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
}
.plan-mini {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  padding: 12px 10px;
  position: relative;
}
.plan-mini.featured { background: #ffb800; }
.plan-mini-badge {
  position: absolute; top: -8px; right: -3px;
  background: #ff5c34; color: #fff;
  padding: 2px 8px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: .62rem;
  letter-spacing: .05em;
}
.plan-mini-name {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.82rem, 2.1vw, .95rem);
  margin-bottom: 6px;
  line-height: 1.3;
}
.plan-mini-price {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  color: #0a0604;
  font-size: clamp(1.1rem, 3vw, 1.3rem);
  line-height: 1;
  margin-bottom: 6px;
}
.plan-mini-price span {
  font-size: .5em;
  font-weight: 500;
  color: #666;
  margin-left: 3px;
}
.plan-mini-desc {
  font-size: clamp(.68rem, 1.7vw, .75rem);
  color: #333;
  margin: 0;
  line-height: 1.5;
}

/* Card 2: Noodle mini grid */
.noodle-mini-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;  /* SPも2列（2アイテムなので縦積み回避）*/
  gap: 10px;
  margin: 16px 0 12px;
}
@media (min-width: 640px) {
  .noodle-mini-grid { grid-template-columns: 1fr 1fr; }
}
.noodle-mini {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  overflow: hidden;
}
.noodle-mini img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}
.noodle-mini-body { padding: 12px 14px; }
.noodle-mini h4 {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.9rem, 2.3vw, 1rem);
  margin: 0 0 4px;
}
.noodle-mini p {
  color: #333;
  font-size: clamp(.72rem, 1.8vw, .8rem);
  margin: 0 0 8px;
  line-height: 1.6;
}
.noodle-mini-price {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  color: #0a0604;
  font-size: clamp(.8rem, 2vw, .9rem);
  background: #ffb800;
  padding: 4px 10px;
  display: inline-block;
}

/* Card 3: Meat mini grid */
.meat-mini-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 18px 0 16px;
}
@media (min-width: 640px) {
  .meat-mini-grid { grid-template-columns: repeat(4, 1fr); }
}
.meat-mini {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  padding: 14px 10px 12px;
  position: relative;
  text-align: center;
}
.meat-mini.featured { background: #ffb800; }
.meat-mini-badge {
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  background: #0a0604; color: #ffb800;
  padding: 2px 8px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: .62rem;
  letter-spacing: .05em;
  white-space: nowrap;
}
.meat-mini-badge.persimmon { background: #ff5c34; color: #fff; }
.meat-mini-name {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.82rem, 2vw, .95rem);
  margin-top: 2px;
}
.meat-mini-tag {
  font-size: .66rem;
  color: #666;
  margin: 2px 0 6px;
  line-height: 1.4;
}
.meat-mini-price {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  color: #0a0604;
  font-size: clamp(1.05rem, 2.8vw, 1.2rem);
  line-height: 1;
}
.meat-mini-price span {
  display: inline-block;
  font-size: .5em;
  font-weight: 500;
  color: #666;
  margin-left: 2px;
}

/* Set block (Card 3) */
.stack-set-block { margin-top: 16px; }
.stack-set-title {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.92rem, 2.3vw, 1.02rem);
  margin: 0 0 10px;
}
.stack-set-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 10px;
}
.stack-set {
  background: #fff;
  border: 2px solid #0a0604;
  padding: 10px 12px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}
.stack-set-name {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.78rem, 2vw, .9rem);
}
.stack-set-price {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  color: #0a0604;
  font-size: clamp(.95rem, 2.4vw, 1.1rem);
  white-space: nowrap;
}
.stack-set-price small {
  font-size: .55em;
  font-weight: 500;
  color: #666;
  margin-left: 2px;
}

/* Card 4: Drink summary */
.drink-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);  /* SPも3列（縦積み回避）*/
  gap: 8px;
  margin: 18px 0 14px;
}
@media (min-width: 640px) {
  .drink-summary { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}
.drink-summary-item {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  padding: 14px 12px;
  text-align: center;
}
.drink-summary-item.accent {
  background: #ffb800;
  grid-column: auto;  /* SP でも全列独立（横並び 3 列維持）*/
}
.drink-summary-label {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.78rem, 2vw, .88rem);
  margin-bottom: 6px;
  line-height: 1.3;
}
.drink-summary-price {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  color: #0a0604;
  font-size: clamp(1.25rem, 3.5vw, 1.55rem);
  line-height: 1;
}
.drink-summary-price span {
  display: block;
  font-size: .48em;
  font-weight: 500;
  color: #444;
  margin-top: 4px;
}

/* Details accordion */
.stack-details {
  margin-top: 16px;
  border: 2px dashed #0a0604;
}
.stack-details[open] { padding-bottom: 12px; }
.stack-details summary {
  cursor: pointer;
  padding: 12px 14px;
  background: #FAF5EB;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(.82rem, 2.05vw, .92rem);
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
  user-select: none;
}
.stack-details summary::before {
  content: '▶';
  color: #ff5c34;
  font-size: .8em;
  transition: transform .2s;
}
.stack-details[open] summary::before { transform: rotate(90deg); }
.stack-details summary::-webkit-details-marker { display: none; }

.stack-table {
  width: calc(100% - 28px);
  border-collapse: collapse;
  margin: 14px;
  font-family: 'Noto Sans JP', sans-serif;
}
.stack-table th {
  background: #0a0604;
  color: #ffb800;
  padding: 8px 10px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: clamp(.7rem, 1.75vw, .8rem);
  text-align: left;
}
.stack-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #d3cdbe;
  color: #0a0604;
  font-size: clamp(.72rem, 1.85vw, .82rem);
}
.stack-table tr:last-child td { border-bottom: none; }
.stack-table td:first-child { font-weight: 700; }

.stack-note {
  padding: 10px 14px;
  font-size: clamp(.72rem, 1.8vw, .82rem);
  color: #333;
  line-height: 1.7;
  margin: 0;
}
.stack-note strong { color: #0a0604; font-weight: 900; }
.stack-note del { color: #999; }

/* Veggie mini tags */
.veggie-mini-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 14px;
}
.veggie-mini-tag {
  background: #FAF5EB;
  border: 2px solid #0a0604;
  color: #0a0604;
  padding: 4px 10px;
  font-size: clamp(.72rem, 1.8vw, .8rem);
  font-weight: 700;
}

/* Footer button */
.menu-plans-footer {
  position: relative; z-index: 1;
  text-align: center;
  margin: 24px auto 0;
  max-width: 900px;
}

/* Plan mini card images (Card 1) */
.plan-mini-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  border: 2px solid #0a0604;
  margin: 0 0 8px;
}
.plan-mini { display: flex; flex-direction: column; }

/* Meat mini card images (Card 3) */
.meat-mini-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  border: 2px solid #0a0604;
  margin: 0 0 6px;
}
.meat-mini { display: flex; flex-direction: column; }

/* ═══ menu-plans を通常フローに revert（peel-off から plain vertical へ）2026-07-02 ═══ */
.menu-plans .stack-cards {
  height: auto !important;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 0;  /* 親 .menu-plans が 20px 持ってるので削除（二重padding解消）*/
}
.menu-plans .stack-card {
  position: relative !important;
  top: auto !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  transform: none !important;
  opacity: 1 !important;
  max-height: none !important;
  overflow: visible;
}

/* ═══ Compare ScrollTrigger Peel-off (KDDI FS 実装参考・PC/モバイル統一) 2026-07-06 ═══ */
/* 出典参考: https://www.kddi-fs.com/shared/css/top.css L1155-1330 (keyframe値・stack-layer構造) */
/*         https://www.kddi-fs.com/shared/js/top.js  L810-870 (ScrollTrigger + pin) */
/* 実装：ページスクロール駆動（KDDI と同じ）・カードは絶対配置・card-anim class で peel */

/* --- コンテナ / 見出し配置 --- */
.compare-inner {
  display: flex !important;
  flex-direction: column;
  gap: 20px;
  padding: 0;
  max-width: 800px;
  margin: 0 auto;
}
.compare-inner .compare-h2 { margin: 0; }
.compare-inner .compare-note {
  margin: 32px 0 0;             /* stack layer との余白 */
  padding: 14px 16px;
  border-left: 3px solid #6a7d5d;
  line-height: 1.7;
  font-size: .8rem;
  color: #d5d0c4;
}

/* --- スワイプヒントバッジ：カード右上に「↑ めくる」を常時表示 --- */
.compare-swipe-badge {
  position: absolute;
  top: -14px;
  right: -10px;
  z-index: 12;                     /* is-peeled (11) より上 */
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: #ffb800;
  border: 3px solid #0a0604;
  border-radius: 999px;
  color: #0a0604;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  box-shadow: 3px 3px 0 #0a0604;
  animation: swipeBadgeBounce 1.6s ease-in-out infinite;
  transform-origin: center;
  transition: opacity 0.4s, transform 0.4s;
  pointer-events: none;
}
.compare-swipe-badge.is-hidden {
  opacity: 0;
  transform: translateY(-20px);
}
.compare-swipe-badge svg {
  animation: swipeBadgeArrow 1.6s ease-in-out infinite;
}
@keyframes swipeBadgeBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-5px); }
}
@keyframes swipeBadgeArrow {
  0%, 100% { transform: translateY(0); opacity: 1; }
  50%      { transform: translateY(-2px); opacity: 0.6; }
}
@media (min-width: 768px) {
  .compare-swipe-badge {
    top: -18px; right: -14px;
    padding: 8px 16px;
    font-size: .8rem;
  }
}

/* --- 進捗表示（N/4 + progress bar）--- */
.compare-progress {
  max-width: 260px;
  margin: 12px auto 0;
  text-align: center;
}
.compare-progress-count {
  display: block;
  font-size: .85rem;
  font-weight: 700;
  color: #ffb800;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
.compare-progress-current {
  font-size: 1.1rem;
}
.compare-progress-bar {
  width: 100%;
  height: 5px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
  overflow: hidden;
}
.compare-progress-fill {
  height: 100%;
  width: 25%;                                            /* 初期 1/4 */
  background: #ffb800;
  border-radius: 3px;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);   /* スムーズに伸びる */
}
.compare-pin {
  position: relative;
  padding: 0;
  margin: 0 auto;
  width: 100%;
}

/* --- Outer wrap: stack-layer と card-container を包む親 --- */
.compare-wrap {
  position: relative;
  width: 100%;
  max-width: 340px;
  margin: 0 auto;
  padding-bottom: 24px;   /* behind-3 の translateY(18px) 分 + 少し余裕 */
}
@media (min-width: 768px) {
  .compare-wrap { max-width: 520px; padding-bottom: 28px; }
}

/* --- card-stack 廃止：4 枚の compare-card 自身が物理的な stack を構成 --- */
.card-stack, .stack-layer { display: none !important; }

/* --- カードのコンテナ：全カード同じ高さに揃える（一番大きい content 実測にフィット・余白最小） --- */
.compare-cards {
  position: relative;
  width: 100%;
  min-height: 380px;    /* mobile: iPhone SE 375px で card 2 実測 370px フィット */
  z-index: 5;
  overflow: visible;
  touch-action: none;
  cursor: grab;
}
.compare-cards:active { cursor: grabbing; }
@media (min-width: 768px) {
  .compare-cards { min-height: 400px; }  /* PC: 一番大きい card 2 (385px) にフィット */
}

/* --- KDDI 動画準拠: 中央のカードが固定、下に thin edge が水平に並ぶ --- */
/* peel = 上方向にふわっと消える + 下の layer edge が 1 つ消える */
.compare-cards .compare-card {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: auto;
  min-height: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 3px solid #0a0604;
  padding: 20px 22px;   /* 上下 padding 圧縮で mobile 340px に収める */
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  will-change: transform, opacity;
  transition:
    transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
    opacity 0.6s ease-out,
    filter 0.6s ease-out;
}
@media (min-width: 768px) {
  .compare-cards .compare-card { padding: 40px; gap: 24px; }
}

/* Active card: content 表示・一番上 */
.compare-cards .compare-card.is-active {
  z-index: 10;
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
  filter: blur(0);
}

/* Behind cards: 下方向のみ 6/12/18px offset、content 非表示、edge のみ visible */
.compare-cards .compare-card.is-behind-1,
.compare-cards .compare-card.is-behind-2,
.compare-cards .compare-card.is-behind-3 {
  pointer-events: none;
  opacity: 1;
}

/* 下カードの内容は 0.3s でふわっとフェードイン */
.compare-cards .compare-card > * {
  opacity: 0;
  transition: opacity 0.3s ease-out;
}
.compare-cards .compare-card.is-active > * {
  opacity: 1;
}
/* is-peeled は card 自身の opacity fade で content も自動フェードアウト */
.compare-cards .compare-card.is-peeled > * {
  opacity: 1;
  transition: none;
}
.compare-cards .compare-card.is-behind-1 { z-index: 9; transform: translateY(6px);  }
.compare-cards .compare-card.is-behind-2 { z-index: 8; transform: translateY(12px); }
.compare-cards .compare-card.is-behind-3 { z-index: 7; transform: translateY(18px); }

/* Peeled: 上に大きく飛んでふわっと消える */
.compare-cards .compare-card.is-peeled {
  z-index: 11;
  transform: translateY(-120%) scale(0.94);
  opacity: 0;
  filter: blur(6px);
  pointer-events: none;
}

/* Fallback */
.compare-cards .compare-card:first-child { z-index: 10; }
.compare-cards .compare-card:not(:first-child):not(.is-active):not(.is-behind-1):not(.is-behind-2):not(.is-behind-3):not(.is-peeled) {
  opacity: 0;
}

/* --- Reduced motion: peel-off 無効・全カード表示 fallback --- */
@media (prefers-reduced-motion: reduce) {
  .compare-cards { min-height: auto; overflow: visible; }
  .compare-cards .compare-card {
    position: relative;
    inset: auto;
    opacity: 1;
    pointer-events: auto;
    animation: none !important;
    margin-bottom: 20px;
  }
}

/* ═══ compare-card 中身のスタイル（変更なし） ═══ */
.compare-card-badge {
  display: inline-block;
  background: #0a0604;
  color: #ffb800;
  padding: 4px 12px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: .1em;
  font-size: .78rem;
  align-self: flex-start;
}
.compare-card-label {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #0a0604;
  font-size: clamp(1.4rem, 4.5vw, 2rem);
  line-height: 1.3;
  margin: 0;
  letter-spacing: -.015em;
}
.compare-card-general,
.compare-card-fuji {
  padding: 18px 20px 16px;
  border: 2px solid #0a0604;
  position: relative;
  margin-top: 12px;                              /* 上に余白 12px */
  font-size: clamp(1rem, 2.7vw, 1.15rem);
  line-height: 1.7;
  color: #333;
}
.compare-card-general { background: #FAF5EB; }
.compare-card-fuji { background: #ffb800; color: #0a0604; }
.compare-card-general-tag,
.compare-card-fuji-tag {
  position: absolute;
  top: -14px;
  left: 12px;
  padding: 5px 14px;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: 1rem;                               /* さらに拡大 */
  letter-spacing: .05em;
  line-height: 1.2;
}
.compare-card-general-tag { background: #666; color: #fff; }
.compare-card-fuji-tag { background: #0a0604; color: #ffb800; }
.compare-card-fuji-check {
  display: inline-block;
  width: 18px;
  height: 18px;
  background: #0a0604;
  color: #ffb800;
  border-radius: 50%;
  text-align: center;
  line-height: 18px;
  font-size: .8rem;
  font-weight: 900;
  margin-right: 6px;
}
.compare-emph {
  font-weight: 900;
  color: #0a0604;
  background: rgba(255,255,255,.4);
  padding: 0 4px;
}
.compare-card-general .compare-emph { background: none; }

/* ═══ SP 横スワイプ化：3+ 項目の縦積み解消 2026-07-03 ═══ */
/* NOTE: loss は 2026-07-04 に icon+text の縦積みリストに変更したため除外 */
@media (max-width: 640px) {
  /* 共通：edge-to-edge 横スクロール（scroll-padding で first card 位置揃え）*/
  .reviews-grid,
  .usp-grid {
    display: flex !important;
    grid-template-columns: none !important;
    grid-template-areas: none !important;
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 20px;   /* first card を 20px から始める（左右padding 相殺）*/
    align-items: flex-start !important;  /* 各カード自然高さ（下の空白余白解消）*/
    gap: 12px;
    padding: 4px 0 20px;
    margin: 0 -20px;               /* 親の padding 相殺 = edge-to-edge scroll */
    padding-inline: 20px;          /* 端で snap しても 20px 隙間 */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .reviews-grid::-webkit-scrollbar,
  .usp-grid::-webkit-scrollbar { display: none; }

  .review-card,
  .usp-card {
    scroll-snap-align: start;
    flex: 0 0 82vw;
    max-width: 320px;
    min-height: 0;
    height: auto !important;         /* stretch 解除で content-based height */
  }
  /* usp-card 内部 grid-area 打ち消し（親が flex になったため）*/
  .usp-card-1, .usp-card-2, .usp-card-3, .usp-card-4 { grid-area: auto; }

  /* SP: card 2+3 を縦に組んで 1 スクロール単位に（両隣との高さ差解消）*/
  .usp-card-pair {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 0 0 82vw;
    max-width: 320px;
    scroll-snap-align: start;
  }
  .usp-card-pair .usp-card {
    flex: 0 0 auto;    /* pair 内部は自然高さ */
    max-width: none;
    width: 100%;
  }
}
/* PC/Tablet: usp-card-pair は grid 構造を邪魔しない（子カードを直接 grid item として扱う）*/
@media (min-width: 641px) {
  .usp-card-pair { display: contents; }
}

/* =============================================
   UMAMILABO クロスセルセクション (2026-08-07 追加)
   ============================================= */
.umamilabo-cs {
  background: var(--coal);
  padding: 80px 0;
  border-top: 1px solid rgba(255,215,0,0.15);
  border-bottom: 1px solid rgba(255,215,0,0.15);
}
.umamilabo-cs-title {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  text-align: center;
  color: var(--cream);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 16px;
}
.umamilabo-cs-sub {
  font-size: 0.92rem;
  line-height: 1.9;
  color: rgba(255,248,238,0.75);
  text-align: center;
  max-width: 700px;
  margin: 0 auto 40px;
}
.umamilabo-cs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 32px;
}
@media (max-width: 900px) { .umamilabo-cs-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .umamilabo-cs-grid { grid-template-columns: 1fr 1fr; gap: 12px; } }
.umamilabo-cs-card {
  background: var(--smoke);
  border: 2px solid rgba(255,215,0,0.15);
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  transition: transform .2s, border-color .2s, box-shadow .2s;
  display: block;
}
.umamilabo-cs-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 8px 8px 0 var(--gold);
  border-color: var(--gold);
}
.umamilabo-cs-card img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.umamilabo-cs-card-body { padding: 14px 14px 16px; }
.umamilabo-cs-card-name {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: 6px;
}
.umamilabo-cs-card-use {
  font-size: 0.75rem;
  color: rgba(255,248,238,0.8);
  line-height: 1.5;
}
.umamilabo-cs-more {
  display: block;
  width: fit-content;
  margin: 0 auto;
  padding: 14px 32px;
  background: transparent;
  border: 2px solid var(--gold);
  color: var(--gold);
  text-decoration: none;
  font-weight: 700;
  font-size: 0.92rem;
  border-radius: 4px;
  transition: background .18s, color .18s;
}
.umamilabo-cs-more:hover {
  background: var(--gold);
  color: var(--coal);
}
