
  html.is-loading, body.is-loading { overflow: hidden; }

  #loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: #FFFFFF;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 22px;
    /* FVロゴは画面中央よりやや上に出るため、ロゴ群を上へ寄せて位置を合わせる（SP） */
    padding-bottom: 26vh;
    opacity: 1;
    visibility: visible;
    transition: opacity .7s ease, visibility .7s ease;
  }
  #loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  /* グローバルの img{width:100%;height:100%;object-fit:cover} を打ち消す */
  #loader .loader-logo {
    width: min(200px, 54vw);   /* SP：FVのfv-headline-logoと同サイズ */
    height: auto;
    object-fit: contain;
    display: block;
  }

  #loader .loader-bar {
    position: relative;
    width: min(34vw, 120px);
    height: 1px;
    background: rgba(28,26,23,.10);
    overflow: hidden;
    opacity: 0;
    animation: loaderBarIn .6s ease .45s forwards;
  }
  #loader .loader-bar::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 40%;
    background: #9B8455;
    animation: loaderBarSlide 1.3s cubic-bezier(.65,.05,.36,1) infinite;
  }

  @keyframes loaderBarIn      { to { opacity: 1; } }
  @keyframes loaderBarSlide   { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } }

  @media (prefers-reduced-motion: reduce) {
    #loader .loader-bar::after { animation: none; width: 100%; }
  }

  /* ローディング中はFVの登場アニメとKen Burnsを一時停止
     → ローダー解除後に頭から再生され、演出が無駄にならない */
  html.is-loading .fv-top,
  html.is-loading .fv-middle,
  html.is-loading .fv-bottom,
  html.is-loading .fv-headline,
  html.is-loading .slider-slide .slider-bg {
    animation-play-state: paused !important;
  }

  /* PC：ロゴサイズは従来のロード画面値(230px)に統一。上寄せ量も控えめに */
  @media (min-width: 768px) {
    #loader { padding-bottom: 14vh; }
    #loader .loader-logo { width: 230px; }
  }

  /* JSでFVロゴ位置を実測して合わせるモード（全画面幅で一致） */
  #loader.js-aligned { justify-content: flex-start; padding-bottom: 0; gap: 0; }
  #loader.js-aligned .loader-logo { position: absolute; }
  #loader.js-aligned .loader-bar  { position: absolute; left: 50%; transform: translateX(-50%); }


/* ===================================================================
   KOMEKUUTO — TOP PAGE
   セクション単位でCSSを整理。各セクションは
     [1] 共通（モバイル基準） → [2] 各ブレイクポイント
   の順で記述する。

   ■ ブレイクポイント
     @media (min-width: 768px)                      PC
     @media (min-width: 768px) and (max-width:999px) タブレット
     @media (min-width: 1000px)                     ワイド

   ■ 目次
     00  ベース設定 / 変数 / リセット
     01  共通パーツ（見出し・ボタン・プレースホルダ・reveal）
     02  STICKY HEADER
     03  FIRST VIEW
     04  INSTAGRAM STRIP
     05  CONCEPT PREVIEW
     06  SHOP GUIDE
     07  ONLINE STORE LINKS
     08  STORE INFO
     09  INSTAGRAM FEED
     10  COMPANY INFO
     11  FOOTER
     12  DRAWER MENU
   =================================================================== */


/* ===================================================================
   00. ベース設定 / 変数 / リセット
   =================================================================== */
/* KOMEKUUTO — TOP PAGE MOCKUP / Design Direction: 上品 / シンプル / 食の豊かさ / Mobile-first, 375px base */
:root {
  --ivory:     #F7F2EA;
  --ivory-mid: #EDE7D9;
  --cream:     #FAF7F2;
  --charcoal:  #1C1A17;
  --charcoal-lt:  #3d3a35;
  --stone:     #7C756A;
  --stone-lt:  #AFA89D;
  --gold:      #9B8455;
  --gold-lt:   #c7a96b;
  --white:     #FFFFFF;

  --font-tsuku: "fot-tsukuardgothic-std", "Helvetica Neue", Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  --font-sans:  "Helvetica Neue", Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;

  --header-h: 60px;
  --radius-sm: 2px;
  --radius:    6px;
  --transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  overflow-x: clip;
  width: 100%;
  max-width: 100%;}
body {
  font-family: var(--font-sans);
  background: #FFFFFF;
  color: var(--charcoal);
  line-height: 1.7;
  letter-spacing: 0.1em;
  font-size: 14px;
  font-feature-settings: "palt";
  font-weight: 400;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  overflow-x: clip;
  width: 100%;
  max-width: 100%;
  position: relative;
}
img { display: block; width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
.pc{
  display: none;
}
.sp{
  display: block;
}

/* --- PC表示切替（hover対応端末） --- */
@media screen and (min-width: 767px) and (hover: hover) {
  .pc{
    display: block;
  }
  .sp{
    display: none;
  }
  a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}
.marker_yellow{
	background: linear-gradient(#fff 50%,#fff3b7 50%);
	}
/* ===================================================================
   01. 共通パーツ（見出し・ボタン・プレースホルダ・reveal）
   =================================================================== */
/* ===== PHOTO PLACEHOLDER ===== */
.photo-ph {
  position: relative;
  overflow: hidden;
  background-size: cover;
}
.photo-ph::after {
  content: attr(data-label);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: rgba(100,90,75,0.5);
  font-family: var(--font-sans);
  letter-spacing: .05em;
}
.photo-ph.dark {
  background: linear-gradient(135deg, #3A342A 0%, #2A241C 50%, #352F25 100%);
}
.photo-ph.dark::after { color: rgba(200,190,170,0.4); }
.photo-ph.green {
  background: linear-gradient(135deg, #8FA87A 0%, #6B8060 50%, #7A9470 100%);
}
.photo-ph.green::after { color: rgba(255,255,255,0.4); }
/* ===== UTILITY ===== */
.en-label {
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: .25em;
  color: var(--gold-lt);
  font-weight: 700;
}
/* これら3セクションの英語ラベルをSPで小さく */
.online-section .section-head .en-label,
.store-section  .section-head .en-label,
.ifeed-head .en-label {
  font-size: 9px;
  letter-spacing: .18em;
}
/* ── セクション見出し装飾バー（gold・角丸・左右斜め） ── */
.deco-heading {
  position: relative;
  display: inline-block;   /* テキスト幅に合わせてバーを配置するため */
}
.deco-heading::before,
.deco-heading::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 3px;
  height: 32px;
  background: var(--gold-lt);
  border-radius: 2px;
}
/* 左バー：fv-nav-link::before と同じ方向 */
.deco-heading::before {
  right: calc(100% + 16px);
  transform: translateY(-50%) rotate(-8deg);
}
/* 右バー：左バーの鏡像 */
.deco-heading::after {
  left: calc(100% + 16px);
  transform: translateY(-50%) rotate(-7deg);
}
/* ===== SCROLL REVEAL ===== */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.text-btn {
  display: flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--charcoal);
  letter-spacing: .08em;
  border-bottom: 2px solid var(--gold);
  padding-bottom: 4px;
  margin: 0 auto;   /* 中央揃え */
}
.text-btn::after {
  content: '→';
  color: var(--gold);
}
.solid-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--charcoal);
  color: var(--white);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .1em;
  padding: 14px 32px;
  border-radius: var(--radius-sm);
}
.solid-btn::after { content: '→'; }
.normal-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 6px;
  padding: 14px 12px 14px 16px;
  font-size: 11px;
	line-height: 1.5;
  font-weight: 500;
  letter-spacing: .05em;
  background: var(--charcoal);
  color: white;
  transition: background 0.2s, color 0.2s;
}
.normal-more-btn::after { content: '→'; color: var(--gold); }
.normal-more-btn:hover { background: #fff; color: var(--charcoal); }
.section-head {
  text-align: center;
  margin-bottom: 32px;
}
.section-head .en-label { display: block; margin-bottom: 8px; }
	.place-floor-sm{
		font-size: 10px;
	}

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  .section-head .ja-title { font-size: 26px; }
  .online-section .section-head .en-label,
  .store-section  .section-head .en-label { font-size: 11px; letter-spacing: .25em; }
  .section-wrap {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 24px;
  }
  .shop-section .section-wrap,
  .online-section .section-wrap,
  .store-section .section-wrap,
  .insta-feed-section .section-wrap {
    padding: 0;
  }
  .normal-more-btn {
    padding: 12px 16px;
    font-size: 13px;
  }
	.place-floor-sm{
		font-size: 12px;
	}
}

