/* ==========================================================
   きっかけ！インターン LP
   direction: 文化祭フライヤー × メキシカン屋台 ネオポップ
   ========================================================== */
:root {
  --orange: #E89684;
  --orange-deep: #D06A55;
  --orange-dark: #C25A45;
  --orange-text: #B53A0B; /* 小さい文字用（cream上でも4.5:1確保） */
  --green-text: #2F7A3C;  /* 小さい文字用 */
  --cream: #FFF4E4;
  --cream-2: #FFEBD0;
  --paper: #FFFDF8;
  --ink: #2B1D16;
  --green: #3E9B4F;
  --line-green: #06C755;
  --red: #E08A7B;
  --yellow: #F2C24E;
  --font-display: 'Mochiy Pop One', sans-serif;
  --font-body: 'Zen Maru Gothic', sans-serif;
  --font-hand: 'Zen Maru Gothic', sans-serif; /* Yusei Magicは性能都合で廃止（フォント1家族削減） */
  --shadow-hard: 4px 4px 0 var(--ink);
  --border-pop: 3px solid var(--ink);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; scroll-padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
body {
  font-family: var(--font-body);
  font-weight: 500;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.9;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
/* 紙っぽいザラつき */
body::after {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 999;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--orange-dark); outline-offset: 3px; border-radius: 4px; }
.section-entry :focus-visible, .section-dark :focus-visible, .footer :focus-visible, .marquee:focus-visible { outline-color: var(--yellow); }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}
.skip-link {
  position: absolute; left: 8px; top: -60px; z-index: 1001;
  background: var(--ink); color: var(--cream); padding: .6em 1.2em;
  border-radius: 0 0 12px 12px; text-decoration: none; font-weight: 700;
  transition: top .2s;
}
.skip-link:focus { top: 0; }
.sp { display: none; }
@media (max-width: 640px) { .sp { display: inline; } }

.container { max-width: 1080px; margin-inline: auto; padding-inline: clamp(1.25rem, 4vw, 2.5rem); }

/* ---------- topbar ---------- */
.topbar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .7rem clamp(1rem, 4vw, 2rem);
  background: var(--paper); border-bottom: var(--border-pop);
  position: relative; z-index: 20;
}
.topbar-logo {
  font-family: var(--font-display); font-size: clamp(1rem, 2.8vw, 1.25rem);
  display: flex; align-items: center; gap: .4em;
}
.logo-mark { font-size: 1.3em; }

/* ---------- marquee ---------- */
.marquee {
  background: var(--ink); color: var(--cream);
  overflow: hidden; white-space: nowrap;
  border-bottom: var(--border-pop);
  padding-block: .45rem;
}
.marquee-track {
  display: inline-flex; width: max-content;
  animation: marquee 26s linear infinite;
  font-family: var(--font-display); font-size: .85rem; letter-spacing: .08em;
}
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
.marquee { cursor: pointer; }
.marquee.paused .marquee-track { animation-play-state: paused; }
.marquee-or { background: var(--orange-dark); color: #fff; border-top: var(--border-pop); }
.taco-mini { display: inline-block; width: 1.25em; height: 1.05em; vertical-align: -.18em; margin-inline: .15em; }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .1em; text-align: center; text-decoration: none;
  font-family: var(--font-display); line-height: 1.4;
  border: var(--border-pop); border-radius: 16px;
  padding: .9em 1.8em; box-shadow: var(--shadow-hard);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--ink); }
