/* =========================================================
   下層ページ専用CSS
   対象: body / HAMBURGER配置 / app.css競合対策
   前提: common202606_shared.css を先に読み込むこと
   ========================================================= */

body {
  font-family: var(--font-ja);
  color: var(--black);
  background: var(--white);
  font-size: 14px;
  line-height: 1.7;
  overflow-x: hidden;
  animation: pageFadeIn 1.1s ease both;
}

@keyframes pageFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ─── HAMBURGER ─── */
.hamburger-btn {
  position: fixed;
  top: 14px;
  right: 20px;
  z-index: 300;
  display: flex;
  width: 42px;
  height: 42px;
  background: none;
  border: none;
  cursor: pointer;
  transition: opacity 0.25s ease;
}

.hamburger-btn span {
  position: absolute;
  left: 7px;
  width: 28px;
  height: 2px;
  background: #111;
  transition:
    top 0.32s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.32s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.2s ease;
}

.hamburger-btn span:nth-child(1) { top: 12px; }
.hamburger-btn span:nth-child(2) { top: 20px; }
.hamburger-btn span:nth-child(3) { top: 28px; }

.hamburger-btn.is-open span:nth-child(1) {
  top: 20px;
  transform: rotate(24deg) scaleX(1.55);
}

.hamburger-btn.is-open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.hamburger-btn.is-open span:nth-child(3) {
  top: 20px;
  transform: rotate(-24deg) scaleX(1.55);
}

/* ─── app.css競合対策 ────────────────────────────────────────
   app.css に svg { position: absolute; width: 100%; height: 100%; } があり、
   #sp-menu 内のSVGが崩れるため、#sp-menu スコープ内で完全に上書きする。
   また body { font-size: 3.46667vw; line-height: 1.6 } による
   <li> 高さのズレもここで吸収する。
   ──────────────────────────────────────────────────────────── */

#sp-menu {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100vh !important;
  background: #fff !important;
  z-index: 200 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.3s ease !important;
}

#sp-menu.open {
  opacity: 1 !important;
  pointer-events: auto !important;
}

#sp-menu .sp-nav {
  display: block !important;
  list-style: none !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

#sp-menu .sp-nav li {
  display: block !important;
  margin: 40px 0 !important;
  padding: 0 !important;
  height: auto !important;
  /* app.css の body font-size:3.46667vw / line-height:1.6 による高さズレを吸収 */
  font-size: 14px !important;
  line-height: 1.7 !important;
}

#sp-menu .sp-nav a {
  display: inline-block !important;
  position: relative !important;
  color: inherit !important;
  text-decoration: none !important;
  overflow: visible !important;
  background: none !important;
  width: auto !important;
  height: auto !important;
  /* li と同様にトップページの値に揃える */
  font-size: 14px !important;
  line-height: 1.7 !important;
}

#sp-menu .sp-nav a::after {
  content: "" !important;
  position: absolute !important;
  left: -5px !important;
  bottom: -8px !important;
  width: 0 !important;
  height: 2px !important;
  background: #111 !important;
  transition: width 0.25s ease !important;
  padding: 0 !important;
}

#sp-menu .sp-nav a:hover::after,
#sp-menu .sp-nav a.active::after {
  width: calc(100% + 10px) !important;
}

/* app.css の svg { position:absolute; width:100%; height:100% } を打ち消す */
#sp-menu .sp-nav a > svg,
#sp-menu .sp-nav .sp-nav-svg {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: 15px !important;
  max-height: 15px !important;
  fill: #111 !important;
  overflow: visible !important;
}

#sp-menu svg:not(:root) {
  overflow: visible !important;
}

#sp-menu .sp-social {
  display: flex !important;
  gap: 35px !important;
  margin-top: 40px !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
}

#sp-menu .sp-social a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  color: inherit !important;
  text-decoration: none !important;
}

/*
#sp-menu .sp-social svg,
#sp-menu .sp-social a > svg {
  position: static !important;
  display: block !important;
  width: 28px !important;
  height: 28px !important;
  max-width: none !important;
  fill: #111 !important;
}
*/

#sp-menu .sp-social svg,
#sp-menu .sp-social a > svg {
  position: static !important;
  display: block !important;
  width: var(--sp-menu-sns-size) !important;
  height: var(--sp-menu-sns-size) !important;
  max-width: none !important;
  fill: #111 !important;
}

/* footer内SVGも同様に打ち消す */
footer svg {
  position: static !important;
  display: block !important;
  fill: #111 !important;
  overflow: visible !important;
}

footer .footer-social .sns-icon {
  width: var(--footer-sns-size) !important;
  height: var(--footer-sns-size) !important;
}

/* app.css の img { width:100% } がfooter内画像に影響しないよう念のため明示 */
footer img {
  width: auto;
  height: auto;
}

.totop-btn .flower-icon {
  width: 43px !important;
  height: 43px !important;
}

/* =========================================================
   app.css で各ページコンテンツに opacity:0 が設定されており、
   本来はJSで opacity:1 に戻す仕組みだが、
   新しいフェードインはCSSアニメーションに一本化したため
   これらを直接上書きして表示させる
   ========================================================= */
.goods,
.music,
.hiroji,
.news,
.liquid,
.top {
  opacity: 1 !important;
}