/* ===================================================================
   02. STICKY HEADER
   =================================================================== */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--header-h);
  background: none;
  border-bottom: none;
  z-index: 100;
  transform: translateY(-100%);
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
/* インナー：max1280pxで中央寄せ */
.header-inner {
  height: 100%;
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
}
.site-header.visible {
  transform: translateY(0);
  background: #fff;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(28,26,23,0.08);
}
/* ヘッダーロゴ（SVG画像） */
.site-logo {
  display: block;
  line-height: 0;
}
.site-logo-img {
  height: 30px;   /* SP: 小さく */
  width: auto;
  display: block;
}
.hamburger {
  width: 42px; height: 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  padding: 4px;
  background: none;
  border: none;
}
.hamburger span {
  display: block;
  height: 1.2px;
  background: var(--charcoal);
  border-radius: 1px;
  transition: var(--transition);
}
.hamburger span:nth-child(1) { width: 100%; }
.hamburger span:nth-child(2) { width: 70%; height: 1.2px; }
.hamburger span:nth-child(3) { width: 85%; }
/* PC nav: デスクトップのみ */
.pc-nav { display: none; }
.pc-cta { display: none; }

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  /* HEADER (スクロール後に出現) */
  .site-header { height: 78px; }   /* PC時は少し高く */
  .hamburger { display: none; }
  .site-logo-img { height: 40px; }
  .pc-nav {
    display: flex;
    gap: 20px;               /* 狭めに */
    align-items: center;
    margin-left: auto;       /* 右寄せ */
    margin-right: 20px;
  }
  .pc-nav a {
	  font-family: var(--font-tsuku);
    font-size: 14px;
    color: var(--charcoal);      /* gold */
    letter-spacing: .05em;
    font-weight: 900;        /* 太字 */
    opacity: 1;
    transition: opacity 0.2s;
  }
  .pc-nav a:hover { opacity: 0.7; }
  /* FVボタンと同デザイン */
  .pc-cta {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--gold-lt);
    color: var(--white);
	  font-family: var(--font-tsuku);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .05em;
    padding: 9px 18px;
    border-radius: 4px;
    transition: background 0.2s, color 0.2s;
    white-space: nowrap;
  }
  .pc-cta::after { content: '→'; font-size: 13px; }
  .pc-cta:hover { background: var(--white); color: #d9b981; }
}

/* --- タブレット 768–999px --- */
@media (min-width: 768px) and (max-width: 999px) {
  .hamburger { display: flex !important; }
  .pc-nav   { display: none !important; }
  .pc-cta   { display: none !important; }
}

/* ===================================================================
   03. FIRST VIEW
   =================================================================== */