.btn:active { transform: translate(4px, 4px); box-shadow: 0 0 0 var(--ink); }
.btn-primary { background: var(--orange-dark); color: #fff; font-size: 1.2rem; }
.btn-primary:hover { background: #A8370C; }
.btn-primary .btn-note { color: #fff; }
.btn-ghost { background: var(--paper); color: var(--ink); font-size: 1rem; }
.btn-line { background: var(--line-green); color: var(--ink); font-size: 1rem; }
.btn-line .btn-note { color: var(--ink); }
.btn-note { font-family: var(--font-body); font-weight: 700; font-size: .8rem; display: block; }
.btn-small { padding: .45em 1.1em; font-size: .85rem; background: var(--orange-dark); color: #fff; border-radius: 12px; box-shadow: 3px 3px 0 var(--ink); }
.btn-big { font-size: clamp(1.25rem, 3.5vw, 1.6rem); padding: 1em 2.2em; border-radius: 20px; }
.cta-group { display: flex; flex-wrap: wrap; gap: 1rem 1.25rem; justify-content: center; align-items: stretch; }

/* ---------- hero ---------- */
.hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(38rem 38rem at 88% -8%, rgba(255, 201, 60, .35), transparent 60%),
    radial-gradient(30rem 30rem at -10% 105%, rgba(62, 155, 79, .18), transparent 60%),
    radial-gradient(rgba(43, 29, 22, .07) 1.5px, transparent 1.5px) 0 0 / 22px 22px,
    var(--cream);
  padding: clamp(2rem, 4vh, 3rem) 1.25rem clamp(4rem, 8vh, 5.5rem);
  text-align: center;
}
.hero-ghost {
  display: none; /* 背景透かし文字 TACOS×INTERN を撤去：タイトルと重なって読みにくいため */
  position: absolute; top: 4%; left: 50%; transform: translateX(-50%) rotate(-6deg);
  font-family: var(--font-display); font-size: clamp(4.5rem, 16vw, 13rem);
  color: transparent; -webkit-text-stroke: 2px rgba(43, 29, 22, .08);
  white-space: nowrap; user-select: none; pointer-events: none;
}
.hero-inner { position: relative; max-width: 60rem; margin-inline: auto; }
.hero-label span {
  display: inline-block; font-family: var(--font-body); font-weight: 900; font-size: clamp(1rem, 2.8vw, 1.2rem);
  background: var(--paper); border: var(--border-pop); border-radius: 999px;
  padding: .35em 1.3em; box-shadow: var(--shadow-hard); transform: rotate(-1deg);
}
.hero-brand {
  display: inline-block; margin-top: 1rem;
  font-family: var(--font-display); font-size: clamp(1.5rem, 4.5vw, 2.2rem);
  background: var(--orange-deep); color: #fff;
  border: var(--border-pop); border-radius: 18px;
  padding: .35em .9em; box-shadow: 6px 6px 0 var(--ink);
  transform: rotate(-2deg);
}
.hero-mega {
  margin-top: clamp(1.1rem, 2.6vh, 1.6rem);
  font-family: var(--font-display); line-height: 1.08;
  font-size: clamp(2.7rem, 10.5vw, 5.8rem); letter-spacing: .01em;
}
.hero-mega .line {
  display: block; width: fit-content; margin-inline: auto;
  position: relative; z-index: 1;
  -webkit-text-stroke: 5px var(--paper); paint-order: stroke fill;
}
/* 版ズレ（刷りズレ風）影レイヤー：タイトルの袋文字＋オフセット影。
   ※「二重に見える」不具合の正体は背景透かし(.hero-ghost)だったのでそちらだけ撤去。この影は意図演出として復活。 */
.hero-mega .line::before {
  content: attr(data-text) / ""; position: absolute; left: .075em; top: .075em; z-index: -1;
  color: transparent; -webkit-text-stroke: 3px rgba(43, 29, 22, .18); paint-order: stroke;
}
.line-accent { color: var(--orange-deep); }
.hero-brand .bang { display: inline-block; animation: bang 2.4s ease-in-out infinite; transform-origin: 50% 85%; }
@keyframes bang { 0%, 55%, 100% { transform: rotate(0); } 65% { transform: rotate(12deg) translateY(-6%); } 80% { transform: rotate(-8deg); } }
.taco-hero {
  display: inline-block; width: clamp(2.8rem, 9vw, 6.4rem); height: clamp(2.4rem, 7.6vw, 5.4rem);
  vertical-align: -12%; margin-left: .08em;
  animation: bob 3.2s ease-in-out infinite;
  translate: calc(var(--mx, 0) * 16px) calc(var(--my, 0) * 12px);
  filter: drop-shadow(3px 4px 0 rgba(43, 29, 22, .2));
}
@keyframes bob { 0%, 100% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-10px); } }
.hero-badges { display: none; }
.hero-sub { margin-top: clamp(1.1rem, 2.6vh, 1.7rem); font-size: clamp(1rem, 2.8vw, 1.15rem); font-weight: 700; line-height: 1.8; }
.hero-sub strong { background: linear-gradient(transparent 62%, var(--yellow) 62%); }
.hero .cta-group { margin-top: clamp(1.4rem, 3.2vh, 2rem); }
.cta-micro { margin-top: .9rem; font-size: .82rem; font-weight: 700; opacity: .85; }
.hero-credit { margin-top: 1.6rem; font-family: var(--font-hand); font-weight: 700; font-size: .95rem; opacity: .85; }

/* 縦書きサブコピー */
.hero-vertical {
  position: absolute; right: clamp(.7rem, 2.2vw, 2.2rem); top: clamp(7rem, 14vh, 9rem); z-index: 4;
  writing-mode: vertical-rl; font-family: var(--font-hand); font-weight: 700;
  font-size: clamp(.85rem, 1.5vw, 1.05rem); letter-spacing: .3em; line-height: 1;
  padding-left: .6em; border-left: 3px solid var(--ink);
}
@media (max-width: 900px) { .hero-vertical { display: none; } }

/* 回転サークルバッジ（屋台スタンプ風） */
.spin-badge {
  position: absolute; z-index: 5; right: 6%; bottom: 17%;
  width: clamp(86px, 11vw, 148px); aspect-ratio: 1;
  translate: calc(var(--mx, 0) * -10px) calc(var(--my, 0) * -8px);
}
.spin-badge-ring { position: absolute; inset: 0; animation: spin 18s linear infinite; overflow: visible; }
.spin-badge-ring text { font-family: var(--font-display); font-size: 14.5px; fill: var(--ink); letter-spacing: .06em; }
.spin-badge-taco { position: absolute; inset: 27%; width: 46%; height: auto; aspect-ratio: 6/5; margin: auto; transform: rotate(-8deg); }
@keyframes spin { to { transform: rotate(1turn); } }

/* チケット半券 */
.ticket {
  position: relative; display: flex; max-width: 33rem; margin: 1.8rem auto 0;
  background: var(--paper); border: var(--border-pop); border-radius: 18px;
  box-shadow: 6px 6px 0 var(--ink); overflow: hidden; text-align: left;
}
.ticket-main { flex: 1; padding: .95rem 1.2rem; display: grid; gap: .3rem; align-content: center; }
.ticket-row { display: flex; gap: .8em; align-items: baseline; font-size: .82rem; font-weight: 700; line-height: 1.55; }
.ticket-k { font-family: var(--font-display); font-size: .58rem; letter-spacing: .14em; color: var(--orange-text); min-width: 3.6em; flex-shrink: 0; }
.ticket-stub {
  position: relative; border-left: 3px dashed var(--ink); background: var(--cream);
  padding: .9rem .95rem; display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-family: var(--font-display); line-height: 1.25;
}
.ticket-stub span { font-size: .58rem; letter-spacing: .12em; }
.ticket-stub strong { font-size: 1.35rem; color: var(--orange-deep); }
.ticket-stub::before, .ticket-stub::after {
  content: ""; position: absolute; left: -11px; width: 18px; height: 18px;
  background: var(--cream); border: 3px solid var(--ink); border-radius: 50%;
}
.ticket-stub::before { top: -11px; }
.ticket-stub::after { bottom: -11px; }

/* SCROLLアフォーダンス */
.hero-scroll {
  position: absolute; left: 50%; bottom: .9rem; translate: -50% 0;
  font-family: var(--font-display); font-size: .62rem; letter-spacing: .35em; opacity: .65;
}
.hero-scroll::after {
  content: ""; display: block; width: 2px; height: 1.6rem; margin: .4rem auto 0;
  background: var(--ink); animation: dripline 1.6s ease-in-out infinite;
}
@keyframes dripline { 0% { transform: scaleY(.2); transform-origin: top; } 55%, 100% { transform: scaleY(1); transform-origin: top; } }

/* 数字バー */
.stats { background: var(--paper); padding-block: clamp(1.8rem, 4vh, 2.6rem); border-bottom: 2px solid rgba(43, 29, 22, .08); }
.stats-list { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.stats-list li {
  background: var(--cream); border: var(--border-pop); border-radius: 16px;
  box-shadow: 4px 4px 0 var(--ink); padding: 1rem .6rem; text-align: center; display: grid; gap: .15rem;
}
.stats-num { font-family: var(--font-display); font-size: clamp(1.5rem, 3.6vw, 2.1rem); color: var(--orange-deep); -webkit-text-stroke: 6px var(--cream); paint-order: stroke fill; }
.stats-label { font-size: .78rem; font-weight: 700; }
@media (max-width: 700px) { .stats-list { grid-template-columns: repeat(2, 1fr); gap: .7rem; } }

/* ステッカー */
.sticker {
  position: absolute; z-index: 5;
  font-family: var(--font-display); font-size: clamp(.8rem, 2vw, 1.05rem);
  background: var(--paper); border: var(--border-pop); border-radius: 999px;
  padding: .5em 1.1em; box-shadow: var(--shadow-hard);
  translate: calc(var(--mx, 0) * -7px) calc(var(--my, 0) * -5px);
}
.sticker-1 { top: 15%; left: 7%; rotate: -10deg; background: var(--yellow); }
.sticker-2 { top: 34%; left: 4%; rotate: 6deg; }
.sticker-3 { top: 55%; left: 7%; rotate: -5deg; background: var(--red); color: var(--ink); }
@media (max-width: 900px) {
  .sticker { display: none; }
  .hero-badges {
    display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem;
    margin-top: 1.1rem;
  }
  .hero-badges span {
    font-family: var(--font-display); font-size: .74rem;
    background: var(--paper); border: 2.5px solid var(--ink); border-radius: 999px;
    padding: .4em .95em; box-shadow: 3px 3px 0 var(--ink);
  }
  .hero-badges span:nth-child(1) { background: var(--yellow); rotate: -2deg; }
  .hero-badges span:nth-child(3) { background: var(--red); color: var(--ink); rotate: 2deg; }
  .spin-badge { right: 1%; bottom: auto; top: 13rem; width: 84px; }
  .spin-badge-ring text { font-size: 15.5px; }
}

/* 登場アニメーション（JSあり時のみ） */
.js .hero .reveal { animation: rise .7s cubic-bezier(.2, .8, .3, 1) backwards; animation-delay: var(--d, 0s); }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } }
.js .section .container { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .8, .3, 1); }
.js .section .container.in { opacity: 1; transform: none; }

