@charset "utf-8";

/* =========================================================
   Las1 — common.css
   FLOCSS: l-(layout) / c-(component) / p-(project) / u-(utility)
   ========================================================= */

/* ---------- Design tokens ---------- */
:root {
  /* brand */
  --c-wine:        #7B0A26;   /* テーマカラー（メイン背景） */
  --c-wine-deep:   #5E0719;
  --c-wine-light:  #9B2740;
  --c-ink:         #14100F;   /* ロゴの黒 */
  --c-paper:       #FBF8F5;   /* パネル（オフホワイト） */
  --c-paper-sub:   #EFE9E3;
  --c-gray:        #8A8078;

  /* typography */
  --f-en: "Jost", "Helvetica Neue", Arial, sans-serif;
  --f-ja: "Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;

  /* layout */
  --side: 6vw;
  --nav-w: 14rem;
  --radius: 1.3rem;
  --radius-lg: 2rem;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background-color: var(--c-wine);
  color: #fff;
  font-family: var(--f-ja);
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .04em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.is-locked { overflow: hidden; }
img, svg { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, p, dl, dd, figure { margin: 0; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* ---------- Utilities ---------- */
.u-lap-visible { display: none; }
@media (min-width: 1024px) {
  .u-lap-hidden  { display: none !important; }
  .u-lap-visible { display: block; }
}
.c-bg__wine { background-color: var(--c-wine); }

/* ---------- Logo (mask で色替え可能) ---------- */
.c-logo {
  display: block;
  width: 100%;
  aspect-ratio: 1281.34 / 266.25;
  background-color: currentColor;
  -webkit-mask: url("../img/logo.svg?v=20260826d") no-repeat center / contain;
          mask: url("../img/logo.svg?v=20260826d") no-repeat center / contain;
}

/* =========================================================
   LOADER
   ========================================================= */
.l-loader {
  position: fixed; inset: 0; z-index: 999;
  background: var(--c-wine);
  display: grid; place-items: center;
  transition: opacity .6s var(--ease), visibility .6s;
}
.l-loader__logo {
  width: min(52vw, 260px); aspect-ratio: 1281.34/266.25;
  background-color: #fff;
  -webkit-mask: url("../img/logo.svg?v=20260826d") no-repeat center / contain;
          mask: url("../img/logo.svg?v=20260826d") no-repeat center / contain;
  animation: loader-pulse 1.4s ease-in-out infinite;
}
@keyframes loader-pulse { 0%,100% { opacity: .25 } 50% { opacity: 1 } }
.is-loaded .l-loader { opacity: 0; visibility: hidden; pointer-events: none; }

/* =========================================================
   HEADER (SP)
   ========================================================= */
.l-header {
  /* ドロワー(60)より上。閉じるボタンを常に触れるようにする */
  position: fixed; top: 0; left: 0; right: 0; z-index: 70;
  display: flex; align-items: center; justify-content: flex-end;
  padding: 5vw var(--side);
  color: #fff;
  transition: background-color .4s var(--ease), padding .4s var(--ease);
}
.l-header.is-scrolled { background-color: rgba(94, 7, 25, .92); backdrop-filter: blur(8px); padding: 3.5vw var(--side); }
.l-header__logo { width: 40%; max-width: 150px; }

.c-hamburger {
  width: 34px; height: 22px; position: relative; z-index: 61;
}
.c-hamburger span {
  position: absolute; left: 0; width: 100%; height: 2px;
  background: #fff; border-radius: 2px;
  transition: transform .4s var(--ease), opacity .3s;
}
.c-hamburger span:nth-child(1) { top: 5px; }
.c-hamburger span:nth-child(2) { top: 15px; }
.is-drawer-open .c-hamburger span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.is-drawer-open .c-hamburger span:nth-child(2) { transform: translateY(-5px) rotate(-45deg); }

/* =========================================================
   DRAWER (SP)
   ========================================================= */
.c-drawer {
  position: fixed; inset: 0; z-index: 60;
  background: var(--c-wine-deep);
  opacity: 0; visibility: hidden;
  transition: opacity .5s var(--ease), visibility .5s;
  overflow-y: auto;
}
.is-drawer-open .c-drawer { opacity: 1; visibility: visible; }
.c-drawer__inner {
  min-height: 100%;
  display: flex; flex-direction: column; justify-content: center;
  padding: 22vh var(--side) 12vh;
}
.c-drawer__nav .nav-item { border-bottom: 1px solid rgba(255,255,255,.16); }
.c-drawer__nav .nav-item a {
  display: block; padding: 1.1em 0;
  font-family: var(--f-en); font-weight: 500; font-size: 22px; letter-spacing: .08em;
}

/* =========================================================
   FIXED NAV (PC)
   ========================================================= */
.l-fix-nav { position: relative; z-index: 40; }
.l-fix-nav__nav-container {
  position: fixed; top: 3vw; left: 4vw;
  width: var(--nav-w); padding: 2rem 1.2rem;
  background: var(--c-paper); color: var(--c-ink);
  border-radius: var(--radius);
  box-shadow: 0 10px 40px rgba(0,0,0,.18);
}
.l-fix-nav .nav-list { font-family: var(--f-en); font-size: 17px; font-weight: 600; letter-spacing: .06em; }
.l-fix-nav .nav-item { position: relative; padding-left: 1.4rem; line-height: 1.2; }
.l-fix-nav .nav-item:not(:first-of-type) { margin-top: .95em; }
.l-fix-nav .nav-item::before {
  content: ""; position: absolute; left: 0; top: 50%;
  width: .55rem; height: .55rem; border-radius: 50%;
  background: var(--c-wine);
  transform: translateY(-50%) scale(.7);
  opacity: 0; transition: opacity .3s, transform .3s var(--ease);
}
.l-fix-nav .nav-item:hover::before,
.l-fix-nav .nav-item.is-current::before { opacity: 1; transform: translateY(-50%) scale(1); }
.l-fix-nav .nav-item a { transition: color .3s; }
.l-fix-nav .nav-item a:hover { color: var(--c-wine); }

.external-link { position: relative; display: inline-block; }
.external-link svg { width: .55em; fill: currentColor; position: absolute; right: -1em; top: 50%; transform: translateY(-50%); }

.l-fix-nav__link-wrapper { position: fixed; top: 3vw; right: 4vw; display: flex; gap: 1.4rem; }
.c-sns-wrapper { display: flex; gap: 1.4rem; }
.c-sns-wrapper__link {
  font-family: var(--f-en); font-size: 13px; font-weight: 500; letter-spacing: .1em;
  color: #fff; opacity: .8; transition: opacity .3s;
}
.c-sns-wrapper__link:hover { opacity: 1; }
.c-drawer .c-sns-wrapper { margin-top: 3rem; }

/* =========================================================
   COMMON PARTS
   ========================================================= */
.l-section { padding-left: var(--side); padding-right: var(--side); }
.l-section.--medium { padding-top: 16vw; }
.l-section.--large  { padding-top: 22vw; }
@media (min-width: 1024px) {
  .l-section { padding-left: calc(4vw + var(--nav-w) + 3vw); padding-right: 5vw; }
  .l-section.--medium { padding-top: 9rem; }
  .l-section.--large  { padding-top: 11rem; }
}

.c-section-label {
  font-family: var(--f-en); font-size: 12px; font-weight: 600;
  letter-spacing: .28em; opacity: .7; margin-bottom: .9rem;
}
.c-section-label.--ink { color: var(--c-wine); opacity: 1; }
.c-section-title {
  font-family: var(--f-en); font-weight: 500; line-height: 1.25;
  font-size: clamp(1.75rem, 4vw + .5rem, 3.25rem); letter-spacing: .02em;
}
.c-section-title span { display: block; font-size: .55em; letter-spacing: .1em; margin-top: .6em; opacity: .75; }
.c-section-title.--ink { color: var(--c-ink); font-family: var(--f-ja); font-weight: 700; font-size: clamp(1.5rem, 2.4vw + .6rem, 2.4rem); }

.c-panel {
  background: var(--c-paper); color: var(--c-ink);
  border-radius: var(--radius-lg);
  padding: 12vw 7vw;
}
@media (min-width: 1024px) { .c-panel { padding: 5rem 4.5rem; } }

.c-thumb { overflow: hidden; border-radius: var(--radius); background: rgba(255,255,255,.08); }
.c-thumb img { width: 100%; display: block; transition: transform .8s var(--ease); }
a:hover .c-thumb img { transform: scale(1.05); }

/* buttons */
.c-btn-wrapper { display: flex; margin-top: 2.5rem; }
.c-btn-wrapper.--right { justify-content: flex-end; }
.c-btn-wrapper.--center { justify-content: center; }
.c-btn {
  display: inline-flex; align-items: center; gap: .8em;
  font-family: var(--f-en); font-weight: 600; font-size: 14px; letter-spacing: .16em;
  border: 1px solid rgba(255,255,255,.5); border-radius: 999px;
  padding: .85em 2.2em; color: #fff;
  transition: background-color .4s var(--ease), color .4s var(--ease), border-color .4s;
}
.c-btn::after { content: ""; width: 1.6em; height: 1px; background: currentColor; transition: width .4s var(--ease); }
.c-btn:hover { background: #fff; color: var(--c-wine); border-color: #fff; }
.c-btn:hover::after { width: 2.4em; }
.c-btn.--ink { border-color: var(--c-wine); color: var(--c-wine); }
.c-btn.--ink:hover { background: var(--c-wine); color: #fff; }

/* =========================================================
   HERO
   ========================================================= */
.p-top-hero { position: relative; height: 100svh; }
.p-top-hero__img-wrapper {
  position: absolute; top: 48%; left: 50%; transform: translate(-50%, -50%);
  width: 72vw; max-width: 34rem;
}
.c-logo--hero { color: #fff; }
.p-top-hero__event-wrapper {
  position: absolute; bottom: 8vw; right: var(--side);
  width: 78vw; max-width: 19rem;
}
@media (min-width: 1024px) { .p-top-hero__event-wrapper { bottom: 3rem; right: 5vw; } }
.event-link {
  position: relative; display: flex; align-items: center;
  margin-top: .9rem; padding: .7em 1.1em; border-radius: 999px;
  background: #fff; color: var(--c-wine); font-size: 13px; font-weight: 500;
  transition: transform .4s var(--ease);
}
.event-link:hover { transform: translateY(-2px); }
.event-link span {
  position: relative; width: 100%; padding-right: .6rem; margin-right: 1.6rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.event-link span::after {
  content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 1em; background: rgba(123,10,38,.3);
}
.event-link svg { position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%); width: .85em; fill: var(--c-wine); }

.p-top-hero__scroll { position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%); }
.p-top-hero__scroll span {
  font-family: var(--f-en); font-size: 10px; letter-spacing: .3em; opacity: .7;
  writing-mode: vertical-rl;
}
.p-top-hero__scroll::after {
  content: ""; display: block; width: 1px; height: 44px; margin: .6rem auto 0;
  background: linear-gradient(to bottom, #fff, rgba(255,255,255,0));
  animation: scroll-line 2s ease-in-out infinite;
  transform-origin: top;
}
@keyframes scroll-line { 0% { transform: scaleY(0) } 40% { transform: scaleY(1) } 100% { transform: scaleY(0); transform-origin: bottom } }

/* =========================================================
   ABOUT
   ========================================================= */
.p-top-about__inner { display: grid; gap: 3rem; }
@media (min-width: 1024px) {
  .p-top-about__inner { grid-template-columns: 1.15fr .85fr; gap: 4rem; align-items: start; }
}
.p-top-about__map { position: relative; aspect-ratio: 4 / 5; background: var(--c-paper-sub); }
.p-top-about__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (min-width: 1024px) { .p-top-about__map { position: sticky; top: 9rem; } }
.p-top-about__lead { margin-top: 2rem; font-weight: 500; font-size: 16px; line-height: 2.1; }
.p-top-about__body { margin-top: 1.5rem; color: #4A4441; font-size: 14px; }
.p-top-about__body p + p { margin-top: 1em; }
.p-top-about__meta { margin-top: 2.5rem; border-top: 1px solid var(--c-paper-sub); }
.p-top-about__meta > div { display: flex; gap: 1.5rem; padding: .9rem 0; border-bottom: 1px solid var(--c-paper-sub); }
.p-top-about__meta dt { font-family: var(--f-en); font-size: 12px; letter-spacing: .18em; color: var(--c-gray); min-width: 5.5rem; }
.p-top-about__meta dd { margin: 0; font-size: 14px; }

/* =========================================================
   WORK ARCHIVE（横スライド）
   カードの高さを揃え、幅はメディアの比率に応じて変わる。
   動画は 16:9、写真は 4:3。
   ========================================================= */
.p-top-work__head { margin-bottom: 2.5rem; }

.c-work-slider { --work-h: clamp(190px, 32vh, 380px); }

.c-work-slider__track {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  /* セクションの右端いっぱいまで流す */
  margin-right: calc(var(--side) * -1);
  padding-right: var(--side);
}
.c-work-slider__track::-webkit-scrollbar { display: none; }
@media (min-width: 1024px) {
  .c-work-slider__track { gap: 1.6rem; margin-right: -5vw; padding-right: 5vw; }
}

.c-work { flex: 0 0 auto; scroll-snap-align: start; }
.c-work.--movie { width: calc(var(--work-h) * 16 / 9); }
.c-work.--photo { width: calc(var(--work-h) * 5 / 4); } /* 写真の実比率 1284:1029 に合わせる */
.c-work a { display: block; }

.c-work__media {
  position: relative;
  height: var(--work-h);
  width: 100%;
  border-radius: var(--radius);
  overflow: hidden;
  background: rgba(255, 255, 255, .08);
}
.c-work__media iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.c-work__media img { width: 100%; height: 100%; object-fit: cover; }

.c-work__body { padding-top: 1.1rem; }
.c-work__season { font-family: var(--f-en); font-size: 11px; letter-spacing: .22em; opacity: .7; }
.c-work__title {
  font-family: var(--f-en); font-weight: 500; letter-spacing: .04em; margin-top: .3em;
  font-size: clamp(1.1rem, 1.4vw + .6rem, 1.6rem);
}
.c-work__title.--ja {
  font-family: var(--f-ja); font-weight: 700; line-height: 1.65;
  font-size: clamp(.9rem, .35vw + .82rem, 1.05rem); letter-spacing: .02em;
}
.c-work__meta { font-family: var(--f-en); font-size: 12px; opacity: .75; margin-top: .6em; line-height: 1.6; }
.c-work__text { font-size: 13px; opacity: .8; margin-top: .6em; }
.c-work__text:empty { display: none; }

/* 前へ / 次へ */
.c-slider-button-wrapper { display: flex; gap: .8rem; justify-content: flex-end; margin-top: 1.6rem; }
@media (min-width: 1024px) { .c-slider-button-wrapper { padding-right: 4.5rem; } }
.c-slider-button {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .45); position: relative;
  transition: background-color .3s, border-color .3s, opacity .3s;
}
.c-slider-button::before {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 8px; height: 8px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor;
}
.c-slider-button.--prev::before { transform: translate(-35%, -50%) rotate(-135deg); }
.c-slider-button.--next::before { transform: translate(-65%, -50%) rotate(45deg); }
.c-slider-button:hover { background: rgba(255, 255, 255, .14); border-color: #fff; }
.c-slider-button[disabled] { opacity: .3; pointer-events: none; }

/* =========================================================
   ONLINE STORE
   ========================================================= */
.c-panel.--store { background: var(--c-paper); }
.p-top-store__inner { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .p-top-store__inner { grid-template-columns: .9fr 1.1fr; gap: 4rem; align-items: center; } }
.p-top-store__text { margin-top: 1.2rem; font-size: 14px; color: #4A4441; }
.p-top-store__cat-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }
@media (min-width: 640px) { .p-top-store__cat-list { grid-template-columns: repeat(3, 1fr); } }
.p-top-store__cat-list a {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 3 / 2; border-radius: var(--radius);
  background: var(--c-wine); color: #fff;
  font-family: var(--f-en); font-size: 13px; font-weight: 600; letter-spacing: .14em;
  transition: background-color .4s var(--ease), transform .4s var(--ease);
}
.p-top-store__cat-list a:hover { background: var(--c-wine-deep); transform: translateY(-3px); }

/* =========================================================
   NEWS
   ========================================================= */
.p-top-news__wrapper { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .p-top-news__wrapper { grid-template-columns: 16rem 1fr; gap: 4rem; align-items: start; } }
/* Instagram 埋め込み
   iframe の中身は別オリジンのため触れない。外側の枠と余白だけを
   サイトのトーンに合わせ、角丸・影・余白を上書きする。 */
.c-insta { display: grid; gap: 2rem; }
@media (min-width: 1024px) {
  .c-insta { grid-template-columns: minmax(0, 34rem) 1fr; gap: 3rem; align-items: center; }
}
.c-insta__frame {
  background: var(--c-paper);
  border-radius: var(--radius);
  padding: .5rem;
  overflow: hidden;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .18);
}
.c-insta.is-failed .c-insta__frame { display: none; }
.c-insta__frame .instagram-media {
  margin: 0 !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  border: 0 !important;
  border-radius: calc(var(--radius) - .5rem) !important;
  box-shadow: none !important;
  background: var(--c-paper) !important;
}
.c-insta__text { font-size: 14px; opacity: .85; }
.c-insta__foot .c-btn-wrapper { margin-top: 1.5rem; }

/* =========================================================
   FOOTER
   ========================================================= */
.l-footer { position: relative; margin-top: 16vw; padding: 0 var(--side) 3rem; }
@media (min-width: 1024px) { .l-footer { margin-top: 10rem; padding: 0 5vw 3rem calc(4vw + var(--nav-w) + 3vw); } }
.l-footer__inner { border-top: 1px solid rgba(255,255,255,.25); padding-top: 3rem; display: grid; gap: 2rem; }
.l-footer__logo { width: 45%; max-width: 160px; }
.l-footer__nav ul { display: flex; flex-wrap: wrap; gap: .9rem 1.8rem; }
.l-footer__nav a { font-family: var(--f-en); font-size: 13px; font-weight: 500; letter-spacing: .12em; opacity: .85; transition: opacity .3s; }
.l-footer__nav a:hover { opacity: 1; }
.l-footer__link-wrapper { display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; justify-content: space-between; align-items: center; }
.l-footer__sub { display: flex; flex-wrap: wrap; gap: .8rem 1.6rem; }
.l-footer__sub a { font-size: 12px; opacity: .7; transition: opacity .3s; }
.l-footer__sub a:hover { opacity: 1; }
.l-footer__copy { font-family: var(--f-en); font-size: 11px; letter-spacing: .1em; opacity: .55; }

.c-pagetop {
  position: fixed; right: var(--side); bottom: 1.6rem; z-index: 30;
  width: 46px; height: 46px; border-radius: 50%;
  background: #fff; color: var(--c-wine);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .4s, visibility .4s, transform .4s var(--ease);
}
.c-pagetop.is-visible { opacity: 1; visibility: visible; transform: none; }
.c-pagetop::before {
  content: ""; position: absolute; top: 54%; left: 50%;
  width: 9px; height: 9px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor;
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media (min-width: 1024px) { .c-pagetop { right: 3vw; bottom: 3vw; } }

/* =========================================================
   SCROLL ANIMATION (JS 未読込でも見えるようフォールバック)
   ========================================================= */
.js-fade { opacity: 1; }
html.js .js-fade {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
  will-change: opacity, transform;
}
html.js .js-fade.is-inview { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.js .js-fade { opacity: 1; transform: none; transition: none; }
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* =========================================================
   LOWER PAGES (privacy)
   ========================================================= */
.p-lower { padding-bottom: 4rem; }
/* 下層ページのヘッダー：固定せず、ロゴと BACK を左右に振り分ける */
.l-header.--lower {
  position: static;
  justify-content: space-between;
  z-index: auto;
}
.l-header.--lower .l-header__logo { width: 34%; max-width: 130px; }
@media (min-width: 1024px) { .p-lower { padding-left: 5vw; padding-right: 5vw; max-width: 60rem; margin-inline: auto; } }
.p-legal { font-size: 14px; line-height: 2.1; }
.p-legal h2 { font-size: 15px; font-weight: 700; margin: 2rem 0 .4rem; color: var(--c-wine); }
.p-legal p { color: #4A4441; }
.p-legal a { color: var(--c-wine); text-decoration: underline; }
.p-legal__note { padding: .9rem 1.1rem; background: var(--c-paper-sub); border-radius: .7rem; font-size: 13px; }
.p-legal__rev { margin-top: 2.5rem; font-size: 12px; color: var(--c-gray); }
.p-legal__dl { margin-top: 1.5rem; border-top: 1px solid var(--c-paper-sub); }
.p-legal__dl > div { display: grid; gap: .2rem .5rem; padding: .9rem 0; border-bottom: 1px solid var(--c-paper-sub); }
@media (min-width: 768px) { .p-legal__dl > div { grid-template-columns: 12rem 1fr; gap: 1.5rem; } }
.p-legal__dl dt { font-size: 13px; font-weight: 700; }
.p-legal__dl dd { margin: 0; font-size: 14px; color: #4A4441; }
.l-header.--lower .c-btn { flex-shrink: 0; }

/* hero: 視差用インナー（親の translate(-50%,-50%) と競合させないため） */
.p-top-hero__img-inner { will-change: transform, opacity; }
.p-legal ul { margin: .6rem 0 0; padding-left: 1.2em; list-style: disc; color: #4A4441; font-size: 14px; }
.p-legal ul li { margin-top: .2em; }

/* =========================================================
   ONLINE STORE のカテゴリー一時非表示
   <html class="is-store-cat-hidden"> のときだけ有効。
   class を外せば 6 カテゴリーのタイルが元どおり表示される。
   ========================================================= */
html.is-store-cat-hidden .p-top-store__cat-list,
html.is-store-cat-hidden .p-top-store__cat-note { display: none; }
/* タイルが消えて右側が空くため、1 カラムに戻す */
@media (min-width: 1024px) {
  html.is-store-cat-hidden .p-top-store__inner { grid-template-columns: 1fr; }
}

/* =========================================================
   言語切替（JA / EN）
   ========================================================= */
.c-lang { display: flex; align-items: center; gap: .45rem; }
.c-lang__btn {
  font-family: var(--f-en); font-size: 13px; font-weight: 500; letter-spacing: .1em;
  color: #fff; opacity: .5; transition: opacity .3s;
  padding: 0; line-height: 1;
}
.c-lang__btn:hover { opacity: .85; }
.c-lang__btn.is-active { opacity: 1; }
.c-lang__sep { font-family: var(--f-en); font-size: 12px; color: #fff; opacity: .35; }

/* ドロワー内は SNS リンクの下に置く */
.c-drawer .c-lang { margin-left: 1.4rem; }

/* 下層ページのヘッダー内（BACK ボタンの左） */
.l-header.--lower .c-lang { margin-left: auto; margin-right: 1.4rem; }