/* body背景色(white)がボーダーとして見える枠 */
.fv-wrapper {
  padding: 10px 10px 0;
  height: 100svh;
  min-height: 700px;   /* ビューポートが低くてもfv-bottomが隠れないよう下限を確保 */
  display: flex;
  flex-direction: column;
  max-width: 2000px;
  margin: 0 auto;
}
.fv-hero {
  position: relative;
  flex: 1;
  min-height: 0;
  border-radius: 16px 16px 8px 8px;
  overflow: hidden;
  background: var(--charcoal);
}
/* ── Ken Burns スライダー ── */
.slider-track {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.slider-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.6s ease;
}
.slider-slide.active { opacity: 1; }
/* スライド背景：余白付きでKB移動の余地を確保 */
.slider-bg {
  position: absolute;
  inset: -6%;
  width: calc(100% + 12%);
  height: calc(100% + 12%);
  object-fit: cover;
  object-position: center;
  display: block;
}
/* KB: スライドがactiveになったときアニメ開始 */
.slider-slide.active .slider-bg { animation: kb1 7s ease-out forwards; }
.slider-slide:nth-child(2).active .slider-bg { animation: kb2 7s ease-out forwards; }
.slider-slide:nth-child(3).active .slider-bg { animation: kb3 7s ease-out forwards; }
.slider-slide:nth-child(4).active .slider-bg { animation: kb4 7s ease-out forwards; }
@keyframes kb1 {
  from { transform: scale(1.0) translate(0,    0);    }
  to   { transform: scale(1.07) translate(-1.2%, -0.8%); }
}
@keyframes kb2 {
  from { transform: scale(1.07) translate(-1%, 0.5%); }
  to   { transform: scale(1.0)  translate(0.5%, -0.5%); }
}
@keyframes kb3 {
  from { transform: scale(1.0)  translate(1%, 0.5%);  }
  to   { transform: scale(1.07) translate(-0.5%, -1%); }
}
@keyframes kb4 {
  from { transform: scale(1.04) translate(0.5%, 0);   }
  to   { transform: scale(1.0)  translate(-0.8%, 0.4%); }
}
/* グラデーションオーバーレイ */
.fv-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      to bottom,
      rgba(28,26,23,0.32) 20%,
      rgba(28,26,23,0.2)  40%,
      rgba(28,26,23,0.2)  52%,
      rgba(28,26,23,0.55) 100%
    );
}
/* UIレイヤー（ロゴ・CTA・ナビ全部ここ） */
.fv-ui {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 16px 20px 20px;
}
/* ── 上段：ロゴ + CTAピル ── */
.fv-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  opacity: 0;
  animation: fvFadeIn 0.9s 0.3s ease forwards;
}
.fv-logo {
  display: block;
  line-height: 0;
}
.fv-logo-text {
  display: block;
  font-family: var(--font-en);
  width: 98px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--white);
  text-shadow: 0 1px 8px rgba(0,0,0,0.3);
  line-height: 2.8 poy-pointo;
  padding: 8px 0 0;
}
.fv-logo-svg {
  width: 100px;
  height: auto;
  display: block;
  filter: brightness(0) invert(1);
  drop-shadow: 0 1px 8px rgba(0,0,0,0.3);
}
/* gold CTA */
.fv-cta-pill {
  background: #d9b981;
  color: var(--white);
  font-size: 13px;
	font-family: var(--font-tsuku);
  line-height: 1.4;
  font-weight: 900;
  letter-spacing: 0;
  padding: 8px 12px;
  border-bottom-left-radius: 4px;
  border-top-left-radius: 4px;
  display: flex;
  align-items: center;
  margin-right: -20px;
  gap: 9px;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 2px 14px rgba(0,0,0,0.22);
  transition: .2s;
}
.fv-cta-pill::after { content: '→'; font-size: 13px; }
.fv-cta-pill:hover {
  background: var(--white);
  color: #d9b981;
}
/* ── 中段：キャッチコピー（中央） ── */
.fv-middle {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 2px;
}
/* キャッチコピー */
.fv-headline {
  font-family: var(--font-serif);
  font-size: clamp(32px, 10vw, 54px);
  font-weight: 900;
  color: var(--white);
  line-height: 1.35;
  letter-spacing: -.02em;
  text-align: center;
  text-shadow: 0 1px 8px rgba(0,0,0,0.15);
  -webkit-font-smoothing: antialiased;
  -webkit-text-stroke: 0.4px var(--white);  /* SP: レンダリングが細く見えるための補強 */
}
.fv-headline-sub {
  display: block;
	font-family: var(--font-tsuku);
  font-size: clamp(15px, 3.6vw, 18px);
  font-weight: 900;
  text-shadow: 0 1px 8px rgba(0,0,0,0.15);
  margin-top: 24px;
  line-height: 1.65;
  letter-spacing: 0.1em;
  -webkit-font-smoothing: antialiased;
  -webkit-text-stroke: 0.3px var(--white);  /* SP: レンダリングが細く見えるための補強 */
}
.fv-headline-logo-wrap {
  display: flex;
  justify-content: center;
  margin: 0 0 20px;
}
.fv-headline-logo {
  width: min(200px, 54vw);
  height: auto;
  display: block;
  filter: brightness(0) invert(1) drop-shadow(0 2px 12px rgba(0,0,0,0.28));
}
/* ── 下段 ── */
.fv-bottom {
  display: flex;
  flex-direction: column;
  opacity: 0;
  animation: fvFadeUp 0.9s 0.65s ease forwards;
}
/* ナビリンク群（kosugiyu準拠：左ボーダー＋主テキスト＋サブテキスト） */
.fv-nav {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 16px;
}
.fv-nav-link {
  display: flex;
  flex-direction: column;
  padding-left: 12px;
  position: relative;   /* ::before の基準点 */
}
/* border-left の代わり：角丸・傾きのある装飾バー */
.fv-nav-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 38px;
  background: #d9b981;
  border-radius: 2px;
  transform: translateY(-50%) rotate(-6deg);
}
.fv-nav-link.b::before { background: #d9b981; }
 /* 色は統一、必要なら変更可 */
.fv-nav-link-main {
  font-family: var(--font-tsuku);
  font-size: 14px;
  font-weight: 800;
  color: var(--white);
  letter-spacing: .04em;
  text-shadow: 0 1px 8px rgba(0,0,0,0.22);
  line-height: 1.4;
	margin-bottom: 1px;
}
.fv-nav-link-sub {
  font-size: 10px;
  color:var(--white);
  letter-spacing: .0em;
  margin-top: 2px;
  font-weight: 400;
  line-height: 1.3;
}
.fv-nav-plain {
  font-size: 13px;
  color: var(--white);
  letter-spacing: .04em;
  font-weight: 700;
	font-family: var(--font-tsuku);
}
.fv-kuuto01{
  position: absolute;
  z-index: 1;
  right: 0px;          /* SP: より右寄せ */
  bottom: 8px;
  max-width: 180px;
  width: 28%;          /* SP: より小さく */
  height: auto;
}
/* フッターロウ：SNS ＋ nav-plain ＋ SCROLL */
.fv-foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.fv-foot-left {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
/* SP: 縦積み（SNS → nav-plain の順） */
.fv-foot-row {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.fv-foot-nav {
  display: flex;
  gap: 18px;
}
.fv-sns-label {
  font-family: var(--font-en);
  font-size: 8px;
  letter-spacing: .2em;
  color: rgba(255,255,255,0.48);
  display: block;
  margin-bottom: 2px;
}
.fv-sns-icons {
  display: flex;
  gap: 10px;
}
/* SNSアイコン：各SNSのテーマカラー丸＋白抜きSVG */
.fv-sns-badge {
  width: 28px;           /* SP: 小さめ */
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.fv-sns-badge:active { opacity: 0.75; }
.fv-sns-badge svg { display: block; }
.fv-sns-badge--ig {
  background: linear-gradient(135deg, #f09433 0%, #e6683c 20%, #dc2743 45%, #cc2366 70%, #bc1888 100%);
}
.fv-sns-badge--x  { background: #000000; }
.fv-sns-badge--fb { background: #1877F2; }
.fv-sns-badge--line { background: #06C755; }
/* ── FV下部ホワイトバー：住所・Google Map ── */
.fv-lower {
  flex-shrink: 0;
  height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 4px;
  background: #FFFFFF;
}
.fv-lower-map-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid var(--stone-lt);
}
.fv-lower-map-icon svg {
  width: 13px;
  height: 13px;
  fill:var(--charcoal);
}
.fv-lower-address {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.fv-lower-address-name {
  font-size: 11px;
  font-weight: 700;
	line-height: 1.5;
  letter-spacing: .03em;
  white-space: nowrap;
}
.fv-lower-address-text {
  font-size: 10px;
  letter-spacing: .02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fv-lower-link {
  font-size: 10px;
  font-weight: 800;
  margin-left: auto;
  border-bottom: 1px solid var(--stone-lt);
  padding-bottom: 1px;
  letter-spacing: .04em;
  white-space: nowrap;
  flex-shrink: 0;
}
@keyframes fvFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fvFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  /* FV — PC版 */
  .fv-wrapper { padding: 20px 20px 0; min-height: 820px; }
  .fv-hero { border-radius: 20px 20px 10px 10px; }
  .fv-ui { padding: 28px 32px 24px; }
  .fv-logo-svg { width: 200px; }
  .fv-logo-text { font-size: 24px;width: 148px; }
  .fv-cta-pill { font-size: 15px; padding: 16px 22px;margin-right: -40px;letter-spacing: .02em; }
  .fv-headline { font-size: 64px; -webkit-text-stroke: 0;text-shadow: 0 1px 14px rgba(0,0,0,0.22); }
  .fv-headline-sub { font-size: 20px; -webkit-text-stroke: 0;margin-top: 38px;text-shadow: 0 1px 14px rgba(0,0,0,0.22);line-height: 1.95; }
  .fv-headline-logo { width: 230px; }
  .fv-nav { flex-direction: row; gap: 32px; margin-bottom: 28px; }
	.fv-nav-link {padding-left: 16px;}
	.fv-nav-link::before {height: 46px;}
  .fv-nav-link-main { font-size: 17px;margin-bottom: 2px;line-height: 1.6; }
  .fv-lower { height: 64px; padding: 0 16px; }
  .fv-lower-address-name { font-size: 13px; }
  .fv-lower-address-text { font-size: 11px; }
  .fv-lower-link { font-size: 12px; }
  /* SNS・ナビ：PC は横並び */
  .fv-foot-row { flex-direction: row; align-items: center; gap: 16px; }
  .fv-sns-badge { width: 32px; height: 32px; }
  .fv-sns-icons { gap: 10px; }
  /* クート君：PC は大きく右余白あり */
  .fv-kuuto01 { width: 26%; right: 24px; }
}

/* ===================================================================
   04. INSTAGRAM STRIP
   =================================================================== */
.insta-strip-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px 0;
  border-bottom: 1px solid var(--ivory-mid);
}
.insta-handle {
  display: flex;
  align-items: center;
  gap: 8px;
}
.insta-icon {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  display: flex; align-items: center; justify-content: center;
}
.insta-icon svg { width: 12px; height: 12px; fill: white; }
.insta-handle-text {
  font-size: 11px;
  font-weight: 500;
  color: var(--charcoal);
}
.insta-link {
  font-size: 10px;
  color: var(--gold);
  font-weight: 500;
  letter-spacing: .05em;
  border-bottom: 1px solid var(--gold-lt);
}
.insta-strip {
  background: var(--white);
  overflow: hidden;
  padding: 20px 0 0;
}
/* マーキートラック */
.insta-marquee-track {
  display: flex;
  gap: 14px;
  align-items: flex-start;   /* 千鳥ズレのためflex-startで高さ揃えない */
  width: max-content;
  animation: instaMarquee 50s linear infinite;
  will-change: transform;
}
@keyframes instaMarquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
/* ふわふわ上下アニメ */
@keyframes instaFloat {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-11px); }
}
/* 各スライド */
.insta-cell {
  width: 148px;
  flex-shrink: 0;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 1;
  /* ふわふわ：各セルに異なるdelayでバラバラ感を出す */
  animation: instaFloat 8s ease-in-out infinite;
}
/* 8枚サイクルで delay をズラす（クローン9〜16枚目にも同パターンが適用される） */
.insta-cell:nth-child(8n+1) { animation-delay:  0s; }
.insta-cell:nth-child(8n+2) { animation-delay: -1.3s; }
.insta-cell:nth-child(8n+3) { animation-delay: -3.0s; }
.insta-cell:nth-child(8n+4) { animation-delay: -4.7s; }
.insta-cell:nth-child(8n+5) { animation-delay: -0.6s; }
.insta-cell:nth-child(8n+6) { animation-delay: -2.4s; }
.insta-cell:nth-child(8n+7) { animation-delay: -5.8s; }
.insta-cell:nth-child(8n+8) { animation-delay: -3.9s; }
/* 偶数スライドを1/3下にズラして千鳥に */
.insta-cell:nth-child(even) {
  margin-top: calc(148px / 3);   /* ≈ 49px */
}
.insta-cell a {
  display: block;
  width: 100%;
  height: 100%;
}
.insta-cell img,
.insta-cell .photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* ── フッター上：一回り大きめストリップ ── */
.insta-strip--lg {
  position: relative;
  padding-top: 240px;  /* スライド上の空間 → イラストが出る場所 */
}
.insta-strip--lg .insta-marquee-track {
  position: relative;
  z-index: 1;
}
.insta-strip--lg .insta-cell {
  width: 200px;
}
.insta-strip--lg .insta-cell:nth-child(even) {
  margin-top: calc(200px / 3);
}
/* kuuto03 デコ画像 */
.insta-strip-lg-deco {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(460px, 88vw);   /* もっと大きく */
  height: auto;
  z-index: 0;
  pointer-events: none;
}

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  .insta-cell {
    width: 200px;
  }
  .insta-cell:nth-child(even) {
    margin-top: calc(200px / 3);  /* ≈ 66px */
  }
  .insta-marquee-track {
    gap: 20px;
    padding-bottom: 40px;
  }
  /* lg ストリップ：PC でさらに大きく */
  .insta-strip--lg .insta-cell { width: 260px; }
  .insta-strip--lg .insta-cell:nth-child(even) { margin-top: calc(260px / 3); }
  .insta-strip--lg { padding-top: 360px; }
  .insta-strip-lg-deco { width: 640px; }
}

/* ===================================================================
   05. CONCEPT PREVIEW
   =================================================================== */
.concept-section {
  padding: 20px 24px 72px;
  background: #FFFFFF;
  position: relative;
  overflow: hidden;
}
/* 左右のご飯シルエット（テキストの左右に配置。画面を広げると見えてくる） */
.concept-gohan {
  display: block;
  position: absolute;
  top: 60%;
  transform: translateY(-50%);
  width: 600px;
  height: auto;
  z-index: 0;
  pointer-events: none;
}
/* inner(720px中央)の外側端に張り付く。左svgの右端をinner左端に、右svgの左端をinner右端に */
.concept-gohan--left  { right: calc(50% + 320px); }
.concept-gohan--right { left: calc(50% + 320px); transform: translateY(-50%) scaleX(-1); }
.concept-inner {
  display: flex;
  flex-direction: column;
  gap: 36px;
  max-width: 720px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
/* 左：見出しブロック（店舗あんないと同デザイン） */
.concept-label-block {
  flex-shrink: 0;
  text-align: center;
}
.concept-label-block .en-label {
  display: block;
	font-family: var(--font-tsuku);
  margin-bottom: 6px;
  font-size: 9px;
  letter-spacing: .18em;
}
.concept-heading {
  font-family: var(--font-tsuku);
  font-size: 24px;
  font-weight: 900;
  color: var(--charcoal);
  letter-spacing: .06em;
  margin: 12px 0 0;
}
/* 右：本文ブロック */
.concept-text-block {
  flex: 1;
  min-width: 0;
}
.concept-text {
  font-size: clamp(15px, 2.5vw, 16px);
  line-height: 2;
  color: var(--charcoal);
  font-weight: 400;
  width: 100%;
  margin: 10px auto 32px;
}
/* KOMEKUUTOの由来部分を大きく */
.concept-text-lg {
	font-family: var(--font-tsuku);
  font-size: clamp(18px, 3.4vw, 24px);
  line-height: 2;
  font-weight: 900;
  color: var(--charcoal);
  text-align: center!important;
	letter-spacing: 0.12em;
}
.concept-text-sm{
	display: block;
	text-align: center;
    font-size: 11px;
  }
.concept-kuuto02{
  max-width: 960px;
  width: 100%;
  margin: 0 auto 24px;
  position: relative;
  z-index: 1;
}

/* --- PC ≥768px --- */
@media (min-width: 768px) {
.concept-inner {gap: 26px;}
  .concept-section { padding: 32px 48px 80px; }
  .concept-heading { font-size: 35px;margin: 24px 0 2px; }
  .concept-text { font-size: 16px; line-height: 2.4;width: 560px;margin: 24px auto 32px;}
  .concept-text-sm { font-size: 12px; }
  /* コンテンツを前面に（ご飯svgより上） */
  .concept-inner, .concept-kuuto02 { position: relative; z-index: 1; }
}

/* ===================================================================
   06. SHOP GUIDE
   =================================================================== */
.shop-section {
  padding: 0 0;
  overflow: hidden;
}
/* セクション見出し */
.place-head {
  padding: 0 24px;
  margin-bottom: 48px;
  text-align: center;
}
.place-head .en-label { display: block; margin-bottom: 6px; }
.place-heading {
  font-family: var(--font-serif);
  font-size: clamp(22px, 6vw, 42px);
  font-weight: 700;
  color: var(--gold);
  letter-spacing: .04em;
  line-height: 2;
}
.place-items{
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  }
/* 各フロアアイテム */
.place-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 24px 32px;
}
.place-item-head {
  width: 100%;
  text-align: center;
  padding: 4px 0 0;
}
.place-item-tag {
  display: block;
  font-family: var(--font-en);
  font-size: 10px;
  letter-spacing: .15em;
  color: var(--gold-lt);
  font-weight: 700;
  margin-bottom: 1px;
  text-align: center;
}
.place-item-title {
  font-family: var(--font-tsuku);
  font-size: 24px;
  font-weight: 700;
  color: var(--charcoal);
  letter-spacing: .01em;
  margin-bottom: 18px;
	line-height: 1.5;
  text-align: center;
}
.place-item-title-sub {
  font-size: 15px;
  font-weight: 700;
}
/* ドット区切り線（place-item-title と同じドットパターン） */
.section-border {
  width: calc(100% - 64px);
  height: 3px;
  margin: 64px auto;
  background-image: radial-gradient(circle, #d9b981 1.6px, transparent 1.6px);
  background-repeat: repeat-x;
  background-position: center;
  background-size: 12px 4px;
}
/* フロアラベル ＋ 区切り線 */
.place-floor-label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 40px 12px 38px 20px;
  margin-bottom: 28px;
  background: var(--gold);
    color:#fff;
  text-align: center;
  justify-content: space-between;
  width: 100%;
	margin: 0 auto;
  border-radius: 0;
}
.place-floor-label-left{
  display: flex;
  justify-content: flex-start;
	align-items: flex-start;
  }
.place-floor-num {
  font-family: var(--font-tsuku);
  font-size: clamp(18px, 4.2vw, 24px);
  font-weight: 900;
  letter-spacing: .02em;
  margin-right: 2px;
	line-height: 1.4;
}
.place-floor-en {
  font-family: var(--font-tsuku);
  font-size: clamp(22px, 4.5vw, 28px);
  letter-spacing: -0.01em;
  font-weight: 900;
  border-left: none;
  padding-left: 8px;
  margin-left: 4px;
  color:#fff;
  text-align: left;
  line-height: 1;
}
.place-floor-en-sm {
  font-family: var(--font-tsuku);
  font-size: 10px!important;
  letter-spacing: .04em;
  font-weight: 900;
  color:#fff;
}
/* 音符アイコン（絵文字は色固定で白にできないためSVGに置換） */
.place-floor-en .note-icon {
  width: 12px;
  height: 13px;
  fill: #fff;
  display: inline-block;
  vertical-align: -1px;
  margin-left: 2px;
}
.floor-banner-right {
  text-align: left;
  background: none;
  color: var(--white);
  padding: 2px 8px 0 10px;
  border-radius: 0;
  letter-spacing: 0;
	border-left: 1px dotted rgba(255,255,255,0.5);
  }
.floor-banner-hours {
  font-size: 9px;
  font-weight: 500;
  line-height: 1.6;
}
.floor-banner-hours-time {
  font-size: 12px;
  font-weight: 700;
  margin-left: 2px;
}
.floor-banner-lo {
  font-size: 9px;
  font-weight: 500;
  margin-left: 8px;
}
.floor-banner-closed {
  font-size: 9px;
  font-weight: 500;
  margin: 4px 0 8px;
  line-height: 1.6;
}
/* テキストブロック */
.place-text-block {
  flex-shrink: 0;
  }
.place-photo {
  width: calc(100% + 48px);   /* .place-item の左右padding24pxを打ち消して画面端まで */
  margin-left: -24px;
  border-radius: 0;
  aspect-ratio: 1/1;
  flex-shrink: 0;
  position: relative;
	margin-top: 12px;
}
.place-photo img,
.place-photo .photo-ph {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}
/* 写真の左上に乗せる装飾イラスト（kuuto09） */
.place-photo-deco {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 80px !important;   /* .place-photo img の width:100% を打ち消す */
  height: auto !important;
  object-fit: contain !important;
  z-index: 2;
  pointer-events: none;
}
.place-subtitle {
  font-family: var(--font-tsuku);
  font-size: 20px;
  font-weight: 600;
  color: var(--charcoal);
  letter-spacing: .04em;
  margin: 18px 0 0;
  line-height: 2;
	text-align: left;
}
/* 見出し内の補足テキスト（小さめ） */
.subtitle-sub {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .02em;
  white-space: nowrap;
  line-height: 1.2;
	margin-left: 4px;
}
.place-body {
  font-size: clamp(15px, 2.5vw, 16px);
  line-height: 2;
  font-weight: 400;
  margin-bottom: 0;
}
.place-body p {
  margin: 12px 0;
}
.place-bt {
  display: none!important;
}
/* solid-btn は他箇所で使う可能性のため残す */
.shop-cta {
  text-align: center;
  padding: 32px 24px 0;
}
/* セレクトショップ内の3カテゴリ（SP:左写真+右テキスト横並び／PC:縦積みカード3列） */
.select-sub-grid {
  max-width: 1200px!important;
  display: flex;
  align-items:stretch;
  justify-content:center;
  flex-wrap: wrap;
  gap: 2%;
  padding: 0 0 0;
  width: 98%;
  margin: 0 auto;   /* 上のplace-photoに少し被せる（place-item下paddingを超える値） */
  position: relative;
  z-index: 2;
}
.select-sub-item {
  width: 48%;
  border-radius: 12px;
  box-shadow: 0 0 8px 0 rgba(0,0,0,0.15);
  border: 2px solid #fff;
  margin-bottom: 2%;
  overflow: hidden;
}
.select-sub-item-last {
  width: 60%;
}
.select-sub-photo {
  aspect-ratio: 5/4;
  overflow: hidden;
  margin-bottom: 0;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.select-sub-photo img,
.select-sub-photo .photo-ph {
  width: 100%!important;
  height: 100%!important;
  object-fit: cover;
  display: block;
}
.select-sub-body {
  flex: 1;
  min-width: 0;
}
.select-sub-title {
  position: absolute;
	max-width: 86%;
  z-index: 2;
  bottom: 0;
  left: 0;
  font-family: var(--font-tsuku);
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.01em;
  background: var(--gold-lt);
  border-radius: 0 3px 0 0;
  font-size: 14px;
    line-height: 1.3;
    padding: 6px 8px 6px;
	text-align: left;
}
.select-sub-text {
  font-size: 11px;
  line-height: 1.7;
	letter-spacing: 0.1em;
  text-align: left;
	font-weight: 400;
  padding: 9px 6px 9px;
	background: #fff;
	color: var(--charcoal-lt);
}
.select-sub-disc {
	max-width: 1088px;
	width: 100%;
	padding: 12px 24px 0;
	margin: 0 auto;
   font-size: clamp(15px, 2.5vw, 16px);
	line-height: 2;
}
/* カフェ挿絵「くーと君」 */
.cafe-kuuto { display: block; height: auto; }
/* SP: イラストを上・中央、テキストを下・全幅 */
.cafe-body-flex {
  display: flex;
  flex-direction: column-reverse;   /* DOM順=テキスト→画像を、画像→テキストに反転 */
  align-items: center;
}
.cafe-body-flex > p { width: 100%; }
.cafe-kuuto--sp {
  width: 70%;
	max-width: 400px;
  flex-shrink: 0;
	margin: -32px auto -32px;
}
.cafe-kuuto--pc { display: none; }   /* SPでは非表示 */
/* セレクトフード：SP時テキスト上にイラスト表示（PCは非表示） */
.select-food-kuuto-sp {
  display: block;
  width: 60%;
  max-width: 320px;
  height: auto;
  margin: 0 auto 8px;
}
/* PeboRa：kuuto03をSPでさらに大きく */
.select-food-kuuto-sp--pebora {
  width: 82%;
  max-width: 460px;
}
/* セレクトフード：kuuto07をSPで大きく */
.select-food-kuuto-sp--food {
  width: 88%;
  max-width: 480px;
}
/* スタジオ：イラスト上（帯にかけない）→ h4見出し（左寄せ）→ テキスト全幅 */
.cafe-body-flex--studio {
  flex-direction: column;   /* reverseを解除しorderで制御 */
  align-items: stretch;
}
.cafe-body-flex--studio .cafe-kuuto--sp {
  order: 1;
  align-self: center;
  margin: 0 auto;   /* 上の負マージンを打ち消し帯にかけない */
  width: 92%;
  max-width: 520px;
}
.cafe-body-flex--studio .place-subtitle {
  order: 2;
  text-align: left;
}
.cafe-body-flex--studio > p {
  order: 3;
  width: 100%;
}
.kuuto_shop01{
			  position: absolute;
			  left: 1%;
			  top: -3%;
			  max-width: 330px!important;
			  width: 50%!important;
			  height: auto!important;
			  z-index: 2;
		  }
.kuuto_shop02{
			  position: absolute;
			  right: 1%;
			  bottom: -8%;
			  max-width: 330px!important;
			  width: 50%!important;
			  height: auto!important;
			  z-index: 2;
		  }
.kuuto_shop03{
			  position: absolute;
			  right: -2%;
			  top: -4%;
			  max-width: 380px!important;
			  width: 60%!important;
			  height: auto!important;
			  z-index: 2;
		  }
.kuuto_shop04{
			  position: absolute;
			  right: 2%;
			  bottom: 1%;
			  max-width: 220px!important;
			  width: 35%!important;
			  height: auto!important;
			  z-index: 2;
		  }
.kuuto_shop05{
			  position: absolute;
			  right: -2%;
			  bottom: -1%;
			  max-width: 340px!important;
			  width: 50%!important;
			  height: auto!important;
			  z-index: 2;
		  }
/* スタジオ（SP専用）：floor-label下の隙間を詰める＋写真を4/3横長に */
@media (max-width: 767px) {
  .place-item--studio .place-floor-label { margin-bottom: 0; }
  .place-item--studio .place-photo { aspect-ratio: 4/3; }
  /* 1Fセレクトショップのラベル下（「お米、玄米」見出しとの間）を広げる */
  .place-floor-label.place-floor-label--shop { margin-bottom: 40px; }
}
.cafe-disc-wrap { /* SPは素通し（discのみ表示） */ position: relative; z-index: 0; }
/* お米・玄米／PeboRa のwrap下に余白（次セクションとの間隔を約5倍に） */
.cafe-disc-wrap--gap { margin-bottom: 80px !important; }
/* セレクトフード：カフェセクションとの間隔を広げる */
.cafe-disc-wrap--gap-food { margin-bottom: 100px !important; }
.cafe-disc-bottom{
	margin: 32px auto 80px;
	position: relative;
	z-index: 2;
	}
/* KOMEKUUTO CTA（お問い合わせ）：上のwrapとの間隔を広げる */
.cafe-disc-bottom--contact{ margin-top: 96px !important; }

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  .place-photo {
    width: 100%;
    border-radius: 12px;
    aspect-ratio: 16/14;
    flex-shrink: 0;
    position: relative;
    margin-left: 0;
    flex: 1;
  }
  .shop-section {
    padding: 96px 0;
  }
  .place-items {
    width: 92%;
  }
.place-item-head {
  padding: 8px 0 0;
}
.place-item-tag {
  font-size: 10px;
  margin-bottom: 8px;
}
.place-item-title {
  font-size: 32px;
  margin-bottom: 16px;
}
  .place-head {
    padding: 0 64px;
    margin-bottom: 0;
  }
  .place-heading {
    font-size: clamp(42px, 7vw, 120px);
  }
  .place-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 24px 32px;
  }
  .place-text-block {
    flex-shrink: 0;
  }
  .place-subtitle {
    font-size: 22px;
  }
.subtitle-sub {
  font-size: 12px;
}
  .place-body {
    font-size: 15.5px;
	  line-height: 2.1; 
	  margin-bottom: 0;
  }
  .place-bt {
    display: none;
  }
  .place-floor-label {
    gap: 10px;
    padding: 32px 40px 32px 48px;
    margin-bottom: 28px;
	  border-radius: 8px;
	  width: 96.4%
  }
  .place-floor-num {
    margin-right: 6px;
	  font-size: 28px;
	  line-height: 2;
  }
  .place-floor-en {
	  font-size: 28px;
    padding-left: 8px;
    margin-left: 4px;
	  border-left: 1px dotted rgba(255,255,255,0.5);
  }
  .place-floor-en-sm {
    font-size: 10px!important;
    margin-left: 4px;
  }
  .select-sub-grid {
    display: flex;
    align-items: start;  /* 千鳥のためflex-startで揃えない */
    gap: 8px;
    padding: 0 0 0;
    max-width: 880px;
    margin: 0 auto 0;
    overflow: visible;
    width: 88%;
  }
  .select-sub-item {
    align-items: center;
    text-align: center;
    gap: 0;
    width: 32%;
	  box-shadow: 0 0 12PX 0 rgba(0,0,0,0.15);
  }
	.select-sub-item-last {
    width: 32%;
  }
  .select-sub-photo {
    aspect-ratio: 4/3;
  }
  .select-sub-body { width: 100%; }
  .select-sub-title { 
	  bottom: 2px;
  left: 2px;
	  border-radius: 3px;
	  font-size: 15px;
  padding: 10px 14px;
    line-height: 1.5; }
  .select-sub-text { font-size: 11px;padding: 12px 14px 14px;line-height: 1.8; }
  /* カフェ挿絵くーと君：PCはdiscの左に横並び、SP用は非表示 */
  .cafe-kuuto--sp { display: none; }
  .select-food-kuuto-sp { display: none; }
  .cafe-body-flex { display: block; }   /* PCはテキストのみ縦組み */
  .cafe-disc-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    max-width: 1088px;
    width: 86%;
    margin: 0 auto;
  }
  .cafe-kuuto--pc {
    display: block;
    width: 360px;
	  margin-left: -40px;
    flex-shrink: 0;
  }
  .cafe-disc-wrap .select-sub-disc {
    width: auto;
    flex: 1;
    margin: 0;
	  font-size: 16px; 
	  line-height: 2.4;
  }
  /* スタジオ：くーと君を右・テキストを左に反転 */
  .cafe-disc-wrap--studio { flex-direction: row-reverse; }
  .cafe-disc-wrap--studio .cafe-kuuto--pc { margin-left: 0; margin-right: -40px; }
.select-sub-disc {
	width: 86%;
	padding: 0;
}
.cafe-disc-bottom{
	margin: 32px auto 80px;
	}
.floor-banner-right {
  background: #fff;
  color: var(--gold);
  padding: 10px 12px 6px;
  border-radius: 6px;
	border: none;
  }
.floor-banner-hours {
  font-size: 10px;
}
.floor-banner-hours-time {
  font-size: 15px;
}
.floor-banner-lo {
  font-size: 10px;
}
.floor-banner-closed {
  font-size: 10px;
  margin: 4px 0 8px;
}
.kuuto_shop01{
			  left: -3%;
			  top: -3%;
		  }
.kuuto_shop02{
			  right: -3%;
			  bottom: -3%;
		  }
.place-photo .photo-ph {
	border-radius: 12px;
	overflow: hidden;
}
}

/* --- ワイド ≥1000px --- */
@media (min-width: 1000px) {
	  .place-photo {
		  margin-top: 0;
  }
    .place-floor-label {
      border-radius: 8px;
  }
  .place-items{
  width: 100%!important;
  }
  .place-item {
    flex-direction: row!important;
    align-items: center!important;
    gap: 32px!important;
	padding: 12px 48px 32px;
  }
  /* PeboRa：写真を左・テキストを右に */
  .place-item--pebora {
    flex-direction: row-reverse!important;
  }
  .place-text-block { flex: 0 0 480px!important; }
   .select-sub-grid {
    margin: 0 auto 0;
  }
    .place-bt {
    display: block!important;
  }
	.cafe-disc-bottom{
	margin: 0 auto 80px;
	}
	.floor-banner-hours {
  font-size: 12px;
}
.floor-banner-hours-time {
  font-size: 18px;
}
.floor-banner-lo {
  font-size: 12px;
}
.floor-banner-closed {
  font-size: 12px;
  margin: 4px 0 8px;
}
}

/* ===================================================================
   07. ONLINE STORE LINKS
   =================================================================== */
.online-section {
  padding: 20px 0 48px;
}
.online-section .section-head .en-label { color: var(--gold-lt); }
.online-section .section-head .ja-title {
  color: var(--charcoal);
  font-family: var(--font-serif);
  font-size: 18px;    /* SP: 小さく / PC: 22pxに戻す */
  font-weight: 900;
  letter-spacing: -0.01em;
  }
.online-grid {
  display: grid;
  grid-template-columns: 1fr;       /* SP: 1列 */
  gap: 24px;
  padding: 0 24px;
  max-width: 880px;
  margin:36px auto 0;
}
/* バナー画像カード */
.online-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transition: opacity 0.2s;
}
.online-card:hover { opacity: 0.85; }
.online-card-img {
  max-width: 240px;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 16/5;
  background: var(--ivory-mid);
	box-shadow: 0 0 6px 0 rgba(0,0,0,0.1);
}
.online-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.online-card:hover .online-card-img img { transform: scale(1.03); }
/* 運営会社バナー：online-card装飾を流用し、中央寄せ＆大きめ */
.company-banner {
  max-width: 840px;
  margin: 32px auto 0;
  padding: 0 24px;
}
.company-banner .online-card-img {
  max-width: 340px;
  width: 100%;
}
.company-banner .online-card-name {
  margin-top: 4px;
}
.online-card-name {
  font-size: 12px;
  line-height: 1;
  font-weight: 500;
  color: var(--charcoal);
  text-align: center;
  letter-spacing: .04em;
}

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  /* ONLINE */
  .online-section { padding: 30px 0 60px; }
  .online-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 0 18px;
  }
  .online-card-name { font-size: 13px; }
}