/* ---------- sections ---------- */
.section { padding-block: clamp(4rem, 10vh, 7rem); position: relative; }
.stats + .section { padding-top: clamp(2.4rem, 5vh, 3.5rem); }
#overview { padding-top: clamp(2.5rem, 6vh, 4rem); }
.section-eyebrow {
  font-family: var(--font-display); color: var(--orange-text);
  font-size: .85rem; letter-spacing: .25em; display: flex; align-items: center; gap: .8em;
}
.section-eyebrow::after { content: ""; height: 3px; width: 3.2em; background: var(--orange-deep); border-radius: 2px; }
.section-title {
  font-family: var(--font-display); font-size: clamp(1.7rem, 5.5vw, 2.8rem);
  line-height: 1.35; margin: .6em 0 1.2em;
}
.section-dark { background: var(--ink); color: var(--cream); }
.section-dark .section-eyebrow { color: var(--yellow); }
.section-dark .section-eyebrow::after { background: var(--yellow); }

/* about */
.about-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.lead { font-size: clamp(1.15rem, 3vw, 1.5rem); font-weight: 900; line-height: 1.7; margin-bottom: 1.2em; }
.about-text p + p { margin-top: 1.1em; }
.about-text strong { background: linear-gradient(transparent 62%, var(--cream-2) 62%); font-weight: 900; }
.about-card {
  background: var(--cream); border: var(--border-pop); border-radius: 24px;
  box-shadow: 8px 8px 0 var(--ink); padding: 2.5rem 1.5rem; text-align: center;
  transform: rotate(2deg);
}
.taco-big { width: min(240px, 60%); height: auto; aspect-ratio: 6/5; margin-inline: auto; animation: bob 4s ease-in-out infinite; }
.about-card-text { font-family: var(--font-display); margin-top: 1.2rem; font-size: 1.1rem; }
@media (max-width: 760px) { .about-grid { grid-template-columns: 1fr; } .about-card { max-width: 320px; margin-inline: auto; } }

/* for you */
.check-list { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 1.25rem; }
.check-list li {
  background: var(--cream); color: var(--ink); border: var(--border-pop); border-radius: 16px;
  padding: 1.1rem 1.3rem 1.1rem 3.4rem; font-weight: 700; position: relative;
  box-shadow: 5px 5px 0 rgba(255, 107, 53, .8);
}
.check-list li:nth-child(odd) { transform: rotate(-.5deg); }
.check-list li:nth-child(even) { transform: rotate(.5deg); }
.check-list li::before {
  content: "✓"; position: absolute; left: 1rem; top: 50%; transform: translateY(-50%);
  width: 1.7em; height: 1.7em; display: grid; place-items: center;
  background: var(--orange-deep); color: #fff; border-radius: 50%;
  font-weight: 900; border: 2px solid var(--ink);
}
.check-note { margin-top: 2rem; font-size: 1.05rem; }
.check-note strong { color: var(--yellow); }
@media (max-width: 700px) { .check-list { grid-template-columns: 1fr; } }

/* features */
.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.feature-card {
  background: var(--paper); border: var(--border-pop); border-radius: 20px;
  box-shadow: 6px 6px 0 var(--ink); padding: 1.8rem 1.6rem 1.6rem; position: relative;
}
.feature-num {
  font-family: var(--font-display); font-size: 2.4rem; line-height: 1;
  color: transparent; -webkit-text-stroke: 2px var(--orange-deep);
}
.feature-card h3 { font-family: var(--font-display); font-size: 1.15rem; margin: .5em 0 .6em; }
@media (max-width: 700px) { .feature-grid { grid-template-columns: 1fr; } }