/* ===================================================================
   08. STORE INFO
   =================================================================== */
/* 店舗ラベル吹き出し */
.store-section-label {
  display: inline-block;
  position: relative;
  margin: 24px auto 0;   /* 上を広く */
  left: 50%;
  transform: translateX(-50%);
  background: var(--white);
  color: var(--dark);
  border: 1.5px solid var(--gold);
  font-family: var(--font-tsuku);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  padding: 8px 22px;
  border-radius: 20px;
  white-space: nowrap;
  z-index: 1;
}
/* 縦ラインをラベル底辺から地図まで */
.store-section-label::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 16px;   /* 地図との間を狭める */
  background: var(--gold);
}
.store-section {
  padding: 52px 0 0px;
}
/* 地図エリア */
.store-map {
  /* min(880px, 100%-40px) でSPは20px余白、PCは880px中央寄せ */
  max-width: min(840px, calc(100% - 40px));
  margin: 36px auto 0;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 16/9;
  position: relative;
}
/* ラベル付き地図：ラベルとの間を詰める */
.store-map--labeled { margin-top: 16px; }
.store-map iframe {
  width: 100%; height: 100%;
  display: block;
  border: none;
}
.store-map .photo-ph {
  width: 100%; height: 100%;
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2A3020 0%, #3A4428 40%, #1E2A18 100%) !important;
}
/* テキスト情報（中央寄せ） */
.store-meta {
  text-align: left;
  max-width: min(840px, calc(100% - 40px));
  margin: 0 auto;
  padding: 18px 0 0;
}
.store-meta-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.store-meta-head-left { min-width: 0; }
.store-meta-name {
  font-family: var(--font-tsuku);
  font-size: 18px;
  font-weight: 700;
  color: var(--charcoal);
  letter-spacing: .06em;
  margin-bottom: 6px;
}
.store-meta-address {
  font-size: 13px;
  letter-spacing: .03em;
  margin-bottom: 0;
  font-weight: 500;
}
.store-meta-sm {
  font-size: 11px;
}
/* 営業時間・TELテーブル */
.store-info-table {
  margin: 0 auto 36px;
  text-align: left;
  border-top: 1px solid var(--gold);
}
.sit-row {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 8px;
  padding: 10px 0;
  border-bottom: 1px solid var(--gold);
  align-items: start;
}
.sit-row dt {
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--gold);
  text-transform: uppercase;
  padding-top: 3px;
}
.sit-row dd {
  font-size: 13px;
  color: var(--charcoal);
  line-height: 2;
  font-weight: 500;
  letter-spacing: .04em;
}
/* 平日/土日祝 バッジ */
.sit-day {
  display: inline-block;
  font-size: 11px;
  color: var(--gold);
  background: var(--ivory-mid);
  border-radius: 2px;
  padding: 1px 7px;
  letter-spacing: .04em;
  margin-right: 7px;
  vertical-align: middle;
}
/* L.O 表記 */
.sit-lo {
  font-size: 13px;
  color: var(--gold);
  letter-spacing: .08em;
  margin-left: 10px;
}
/* tel サブラベル */
.sit-tel-sub {
  font-size: 11px;
  color: var(--gold);
  margin-right: 5px;
}
.sit-row a {
  color: inherit;
  text-decoration: none;
}
/* Google Mapボタン（ifeed-more-btn と同一スタイル） */
.store-pill-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid var(--charcoal);
  border-radius: 6px;
  padding: 12px 12px;
  font-size: 10px;
  font-weight: 900;
  color: var(--charcoal);
  letter-spacing: .06em;
  white-space: nowrap;
  background: var(--charcoal);
  color: white;
  transition: background 0.2s, color 0.2s;
}
.store-pill-btn::after { content: '→'; color: var(--gold); }
.store-pill-btn:hover { background: #fff; color: var(--charcoal); }

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  /* 右カラム（3・4行目）に左余白 */
  .sit-row:nth-child(3),
  .sit-row:nth-child(4) { padding-left: 32px; }
  /* STORE */
	.sit-row dd {
  font-size: 14px;
}
  .store-section { padding: 72px 0 72px; }
  .store-map { border-radius: 18px; }
  .store-meta-name { font-size: 22px; }
  .store-meta-address,
  .store-meta-hours { font-size: 14px; }
  .store-meta-sm { font-size: 12px; }
  .store-info-table {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    column-gap: 0;
    position: relative;
  }
  /* 中央縦ボーダー */
  .store-info-table::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0; bottom: 0;
    width: 1px;
    background: var(--ivory-mid);
  }
  /* 三沢店：2項目を1行で横並び（.store-info-table より後に置くこと） */
  .store-info-table--row {
    grid-auto-flow: row;
    grid-template-rows: auto;
  }
  .store-info-table--row .sit-row:nth-child(2) { padding-left: 32px; }
	.store-pill-btn {
  padding: 12px 18px;
  font-size: 12px;
}
}