/* lineup */
.section-lineup { background: radial-gradient(rgba(43, 29, 22, .05) 1.5px, transparent 1.5px) 0 0 / 22px 22px, var(--cream); }
.lineup-board { margin: 0 0 1.6rem; }
.lineup-row {
  font-family: var(--font-display); font-size: clamp(2.1rem, 7.5vw, 4.4rem);
  line-height: 1.18; letter-spacing: .08em;
}
.lineup-row:nth-child(1) { rotate: -1deg; }
.lineup-row.outline { color: transparent; -webkit-text-stroke: 2.5px var(--orange-deep); rotate: .8deg; margin-left: 1.5em; }
.lineup-row:nth-child(3) { margin-left: .6em; }
.lineup-note { max-width: 40rem; }
.section-lineup .cta-group { justify-content: flex-start; margin-top: 1.6rem; }

/* papel picado風スカラップ境界 */
.section-tacos, .section-entry, .footer {
  background-repeat: repeat-x;
  background-size: 28px 28px;
}
.section-tacos { background-image: radial-gradient(circle 14px at 14px -7px, var(--paper) 13.4px, transparent 14px); }
.section-entry { background-image: radial-gradient(circle 14px at 14px -7px, var(--cream) 13.4px, transparent 14px); }
.footer { background-image: radial-gradient(circle 14px at 14px -7px, var(--orange-dark) 13.4px, transparent 14px); }