/* ===================================================================
   09. INSTAGRAM FEED
   =================================================================== */
/* （WP実装後: Smash Balloon Social Photo Feed） */
.insta-feed-section {
  background: var(--white);
  padding: 0 0 40px;
}
/* セクション見出し（WP実装後もこのHTMLは残る） */
.ifeed-head {
  text-align: center;
  padding: 0 24px;
  margin-bottom: 16px;
}
.ifeed-head .en-label { display: block; margin-bottom: 6px;font-family: var(--font-tsuku); }
.ifeed-section-title {
  font-family: var(--font-tsuku);
  font-size: clamp(22px, 5.2vw, 32px)!important;
  font-weight: 900;
  color: var(--charcoal);
  letter-spacing: .06em;
}
/* プラグイン出力エリア */
.ifeed-plugin-wrap {
  max-width: 840px;
  margin: 0 auto;
  padding: 0 20px;
}
/* ── プロフィールヘッダー ── */
.ifeed-profile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 0 2px;
}
.ifeed-profile-left {
  display: flex;
  align-items: center;
  gap: 6px;
}
/* Instagram グラデーションリング（Story未確認時はグレー） */
.ifeed-avatar-ring {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  padding: 2px;
  flex-shrink: 0;
}
.ifeed-avatar-inner {
  width: 100%; height: 100%;
  border-radius: 50%;
  background: var(--ivory);
  border: 2px solid white;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: var(--charcoal);
  overflow: hidden;
}
.ifeed-avatar-inner img {
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.ifeed-username {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--charcoal);
  letter-spacing: .01em;
}
.ifeed-fullname {
  display: block;
  font-size: 10px;
  margin-top: 0;
}
/* フォローボタン — gold */
.ifeed-follow-btn {
  display: inline-flex;
  align-items: center;
  background: #d9b981;
  color: var(--charcoal);
  font-size: 12px;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 8px;
  letter-spacing: .02em;
  flex-shrink: 0;
  white-space: nowrap;
}
/* ── 投稿グリッド ── */
.ifeed-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3px;
  margin-bottom: 20px;
}
.ifeed-post {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--ivory-mid);
	border-radius: 6px;
}
/* 画像未設定時はプレースホルダー表示、設定済みなら非表示 */
.ifeed-post-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  z-index: 1;
  transition: transform 0.4s ease;
}
/* src が空のときは非表示 */
.ifeed-post-img[src=""] { display: none; }
.ifeed-post-ph {
  position: absolute;
  inset: 0;
  z-index: 0;
  transition: transform 0.4s ease;
}
/* img が存在する（src非空）場合はプレースホルダーを隠す */
.ifeed-post:has(.ifeed-post-img:not([src=""])) .ifeed-post-ph { display: none; }
.ifeed-post:hover .ifeed-post-img { transform: scale(1.05); }
.ifeed-post-overlay {
  z-index: 2;
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.52);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.ifeed-post:hover .ifeed-post-overlay { opacity: 1; }
.ifeed-overlay-stats {
  display: flex;
  align-items: center;
  gap: 18px;
}
.ifeed-overlay-stat {
  display: flex;
  align-items: center;
  gap: 5px;
  color: white;
  font-size: 14px;
  font-weight: 700;
}
.ifeed-overlay-stat svg { width: 17px; height: 17px; fill: white; }
.ifeed-overlay-caption {
  color: rgba(255,255,255,0.88);
  font-size: 11px;
  line-height: 1.65;
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
}
/* 動画バッジ */
.ifeed-video-badge {
  position: absolute;
  top: 7px; right: 7px;
  opacity: 0.92;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.4));
}
.ifeed-video-badge svg { width: 18px; height: 18px; fill: white; display: block; }
/* ── もっと見るボタン ── */
.ifeed-load-more { text-align: center; }
.ifeed-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid var(--charcoal);
  border-radius: 6px;
  padding: 10px 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  background: var(--charcoal);
  color: white;
  transition: background 0.2s, color 0.2s;
}
.ifeed-more-btn--uber{
	padding: 14px 20px;
	font-size: 12px;
	}
.ifeed-more-btn::after { content: '→'; color: var(--gold); }
.ifeed-more-btn:hover { background: #fff; color: var(--charcoal);border: 1.5px solid var(--charcoal); }
/* お問い合わせボタン：通常=白地／ホバー=charcoal地（Uberボタンと反転） */
.ifeed-more-btn--contact {
  background: var(--white);
  color: var(--charcoal);
  border-color: var(--gold);
}
.ifeed-more-btn--contact:hover {
background: var(--gold);
  color: var(--white);
  border-color: var(--gold);
}
.ifeed-more-btn--contact::after { color: var(--gold); }
.ifeed-more-btn--contact:hover::after { color: var(--white); }
/* Uber Eatsボタン：テキスト左に正方形ロゴ */
.ifeed-more-btn--uber .uber-logo {
  width: 46px;
  height: 46px;
  object-fit: contain;
  border-radius: 4px;
  flex-shrink: 0;
	margin-right: 8px;
}
.uber-text{
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 8px;
	}
	
/* --- PC ≥768px --- */
@media (min-width: 768px) {
  /* INSTA FEED */
  .insta-feed-section { padding: 24px 0 72px; }
	.ifeed-section-title {font-size: 38px!important;}
  /* PC時、下記4見出しのみ一段小さく（「店舗あんない」は38pxのまま）
       ・最新の投稿           .insta-feed-section
       ・店舗情報・アクセス   .store-section
       ・運営会社             .company-info-section
       ・オンラインでショッピング .online-section          */
  .insta-feed-section   .ifeed-section-title,
  .store-section        .ifeed-section-title,
  .company-info-section .ifeed-section-title,
  .online-section       .ifeed-section-title { font-size: 32px!important; }
  /* 「店舗あんない」のみ：ゴールド＋大きく＋下の余白を広げる */
  .shop-section .ifeed-section-title { color: var(--gold-lt); font-size: 48px!important; }
  .shop-section .ifeed-head { margin-bottom: 32px; }
  .ifeed-plugin-wrap { padding: 0; }
  .ifeed-head .en-label { font-size: 11px; letter-spacing: .25em; }
	.ifeed-profile-left {
  gap: 12px;
}
  .ifeed-avatar-ring { width: 64px; height: 64px; }
  .ifeed-username { font-size: 15px; }
	.ifeed-fullname {
  font-size: 11px;
  margin-top: 1px;
}
  .ifeed-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
  }
.ifeed-more-btn {
  gap: 8px;
  padding: 18px 32px;
  font-size: 13px;
}
.ifeed-more-btn--uber{
	padding: 24px 40px;
	font-size: 15px;
	}
.ifeed-more-btn--uber .uber-logo {
  width: 64px;
  height: 64px;
}
}