/* tacos */
.section-tacos { background-color: var(--cream-2); }
.tacos-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.tacos-visual { position: relative; min-height: 260px; }
.taco-stack { position: absolute; width: 46%; aspect-ratio: 6/5; height: auto; filter: drop-shadow(4px 5px 0 rgba(43, 29, 22, .18)); }
.taco-stack.t1 { top: 0; left: 8%; transform: rotate(-14deg); animation: bob 3.6s ease-in-out infinite; }
.taco-stack.t2 { top: 26%; right: 6%; transform: rotate(10deg); animation: bob 4.2s ease-in-out infinite reverse; }
.taco-stack.t3 { bottom: 0; left: 24%; transform: rotate(-4deg); animation: bob 4.8s ease-in-out infinite; }
.tacos-text p + p { margin-top: 1.1em; }
.tacos-text strong { background: linear-gradient(transparent 62%, var(--yellow) 62%); font-weight: 900; }
.tacos-ig a { font-weight: 700; color: var(--orange-text); }
@media (max-width: 760px) { .tacos-grid { grid-template-columns: 1fr; } .tacos-visual { min-height: 200px; } }

/* flow */
.flow-list { list-style: none; max-width: 46rem; }
.flow-list li {
  position: relative; padding: 0 0 2.2rem 3.6rem; border-left: 3px dashed var(--orange);
  margin-left: 1.2rem;
}
.flow-list li:last-child { border-left-color: transparent; padding-bottom: 0; }
.flow-step {
  position: absolute; left: -1.4rem; top: -.2rem;
  font-family: var(--font-display); font-size: .7rem;
  background: var(--orange-dark); color: #fff; border: 2px solid var(--ink);
  border-radius: 999px; padding: .35em .8em; box-shadow: 3px 3px 0 var(--ink);
  transform: rotate(-3deg);
}
.flow-list h3 { font-family: var(--font-display); font-size: clamp(1.05rem, 3vw, 1.3rem); padding-top: 1.6rem; }
.flow-list p { margin-top: .4em; }