/* ===================================================================
   10. COMPANY INFO
   =================================================================== */
.company-info-section {
  padding: 52px 24px 64px;
  background: #fff;
}
.company-table {
  max-width: 840px;
  margin: 28px auto 0;
  border-top: 1px solid var(--gold);
}
/* 分割した2つ目のdlはSPでは上罫線を重複させない */
.company-table--grid { border-top: 0; margin-top: 0; }
.ci-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 2px 16px;
  padding: 12px 4px;
  border-bottom: 1px solid var(--gold);
  align-items: start;
}
.ci-row dt {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--gold);
  padding-top: 2px;
}
.ci-row dd {
  font-size: 13px;
  line-height: 1.8;
  color: var(--charcoal);
  font-weight: 500;
}
.ci-row dd a {
  color: var(--gold);
	font-weight: 700;
  border-bottom: 1px solid var(--gold-lt);
}

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  .ci-row { grid-template-columns: 100px 1fr; padding: 16px 4px; }
  .ci-row dt { font-size: 11px; }
  .ci-row dd { font-size: 14px; }
  /* 「設立」以降を横2列グリッドに（会社名・所在地は全幅のまま） */
  .company-table--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  /* 2列時は各セルが自前の上ボーダーを持つ（border-topを解除しbottomで区切る） */
  .company-table--grid .ci-row { border-bottom: 1px solid var(--gold); }
  /* 中央縦罫線：右列セルの左辺に付与（＝中央）。全幅行には付かず自然に途切れる */
  .company-table--grid .ci-row:nth-child(even) {
    padding-left: 32px;
    border-left: 1px solid var(--ivory-mid);
  }
  /* セル数が奇数のとき、最後の行を全幅にする */
  .company-table--grid .ci-row:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

/* ===================================================================
   11. FOOTER
   =================================================================== */