/* compare table */
.scroll-hint { display: none; }
@media (max-width: 700px) { .scroll-hint { display: block; font-size: .75rem; font-weight: 700; opacity: .7; text-align: right; margin-bottom: .5rem; } }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 0 10px 12px 0; }
.compare-table {
  width: 100%; min-width: 640px; border-collapse: separate; border-spacing: 0;
  background: var(--paper); color: var(--ink);
  border: var(--border-pop); border-radius: 20px; overflow: hidden;
  box-shadow: 8px 8px 0 rgba(255, 107, 53, .7);
}
.compare-table th, .compare-table td { padding: .95rem 1.2rem; text-align: left; border-bottom: 2px solid rgba(43, 29, 22, .12); }
.compare-table thead th { font-family: var(--font-display); font-size: .95rem; background: var(--cream); border-bottom: var(--border-pop); }
.compare-table thead th.col-us { background: var(--orange-dark); color: #fff; }
.compare-table tbody th { font-weight: 900; width: 9em; background: var(--paper); }
.compare-table tbody th, .compare-table thead th:first-child { position: sticky; left: 0; z-index: 1; }
.compare-table tbody tr:last-child th, .compare-table tbody tr:last-child td { border-bottom: none; }
.compare-table td.col-us { background: #FFF1E4; font-weight: 900; }

/* price */
.section-price { background: radial-gradient(rgba(255, 107, 53, .12) 2px, transparent 2px) 0 0 / 26px 26px, var(--paper); text-align: center; padding-block: clamp(2.8rem, 6vh, 4.5rem); }
.section-price .section-eyebrow { justify-content: center; }
.section-price .section-eyebrow::before { content: ""; height: 3px; width: 3.2em; background: var(--orange-deep); border-radius: 2px; }
.price-zero {
  font-family: var(--font-display); font-size: clamp(5.5rem, 18vw, 10rem); line-height: 1;
  color: var(--orange-deep); text-shadow: 6px 6px 0 var(--ink);
  margin: .05em 0 .25em; letter-spacing: .02em;
}
.price-yen { font-size: .35em; vertical-align: .9em; margin-right: .1em; }
.price-note { font-size: 1.05rem; }
.price-note strong { background: linear-gradient(transparent 62%, var(--yellow) 62%); font-weight: 900; }

/* info table */
.info-table { width: 100%; border-collapse: separate; border-spacing: 0; border: var(--border-pop); border-radius: 20px; overflow: hidden; background: var(--paper); box-shadow: 6px 6px 0 var(--ink); }
.info-table th, .info-table td { padding: 1rem 1.2rem; border-bottom: 2px solid rgba(43, 29, 22, .12); text-align: left; vertical-align: top; }
.info-table tbody tr:last-child th, .info-table tbody tr:last-child td { border-bottom: none; }
.info-table th { width: 8.5em; background: var(--cream); font-family: var(--font-display); font-size: .9rem; white-space: nowrap; }
@media (max-width: 600px) {
  .info-table th { width: 6.5em; font-size: .8rem; padding: .8rem .7rem; }
  .info-table td { padding: .8rem .7rem; font-size: .95rem; }
}

/* FAQ */
.section-faq { background: var(--cream); }
.faq-list { display: grid; gap: 1rem; max-width: 52rem; }
.faq-list details { background: var(--paper); border: var(--border-pop); border-radius: 16px; box-shadow: 5px 5px 0 var(--ink); overflow: hidden; }
.faq-list summary {
  cursor: pointer; list-style: none; display: flex; align-items: baseline; gap: .8em;
  padding: 1.1rem 3.2rem 1.1rem 1.2rem; position: relative; font-weight: 900;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary { font-family: var(--font-body); font-size: 1rem; line-height: 1.7; transition: background-color .15s ease; }
.faq-list summary:hover { background: var(--cream); }
.faq-list details[open] summary { background: var(--cream-2); }
.faq-list summary::before { content: "Q."; font-family: var(--font-display); color: var(--orange-text); flex-shrink: 0; }
.faq-list summary::after {
  content: "＋" / ""; position: absolute; right: 1.1rem; top: 1.05rem;
  font-family: var(--font-display); color: var(--orange-text); transition: transform .25s ease;
}
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list details > p { padding: 1rem 1.2rem 1.3rem 3rem; position: relative; }
.faq-list details > p::before { content: "A."; font-family: var(--font-display); color: var(--green-text); position: absolute; left: 1.2rem; }

/* entry */
.section-entry { background-color: var(--orange-dark); color: #fff; text-align: center; }
.section-entry .section-eyebrow { color: #fff; justify-content: center; }
.section-entry .section-eyebrow::before { content: ""; height: 3px; width: 3.2em; background: #fff; border-radius: 2px; }
.section-entry .section-eyebrow::after { background: #fff; }
.entry-lead { font-size: clamp(1.05rem, 3vw, 1.3rem); font-weight: 900; margin-bottom: 2rem; }
.entry-steps { list-style: none; display: grid; gap: .8rem; max-width: 34rem; margin: 0 auto 2.4rem; text-align: left; }
.entry-steps li {
  background: var(--paper); color: var(--ink); border: var(--border-pop); border-radius: 14px;
  padding: .9rem 1.2rem .9rem 3.4rem; font-weight: 700; position: relative; box-shadow: 4px 4px 0 var(--ink);
}
.entry-num {
  position: absolute; left: .9rem; top: 50%; transform: translateY(-50%);
  width: 1.8em; height: 1.8em; display: grid; place-items: center;
  background: var(--yellow); border: 2px solid var(--ink); border-radius: 50%;
  font-family: var(--font-display); font-size: .9rem;
}
.section-entry .btn-primary { background: var(--ink); color: var(--cream); }
.section-entry .btn-primary .btn-note { color: var(--yellow); }
.section-entry .btn-primary:hover { background: #1d130e; }
.entry-note { margin-top: 1.8rem; font-size: .9rem; font-weight: 700; }

/* legal pages (privacy / terms) */
.legal { max-width: 760px; margin: 0 auto; padding: clamp(2rem, 6vh, 3.5rem) clamp(1.25rem, 4vw, 2rem) 5rem; }
.legal h1 { font-family: var(--font-display); font-size: clamp(1.7rem, 5vw, 2.4rem); margin-bottom: .3em; }
.legal .legal-date { font-size: .85rem; opacity: .65; margin-bottom: 2.2rem; }
.legal h2 { font-family: var(--font-display); font-size: 1.1rem; color: var(--orange-text); margin: 2em 0 .6em; }
.legal p, .legal li { line-height: 1.95; }
.legal ul, .legal ol { padding-left: 1.3em; margin: .4em 0 1em; }
.legal li { margin-bottom: .3em; }
.legal a { color: var(--orange-text); font-weight: 700; }
.legal-back { display: inline-block; margin-top: 2.5rem; font-family: var(--font-display); color: var(--orange-text); text-decoration: none; }
.footer-links { margin-top: 1.2rem; font-size: .82rem; }
.footer-links a { color: var(--cream); text-decoration-color: var(--orange); text-underline-offset: 3px; }

/* footer */
.footer { background-color: var(--ink); color: var(--cream); text-align: center; padding-block: 3.5rem 7rem; }
.footer-logo { font-family: var(--font-display); font-size: 1.3rem; }
.footer-copy { font-family: var(--font-hand); font-weight: 700; margin-top: .4rem; opacity: .85; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem 1.6rem; margin: 1.6rem 0; }
.footer-nav a { color: var(--cream); font-weight: 700; font-size: .9rem; text-decoration-color: var(--orange); text-underline-offset: 4px; }
.footer-org { font-size: .85rem; opacity: .9; }
.footer-org a { color: var(--yellow); }
.footer-legal { margin-top: 1.2rem; font-size: .8rem; opacity: .6; }

/* 下部固定CTA */
.cta-bar { display: none; }
.js .cta-bar {
  display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 100;
  padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom));
  background: rgba(255, 244, 228, .92); backdrop-filter: blur(6px);
  border-top: var(--border-pop);
  transform: translateY(110%); transition: transform .3s ease;
}
.js .cta-bar.show { transform: none; }
.js .cta-bar.suppress { transform: translateY(110%); }
.btn-bar { width: min(480px, 100%); margin-inline: auto; font-size: 1.05rem; padding: .8em 1em; display: flex; }

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .marquee-track, .taco-hero, .taco-big, .taco-stack,
  .spin-badge-ring, .hero-brand .bang, .hero-scroll::after { animation: none !important; }
  .js .hero .reveal { animation: none !important; }
  .js .section .container { opacity: 1 !important; transform: none !important; transition: none !important; }
  .btn, .feature-card, .sticker { transition: none !important; }
  .sticker, .taco-hero, .spin-badge { translate: none !important; }
  .js .cta-bar { transition: none !important; }
}