.site-footer {
  background: #FFFFFF;
}
/* 白背景エリア */
.footer-main {
  padding: 20px 12px 32px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* SVGロゴ */
.footer-logo-img {
  width: 148px;
  height: auto;
  display: block;
  margin-bottom: 20px;
}
/* コピーテキスト */
.footer-tagline-lg {
  font-family: var(--font-tsuku);
  font-size: clamp(19px, 4.2vw, 30px);
  font-weight: 900;
  color: var(--charcoal);
  letter-spacing: .06em;
  line-height: 1.4;
  margin-bottom: 20px;
}
/* ナビ横並び */
.footer-nav-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 14px;
  margin-bottom: 20px;
}
.footer-nav-row a {
	font-family: var(--font-tsuku);
  font-size: 13px;
  color: var(--charcoal);
  letter-spacing: .02em;
  font-weight: 900;
}
/* CTAボタン2列（ifeed-more-btn--uber と同一デザイン／等幅横並び） */
.footer-cta-row {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 4px;
  width: 100%;
  max-width: 560px;
  margin: 0 auto 24px;
  padding: 0 4px;
}
.footer-cta-row .ifeed-more-btn {
  flex: 1 1 0;
  min-width: 0;              /* flex子の縮小を許可（テキスト折返しに必須） */
  justify-content: center;
  text-align: left;
}
/* SP時は要素を詰めて2列に収める */
.footer-cta-row .ifeed-more-btn--uber {
  padding: 18px 10px;
  font-size: 11px;
  gap: 4px;
}
.footer-cta-row .ifeed-more-btn--uber .uber-logo {
  width: 34px;
  height: 34px;
  margin-right: 3px;
}
.footer-cta-row .ifeed-more-btn span {
  line-height: 1.45;
}
.footer-cta-row .ifeed-more-btn::after { flex-shrink: 0; }
/* SNSバッジ行 */
.footer-sns-row {
  display: flex;
  justify-content: center;
  gap: 12px;
}
/* 店舗の地図リンク（footer-nav-row a と同サイズ・同フォント） */
.footer-map-row {
  display: flex;
  justify-content: center;
  margin-bottom: 14px;
}
.footer-map-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-tsuku);
  font-size: 13px;
  font-weight: 900;
  color: var(--charcoal);
  letter-spacing: .02em;
  transition: opacity 0.2s;
}
.footer-map-icon { flex-shrink: 0; }
.footer-photo-credit {
  margin: 0 24px 14px;
  text-align: center;
  font-size: 11px;
  font-weight: normal;
  line-height: 1.7;
}

/* 最下部（dark背景） */
.footer-bottom {
  padding: 0 24px 20px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
}
/* SP：ポリシーとコピーライトの間に「｜」 */
.footer-bottom .footer-copy::before {
  content: "｜";
  margin-right: 8px;
  color: var(--stone-lt);
  font-weight: 400;
}
.footer-policy {
	font-family: var(--font-en);
  font-size: 10px;
  color: var(--charcoal);
  font-weight: 800;
}
.footer-copy {
  font-size: 10px;
  color: var(--charcoal);
  font-family: var(--font-en);
  letter-spacing: .08em;
  font-weight: 400;
}

/* --- PC ≥768px --- */
@media (min-width: 768px) {
  /* FOOTER */
  .footer-logo-img { width: 198px; margin-bottom: 32px; }
  .footer-tagline-lg { font-size: 32px; margin-bottom: 32px; }
  .footer-nav-row { gap: 6px 20px; margin-bottom: 24px; }
  .footer-nav-row a { font-size: 15px; }
  /* CTAボタン2列：PCはロゴ・文字を本文側と同等サイズに戻す */
  .footer-cta-row {
    max-width: 640px;
    gap: 12px;
    margin-bottom: 32px;
    padding: 0;
  }
  .footer-cta-row .ifeed-more-btn--uber {
    padding: 18px 24px;
    font-size: 14px;
    gap: 8px;
  }
  .footer-cta-row .ifeed-more-btn--uber .uber-logo {
    width: 52px;
    height: 52px;
    margin-right: 8px;
  }
  .footer-sns-row { gap: 14px; }
  .footer-bottom {
    padding: 18px 48px;
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
  }
}

/* ===================================================================
   12. DRAWER MENU
   =================================================================== */
.drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(28,26,23,0.5);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.drawer {
  position: fixed;
  top: 10px; right: 10px; bottom: 10px;
  width: 280px;
  background: #FFFFFF;
  border-radius: 16px;
  z-index: 201;
  transform: translateX(calc(100% + 10px));
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow-y: auto;
}
.drawer.open {
  transform: translateX(0);
}
.drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  /* border-bottom 削除 */
}
.drawer-logo {
  display: block;
  line-height: 0;
}
.drawer-logo-img {
  height: 28px;
  width: auto;
  display: block;
}
.drawer-close {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  font-size: 18px;
  color: var(--stone);
}
.drawer-nav {
  padding: 6px 0 0;
  /* flex: 1 削除（マップ・SNSを自然な位置に） */
}
.drawer-nav-item {
  display: flex;
  align-items: center;
  padding: 9px 24px;   /* 上下を詰める */
  font-size: 14px;
  font-weight: 900;
  color: var(--charcoal);
	font-family: var(--font-tsuku);
  /* border-bottom 削除 */
  letter-spacing: .04em;
}
/* 矢印削除 */
.drawer-nav-item::after { display: none; }
/* プライバシーポリシーリンク */
.drawer-policy {
  display: block;
	font-family: var(--font-tsuku);
  color: var(--charcoal);
  font-size: 12px;
  padding: 6px 24px 16px;
  letter-spacing: .04em;
}
/* 地図エリア */
.drawer-map {
  height: 160px;
  overflow: hidden;
  flex-shrink: 0;
  margin: 20px 0 0;
}
/* ドロワーCTA：footer-cta-row流用、幅280pxに合わせ縦2段 */
.drawer-cta-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 20px 0;
}
.drawer-cta-row .ifeed-more-btn {
  width: 100%;
  justify-content: center;
  text-align: left;
}
.drawer-cta-row .ifeed-more-btn--uber {
  padding: 10px 14px;
  font-size: 12px;
  gap: 6px;
}
.drawer-cta-row .ifeed-more-btn--uber .uber-logo {
  width: 38px;
  height: 38px;
  margin-right: 4px;
}
.drawer-cta-row .ifeed-more-btn span { line-height: 1.4; }
.drawer-cta-row .ifeed-more-btn::after { flex-shrink: 0; }
.drawer-map iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: none;
}
/* SNSバッジ行（中央揃え） */
.drawer-sns {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 16px 20px;
}
.drawer-cta {
  margin: 4px 20px 28px;
  background: #d9b981;
  color: var(--white);
  text-align: center;
  padding: 14px 20px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .06em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
	font-family: var(--font-tsuku);
  transition: background 0.2s, color 0.2s;
}
.drawer-cta::after { content: '→'; font-size: 14px; }
.drawer-cta:hover { background: var(--white); color: #d9b981; }

/* --- SP専用 ≤767px：「店舗あんない」見出しの調整 --- */
@media (max-width: 767px) {
  /* 見出しを大きく＋ゴールドに */
  .shop-section .ifeed-section-title { font-size: 38px!important; color: var(--gold-lt); }
  /* CONCEPT↓SHOP GUIDE の間隔を広げる */
  .shop-section { padding-top: 48px; }
  /* 見出し「店舗あんない」とplace-itemsの間隔を広げる */
  .shop-section .ifeed-head { margin-bottom: 56px }
  .shop-section .place-items > .place-item:first-child { padding-top: 8px; }
  /* スタジオ↓INSTAGRAM FEED の間隔を広げる */
  .insta-feed-section { padding-top: 88px; }
  /* STORE INFO↓COMPANY INFO の間隔を狭める */
  .company-info-section { padding-top: 20px; }
}

/* Smash Balloon Instagram Feed: KOMEKUUTOの既存デザインへ馴染ませる */
.ifeed-plugin-wrap--live #sb_instagram { max-width: 1100px !important; margin: 0 auto !important; padding: 0 !important; }
.ifeed-plugin-wrap--live #sbi_images { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px !important; padding: 0 !important; }
.ifeed-plugin-wrap--live #sbi_images .sbi_item { width: 100% !important; padding: 0 !important; }
.ifeed-plugin-wrap--live #sbi_images .sbi_photo_wrap,
.ifeed-plugin-wrap--live #sbi_images .sbi_photo { aspect-ratio: 1 / 1; height: auto !important; overflow: hidden; }
.ifeed-plugin-wrap--live #sbi_images .sbi_photo img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.ifeed-plugin-wrap--live #sbi_load { display: none !important; }
@media (min-width: 768px) {
  .ifeed-plugin-wrap--live #sbi_images { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px !important; }
}
