/* =============================================================================
   shop.css : 店舗ページ用 LP スタイル
   - 名前空間 : sp-*  （既存 ff-* / sr-* とは一切衝突しない）
   - キーフレーム : sp〜   （既存 ff〜 / sr〜 とは別定義）
   - CSS 変数 : --sp-*   （既存 _blog記事用 側とは独立）
   - 参照モチーフ : _blog記事用/blogv2.css （ゴールド/ピンク + 明朝セリフ）
   - 既存ファイルには一切触れません
   ============================================================================= */

/* =============================================================================
   01 BASE / TOKENS
   ============================================================================= */
:root{
  --sp-gold: #b39278;
  --sp-gold-deep: #9d7d5d;
  --sp-gold-soft: #f2d7b0;
  --sp-gold-line: rgba(179,146,120,.22);
  --sp-pink: #ea888f;
  --sp-pink-deep: #d9727a;
  --sp-ink: #2b2b2b;
  --sp-ink-soft: #3a3a3a;
  --sp-ink-mute: #6b6b6b;
  --sp-sub: #7a6a55;
  --sp-cream: #fdfbf8;
  --sp-cream-deep: #fbf7f2;
  --sp-ivory: #f0e3da;
  --sp-bg: #ffffff;
  --sp-serif-jp: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif;
  --sp-serif-en: 'Cormorant Garamond','Times New Roman',serif;
  --sp-sans-jp: 'Noto Sans JP', sans-serif;
  --sp-max: 1120px;
  --sp-max-narrow: 720px;
  --sp-max-panel: 620px;
  --sp-ease: cubic-bezier(.2,.7,.2,1);
}

/* ページ全体ラッパ（.sp-page 配下にだけ base スタイルを適用） */
html body .sp-page{
  font-family: var(--sp-serif-jp) !important;
  color: var(--sp-ink) !important;
  background: var(--sp-bg) !important;
  line-height: 1.7 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
html body .sp-page *,
html body .sp-page *::before,
html body .sp-page *::after{
  box-sizing: border-box !important;
}
html body .sp-page img{
  max-width: 100% !important;
  height: auto !important;
}
html body .sp-page a{
  color: inherit;
  text-decoration: none;
}

/* 共通セクション見出し */
html body .sp-section-head{
  display: block !important;
  text-align: center !important;
  margin: 3.6em auto 2em !important;
  padding: 0 16px !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  box-sizing: border-box !important;
}
html body .sp-section-head__en{
  display: block !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .28em !important;
  color: var(--sp-gold) !important;
  margin: 0 0 14px !important;
  line-height: 1.4 !important;
}
html body .sp-section-head__ja{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  color: var(--sp-ink) !important;
  line-height: 1.6 !important;
}
html body .sp-section-head__line{
  display: block !important;
  width: 32px !important;
  height: 2px !important;
  background: var(--sp-gold) !important;
  margin: 18px auto 0 !important;
}
@media (max-width: 560px){
  html body .sp-section-head{ margin: 2.6em auto 1.6em !important; }
  html body .sp-section-head__en{ font-size: 13px !important; letter-spacing: .22em !important; }
  html body .sp-section-head__ja{ font-size: 18px !important; letter-spacing: .16em !important; }
}

/* =============================================================================
   02 HERO  （左テキスト / 右画像の2カラム・可読性優先）
   - 画像と文字を重ねず、白地ベースで読みやすく
   - ゴールドコーナー + Ken Burns で格調感は維持
   ============================================================================= */
html body .sp-hero{
  position: relative !important;
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background:
    radial-gradient(900px 440px at 88% -60px, rgba(179,146,120,.09), transparent 60%),
    radial-gradient(700px 360px at 0% 110%, rgba(234,136,143,.05), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, var(--sp-cream) 100%) !important;
  overflow: hidden !important;
  color: var(--sp-ink) !important;
  box-sizing: border-box !important;
}
html body .sp-hero__inner{
  display: grid !important;
  grid-template-columns: 1.05fr 1fr !important;
  align-items: center !important;
  gap: clamp(32px, 6vw, 88px) !important;
  max-width: var(--sp-max) !important;
  margin: 0 auto !important;
  padding: clamp(48px, 7vh, 96px) clamp(24px, 4vw, 48px) clamp(16px, 2vh, 32px) !important;
  box-sizing: border-box !important;
  color: var(--sp-ink) !important;
}

/* テキスト側（左） */
html body .sp-hero__text{
  display: block !important;
  padding: 8px 0 !important;
  text-align: left !important;
  color: var(--sp-ink) !important;
}
html body .sp-hero__eyebrow{
  display: inline-block !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .28em !important;
  color: var(--sp-gold) !important;
  margin: 0 0 22px !important;
  line-height: 1.4 !important;
  text-shadow: none !important;
}
html body .sp-hero__title{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(24px, 3vw, 36px) !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  line-height: 1.7 !important;
  color: var(--sp-ink) !important;
  text-shadow: none !important;
}
html body .sp-hero__title-ja{ display: inline !important; }
html body .sp-hero__title-accent{
  display: inline !important;
  color: var(--sp-gold) !important;
  font-style: normal !important;
}
html body .sp-hero__line{
  display: block !important;
  width: 48px !important;
  height: 1px !important;
  background: var(--sp-gold) !important;
  margin: 26px 0 24px !important;
}
html body .sp-hero__lead{
  display: block !important;
  max-width: 560px !important;
  margin: 0 0 1.6em !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: .08em !important;
  line-height: 2.1 !important;
  color: var(--sp-ink-soft) !important;
  text-shadow: none !important;
}
html body .sp-hero__meta{
  display: flex !important;
  align-items: baseline !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid #e8dfd0 !important;
}
html body .sp-hero__meta-label{
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .22em !important;
  color: var(--sp-gold) !important;
  text-transform: uppercase !important;
}
html body .sp-hero__meta-value{
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  letter-spacing: .06em !important;
  color: var(--sp-ink) !important;
}

/* 画像側（右） */
html body .sp-hero__media{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sp-hero__figure{
  display: block !important;
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  box-shadow:
    0 24px 48px -16px rgba(31,31,31,.35),
    0 8px 16px -4px rgba(0,0,0,.15) !important;
  transition: opacity 1.1s var(--sp-ease), box-shadow 1.1s var(--sp-ease);
}
html body .sp-hero__corner{
  position: absolute !important;
  width: 36px !important;
  height: 36px !important;
  border: 1px solid var(--sp-gold) !important;
  pointer-events: none !important;
  background: transparent !important;
  z-index: 2 !important;
}
html body .sp-hero__corner--tl{
  top: 0 !important; left: 0 !important;
  border-right: 0 !important; border-bottom: 0 !important;
}
html body .sp-hero__corner--br{
  bottom: 0 !important; right: 0 !important;
  border-left: 0 !important; border-top: 0 !important;
}
html body .sp-hero__img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  transform-origin: center center !important;
  transition: transform 1.4s var(--sp-ease) !important;
  object-fit: cover !important;
  object-position: center !important;
  aspect-ratio: 4 / 5 !important;
}
html body .sp-hero__figure:hover .sp-hero__img{ animation-play-state: paused !important; }

/* スクロール誘導（ヒーロー下部、中央配置・画像とは被らない位置） */
html body .sp-hero__scroll{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 0 auto !important;
  padding: 0 0 clamp(8px, 1.6vh, 18px) !important;
  color: var(--sp-gold) !important;
  pointer-events: none !important;
}
html body .sp-hero__scroll-label{
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 12px !important;
  letter-spacing: .36em !important;
  color: var(--sp-gold) !important;
  text-transform: uppercase !important;
}
html body .sp-hero__scroll-arrow{
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  border-right: 1.5px solid var(--sp-gold) !important;
  border-bottom: 1.5px solid var(--sp-gold) !important;
  border-top: 0 !important;
  border-left: 0 !important;
  background: transparent !important;
  transform: rotate(45deg);
  animation: spArrowDown 1.8s ease-in-out infinite;
}
@keyframes spArrowDown{
  0%, 100%{ transform: rotate(45deg) translate(0,0); opacity:.55; }
  50%     { transform: rotate(45deg) translate(3px,3px); opacity: 1; }
}

/* Ken Burns 演出（画像枠内のみ・品よく） ※動画には掛けない（再生がカクつくため） */
html body .sp-hero.is-in .sp-hero__img{
  animation: spKenBurns 18s ease-in-out 3s infinite alternate;
}
html body .sp-hero.is-in .sp-hero__figure--video .sp-hero__img,
html body .sp-hero.is-in .sp-hero__video{
  animation: none !important;
}
@keyframes spKenBurns{
  0%   { transform: scale(1); }
  100% { transform: scale(1.07); }
}

/* ===== 登場モーション ===== */
html body .sp-hero.is-ready .sp-hero__eyebrow,
html body .sp-hero.is-ready .sp-hero__title,
html body .sp-hero.is-ready .sp-hero__lead,
html body .sp-hero.is-ready .sp-hero__meta{
  opacity: 0;
  transform: translateY(14px);
}
html body .sp-hero.is-ready .sp-hero__line{ width: 0 !important; }
html body .sp-hero.is-ready .sp-hero__img{
  opacity: 0;
  transform: scale(1.06);
  transition: none !important;
}
html body .sp-hero.is-ready .sp-hero__figure{
  opacity: 0 !important;
  box-shadow: none !important;
}
html body .sp-hero.is-ready .sp-hero__corner{ opacity: 0; transform: scale(.6); }

html body .sp-hero.is-in .sp-hero__eyebrow,
html body .sp-hero.is-in .sp-hero__title,
html body .sp-hero.is-in .sp-hero__lead,
html body .sp-hero.is-in .sp-hero__meta{
  opacity: 1;
  transform: translateY(0);
  transition: opacity .95s var(--sp-ease), transform .95s var(--sp-ease);
}
html body .sp-hero.is-in .sp-hero__eyebrow{ transition-delay: .05s; }
html body .sp-hero.is-in .sp-hero__title{ transition-delay: .10s; }
html body .sp-hero.is-in .sp-hero__lead{ transition-delay: .50s; }
html body .sp-hero.is-in .sp-hero__meta{ transition-delay: .70s; }
html body .sp-hero.is-in .sp-hero__line{
  width: 48px !important;
  transition: width 1s var(--sp-ease) .30s;
}
html body .sp-hero.is-in .sp-hero__img{
  opacity: 1;
  transform: scale(1);
  transition: opacity 1.1s var(--sp-ease) 1.20s, transform 1.6s var(--sp-ease) 1.20s !important;
}
html body .sp-hero.is-in .sp-hero__figure{
  opacity: 1 !important;
  box-shadow:
    0 24px 48px -16px rgba(31,31,31,.35),
    0 8px 16px -4px rgba(0,0,0,.15) !important;
  transition:
    opacity 1.1s var(--sp-ease) 1.20s,
    box-shadow 1.1s var(--sp-ease) 1.30s !important;
}
html body .sp-hero.is-in .sp-hero__corner{
  opacity: 1;
  transform: scale(1);
  transition: opacity .8s ease, transform .8s var(--sp-ease);
}
html body .sp-hero.is-in .sp-hero__corner--tl{ transition-delay: 1.80s; }
html body .sp-hero.is-in .sp-hero__corner--br{ transition-delay: 1.95s; }

/* ===== レスポンシブ ===== */
@media (max-width: 900px){
  html body .sp-hero__inner{
    grid-template-columns: 1fr !important;
    gap: 40px !important;
    padding: clamp(44px, 6vh, 72px) clamp(20px, 4vw, 32px) clamp(28px, 4vh, 48px) !important;
  }
  html body .sp-hero__media{ order: 1 !important; }
  html body .sp-hero__text{ order: 2 !important; padding: 0 !important; }
  html body .sp-hero__figure{
    max-width: 420px !important;
    margin: 0 auto !important;
    box-shadow:
      0 10px 22px -14px rgba(31,31,31,.25),
      0 4px 8px -3px rgba(0,0,0,.10) !important;
  }
  html body .sp-hero__img{
    max-width: 100% !important;
    max-height: 560px !important;
    aspect-ratio: 4 / 5 !important;
  }
  /* モバイルは「画像 → ライン → テキスト」の順で登場 */
  html body .sp-hero.is-in .sp-hero__img{
    transition: opacity 1.0s var(--sp-ease) 0s, transform 1.3s var(--sp-ease) 0s !important;
  }
  html body .sp-hero.is-in .sp-hero__figure{
    transition:
      opacity 1.0s var(--sp-ease) 0s,
      box-shadow 1.0s var(--sp-ease) .10s !important;
  }
  html body .sp-hero.is-in .sp-hero__eyebrow{ transition-delay: .85s !important; }
  html body .sp-hero.is-in .sp-hero__title{ transition-delay: .95s !important; }
  html body .sp-hero.is-in .sp-hero__line{
    width: 44px !important;
    transition: width 1s var(--sp-ease) 1.15s !important;
  }
  html body .sp-hero.is-in .sp-hero__lead{ transition-delay: 1.25s !important; }
  html body .sp-hero.is-in .sp-hero__meta{ transition-delay: 1.40s !important; }
  html body .sp-hero.is-in .sp-hero__corner--tl{ transition-delay: .60s !important; }
  html body .sp-hero.is-in .sp-hero__corner--br{ transition-delay: .75s !important; }
}
@media (max-width: 560px){
  html body .sp-hero{ margin: 0 0 1em !important; }
  html body .sp-hero__inner{ padding: 32px 0 24px !important; gap: 32px !important; }
  html body .sp-hero__text{ padding: 0 16px !important; }
  html body .sp-hero__eyebrow{ font-size: 12px !important; letter-spacing: .22em !important; margin-bottom: 16px !important; }
  html body .sp-hero__title{ font-size: 21px !important; letter-spacing: .06em !important; line-height: 1.85 !important; }
  html body .sp-hero__line{ margin: 18px 0 18px !important; width: 36px !important; }
  html body .sp-hero.is-in .sp-hero__line{ width: 36px !important; }
  html body .sp-hero__lead{ font-size: 14.5px !important; line-height: 2.0 !important; }
  html body .sp-hero__meta{ flex-direction: column !important; align-items: flex-start !important; gap: 4px !important; padding-top: 12px !important; }
  html body .sp-hero__corner{ width: 24px !important; height: 24px !important; }
  html body .sp-hero__figure{
    max-width: 100% !important;
    padding: 0 !important;
  }
  html body .sp-hero__img{
    max-width: 100% !important;
    max-height: 520px !important;
    aspect-ratio: 4 / 5 !important;
  }
}

/* =============================================================================
   03 CONCIERGE  （★ユーザー指定セクション）
   ============================================================================= */
html body .sp-concierge{
  position: relative !important;
  display: block !important;
  width: 100% !important;
  margin: 0 auto 3.6em !important;
  padding: 0 !important;
  background:
    radial-gradient(1200px 600px at 50% -100px, rgba(179,146,120,.05), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, var(--sp-cream) 100%) !important;
  overflow: hidden !important;
}
html body .sp-concierge__inner{
  display: block !important;
  max-width: var(--sp-max) !important;
  margin: 0 auto !important;
  padding: clamp(48px, 8vw, 96px) clamp(16px, 4vw, 48px) !important;
  box-sizing: border-box !important;
}
html body .sp-concierge__head{
  text-align: center !important;
  margin: 0 0 2.6em !important;
}
html body .sp-concierge__eyebrow{
  display: block !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .28em !important;
  color: var(--sp-gold) !important;
  margin: 0 0 14px !important;
}
html body .sp-concierge__title{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(22px, 2.8vw, 32px) !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  line-height: 1.7 !important;
  color: var(--sp-ink) !important;
}
html body .sp-concierge__line{
  display: block !important;
  width: 40px !important;
  height: 1px !important;
  background: var(--sp-gold) !important;
  margin: 22px auto 0 !important;
}

/* 悩みリード 3連 */
html body .sp-concierge__worries{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
  list-style: none !important;
  margin: 0 auto 2.8em !important;
  padding: 0 !important;
  max-width: 940px !important;
}
html body .sp-worry{
  position: relative !important;
  display: block !important;
  margin: 0 !important;
  padding: 22px 22px 22px 28px !important;
  background: #fff !important;
  border: 1px solid var(--sp-ivory) !important;
  border-radius: 3px !important;
  box-shadow: 0 10px 28px -18px rgba(93,70,40,.18);
}
html body .sp-worry::before{
  content: "";
  position: absolute;
  left: 14px;
  top: 22px;
  bottom: 22px;
  width: 1px;
  background: var(--sp-gold);
  opacity: .9;
}
html body .sp-worry p{
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  line-height: 1.95 !important;
  color: var(--sp-ink-soft) !important;
}
html body .sp-worry p + p{ margin-top: 6px !important; }

/* 解決文 */
html body .sp-concierge__answer{
  display: block !important;
  max-width: 880px !important;
  margin: 0 auto 0 !important;
  padding: 0 4px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  line-height: 2.2 !important;
  color: var(--sp-ink-soft) !important;
  text-align: center !important;
  white-space: normal !important;
}

/* コンシェルジュカード */
html body .sp-concierge__cards-wrap{
  margin: 0 auto 2.4em !important;
  padding: 0 !important;
  max-width: var(--sp-max) !important;
}
html body .sp-concierge__cards-label{
  display: block !important;
  margin: 0 0 1.4em !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  color: var(--sp-ink) !important;
  text-align: center !important;
}
html body .sp-concierge__cards-label::after{
  content: "";
  display: block;
  width: 28px;
  height: 1px;
  background: var(--sp-gold);
  margin: 12px auto 0;
}
html body .sp-concierge__cards{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 32px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sp-concierge-card{
  position: relative !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow:
    0 10px 24px -8px rgba(234,136,143,.22),
    0 4px 10px -2px rgba(0,0,0,.08),
    0 1px 2px rgba(0,0,0,.05);
  transition: transform .4s var(--sp-ease), box-shadow .4s ease;
}
html body .sp-concierge-card:hover{
  transform: translateY(-5px);
  box-shadow:
    0 22px 46px -12px rgba(234,136,143,.35),
    0 10px 20px -4px rgba(0,0,0,.14),
    0 2px 4px rgba(0,0,0,.06);
}
html body .sp-concierge-card__figure{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  aspect-ratio: 4 / 5 !important;
  background: #eee !important;
}
html body .sp-concierge-card__figure img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .7s ease;
}
html body .sp-concierge-card:hover .sp-concierge-card__figure img{
  transform: scale(1.05);
}
html body .sp-concierge-card__body{
  display: block !important;
  padding: 18px 18px 22px !important;
  text-align: center !important;
}
html body .sp-concierge-card__role{
  display: block !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .24em !important;
  color: var(--sp-gold) !important;
  margin: 0 0 8px !important;
  text-transform: uppercase;
}
html body .sp-concierge-card__name{
  display: block !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  color: var(--sp-ink) !important;
  line-height: 1.5 !important;
}
html body .sp-concierge-card__tag{
  display: inline-block !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 12.5px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  color: var(--sp-ink-mute) !important;
  line-height: 1.7 !important;
}

/* 要望欄案内ボックス */
html body .sp-concierge__note{
  position: relative !important;
  display: block !important;
  max-width: 700px !important;
  margin: 3em auto 0 !important;
  padding: 26px 30px !important;
  background: linear-gradient(180deg, #fdfbf8 0%, #fbf7f2 100%) !important;
  border: 1px solid #e8ddcc !important;
  border-radius: 6px !important;
  box-shadow: 0 14px 40px -24px rgba(93,70,40,.18);
}
html body .sp-concierge__note::before,
html body .sp-concierge__note::after{
  content: "";
  position: absolute;
  top: 10px;
  width: 18px;
  height: 18px;
  border-top: 1px solid var(--sp-gold);
  opacity: .8;
  pointer-events: none;
}
html body .sp-concierge__note::before{ left: 10px; border-left: 1px solid var(--sp-gold); }
html body .sp-concierge__note::after{ right: 10px; border-right: 1px solid var(--sp-gold); }
html body .sp-concierge__note p{
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  line-height: 2.0 !important;
  color: var(--sp-sub) !important;
  text-align: center !important;
}
html body .sp-concierge__note strong{
  color: var(--sp-gold-deep) !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
}
html body .sp-concierge__cta-row{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 1.4em auto 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 520px !important;
}
html body .sp-concierge__cta-row > a.sp-btn{
  width: 100% !important;
  min-width: 0 !important;
}

/* Concierge 登場 */
html body .sp-concierge.is-ready .sp-concierge__eyebrow,
html body .sp-concierge.is-ready .sp-concierge__title,
html body .sp-concierge.is-ready .sp-worry,
html body .sp-concierge.is-ready .sp-concierge__answer,
html body .sp-concierge.is-ready .sp-concierge__cards-label,
html body .sp-concierge.is-ready .sp-concierge-card,
html body .sp-concierge.is-ready .sp-concierge__note{
  opacity: 0;
  transform: translateY(16px);
}
html body .sp-concierge.is-ready .sp-concierge__line{ width: 0 !important; }

html body .sp-concierge.is-in .sp-concierge__eyebrow,
html body .sp-concierge.is-in .sp-concierge__title,
html body .sp-concierge.is-in .sp-worry,
html body .sp-concierge.is-in .sp-concierge__answer,
html body .sp-concierge.is-in .sp-concierge__cards-label,
html body .sp-concierge.is-in .sp-concierge-card,
html body .sp-concierge.is-in .sp-concierge__note{
  opacity: 1;
  transform: translateY(0);
  transition: opacity .95s var(--sp-ease), transform .95s var(--sp-ease);
}
html body .sp-concierge.is-in .sp-concierge__eyebrow{ transition-delay: .05s; }
html body .sp-concierge.is-in .sp-concierge__title{ transition-delay: .15s; }
html body .sp-concierge.is-in .sp-concierge__line{
  width: 40px !important;
  transition: width 1s var(--sp-ease) .30s;
}
html body .sp-concierge.is-in .sp-worry:nth-child(1){ transition-delay: .35s; }
html body .sp-concierge.is-in .sp-worry:nth-child(2){ transition-delay: .50s; }
html body .sp-concierge.is-in .sp-worry:nth-child(3){ transition-delay: .65s; }
html body .sp-concierge.is-in .sp-concierge__answer{ transition-delay: .85s; }
html body .sp-concierge.is-in .sp-concierge__cards-label{ transition-delay: 1.0s; }
html body .sp-concierge.is-in .sp-concierge-card:nth-child(1){ transition-delay: 1.15s; }
html body .sp-concierge.is-in .sp-concierge-card:nth-child(2){ transition-delay: 1.30s; }
html body .sp-concierge.is-in .sp-concierge-card:nth-child(3){ transition-delay: 1.45s; }
html body .sp-concierge.is-in .sp-concierge__note{ transition-delay: 1.65s; }

@media (max-width: 900px){
  html body .sp-concierge__worries{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; }
  html body .sp-worry{ padding: 16px 14px 16px 20px !important; }
  html body .sp-worry::before{ left: 9px !important; top: 16px !important; bottom: 16px !important; }
  html body .sp-worry p{ font-size: 13.5px !important; line-height: 1.85 !important; letter-spacing: .04em !important; }
  html body .sp-concierge__cards{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 18px !important; }
}
@media (max-width: 640px){
  html body .sp-concierge__worries{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  html body .sp-worry{ padding: 16px 14px 16px 22px !important; border-radius: 4px !important; }
  html body .sp-worry::before{ left: 10px !important; top: 16px !important; bottom: 16px !important; }
  html body .sp-worry p{ font-size: 14px !important; line-height: 1.85 !important; letter-spacing: .04em !important; }
  html body .sp-concierge__cards{ grid-template-columns: 1fr !important; gap: 18px !important; max-width: 360px; margin-left: auto !important; margin-right: auto !important; }
  html body .sp-concierge__answer{
    font-size: 14.5px !important;
    line-height: 2.0 !important;
    text-align: left !important;
    padding: 0 4px !important;
  }
  html body .sp-concierge__answer br{ display: none !important; }
  html body .sp-concierge__note{ padding: 22px 22px !important; }
  html body .sp-concierge__note p{ font-size: 12.5px !important; }
  html body .sp-concierge__cta-row{ margin-top: 16px !important; gap: 12px !important; }
  html body .sp-concierge__cta-row{ grid-template-columns: 1fr !important; max-width: 100% !important; }
  html body .sp-concierge__cta-row a.sp-btn{
    width: 100% !important;
    min-width: 0 !important;
    padding: 13px 40px 13px 22px !important;
  }
}

/* =============================================================================
  04 CATCH VISUAL（背景写真 + 人物写真 + キャッチコピー）
   ============================================================================= */
html body .sp-catch-visual{
  display: block !important;
  width: 100% !important;
  margin: 0 auto 3.2em !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-catch-visual__inner{
  position: relative !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  background: #f7f3ee !important;
  box-shadow:
    0 16px 36px -20px rgba(31,31,31,.28),
    0 4px 10px -2px rgba(0,0,0,.08) !important;
}
html body .sp-catch-visual__bg{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}
html body .sp-catch-visual__bg img{
  display: block !important;
  width: 100% !important;
  height: clamp(360px, 46vw, 560px) !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: saturate(.95) contrast(1.02) !important;
}
html body .sp-catch-visual__copy{
  position: absolute !important;
  top: clamp(20px, 3vw, 34px) !important;
  left: clamp(20px, 3vw, 34px) !important;
  z-index: 2 !important;
  margin: 0 !important;
  padding: 12px 18px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(18px, 2.2vw, 34px) !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  line-height: 1.85 !important;
  color: var(--sp-ink) !important;
  background: rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
}
html body .sp-catch-visual__person{
  position: absolute !important;
  right: clamp(16px, 2.6vw, 28px) !important;
  bottom: 0 !important;
  z-index: 2 !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sp-catch-visual__person img{
  display: block !important;
  width: clamp(130px, 16vw, 210px) !important;
  max-width: none !important;
  height: auto !important;
  object-fit: contain !important;
}
html body .sp-catch-visual__name{
  position: absolute !important;
  left: -120px !important;
  bottom: 18px !important;
  margin: 0 !important;
  padding: 8px 14px 7px !important;
  font-family: var(--sp-serif-en) !important;
  font-size: clamp(18px, 2vw, 34px) !important;
  font-weight: 500 !important;
  letter-spacing: .06em !important;
  line-height: 1 !important;
  color: rgba(43,43,43,.88) !important;
  background: rgba(255,255,255,.75) !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

html body .sp-catch-visual.is-ready .sp-catch-visual__copy,
html body .sp-catch-visual.is-ready .sp-catch-visual__person,
html body .sp-catch-visual.is-ready .sp-catch-visual__name{
  opacity: 0;
  transform: translateY(14px);
}
html body .sp-catch-visual.is-ready .sp-catch-visual__bg img{
  opacity: 0;
  transform: scale(1.05);
}
html body .sp-catch-visual.is-in .sp-catch-visual__bg img{
  opacity: 1;
  transform: scale(1);
  transition: opacity 1s var(--sp-ease), transform 1.6s var(--sp-ease);
}
html body .sp-catch-visual.is-in .sp-catch-visual__copy,
html body .sp-catch-visual.is-in .sp-catch-visual__person,
html body .sp-catch-visual.is-in .sp-catch-visual__name{
  opacity: 1;
  transform: translateY(0);
  transition: opacity .95s var(--sp-ease), transform .95s var(--sp-ease);
}
html body .sp-catch-visual.is-in .sp-catch-visual__copy{ transition-delay: .25s; }
html body .sp-catch-visual.is-in .sp-catch-visual__person{ transition-delay: .48s; }
html body .sp-catch-visual.is-in .sp-catch-visual__name{ transition-delay: .58s; }

@media (max-width: 900px){
  html body .sp-catch-visual__bg img{ height: clamp(320px, 56vw, 460px) !important; }
  html body .sp-catch-visual__copy{
    font-size: clamp(15px, 2.5vw, 24px) !important;
    letter-spacing: .06em !important;
    line-height: 1.75 !important;
    padding: 10px 14px !important;
  }
  html body .sp-catch-visual__person img{ width: clamp(116px, 22vw, 172px) !important; }
  html body .sp-catch-visual__name{
    left: -94px !important;
    bottom: 14px !important;
    font-size: clamp(13px, 2.3vw, 22px) !important;
    padding: 7px 10px 6px !important;
  }
}
@media (max-width: 560px){
  html body .sp-catch-visual{ padding: 0 !important; margin-bottom: 2.6em !important; }
  html body .sp-catch-visual__bg img{ height: 360px !important; }
  html body .sp-catch-visual__copy{
    left: 12px !important;
    right: 12px !important;
    top: 12px !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
    letter-spacing: .04em !important;
    padding: 9px 12px !important;
  }
  html body .sp-catch-visual__person{
    right: 8px !important;
  }
  html body .sp-catch-visual__person img{ width: 130px !important; }
  html body .sp-catch-visual__name{
    left: -74px !important;
    bottom: 10px !important;
    font-size: 12px !important;
    letter-spacing: .04em !important;
    padding: 6px 8px 5px !important;
  }
}

/* =============================================================================
  05 POINTS  （金沢店の約束 4ポイント）
   ============================================================================= */
html body .sp-points{
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 3.2em auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-points__grid{
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 1px !important;
  background: #ede8e3 !important;
  border: 1px solid #ede8e3 !important;
  border-radius: 4px !important;
  overflow: hidden !important;
}
html body .sp-point-card{
  position: relative !important;
  background: #fff !important;
  padding: 1.6rem 1.1rem 1.4rem !important;
  text-align: left !important;
  transition: transform .45s var(--sp-ease), box-shadow .45s ease;
}
html body .sp-point-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 14px 28px -12px rgba(234,136,143,.22);
  z-index: 1;
}
html body .sp-point-card__title{
  display: block !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  line-height: 1.75 !important;
  color: var(--sp-ink) !important;
}
html body .sp-point-card__line{
  display: block !important;
  width: 20px !important;
  height: 1px !important;
  background: var(--sp-gold) !important;
  margin: 0 0 10px !important;
  transition: width .5s var(--sp-ease);
}
html body .sp-point-card:hover .sp-point-card__line{ width: 44px !important; }
html body .sp-point-card__text{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13.5px !important;
  font-weight: 400 !important;
  letter-spacing: .02em !important;
  line-height: 1.95 !important;
  color: var(--sp-ink-mute) !important;
}

/* Points 登場 */
html body .sp-points.is-ready .sp-point-card{ opacity: 0; transform: translateY(18px); }
html body .sp-points.is-ready .sp-point-card__line{ width: 0 !important; }
html body .sp-points.is-in .sp-point-card{
  opacity: 1; transform: none;
  transition: opacity .8s var(--sp-ease), transform .8s var(--sp-ease);
}
html body .sp-points.is-in .sp-point-card:nth-child(1){ transition-delay: .10s; }
html body .sp-points.is-in .sp-point-card:nth-child(2){ transition-delay: .22s; }
html body .sp-points.is-in .sp-point-card:nth-child(3){ transition-delay: .34s; }
html body .sp-points.is-in .sp-point-card:nth-child(4){ transition-delay: .46s; }
html body .sp-points.is-in .sp-point-card:nth-child(1) .sp-point-card__line{ width: 20px !important; transition-delay: .45s; }
html body .sp-points.is-in .sp-point-card:nth-child(2) .sp-point-card__line{ width: 20px !important; transition-delay: .58s; }
html body .sp-points.is-in .sp-point-card:nth-child(3) .sp-point-card__line{ width: 20px !important; transition-delay: .70s; }
html body .sp-points.is-in .sp-point-card:nth-child(4) .sp-point-card__line{ width: 20px !important; transition-delay: .82s; }

@media (max-width: 900px){
  html body .sp-points__grid{ grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 480px){
  html body .sp-points__grid{ grid-template-columns: 1fr !important; }
}

/* =============================================================================
   05 FEATURE  （モデルハウス 左右交互2カラム）
   ============================================================================= */
html body .sp-feature-container{
  counter-reset: spFeature !important;
  display: block;
}
html body .sp-feature{
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 3.2em auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow-x: clip !important;
  overflow-y: visible !important;
  counter-increment: spFeature !important;
}
html body .sp-feature .sp-feature__inner{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  align-items: center !important;
  gap: clamp(32px, 6vw, 88px) !important;
  max-width: var(--sp-max) !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-feature .sp-feature__media{ grid-column: 1 !important; min-width: 0 !important; }
html body .sp-feature .sp-feature__text{ grid-column: 2 !important; min-width: 0 !important; }
html body .sp-feature.sp-feature--reverse .sp-feature__media{ grid-column: 2 !important; order: 2 !important; }
html body .sp-feature.sp-feature--reverse .sp-feature__text{ grid-column: 1 !important; order: 1 !important; }

html body .sp-feature .sp-feature__figure{
  display: block !important;
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
html body .sp-feature .sp-feature__figure-inner{
  display: block !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow:
    0 22px 44px -14px rgba(31,31,31,.32),
    0 6px 14px -4px rgba(0,0,0,.14) !important;
  box-sizing: border-box !important;
}
html body .sp-feature .sp-feature__img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  transform-origin: center center !important;
  transition: transform 1.4s var(--sp-ease) !important;
}
html body .sp-feature .sp-feature__text{
  display: block !important;
  padding: 8px 0 !important;
  text-align: left !important;
}
html body .sp-feature .sp-feature__text::before{
  content: counter(spFeature, decimal-leading-zero);
  display: block !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 28px !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  color: var(--sp-gold) !important;
  line-height: 1 !important;
}
html body .sp-feature .sp-feature__num{ display: none !important; }
html body .sp-feature .sp-feature__line{
  display: block !important;
  width: 40px !important;
  height: 1px !important;
  background: var(--sp-gold) !important;
  margin: 0 0 22px !important;
}
html body .sp-feature .sp-feature__title{
  display: block !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(20px, 2.2vw, 24px) !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  line-height: 1.7 !important;
  color: var(--sp-ink) !important;
}
html body .sp-feature .sp-feature__lead{
  display: block !important;
  margin: 0 0 22px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: .08em !important;
  line-height: 2.1 !important;
  color: var(--sp-ink-soft) !important;
  overflow-wrap: anywhere !important;
}
html body .sp-feature .sp-feature__link{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .2em !important;
  color: var(--sp-gold-deep) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--sp-gold);
  transition: color .3s ease, border-color .3s ease, letter-spacing .3s ease, padding-right .3s ease;
}
html body .sp-feature .sp-feature__link:hover{
  color: var(--sp-ink) !important;
  border-bottom-color: var(--sp-ink);
  padding-right: 6px !important;
}
html body .sp-feature .sp-arrow{
  display: inline-block;
  width: 7px; height: 7px;
  border-right: 1.4px solid currentColor;
  border-bottom: 1.4px solid currentColor;
  transform: rotate(-45deg);
}

/* Feature 登場 */
html body .sp-feature.is-ready .sp-feature__media{ opacity: 0; transform: translateX(-30px); }
html body .sp-feature.sp-feature--reverse.is-ready .sp-feature__media{ transform: translateX(30px); }
html body .sp-feature.is-ready .sp-feature__text{ opacity: 0; transform: translateX(30px); }
html body .sp-feature.sp-feature--reverse.is-ready .sp-feature__text{ transform: translateX(-30px); }
html body .sp-feature.is-ready .sp-feature__text::before,
html body .sp-feature.is-ready .sp-feature__title,
html body .sp-feature.is-ready .sp-feature__lead,
html body .sp-feature.is-ready .sp-feature__link{ opacity: 0; transform: translateY(12px); }
html body .sp-feature.is-ready .sp-feature__line{ width: 0 !important; }
html body .sp-feature.is-ready .sp-feature__img{ opacity: 0; transform: scale(1.06); transition: none !important; }

html body .sp-feature.is-in .sp-feature__media{
  opacity: 1; transform: translateX(0);
  transition: opacity 1s var(--sp-ease), transform 1.1s var(--sp-ease);
}
html body .sp-feature.is-in .sp-feature__text{
  opacity: 1; transform: translateX(0);
  transition: opacity 1s var(--sp-ease) .15s, transform 1.1s var(--sp-ease) .15s;
}
html body .sp-feature.sp-feature--reverse.is-in .sp-feature__media,
html body .sp-feature.sp-feature--reverse.is-in .sp-feature__text{
  transform: translateX(0) !important;
}
html body .sp-feature.is-in .sp-feature__text::before,
html body .sp-feature.is-in .sp-feature__title,
html body .sp-feature.is-in .sp-feature__lead,
html body .sp-feature.is-in .sp-feature__link{
  opacity: 1; transform: translateY(0);
  transition: opacity .9s var(--sp-ease), transform .9s var(--sp-ease);
}
html body .sp-feature.is-in .sp-feature__text::before{ transition-delay: .25s; }
html body .sp-feature.is-in .sp-feature__title{ transition-delay: .35s; }
html body .sp-feature.is-in .sp-feature__lead{ transition-delay: .50s; }
html body .sp-feature.is-in .sp-feature__link{ transition-delay: .70s; }
html body .sp-feature.is-in .sp-feature__line{
  width: 40px !important;
  transition: width 1s var(--sp-ease) .35s;
}
html body .sp-feature.is-in .sp-feature__img{
  opacity: 1; transform: scale(1);
  transition: opacity 1.1s var(--sp-ease) .10s, transform 1.6s var(--sp-ease) .10s !important;
  animation: spKenBurnsFeature 16s ease-in-out 2s infinite alternate;
}
@keyframes spKenBurnsFeature{
  0%   { transform: scale(1); }
  100% { transform: scale(1.07); }
}

@media (max-width: 768px){
  html body .sp-feature .sp-feature__inner{ grid-template-columns: 1fr !important; gap: 24px !important; }
  html body .sp-feature .sp-feature__media,
  html body .sp-feature.sp-feature--reverse .sp-feature__media{ grid-column: auto !important; order: 1 !important; }
  html body .sp-feature .sp-feature__text,
  html body .sp-feature.sp-feature--reverse .sp-feature__text{ grid-column: auto !important; order: 2 !important; padding: 0 4px !important; }
  html body .sp-feature .sp-feature__figure{ max-width: 560px !important; margin: 0 auto !important; }
}
@media (max-width: 900px){
  html body .sp-feature.is-ready .sp-feature__media,
  html body .sp-feature.sp-feature--reverse.is-ready .sp-feature__media{ transform: translateY(22px) !important; }
  html body .sp-feature.is-ready .sp-feature__text,
  html body .sp-feature.sp-feature--reverse.is-ready .sp-feature__text{ transform: translateY(22px) !important; }
  html body .sp-feature.is-in .sp-feature__media,
  html body .sp-feature.is-in .sp-feature__text{ transform: translateY(0) !important; }
}
@media (max-width: 560px){
  html body .sp-feature{ margin: 2.2em auto !important; }
  html body .sp-feature .sp-feature__inner{ padding: 0 16px !important; gap: 22px !important; }
  html body .sp-feature .sp-feature__text::before{ font-size: 22px !important; }
  html body .sp-feature .sp-feature__line{ width: 32px !important; margin-bottom: 16px !important; }
  html body .sp-feature.is-in .sp-feature__line{ width: 32px !important; }
  html body .sp-feature .sp-feature__title{ font-size: 18px !important; letter-spacing: .1em !important; }
  html body .sp-feature .sp-feature__lead{ font-size: 14.5px !important; line-height: 2.0 !important; }
}

/* =============================================================================
   05-2 MODELHOUSE SIMPLE（3列横並び）
   ============================================================================= */
html body .sp-modelhouse-simple{
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 2.4em auto 3.2em !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-modelhouse-simple__grid{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
}
html body .sp-modelhouse-simple__item{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid var(--sp-ivory) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  box-shadow: 0 10px 26px -16px rgba(93,70,40,.16) !important;
}
html body .sp-modelhouse-simple__figure{
  display: block !important;
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #e7e7e7 !important;
  aspect-ratio: 4 / 3 !important;
}
html body .sp-modelhouse-simple__figure img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
html body .sp-modelhouse-simple__figure--slide img{
  position: absolute !important;
  inset: 0 !important;
  opacity: 0 !important;
  transition: opacity .9s ease !important;
  z-index: 0 !important;
}
html body .sp-modelhouse-simple__figure--slide img.is-active{
  opacity: 1 !important;
  z-index: 1 !important;
}
@media (prefers-reduced-motion: reduce){
  html body .sp-modelhouse-simple__figure--slide img{
    transition: none !important;
  }
}
html body .sp-modelhouse-simple__body{
  display: block !important;
  padding: 14px 16px 16px !important;
}
html body .sp-modelhouse-simple__title{
  display: block !important;
  margin: 0 0 6px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  color: var(--sp-ink) !important;
  line-height: 1.6 !important;
}
html body .sp-modelhouse-simple__place{
  display: block !important;
  margin: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  color: var(--sp-ink-mute) !important;
}
/* 1〜2件時は左寄せにならないよう中央寄せ（3列基準） */
html body .sp-modelhouse-simple__grid--count-1{
  grid-template-columns: calc((100% - 48px) / 3) !important;
  justify-content: center !important;
}
html body .sp-modelhouse-simple__grid--count-2{
  grid-template-columns: repeat(2, calc((100% - 48px) / 3)) !important;
  justify-content: center !important;
}
@media (max-width: 900px){
  html body .sp-modelhouse-simple__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 18px !important; }
  html body .sp-modelhouse-simple__grid--count-1{
    grid-template-columns: calc((100% - 18px) / 2) !important;
    justify-content: center !important;
  }
  html body .sp-modelhouse-simple__grid--count-2{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: initial !important;
  }
}
@media (max-width: 560px){
  html body .sp-modelhouse-simple__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  html body .sp-modelhouse-simple__grid--count-1{
    grid-template-columns: calc((100% - 12px) / 2) !important;
    justify-content: center !important;
  }
  html body .sp-modelhouse-simple__item{ border-radius: 4px !important; }
  html body .sp-modelhouse-simple__body{ padding: 10px 12px 12px !important; }
  html body .sp-modelhouse-simple__title{
    font-size: 13px !important;
    letter-spacing: .04em !important;
    line-height: 1.55 !important;
    margin-bottom: 4px !important;
  }
  html body .sp-modelhouse-simple__place{
    font-size: 11.5px !important;
    letter-spacing: .02em !important;
    line-height: 1.65 !important;
  }
}
@media (max-width: 380px){
  html body .sp-modelhouse-simple__grid{ grid-template-columns: 1fr !important; }
  html body .sp-modelhouse-simple__grid--count-1,
  html body .sp-modelhouse-simple__grid--count-2{
    grid-template-columns: 1fr !important;
    justify-content: initial !important;
  }
}

/* =============================================================================
   06 CARDS  （施工事例 / 土地 / スタッフ 共通グリッド）
   ============================================================================= */
html body .sp-card-section{
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 3.6em auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-card-grid{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: start !important;
  gap: 32px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sp-card{
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  background: #fff !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  color: inherit !important;
  box-shadow:
    0 10px 24px -8px rgba(234,136,143,.25),
    0 4px 10px -2px rgba(0,0,0,.10),
    0 1px 2px rgba(0,0,0,.06);
  transition: transform .35s var(--sp-ease), box-shadow .35s ease;
  isolation: isolate;
}
html body .sp-card:hover{
  transform: translateY(-6px);
  box-shadow:
    0 28px 56px -12px rgba(234,136,143,.42),
    0 12px 24px -4px rgba(0,0,0,.16),
    0 0 0 1px rgba(242,215,176,.30);
}
html body .sp-card__figure{
  display: block !important;
  position: relative !important;
  overflow: hidden !important;
  aspect-ratio: 4 / 3 !important;
  background: transparent !important;
}
html body .sp-card__figure::after{
  content: none !important;
}
html body .sp-card__img{
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
  transition: transform .7s ease;
}
/* ベースの `img { height:auto !important; }` より強くして、
   カード画像を必ず figure 高さにフィットさせる */
html body .sp-page .sp-card__img{
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}
/* 土地の区画図画像は下部に余白が出やすいので、上基準でトリミング */
html body .sp-card-section[aria-label="土地情報"] .sp-card__img{
  object-position: top center !important;
}
html body .sp-card:hover .sp-card__img{ transform: scale(1.05); }
html body .sp-card__badge{
  position: absolute !important;
  top: 14px !important;
  left: 14px !important;
  z-index: 3 !important;
  display: inline-block !important;
  padding: 4px 10px !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .2em !important;
  color: #fff !important;
  background: rgba(179,146,120,.92) !important;
  border-radius: 2px !important;
}
html body .sp-card__cta{
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .18em !important;
  color: var(--sp-gold-deep) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  opacity: 1 !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  transition: color .3s ease !important;
  pointer-events: none !important;
}
html body .sp-card:hover .sp-card__cta{
  color: var(--sp-gold-deep) !important;
}
html body .sp-card__body{
  display: block !important;
  padding: 16px 18px 18px !important;
  text-align: left !important;
}
html body .sp-card__body .sp-card__cta{
  margin: 8px 0 0 !important;
}
/* 施工事例/土地情報カード: タイトル行数が違ってもカード高さを揃える */
html body .sp-card-section[aria-label="施工事例"] .sp-card-grid,
html body .sp-card-section[aria-label="土地情報"] .sp-card-grid{
  align-items: stretch !important;
}
html body .sp-card-section[aria-label="施工事例"] .sp-card,
html body .sp-card-section[aria-label="土地情報"] .sp-card{
  height: 100% !important;
}
html body .sp-card-section[aria-label="施工事例"] .sp-card__body,
html body .sp-card-section[aria-label="土地情報"] .sp-card__body{
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}
html body .sp-card-section[aria-label="施工事例"] .sp-card__body .sp-card__cta,
html body .sp-card-section[aria-label="土地情報"] .sp-card__body .sp-card__cta{
  margin-top: auto !important;
}

/* モデルハウスカードも高さを揃える */
html body .sp-modelhouse-simple__grid{
  align-items: stretch !important;
}
html body .sp-modelhouse-simple__item{
  height: 100% !important;
}
html body .sp-modelhouse-simple__item > a{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  color: inherit !important;
  text-decoration: none !important;
}
html body .sp-modelhouse-simple__body{
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}
html body .sp-modelhouse-simple__place{
  margin-top: auto !important;
}

/* スマホではカード高さ揃えを解除（余白ズレ防止） */
@media (max-width: 640px){
  html body .sp-card-section[aria-label="施工事例"] .sp-card-grid,
  html body .sp-card-section[aria-label="土地情報"] .sp-card-grid{
    align-items: start !important;
  }
  html body .sp-card-section[aria-label="施工事例"] .sp-card,
  html body .sp-card-section[aria-label="土地情報"] .sp-card{
    height: auto !important;
  }
  html body .sp-card-section[aria-label="施工事例"] .sp-card__body,
  html body .sp-card-section[aria-label="土地情報"] .sp-card__body{
    display: block !important;
    flex: initial !important;
  }
  html body .sp-card-section[aria-label="施工事例"] .sp-card__body .sp-card__cta,
  html body .sp-card-section[aria-label="土地情報"] .sp-card__body .sp-card__cta{
    margin-top: 8px !important;
  }

  html body .sp-modelhouse-simple__grid{
    align-items: start !important;
  }
  html body .sp-modelhouse-simple__item,
  html body .sp-modelhouse-simple__item > a{
    height: auto !important;
  }
  html body .sp-modelhouse-simple__body{
    display: block !important;
    flex: initial !important;
  }
  html body .sp-modelhouse-simple__place{
    margin-top: 0 !important;
  }
}
html body .sp-card__title{
  display: block !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  color: var(--sp-ink) !important;
  line-height: 1.65 !important;
}
html body .sp-card__meta{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  color: var(--sp-ink-mute) !important;
  line-height: 1.7 !important;
}

/* スタッフカードバリアント */
html body .sp-card--staff .sp-card__figure{ aspect-ratio: 3 / 4 !important; }
html body .sp-card--staff .sp-card__body{ text-align: center !important; }
html body .sp-card--staff .sp-card__staff-caption{
  display: block !important;
  margin: 0 !important;
  padding: 12px 14px 14px !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: .04em !important;
  line-height: 1.8 !important;
  color: var(--sp-ink-mute) !important;
  text-align: left !important;
  background: rgba(253,251,248,.96) !important;
  border-top: 1px solid rgba(179,146,120,.16) !important;
}

/* Card grid 登場 */
html body .sp-card-grid{ perspective: 1200px; perspective-origin: 50% 30%; }
html body .sp-card-grid.is-ready .sp-card{
  opacity: 0;
  transform: translateY(36px) scale(.96) rotateX(6deg);
}
html body .sp-card-grid.is-in .sp-card{
  opacity: 1;
  transform: translateY(0) scale(1) rotateX(0);
  animation: spCardEnter 1.05s cubic-bezier(.22,.72,.18,1) both;
}
html body .sp-card-grid.is-in > .sp-card:nth-child(1){ animation-delay: .10s; }
html body .sp-card-grid.is-in > .sp-card:nth-child(2){ animation-delay: .26s; }
html body .sp-card-grid.is-in > .sp-card:nth-child(3){ animation-delay: .42s; }
html body .sp-card-grid.is-in > .sp-card:nth-child(4){ animation-delay: .58s; }
html body .sp-card-grid.is-in > .sp-card:nth-child(5){ animation-delay: .74s; }
html body .sp-card-grid.is-in > .sp-card:nth-child(6){ animation-delay: .90s; }
@keyframes spCardEnter{
  0%   { opacity: 0; transform: translateY(36px) scale(.96) rotateX(6deg); }
  55%  { opacity: 1; }
  100% { opacity: 1; transform: translateY(0) scale(1) rotateX(0); }
}

@media (max-width: 900px){
  html body .sp-card-grid{ grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 22px !important; perspective: none !important; }
  html body .sp-card-grid.is-ready .sp-card{ transform: translateY(20px) !important; }
  html body .sp-card-grid.is-in .sp-card{
    animation-name: spCardEnterMobile !important;
    animation-duration: .9s !important;
  }
  @keyframes spCardEnterMobile{
    0%   { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
  }
}
@media (max-width: 560px){
  html body .sp-card-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  html body .sp-card{ border-radius: 4px !important; }
  html body .sp-card__body{ padding: 12px 12px 14px !important; }
  html body .sp-card__title{ font-size: 13.5px !important; letter-spacing: .04em !important; line-height: 1.5 !important; }
  html body .sp-card__meta{ font-size: 11.5px !important; letter-spacing: .02em !important; line-height: 1.65 !important; }
  html body .sp-card__cta{ font-size: 11.5px !important; letter-spacing: .12em !important; }
  html body .sp-card__figure::after{ opacity: .55 !important; }
}
@media (max-width: 380px){
  html body .sp-card-grid{ grid-template-columns: 1fr !important; max-width: 380px !important; }
}

/* =============================================================================
   07 EVENTS  （横長バナー型）
   ============================================================================= */
html body .sp-events{
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 3.6em auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-events__list{
  display: flex !important;
  flex-direction: column !important;
  gap: 22px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sp-event-banner{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid var(--sp-ivory) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  box-shadow: 0 10px 26px -14px rgba(93,70,40,.16);
  transition: transform .35s var(--sp-ease), box-shadow .35s ease, border-color .3s ease;
}
html body .sp-event-banner:hover{
  transform: translateY(-3px);
  box-shadow: 0 20px 40px -16px rgba(234,136,143,.25);
  border-color: var(--sp-gold);
}
html body .sp-event-banner > a{
  display: grid !important;
  grid-template-columns: 320px 1fr !important;
  align-items: stretch !important;
  text-decoration: none !important;
  color: inherit !important;
}
html body .sp-event-banner__figure{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #eee !important;
  aspect-ratio: 4 / 3 !important;
}
html body .sp-event-banner__figure img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .7s ease;
}
html body .sp-event-banner:hover .sp-event-banner__figure img{ transform: scale(1.05); }
html body .sp-event-banner__body{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 24px 28px !important;
  gap: 10px !important;
}
html body .sp-event-banner__date{
  display: inline-block !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  color: var(--sp-gold) !important;
  margin: 0 !important;
}
html body .sp-event-banner__title{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  color: var(--sp-ink) !important;
  line-height: 1.7 !important;
}
html body .sp-event-banner__lead{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: .04em !important;
  line-height: 1.95 !important;
  color: var(--sp-ink-mute) !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  overflow: hidden !important;
}
html body .sp-event-banner__cta{
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 4px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .18em !important;
  color: var(--sp-gold-deep) !important;
}

@media (max-width: 720px){
  html body .sp-events__list{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    flex-direction: unset !important;
  }
  html body .sp-event-banner{ border-radius: 8px !important; }
  html body .sp-event-banner > a{ grid-template-columns: 1fr !important; }
  html body .sp-event-banner__figure{ aspect-ratio: 16 / 9 !important; }
  html body .sp-event-banner__body{
    padding: 12px 14px 14px !important;
    gap: 6px !important;
  }
  html body .sp-event-banner__date{ font-size: 11px !important; letter-spacing: .16em !important; }
  html body .sp-event-banner__title{
    font-size: 13px !important;
    letter-spacing: .04em !important;
    line-height: 1.55 !important;
  }
  html body .sp-event-banner__lead{
    font-size: 12px !important;
    line-height: 1.7 !important;
    letter-spacing: .02em !important;
  }
  html body .sp-event-banner__cta{ font-size: 11.5px !important; letter-spacing: .12em !important; }
}
@media (max-width: 380px){
  html body .sp-events__list{ grid-template-columns: 1fr !important; }
}

/* =============================================================================
   08 STAFF  （sp-card-grid + --staff バリアントで既定義。見出しだけ追加）
   ============================================================================= */
html body .sp-staff{
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 3.6em auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}

/* =============================================================================
   09 DAY / NIGHT VIEW  （1カラム写真 + 昼夜スイッチ）
   ============================================================================= */
html body .sp-daynight{
  display: block !important;
  width: 100% !important;
  margin: 1.4em auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
  --sp-daynight-vh: 100vh;
  --sp-daynight-media-max-h: calc(var(--sp-daynight-vh) - 300px);
  --sp-daynight-ui-bg: #f8f8fa;
  --sp-daynight-ui-stroke: #dadbe1;
  --sp-daynight-ui-text: #2f3138;
  --sp-daynight-ui-muted: #666a73;
  --sp-daynight-ui-active-a: #1f2025;
  --sp-daynight-ui-active-b: #353842;
}
html body .sp-daynight__inner{
  max-width: var(--sp-max) !important;
  margin: 0 auto !important;
  max-height: none !important;
  display: block !important;
}
html body .sp-daynight__head{
  text-align: center !important;
  margin: 0 0 .8em !important;
}
html body .sp-daynight__eyebrow{
  display: block !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: .28em !important;
  color: var(--sp-gold) !important;
  margin: 0 0 12px !important;
}
html body .sp-daynight__section-title{
  margin: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(21px, 2.6vw, 30px) !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  line-height: 1.7 !important;
  color: var(--sp-ink) !important;
}
html body .sp-daynight__line{
  display: none !important;
}
html body .sp-daynight__switch-wrap{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 auto .9em !important;
}
html body .sp-daynight__switch-label{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  color: #8b8e97 !important;
}
html body .sp-daynight__switch{
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 auto !important;
  padding: 4px !important;
  border: 1px solid #e5e6ec !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  box-shadow: none !important;
}
html body .sp-daynight__btn{
  appearance: none;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  margin: 0 !important;
  min-width: 112px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  color: var(--sp-daynight-ui-text) !important;
  background: transparent !important;
  border: 1px solid #ffffff !important;
  cursor: pointer !important;
  transition: background .3s ease, color .3s ease, transform .3s var(--sp-ease), border-color .3s ease, box-shadow .3s ease;
}
html body .sp-daynight__btn:hover{
  transform: none;
  border-color: #d7dae3 !important;
  background: #f6f7fa !important;
}
html body .sp-daynight__btn.is-active{
  color: #fff !important;
  background: linear-gradient(135deg, var(--sp-daynight-ui-active-a) 0%, var(--sp-daynight-ui-active-b) 100%) !important;
  box-shadow:
    0 8px 16px -10px rgba(16,18,24,.72),
    inset 0 1px 0 rgba(255,255,255,.24) !important;
}
html body .sp-daynight__btn[data-sp-daynight="day"].is-active{
  color: #2a2d35 !important;
  background: linear-gradient(135deg, #f8fbff 0%, #e9eef7 100%) !important;
  border-color: rgba(66,74,90,.18) !important;
  box-shadow: none !important;
}
html body .sp-daynight__btn[data-sp-daynight="night"].is-active{
  color: #fff !important;
  background: linear-gradient(135deg, var(--sp-daynight-ui-active-a) 0%, var(--sp-daynight-ui-active-b) 100%) !important;
  border-color: rgba(255,255,255,.06) !important;
  box-shadow: none !important;
}
html body .sp-daynight__btn:focus-visible{
  outline: 2px solid #2d313b !important;
  outline-offset: 2px !important;
}
html body .sp-daynight__btn-icon{
  display: inline-block !important;
  width: 15px !important;
  height: 15px !important;
  background: currentColor !important;
  -webkit-mask-repeat: no-repeat !important;
          mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
          mask-position: center !important;
  -webkit-mask-size: contain !important;
          mask-size: contain !important;
  opacity: .95 !important;
}
html body .sp-daynight__btn-icon--day{
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='4.2'/><path d='M12 2.7v2.2M12 19.1v2.2M4.9 4.9l1.6 1.6M17.5 17.5l1.6 1.6M2.7 12h2.2M19.1 12h2.2M4.9 19.1l1.6-1.6M17.5 6.5l1.6-1.6'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='4.2'/><path d='M12 2.7v2.2M12 19.1v2.2M4.9 4.9l1.6 1.6M17.5 17.5l1.6 1.6M2.7 12h2.2M19.1 12h2.2M4.9 19.1l1.6-1.6M17.5 6.5l1.6-1.6'/></svg>") !important;
}
html body .sp-daynight__btn-icon--night{
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M21 14.6A9 9 0 1 1 9.4 3a7.2 7.2 0 1 0 11.6 11.6Z'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M21 14.6A9 9 0 1 1 9.4 3a7.2 7.2 0 1 0 11.6 11.6Z'/></svg>") !important;
}
html body .sp-daynight__btn-text{
  display: inline-block !important;
  line-height: 1 !important;
}
html body .sp-daynight__figure{
  position: relative !important;
  margin: 0 auto !important;
  min-height: 0 !important;
  height: auto !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
  box-shadow: none !important;
  display: grid !important;
  width: fit-content !important;
  max-width: 100% !important;
}
html body .sp-daynight__media{
  position: relative !important;
  display: grid !important;
  width: max-content !important;
  max-width: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
}
html body .sp-daynight__img,
html body .sp-daynight__video{
  grid-area: 1 / 1 !important;
  position: relative !important;
  display: block !important;
  width: auto !important;
  max-width: min(100%, var(--sp-daynight-media-max-h)) !important;
  height: auto !important;
  max-height: var(--sp-daynight-media-max-h) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .55s ease, visibility .55s ease !important;
}

@supports (height: 100svh){
  html body .sp-daynight{
    --sp-daynight-vh: 100svh;
    --sp-daynight-media-max-h: calc(var(--sp-daynight-vh) - 300px);
  }
}
html body .sp-daynight__img.is-active,
html body .sp-daynight__video.is-active{
  opacity: 1 !important;
  visibility: visible !important;
}
html body .sp-daynight__caption{
  position: static !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 14px 0 0 !important;
  background: transparent !important;
  border-top: 0 !important;
  text-align: left !important;
  box-sizing: border-box !important;
}
html body .sp-daynight__title{
  margin: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(17px, 2vw, 24px) !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  line-height: 1.55 !important;
  color: var(--sp-ink) !important;
}
html body .sp-daynight__desc{
  margin: 8px 0 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(13px, 1.4vw, 15px) !important;
  font-weight: 400 !important;
  letter-spacing: .04em !important;
  line-height: 1.9 !important;
  color: var(--sp-ink-soft) !important;
}

html body .sp-daynight.is-ready .sp-daynight__head,
html body .sp-daynight.is-ready .sp-daynight__switch,
html body .sp-daynight.is-ready .sp-daynight__figure{
  opacity: 0;
  transform: translateY(16px);
}
html body .sp-daynight.is-ready .sp-daynight__line{ width: 0 !important; }
html body .sp-daynight.is-in .sp-daynight__head,
html body .sp-daynight.is-in .sp-daynight__switch,
html body .sp-daynight.is-in .sp-daynight__figure{
  opacity: 1;
  transform: none;
  transition: opacity .85s var(--sp-ease), transform .85s var(--sp-ease);
}
html body .sp-daynight.is-in .sp-daynight__line{
  width: 34px !important;
  transition: width .9s var(--sp-ease) .2s;
}
html body .sp-daynight.is-in .sp-daynight__head{ transition-delay: .05s; }
html body .sp-daynight.is-in .sp-daynight__switch{ transition-delay: .20s; }
html body .sp-daynight.is-in .sp-daynight__figure{ transition-delay: .34s; }

@media (max-width: 560px){
  html body .sp-daynight{
    margin: .8em auto !important;
    padding: 0 !important;
    --sp-daynight-media-max-h: calc(var(--sp-daynight-vh) - 200px);
  }
  html body .sp-daynight__head{ padding: 0 16px !important; }
  html body .sp-daynight__inner{ max-height: none !important; }
  html body .sp-daynight__switch-wrap{ margin-bottom: 0 !important; }
  html body .sp-daynight__switch-label{ font-size: 11px !important; letter-spacing: .1em !important; }
  html body .sp-daynight__switch{ gap: 8px !important; padding: 6px !important; }
  html body .sp-daynight__btn{
    min-width: 112px !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    gap: 6px !important;
  }
  html body .sp-daynight__btn-icon{ width: 14px !important; height: 14px !important; }
  html body .sp-daynight__figure{
    border-radius: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  html body .sp-daynight__media{
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    justify-items: center !important;
  }
  html body .sp-daynight__img,
  html body .sp-daynight__video{
    max-width: min(100%, var(--sp-daynight-media-max-h)) !important;
    max-height: var(--sp-daynight-media-max-h) !important;
  }
  html body .sp-daynight__caption{
    width: 100% !important;
    max-width: min(100%, var(--sp-daynight-media-max-h)) !important;
    margin: 0 auto !important;
    padding: 12px 0 0 !important;
  }
  html body .sp-daynight__desc{
    font-size: 13px !important;
    line-height: 1.75 !important;
  }
}

@media (max-width: 560px){
  @supports (height: 100svh){
    html body .sp-daynight{
      --sp-daynight-media-max-h: calc(var(--sp-daynight-vh) - 200px);
    }
    html body .sp-daynight__img,
    html body .sp-daynight__video{
      max-height: var(--sp-daynight-media-max-h) !important;
    }
  }
}

/* =============================================================================
   09-2 DAY / NIGHT VIEW 2-COLUMN TYPE
   ============================================================================= */
html body .sp-daynight-2col{
  display: block !important;
  width: 100% !important;
  margin: 2.2em auto 3em !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-daynight-2col__inner{
  max-width: var(--sp-max) !important;
  margin: 0 auto !important;
}
html body .sp-daynight-2col__head{
  text-align: center !important;
  margin: 0 0 1.1em !important;
}
html body .sp-daynight-2col__title{
  margin: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  color: var(--sp-ink) !important;
}
html body .sp-daynight-2col__lead{
  margin: .5em 0 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  letter-spacing: .04em !important;
  color: var(--sp-ink-mute) !important;
}
html body .sp-daynight-2col__grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 20px !important;
}
html body .sp-daynight-2col__card{
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  box-shadow: none !important;
  position: relative !important;
}
html body .sp-daynight-2col__switch{
  display: inline-flex !important;
  gap: 6px !important;
  padding: 4px !important;
  margin: 0 0 8px !important;
  border: 1px solid #e4e5ea !important;
  border-radius: 999px !important;
  background: #fff !important;
}
html body .sp-daynight-2col__btn{
  border: 0 !important;
  border-radius: 999px !important;
  padding: 6px 14px !important;
  margin: 0 !important;
  min-width: 54px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  color: #4a4f5b !important;
  background: transparent !important;
  cursor: pointer !important;
}
html body .sp-daynight-2col__btn.is-active{
  color: #fff !important;
  background: #2f333c !important;
}
html body .sp-daynight-2col__btn[data-sp-daynight="day"].is-active{
  color: #29303f !important;
  background: linear-gradient(135deg, #f6f9ff 0%, #e8edf7 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9) !important;
}
html body .sp-daynight-2col__btn[data-sp-daynight="night"].is-active{
  color: #fff !important;
  background: linear-gradient(135deg, #1f2127 0%, #373b47 100%) !important;
}
html body .sp-daynight-2col__media{
  position: relative !important;
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
}
html body .sp-daynight-2col__media img{
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .45s ease, visibility .45s ease !important;
}
html body .sp-daynight-2col__media img.is-active{
  opacity: 1 !important;
  visibility: visible !important;
}
html body .sp-daynight-2col__card figcaption{
  padding: 10px 0 0 !important;
}
html body .sp-daynight-2col__card h3{
  margin: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  color: var(--sp-ink) !important;
}
html body .sp-daynight-2col__card p{
  margin: 8px 0 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
  letter-spacing: .03em !important;
  color: var(--sp-ink-soft) !important;
}
@media (max-width: 700px){
  html body .sp-daynight-2col__grid{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  html body .sp-daynight-2col__switch{ margin: 0 0 8px !important; }
}

/* =============================================================================
   09 INFO DETAIL  （店舗概要）
   ============================================================================= */
html body .sp-info-detail{
  position: relative !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: var(--sp-max-panel) !important;
  margin: 3em auto 1.6em !important;
  padding: 2.4em 1.8em !important;
  background: linear-gradient(180deg, #fdfbf8 0%, #fbf7f2 100%) !important;
  border: 1px solid #e8ddcc !important;
  border-radius: 6px !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 14px 40px -24px rgba(93,70,40,.18) !important;
  overflow: hidden !important;
}
html body .sp-info-detail::before,
html body .sp-info-detail::after{
  content: "";
  position: absolute;
  top: 10px;
  width: 22px; height: 22px;
  opacity: .7;
  pointer-events: none;
}
html body .sp-info-detail::before{
  left: 10px;
  border-top: 1px solid var(--sp-gold);
  border-left: 1px solid var(--sp-gold);
}
html body .sp-info-detail::after{
  right: 10px;
  border-top: 1px solid var(--sp-gold);
  border-right: 1px solid var(--sp-gold);
}
html body .sp-info-detail__head{
  text-align: center !important;
  margin: 0 0 1.6rem !important;
}
html body .sp-info-detail__eyebrow{
  display: block !important;
  font-family: var(--sp-serif-en) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .32em !important;
  color: var(--sp-gold) !important;
  text-transform: uppercase !important;
  margin: 0 0 .5rem !important;
}
html body .sp-info-detail__title{
  display: block !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  color: var(--sp-ink) !important;
  margin: 0 0 .8rem !important;
  line-height: 1.4 !important;
}
html body .sp-info-detail__line{
  display: inline-block !important;
  width: 32px !important;
  height: 1px !important;
  background: var(--sp-gold) !important;
  vertical-align: middle !important;
}
html body .sp-info-detail__list{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
html body .sp-info-detail__row{
  display: grid !important;
  grid-template-columns: 160px 1fr !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 18px 4px !important;
  border-top: 1px solid var(--sp-gold-line) !important;
  margin: 0 !important;
}
html body .sp-info-detail__row:last-child{
  border-bottom: 1px solid var(--sp-gold-line) !important;
}
html body .sp-info-detail__row dt{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  color: var(--sp-sub) !important;
}
html body .sp-info-detail__row dd{
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: .05em !important;
  color: var(--sp-ink) !important;
  line-height: 1.7 !important;
}
html body .sp-info-detail__row dd a{
  color: var(--sp-gold-deep) !important;
  text-decoration: none !important;
  border-bottom: 1px dashed var(--sp-gold);
  transition: color .3s ease;
}
html body .sp-info-detail__row dd a:hover{
  color: var(--sp-ink) !important;
}
html body .sp-info-detail__icon{
  display: inline-block !important;
  width: 18px !important; height: 18px !important;
  background-color: var(--sp-gold) !important;
  -webkit-mask-repeat: no-repeat !important;
          mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
          mask-position: center !important;
  -webkit-mask-size: contain !important;
          mask-size: contain !important;
  flex: 0 0 auto !important;
}
html body .sp-info-detail__icon--place{
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-7.5-7-12a7 7 0 1 1 14 0c0 4.5-7 12-7 12Z'/><circle cx='12' cy='9' r='2.5'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-7.5-7-12a7 7 0 1 1 14 0c0 4.5-7 12-7 12Z'/><circle cx='12' cy='9' r='2.5'/></svg>") !important;
}
html body .sp-info-detail__icon--tel{
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.57.57 1 1 0 011 1v3.48a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.57 1 1 0 01-.24 1.01l-2.21 2.21z'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.57.57 1 1 0 011 1v3.48a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.57 1 1 0 01-.24 1.01l-2.21 2.21z'/></svg>") !important;
}
html body .sp-info-detail__icon--time{
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>") !important;
}
html body .sp-info-detail__icon--close{
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/><path d='M8 15l8 0M9 18h6'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/><path d='M8 15l8 0M9 18h6'/></svg>") !important;
}

/* Info 登場 */
html body .sp-info-detail.is-ready .sp-info-detail__eyebrow,
html body .sp-info-detail.is-ready .sp-info-detail__title,
html body .sp-info-detail.is-ready .sp-info-detail__row{
  opacity: 0; transform: translateY(10px);
  transition: opacity .8s ease, transform .8s var(--sp-ease);
}
html body .sp-info-detail.is-ready .sp-info-detail__line{ width: 0 !important; }
html body .sp-info-detail.is-in .sp-info-detail__eyebrow,
html body .sp-info-detail.is-in .sp-info-detail__title,
html body .sp-info-detail.is-in .sp-info-detail__row{
  opacity: 1; transform: none;
}
html body .sp-info-detail.is-in .sp-info-detail__line{ width: 32px !important; transition: width .9s var(--sp-ease) .4s; }
html body .sp-info-detail.is-in .sp-info-detail__eyebrow{ transition-delay: .05s; }
html body .sp-info-detail.is-in .sp-info-detail__title{ transition-delay: .12s; }
html body .sp-info-detail.is-in .sp-info-detail__row:nth-child(1){ transition-delay: .30s; }
html body .sp-info-detail.is-in .sp-info-detail__row:nth-child(2){ transition-delay: .42s; }
html body .sp-info-detail.is-in .sp-info-detail__row:nth-child(3){ transition-delay: .54s; }
html body .sp-info-detail.is-in .sp-info-detail__row:nth-child(4){ transition-delay: .66s; }

@media (max-width: 640px){
  html body .sp-info-detail{ margin: 2.2em auto 1.2em !important; padding: 2em 1.1em !important; max-width: 100% !important; }
  html body .sp-info-detail__title{ font-size: 19px !important; letter-spacing: .18em !important; }
  html body .sp-info-detail__row{ grid-template-columns: 1fr !important; gap: 6px !important; padding: 14px 2px !important; }
  html body .sp-info-detail__row dt{ font-size: 12px !important; }
  html body .sp-info-detail__row dd{ font-size: 15px !important; }
}

/* =============================================================================
   10 ACCESS  （Google Maps）
   ============================================================================= */
html body .sp-access{
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 3.2em auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-access__map{
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  border: 1px solid var(--sp-ivory) !important;
  box-shadow: 0 18px 40px -20px rgba(93,70,40,.22);
}
html body .sp-access__map iframe{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}
/* コーナーマーカー */
html body .sp-access__map::before,
html body .sp-access__map::after{
  content: "";
  position: absolute;
  width: 24px; height: 24px;
  pointer-events: none;
  z-index: 2;
}
html body .sp-access__map::before{
  top: 10px; left: 10px;
  border-top: 1px solid var(--sp-gold);
  border-left: 1px solid var(--sp-gold);
}
html body .sp-access__map::after{
  bottom: 10px; right: 10px;
  border-bottom: 1px solid var(--sp-gold);
  border-right: 1px solid var(--sp-gold);
}

/* =============================================================================
   11 CTA  （メインCTA / 電話 / サブCTA）
   ============================================================================= */
html body .sp-cta{
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max-panel) !important;
  margin: 3.2em auto 1.6em !important;
  padding: 2.6em 1.8em 2.4em !important;
  background: #ffffff !important;
  border: 1px solid var(--sp-ivory) !important;
  border-radius: 6px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,1) inset,
    0 22px 56px -32px rgba(234,136,143,.28),
    0 10px 28px -18px rgba(0,0,0,.10) !important;
}
html body .sp-cta::before{
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg,
    rgba(234,136,143,0) 0%,
    rgba(234,136,143,0) 8%,
    var(--sp-pink) 28%,
    var(--sp-pink) 72%,
    rgba(234,136,143,0) 92%,
    rgba(234,136,143,0) 100%);
  opacity: .9;
  pointer-events: none;
}
html body .sp-cta__inner{ display: block !important; }
html body .sp-cta__head{
  text-align: center !important;
  margin: 0 0 1.6em !important;
}
html body .sp-cta__eyebrow{
  display: block !important;
  font-family: var(--sp-serif-en) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .32em !important;
  color: var(--sp-gold) !important;
  text-transform: uppercase !important;
  margin: 0 0 .5rem !important;
}
html body .sp-cta__title{
  display: block !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  letter-spacing: .22em !important;
  color: var(--sp-ink) !important;
  margin: 0 0 .8rem !important;
  line-height: 1.4 !important;
}
html body .sp-cta__line{
  display: inline-block !important;
  width: 32px !important;
  height: 1px !important;
  background: var(--sp-gold) !important;
  vertical-align: middle !important;
  margin: 0 0 1em !important;
}
html body .sp-cta__lead{
  display: block !important;
  margin: 1em 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  line-height: 1.95 !important;
  color: var(--sp-ink) !important;
  text-align: center !important;
}
html body .sp-cta__button-lead{
  display: block !important;
  margin: .8em 0 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  line-height: 1.8 !important;
  color: var(--sp-ink-mute) !important;
  text-align: center !important;
}
html body .sp-cta__row{
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 18px !important;
  margin: 1.4em auto !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 520px !important;
}
html body .sp-cta .sp-cta__row > a.sp-btn{
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* 汎用ボタン（ゴールド） */
html body a.sp-btn,
html body .sp-cta a.sp-btn,
html body .sp-subcta a.sp-btn{
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  min-width: 260px !important;
  max-width: 100% !important;
  padding: 17px 52px 17px 34px !important;
  margin: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  color: #fff !important;
  text-decoration: none !important;
  background: var(--sp-gold) !important;
  border: none !important;
  border-radius: 4px !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
  box-shadow:
    0 10px 22px -6px rgba(179,146,120,.5),
    0 4px 8px -2px rgba(0,0,0,.10),
    inset 0 1px 0 rgba(255,255,255,.12) !important;
  transition: transform .35s var(--sp-ease), box-shadow .35s ease, background .3s ease !important;
}
html body a.sp-btn .sp-btn__label{
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  background: transparent !important;
}
html body a.sp-btn::after{
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 7px; height: 7px;
  border-right: 1.5px solid #fff;
  border-bottom: 1.5px solid #fff;
  background: transparent;
  transform: translateY(-70%) rotate(-45deg);
  transition: transform .35s ease;
}
html body a.sp-btn:hover{
  transform: translateY(-2px);
  background: var(--sp-gold-deep) !important;
  color: #fff !important;
  box-shadow:
    0 16px 32px -8px rgba(179,146,120,.6),
    0 6px 12px -2px rgba(0,0,0,.14),
    inset 0 1px 0 rgba(255,255,255,.18) !important;
}
html body a.sp-btn:hover::after{ transform: translateY(-70%) translateX(5px) rotate(-45deg); }
html body a.sp-btn:active{
  transform: translateY(0);
  box-shadow:
    0 6px 14px -4px rgba(179,146,120,.4),
    0 2px 4px rgba(0,0,0,.1) !important;
}
html body a.sp-btn:visited,
html body a.sp-btn:focus{ color: #fff !important; text-decoration: none !important; }
html body a.sp-btn:focus-visible{ outline: 2px solid var(--sp-gold); outline-offset: 3px; }

/* ピンク（来場予約） */
html body a.sp-btn.sp-btn--pink{
  background: var(--sp-pink) !important;
  box-shadow:
    0 10px 22px -6px rgba(234,136,143,.55),
    0 4px 8px -2px rgba(0,0,0,.10),
    inset 0 1px 0 rgba(255,255,255,.18) !important;
}
html body a.sp-btn.sp-btn--pink:hover{
  background: var(--sp-pink-deep) !important;
  box-shadow:
    0 16px 32px -8px rgba(234,136,143,.65),
    0 6px 12px -2px rgba(0,0,0,.14),
    inset 0 1px 0 rgba(255,255,255,.22) !important;
}
html body a.sp-btn.sp-btn--pink:focus-visible{ outline-color: var(--sp-pink); }

/* ゴールド（資料請求） */
html body a.sp-btn.sp-btn--gold{
  background: var(--sp-gold) !important;
}

/* ブラック */
html body a.sp-btn.sp-btn--black{
  background: #1e1f22 !important;
  box-shadow:
    0 10px 22px -6px rgba(0,0,0,.45),
    0 4px 8px -2px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
}
html body a.sp-btn.sp-btn--black .sp-btn__label{
  color: #fff !important;
}
html body a.sp-btn.sp-btn--black::after{
  border-right-color: rgba(255,255,255,.88) !important;
  border-bottom-color: rgba(255,255,255,.88) !important;
}
html body a.sp-btn.sp-btn--black:hover{
  background: #2a2c31 !important;
  box-shadow:
    0 16px 32px -8px rgba(0,0,0,.52),
    0 6px 12px -2px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.12) !important;
}
html body a.sp-btn.sp-btn--black:focus-visible{
  outline-color: #1e1f22 !important;
}

/* ゴースト（サブCTA） */
html body a.sp-btn.sp-btn--ghost,
html body a.sp-btn.sp-btn--ghost:visited{
  min-width: 0 !important;
  padding: 12px 44px 12px 22px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  color: #8a7660 !important;
  background: transparent !important;
  border: 1px solid rgba(179,146,120,.55) !important;
  box-shadow: none !important;
}
html body a.sp-btn.sp-btn--ghost .sp-btn__label{ color: #8a7660 !important; font-weight: 500 !important; }
html body a.sp-btn.sp-btn--ghost::after{
  right: 18px !important;
  width: 6px !important;
  height: 6px !important;
  border-right: 1.2px solid var(--sp-gold) !important;
  border-bottom: 1.2px solid var(--sp-gold) !important;
}
html body a.sp-btn.sp-btn--ghost:hover{
  transform: translateY(-1px);
  background: rgba(179,146,120,.06) !important;
  border-color: var(--sp-gold) !important;
  color: #6b5a47 !important;
  box-shadow: 0 6px 14px -8px rgba(179,146,120,.30) !important;
}
html body a.sp-btn.sp-btn--ghost:hover .sp-btn__label{ color: #6b5a47 !important; }
html body a.sp-btn.sp-btn--ghost:hover::after{
  border-right-color: #6b5a47 !important;
  border-bottom-color: #6b5a47 !important;
}

/* 共通ボタンの min-width(260px) を、この2行だけ解除して幅を揃える */
html body .sp-concierge__cta-row > a.sp-btn,
html body .sp-cta .sp-cta__row > a.sp-btn{
  min-width: 0 !important;
  width: 100% !important;
}

/* 電話 */
html body a.sp-tel{
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  width: min(100%, 520px) !important;
  max-width: 100% !important;
  padding: 14px 28px 16px !important;
  margin: 1.2em auto 0 !important;
  font-family: var(--sp-serif-jp) !important;
  color: var(--sp-ink) !important;
  text-decoration: none !important;
  background: #fff !important;
  border: 1px solid #d9c5a9 !important;
  border-radius: 4px !important;
  line-height: 1.4 !important;
  text-align: center !important;
  cursor: pointer !important;
  box-shadow:
    0 8px 18px -8px rgba(179,146,120,.25),
    0 2px 4px -1px rgba(0,0,0,.06) !important;
  transition: transform .35s var(--sp-ease), box-shadow .35s ease, border-color .3s ease !important;
}
html body a.sp-tel:hover{
  transform: translateY(-2px);
  border-color: var(--sp-gold) !important;
  box-shadow:
    0 14px 28px -10px rgba(179,146,120,.35),
    0 4px 10px -2px rgba(0,0,0,.08) !important;
}
html body a.sp-tel:visited,
html body a.sp-tel:focus{ color: var(--sp-ink) !important; text-decoration: none !important; }
html body a.sp-tel:focus-visible{ outline: 2px solid var(--sp-gold); outline-offset: 3px; }
html body .sp-tel__label{
  display: block !important;
  margin: 0 0 4px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  color: var(--sp-sub) !important;
}
html body .sp-tel__num{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  font-family: var(--sp-serif-en) !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  color: var(--sp-gold) !important;
  line-height: 1.1 !important;
}
html body a.sp-tel:hover .sp-tel__num{ color: var(--sp-gold-deep) !important; }
html body .sp-tel__num-text{ color: inherit !important; font: inherit !important; letter-spacing: inherit !important; }
html body .sp-tel__num-icon{
  display: inline-block !important;
  width: 18px; height: 18px;
  flex-shrink: 0 !important;
  background-color: currentColor !important;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.57.57 1 1 0 011 1v3.48a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.57 1 1 0 01-.24 1.01l-2.21 2.21z'/></svg>") no-repeat center / contain;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.57.57 1 1 0 011 1v3.48a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.57 1 1 0 01-.24 1.01l-2.21 2.21z'/></svg>") no-repeat center / contain;
}
html body .sp-tel__hours{
  display: block !important;
  margin: 4px 0 0 !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  color: var(--sp-sub) !important;
  line-height: 1.5 !important;
}

/* サブCTA */
html body .sp-subcta{
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 14px !important;
  max-width: var(--sp-max-panel) !important;
  margin: 1.2em auto 3.6em !important;
  padding: 0 1.6em !important;
}

/* CTA 登場 */
html body .sp-cta.is-ready .sp-cta__eyebrow,
html body .sp-cta.is-ready .sp-cta__title,
html body .sp-cta.is-ready .sp-cta__lead,
html body .sp-cta.is-ready .sp-cta__button-lead,
html body .sp-cta.is-ready .sp-cta__row,
html body .sp-cta.is-ready a.sp-tel{
  opacity: 0; transform: translateY(12px);
  transition: opacity .9s ease, transform .9s var(--sp-ease);
}
html body .sp-cta.is-ready .sp-cta__line{ width: 0 !important; }
html body .sp-cta.is-in .sp-cta__eyebrow,
html body .sp-cta.is-in .sp-cta__title,
html body .sp-cta.is-in .sp-cta__lead,
html body .sp-cta.is-in .sp-cta__button-lead,
html body .sp-cta.is-in .sp-cta__row,
html body .sp-cta.is-in a.sp-tel{
  opacity: 1; transform: none;
}
html body .sp-cta.is-in .sp-cta__line{ width: 32px !important; transition: width 1s var(--sp-ease) .3s; }
html body .sp-cta.is-in .sp-cta__eyebrow{ transition-delay: .05s; }
html body .sp-cta.is-in .sp-cta__title{ transition-delay: .15s; }
html body .sp-cta.is-in .sp-cta__lead{ transition-delay: .40s; }
html body .sp-cta.is-in .sp-cta__button-lead{ transition-delay: .48s; }
html body .sp-cta.is-in .sp-cta__row{ transition-delay: .55s; }
html body .sp-cta.is-in a.sp-tel{ transition-delay: .75s; }

@media (max-width: 560px){
  html body .sp-cta{ padding: 2.2em 1.1em 2em !important; margin: 2.4em auto 1.2em !important; }
  html body a.sp-btn,
  html body .sp-cta a.sp-btn{
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    font-size: 15px !important;
    letter-spacing: .12em !important;
    padding: 16px 44px 16px 20px !important;
  }
  html body a.sp-btn::after{ right: 20px !important; }
  html body a.sp-btn.sp-btn--ghost{
    padding: 11px 40px 11px 18px !important;
    font-size: 13px !important;
    letter-spacing: .1em !important;
  }
  html body a.sp-btn.sp-btn--ghost::after{ right: 16px !important; }
  html body a.sp-tel{ min-width: 0 !important; width: 100% !important; padding: 12px 20px 14px !important; }
  html body .sp-tel__num{ font-size: 24px !important; }
  html body .sp-subcta{ gap: 12px !important; padding: 0 1.1em !important; }
  html body .sp-cta__row{
    flex-direction: column !important;
    gap: 12px !important;
    max-width: 100% !important;
  }
  html body .sp-cta .sp-cta__row > a.sp-btn{
    flex: 0 0 auto !important;
  }
}

/* =============================================================================
   12 FOOTER BAR
   ============================================================================= */
html body .sp-footer{
  display: block !important;
  width: 100% !important;
  margin: 4em 0 0 !important;
  padding: 2em 16px 2.4em !important;
  background: var(--sp-cream) !important;
  border-top: 1px solid var(--sp-ivory) !important;
  text-align: center !important;
}
html body .sp-footer__copy{
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-en) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: .28em !important;
  color: var(--sp-sub) !important;
}

/* =============================================================================
   13 REDUCED MOTION / PRINT
   ============================================================================= */
@media (prefers-reduced-motion: reduce){
  html body .sp-hero.is-ready .sp-hero__eyebrow,
  html body .sp-hero.is-ready .sp-hero__title,
  html body .sp-hero.is-ready .sp-hero__lead,
  html body .sp-hero.is-ready .sp-hero__meta,
  html body .sp-hero.is-ready .sp-hero__line,
  html body .sp-hero.is-ready .sp-hero__img,
  html body .sp-hero.is-ready .sp-hero__figure,
  html body .sp-hero.is-ready .sp-hero__corner,
  html body .sp-concierge.is-ready .sp-concierge__eyebrow,
  html body .sp-concierge.is-ready .sp-concierge__title,
  html body .sp-concierge.is-ready .sp-worry,
  html body .sp-concierge.is-ready .sp-concierge__answer,
  html body .sp-concierge.is-ready .sp-concierge__cards-label,
  html body .sp-concierge.is-ready .sp-concierge-card,
  html body .sp-concierge.is-ready .sp-concierge__note,
  html body .sp-points.is-ready .sp-point-card,
  html body .sp-feature.is-ready .sp-feature__media,
  html body .sp-feature.is-ready .sp-feature__text,
  html body .sp-feature.is-ready .sp-feature__text::before,
  html body .sp-feature.is-ready .sp-feature__title,
  html body .sp-feature.is-ready .sp-feature__lead,
  html body .sp-feature.is-ready .sp-feature__link,
  html body .sp-feature.is-ready .sp-feature__img,
  html body .sp-card-grid.is-ready .sp-card,
  html body .sp-info-detail.is-ready .sp-info-detail__eyebrow,
  html body .sp-info-detail.is-ready .sp-info-detail__title,
  html body .sp-info-detail.is-ready .sp-info-detail__row,
  html body .sp-cta.is-ready .sp-cta__eyebrow,
  html body .sp-cta.is-ready .sp-cta__title,
  html body .sp-cta.is-ready .sp-cta__lead,
  html body .sp-cta.is-ready .sp-cta__button-lead,
  html body .sp-cta.is-ready .sp-cta__row,
  html body .sp-cta.is-ready a.sp-tel{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  html body .sp-hero.is-ready .sp-hero__line{ width: 48px !important; transition: none !important; }
  html body .sp-hero.is-ready .sp-hero__figure{
    box-shadow:
      0 24px 48px -16px rgba(31,31,31,.35),
      0 8px 16px -4px rgba(0,0,0,.15) !important;
  }
  html body .sp-concierge.is-ready .sp-concierge__line{ width: 40px !important; transition: none !important; }
  html body .sp-feature.is-ready .sp-feature__line{ width: 40px !important; transition: none !important; }
  html body .sp-info-detail.is-ready .sp-info-detail__line{ width: 32px !important; transition: none !important; }
  html body .sp-cta.is-ready .sp-cta__line{ width: 32px !important; transition: none !important; }
  html body .sp-hero.is-in .sp-hero__img{ animation: none !important; }
  html body .sp-feature.is-in .sp-feature__img{ animation: none !important; }
  html body .sp-card-grid.is-in .sp-card{ animation: none !important; }
  html body .sp-hero__scroll-arrow{ animation: none !important; opacity: .8 !important; }
}

/* 万一 .is-ready / .is-in が何らかの事情で付かなかった場合でも最低限表示する保険
   （JS 強制フォールバックで is-in を付与するが、CSSだけでも破綻させない） */
html body .sp-hero:not(.is-ready):not(.is-in) .sp-hero__img{ opacity: 1; transform: none; }

/* =============================================================================
   店舗LP: gallery/detail.php へ組み込む際の調整
   （プロトタイプは body 直下だが、実装では list-page__main 内に配置されるため）
   ============================================================================= */
/* 既存テーマ側の .list-page__main 固定幅（例: 850px）をLP時は解除 */
@media screen and (min-width: 761px){
  html body.l-system.l-detail .list-page__main{
    width: 100% !important;
    max-width: none !important;
  }
}

/* メインビジュアルの背景をブラウザ幅いっぱいに敷く（full-bleed） */
html body .list-page .sp-page .sp-hero{
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* 横長のメイン画像は実比率で表示（縦長固定 4/5 とトリミングを解除） */
html body .sp-hero__figure--landscape{
  max-width: 100% !important;
}
html body .sp-hero__figure--landscape .sp-hero__img{
  aspect-ratio: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}
/* メインビジュアル動画（mp4/webm/ogg）は全体表示優先
   transform 連続アニメはデコードと競合してカクつくため無効化 */
html body .sp-hero__figure--video .sp-hero__img,
html body .sp-hero__video{
  aspect-ratio: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  animation: none !important;
  transform: none !important;
  transition: opacity 1.1s var(--sp-ease) !important;
}
html body .sp-hero.is-ready .sp-hero__figure--video .sp-hero__img,
html body .sp-hero.is-ready .sp-hero__video{
  transform: none !important;
}
html body .sp-hero.is-in .sp-hero__figure--video .sp-hero__img,
html body .sp-hero.is-in .sp-hero__video{
  transform: none !important;
}

/* メインビジュアル見出しを「文節」で区切る
   - 入力した改行位置を文節の区切りとして扱う
   - 各文節（.sp-phrase）は inline-block で、途中では折り返さない
   - 画面幅に収まる場合は複数文節が同じ行に並び、収まらない場合のみ文節境界で改行 */
html body .sp-hero__title{
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}
html body .sp-hero__title .sp-phrase{
  display: inline-block !important;
}

/* スタッフ紹介（PC）: 最大4カラム */
@media (min-width: 901px){
  html body .sp-staff{
    max-width: 1200px !important;
    padding: 0 8px !important;
  }
  html body .sp-staff .sp-card-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }

  /* 1〜3人時は左寄せにならないよう中央寄せ */
  html body .sp-staff .sp-card-grid--count-1{
    grid-template-columns: calc((100% - 60px) / 4) !important;
    justify-content: center !important;
  }
  html body .sp-staff .sp-card-grid--count-2{
    grid-template-columns: repeat(2, calc((100% - 60px) / 4)) !important;
    justify-content: center !important;
  }
  html body .sp-staff .sp-card-grid--count-3{
    grid-template-columns: repeat(3, calc((100% - 60px) / 4)) !important;
    justify-content: center !important;
  }
}

/* スタッフ紹介（SP）: スクショ寄せの横スワイプ */
@media (max-width: 640px){
  html body .sp-staff .sp-card-grid{
    --staff-card-w: 68vw;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 16px 16px !important;
    margin: 0 -16px !important;
    background: transparent !important;
    scroll-padding-inline: calc((100vw - var(--staff-card-w)) / 2);
  }
  html body .sp-staff .sp-card-grid::-webkit-scrollbar{
    display: none;
  }
  html body .sp-staff .sp-card-grid > .sp-card{
    flex: 0 0 var(--staff-card-w) !important;
    max-width: 320px !important;
    min-width: 220px !important;
    scroll-snap-align: center;
    border-radius: 4px !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  /* スタッフ画像はトリミングせず全体表示 */
  html body .sp-staff .sp-card--staff .sp-card__figure{
    aspect-ratio: auto !important;
    background: transparent !important;
  }
  html body .sp-staff .sp-card--staff .sp-card__img{
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
  }
  html body .sp-staff::after{
    content: "\2190\00a0\00a0swipe\00a0\00a0\2192";
    display: block;
    margin-top: 10px;
    text-align: center;
    font-family: var(--sp-serif-en);
    font-style: italic;
    font-size: 13px;
    letter-spacing: .22em;
    color: rgba(179,146,120,.95);
  }
}

/* Instagram */
html body .sp-instagram{
  display: block !important;
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 3.2em auto !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}
html body .sp-instagram__inner{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 !important;
  background: #f3f0ea !important;
  overflow: hidden !important;
}
html body .sp-instagram__inner--no-media{
  grid-template-columns: 1fr !important;
}
html body .sp-instagram__media{
  min-width: 0 !important;
}
html body .sp-instagram__figure{
  margin: 0 !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
}
html body .sp-instagram__img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
html body .sp-instagram__body{
  padding: 34px 42px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}
html body .sp-instagram__inner--no-media .sp-instagram__body{
  max-width: 920px !important;
  margin: 0 auto !important;
}
html body .sp-instagram__eyebrow{
  margin: 0 0 14px !important;
  color: var(--sp-gold-deep) !important;
  font-family: var(--sp-serif-en) !important;
  letter-spacing: .26em !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}
html body .sp-instagram__eyebrow::before{
  content: "" !important;
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
  border: 1.4px solid currentColor !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
  flex: 0 0 auto !important;
  background:
    radial-gradient(circle, transparent 43%, currentColor 44%, currentColor 58%, transparent 59%) center/72% 72% no-repeat,
    radial-gradient(circle, currentColor 45%, transparent 50%) 76% 24%/16% 16% no-repeat !important;
}
html body .sp-instagram__title{
  margin: 0 0 14px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 20px !important;
  line-height: 1.45 !important;
  letter-spacing: .08em !important;
  color: var(--sp-ink) !important;
}
html body .sp-instagram__lead{
  margin: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 15px !important;
  line-height: 1.9 !important;
  letter-spacing: .05em !important;
  color: var(--sp-ink-mute) !important;
}
html body .sp-instagram__cta{
  margin-top: 30px !important;
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
}
html body .sp-instagram__btn{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 52px !important;
  padding: 0 30px !important;
  border-radius: 999px !important;
  background: #26231f !important;
  color: #fff !important;
  text-decoration: none !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  line-height: 1 !important;
}
html body .sp-instagram__btn-label{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}
html body .sp-instagram__btn-label::before{
  content: "" !important;
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  border: 1.6px solid currentColor !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
  flex: 0 0 auto !important;
  background:
    radial-gradient(circle, transparent 43%, currentColor 44%, currentColor 58%, transparent 59%) center/72% 72% no-repeat,
    radial-gradient(circle, currentColor 45%, transparent 50%) 76% 24%/16% 16% no-repeat !important;
}
html body .sp-instagram__btn:hover{
  opacity: .9 !important;
}
html body .sp-instagram__account{
  font-family: var(--sp-serif-en) !important;
  font-size: 15px !important;
  letter-spacing: .1em !important;
  color: #9f988e !important;
}
html body .sp-instagram__account--solo{
  margin-top: 18px !important;
}
@media (max-width: 760px){
  html body .sp-instagram__inner{
    grid-template-columns: 1fr !important;
  }
  html body .sp-instagram__inner--no-media{
    grid-template-columns: 1fr !important;
  }
  html body .sp-instagram__figure{
    aspect-ratio: 16 / 9 !important;
  }
  html body .sp-instagram__body{
    padding: 22px 24px 26px !important;
    text-align: center !important;
  }
  html body .sp-instagram__eyebrow{
    justify-content: center !important;
    font-size: 12px !important;
    margin-bottom: 10px !important;
  }
  html body .sp-instagram__title{
    font-size: 20px !important;
    line-height: 1.55 !important;
    margin-bottom: 12px !important;
  }
  html body .sp-instagram__lead{
    font-size: 14px !important;
    line-height: 1.9 !important;
  }
  html body .sp-instagram__cta{
    margin-top: 18px !important;
    flex-direction: column !important;
    gap: 10px !important;
  }
  html body .sp-instagram__btn{
    width: 100% !important;
    max-width: 320px !important;
    min-height: 50px !important;
    font-size: 14px !important;
  }
  html body .sp-instagram__account{
    font-size: 15px !important;
  }
}

/* 先頭セクションがメインビジュアルのとき、スマホで上余白を詰める */
@media (max-width: 560px){
  html body .sp-page > .sp-hero:first-child{
    margin-top: 0 !important;
  }
  html body .sp-page > .sp-hero:first-child .sp-hero__inner{
    padding-top: 0 !important;
  }
}

/* =============================================================================
   REVIEWS  お客様の声
   ============================================================================= */
html body .sp-reviews{
  display: block !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 80px 48px !important;
  box-sizing: border-box !important;
  background: #fff !important;
}
html body .sp-reviews__inner{
  display: flex !important;
  flex-direction: column !important;
  gap: 56px !important;
}
html body .sp-reviews__head{
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}
html body .sp-reviews__title{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #242424 !important;
}
html body .sp-reviews__summary{
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}
html body .sp-reviews__summary-stars{
  font-family: Inter, var(--sp-sans-jp), sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #FBBC04 !important;
  letter-spacing: .04em !important;
}
html body .sp-reviews__summary-detail{
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
html body .sp-reviews__summary-average{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #242424 !important;
}
html body .sp-reviews__summary-count{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  color: #9CA3AF !important;
}
html body .sp-reviews__cards{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
}
html body .sp-reviews__card{
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  min-height: 100% !important;
  padding: 28px 28px 28px 24px !important;
  border: 1px solid #F3E0E0 !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-sizing: border-box !important;
}
html body .sp-reviews__card-accent{
  position: absolute !important;
  top: 28px !important;
  left: 0 !important;
  width: 4px !important;
  height: 32px !important;
  border-radius: 2px !important;
  background: #EA888F !important;
}
html body .sp-reviews__card-quote{
  display: block !important;
  width: 32px !important;
  height: 24px !important;
  line-height: 0 !important;
}
html body .sp-reviews__card-quote svg{
  display: block !important;
  width: 32px !important;
  height: 24px !important;
}
html body .sp-reviews__card-body{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.85 !important;
  color: #374151 !important;
}
html body .sp-reviews__card-divider{
  display: block !important;
  width: 100% !important;
  height: 1px !important;
  background: #F3E0E0 !important;
}
html body .sp-reviews__card-foot{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}
html body .sp-reviews__card-person{
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0 !important;
}
html body .sp-reviews__card-avatar{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  flex: 0 0 auto !important;
}
html body .sp-reviews__card-avatar-text{
  font-family: var(--sp-sans-jp) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #fff !important;
}
html body .sp-reviews__card-name-block{
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  min-width: 0 !important;
}
html body .sp-reviews__card-name{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #242424 !important;
}
html body .sp-reviews__card-source{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  color: #9CA3AF !important;
}
html body .sp-reviews__card-meta{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 2px !important;
  flex: 0 0 auto !important;
}
html body .sp-reviews__card-stars{
  margin: 0 !important;
  font-family: Inter, var(--sp-sans-jp), sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: #FBBC04 !important;
  letter-spacing: .04em !important;
}
html body .sp-reviews__card-date{
  margin: 0 !important;
  font-family: var(--sp-sans-jp) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  color: #BDC1C6 !important;
}

/* お客様の声（SP）: 横スワイプ */
@media (max-width: 640px){
  html body .sp-reviews{
    padding: 48px 16px 40px !important;
  }
  html body .sp-reviews__inner{
    gap: 32px !important;
  }
  html body .sp-reviews__title{
    font-size: 24px !important;
  }
  html body .sp-reviews__cards{
    --reviews-card-w: 78vw;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 0 16px !important;
    margin: 0 -16px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    scroll-padding-inline: calc((100vw - var(--reviews-card-w)) / 2);
  }
  html body .sp-reviews__cards::-webkit-scrollbar{
    display: none;
  }
  html body .sp-reviews__card{
    flex: 0 0 var(--reviews-card-w) !important;
    max-width: 360px !important;
    min-width: 260px !important;
    scroll-snap-align: center;
  }
  html body .sp-reviews::after{
    content: "\2190\00a0\00a0swipe\00a0\00a0\2192";
    display: block;
    margin-top: 4px;
    text-align: center;
    font-family: var(--sp-serif-en);
    font-style: italic;
    font-size: 13px;
    letter-spacing: .22em;
    color: rgba(179,146,120,.95);
  }
}

@media (max-width: 900px) and (min-width: 641px){
  html body .sp-reviews__cards{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* =============================================================================
   STAFF WORKS（施工事例 + 担当者）
   ============================================================================= */
html body .sp-staffworks{
  display: block !important;
  width: 100% !important;
  padding: clamp(56px, 8vw, 88px) clamp(16px, 4vw, 48px) clamp(56px, 8vw, 96px) !important;
  background:
    radial-gradient(900px 420px at 18% 0%, rgba(179,146,120,.05), transparent 62%),
    radial-gradient(700px 380px at 82% 100%, rgba(179,146,120,.04), transparent 58%),
    linear-gradient(180deg, var(--sp-cream-deep) 0%, var(--sp-cream) 48%, #f5f0ea 100%) !important;
}
html body .sp-staffworks__inner{
  width: 100% !important;
  max-width: var(--sp-max) !important;
  margin: 0 auto !important;
}
html body .sp-staffworks .sp-section-head{
  margin-top: 0 !important;
}
html body .sp-staffworks__lead{
  max-width: 720px !important;
  margin: 0 auto 2.8em !important;
  padding: 0 16px !important;
  text-align: center !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(15px, 1.8vw, 16px) !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  line-height: 1.9 !important;
  color: var(--sp-sub) !important;
}
html body .sp-staffworks__grid{
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(20px, 2.8vw, 32px) !important;
  align-items: stretch !important;
}
html body .sp-staffworks__item{
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sp-staffworks__card{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  color: inherit !important;
  text-decoration: none !important;
  cursor: pointer !important;
  background: #fff !important;
  border: 1px solid rgba(179,146,120,.18) !important;
  box-shadow:
    0 12px 28px -18px rgba(31,31,31,.18),
    0 2px 6px -1px rgba(0,0,0,.04) !important;
  overflow: hidden !important;
  transition: box-shadow .3s var(--sp-ease), border-color .3s var(--sp-ease) !important;
}
html body .sp-staffworks__card:hover{
  border-color: rgba(179,146,120,.32) !important;
  box-shadow:
    0 18px 36px -16px rgba(31,31,31,.22),
    0 4px 10px -2px rgba(0,0,0,.06) !important;
}
html body .sp-staffworks__card:focus-visible{
  outline: 2px solid var(--sp-gold-deep) !important;
  outline-offset: 4px !important;
}
html body .sp-staffworks__figure{
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
}
html body .sp-staffworks__photo{
  display: block !important;
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: saturate(.96) contrast(1.02) !important;
  transform: scale(1) !important;
  transition: transform 1.25s var(--sp-ease), filter 1.25s var(--sp-ease) !important;
  will-change: transform;
}
html body .sp-staffworks__card:hover .sp-staffworks__photo,
html body .sp-staffworks__card:focus-visible .sp-staffworks__photo{
  transform: scale(1.07) !important;
  filter: saturate(1) contrast(1.03) !important;
}
html body .sp-staffworks__body{
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  padding: clamp(32px, 4.5vw, 44px) clamp(16px, 2.2vw, 22px) clamp(20px, 2.8vw, 26px) !important;
  text-align: left !important;
}
html body .sp-staffworks__profile{
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: clamp(14px, 2.4vw, 20px) !important;
  margin: clamp(-24px, -3.5vw, -16px) 0 0 !important;
}
html body .sp-staffworks__person{
  display: flex !important;
  flex: 0 0 clamp(80px, 10vw, 96px) !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}
html body .sp-staffworks__avatar-wrap{
  display: block !important;
  flex: 0 0 auto !important;
  width: clamp(80px, 10vw, 96px) !important;
  height: clamp(80px, 10vw, 96px) !important;
  border: 3px solid #fff !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  background: var(--sp-cream-deep) !important;
  box-shadow: 0 4px 14px -4px rgba(31,31,31,.22) !important;
}
html body .sp-staffworks__avatar{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}
html body .sp-staffworks__name{
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-en) !important;
  font-size: clamp(11px, 1.2vw, 13px) !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  line-height: 1.3 !important;
  color: var(--sp-gold-deep) !important;
  text-align: center !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}
html body .sp-staffworks__copy{
  align-self: flex-start !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  min-height: 3.2em !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(14px, 1.5vw, 16px) !important;
  font-weight: 500 !important;
  letter-spacing: .06em !important;
  line-height: 1.75 !important;
  color: var(--sp-ink) !important;
}
html body .sp-staffworks__more{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin: 18px 0 0 !important;
  font-family: var(--sp-serif-en) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  line-height: 1 !important;
  color: var(--sp-gold-deep) !important;
  text-transform: uppercase !important;
}
html body .sp-staffworks__more-arrow{
  position: relative !important;
  display: inline-block !important;
  width: 28px !important;
  height: 1px !important;
  background: currentColor !important;
  transition: width .25s var(--sp-ease) !important;
}
html body .sp-staffworks__more-arrow::after{
  content: '' !important;
  position: absolute !important;
  top: -3px !important;
  right: 0 !important;
  width: 7px !important;
  height: 7px !important;
  border-top: 1px solid currentColor !important;
  border-right: 1px solid currentColor !important;
  transform: rotate(45deg) !important;
}
html body .sp-staffworks__card:hover .sp-staffworks__more-arrow,
html body .sp-staffworks__card:focus-visible .sp-staffworks__more-arrow{
  width: 36px !important;
}
html body .sp-staffworks__cta{
  display: flex !important;
  justify-content: center !important;
  margin: clamp(36px, 5vw, 52px) 0 0 !important;
  padding: 0 16px !important;
}
html body .sp-staffworks__cta > a.sp-btn{
  min-width: min(100%, 320px) !important;
}
html body .sp-staffworks.is-ready .sp-section-head,
html body .sp-staffworks.is-ready .sp-staffworks__lead,
html body .sp-staffworks.is-ready .sp-staffworks__item,
html body .sp-staffworks.is-ready .sp-staffworks__cta{
  opacity: 0 !important;
  transform: translateY(26px) !important;
}
html body .sp-staffworks.is-ready.is-in .sp-section-head,
html body .sp-staffworks.is-ready.is-in .sp-staffworks__lead,
html body .sp-staffworks.is-ready.is-in .sp-staffworks__item,
html body .sp-staffworks.is-ready.is-in .sp-staffworks__cta{
  opacity: 1 !important;
  transform: translateY(0) !important;
  transition: opacity .85s var(--sp-ease), transform .85s var(--sp-ease) !important;
}
html body .sp-staffworks.is-ready.is-in .sp-staffworks__lead{ transition-delay: .12s !important; }
html body .sp-staffworks.is-ready.is-in .sp-staffworks__item:nth-child(1){ transition-delay: .22s !important; }
html body .sp-staffworks.is-ready.is-in .sp-staffworks__item:nth-child(2){ transition-delay: .34s !important; }
html body .sp-staffworks.is-ready.is-in .sp-staffworks__item:nth-child(3){ transition-delay: .46s !important; }
html body .sp-staffworks.is-ready.is-in .sp-staffworks__item:nth-child(4){ transition-delay: .22s !important; }
html body .sp-staffworks.is-ready.is-in .sp-staffworks__item:nth-child(5){ transition-delay: .34s !important; }
html body .sp-staffworks.is-ready.is-in .sp-staffworks__item:nth-child(6){ transition-delay: .46s !important; }
html body .sp-staffworks.is-ready.is-in .sp-staffworks__cta{ transition-delay: .58s !important; }

@media (max-width: 700px){
  html body .sp-staffworks{
    padding: 40px 16px 48px !important;
  }
  html body .sp-staffworks__grid{
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    max-width: 480px !important;
    margin: 0 auto !important;
  }
  html body .sp-staffworks__lead{
    margin-bottom: 2.2em !important;
    font-size: 16px !important;
    line-height: 1.85 !important;
  }
  html body .sp-staffworks__body{
    padding-top: 36px !important;
  }
  html body .sp-staffworks__person{
    flex-basis: 88px !important;
  }
  html body .sp-staffworks__avatar-wrap{
    width: 88px !important;
    height: 88px !important;
  }
  html body .sp-staffworks__profile{
    margin-top: -18px !important;
    gap: 16px !important;
  }
  html body .sp-staffworks__copy{
    min-height: auto !important;
    font-size: 16px !important;
  }
}

@media (prefers-reduced-motion: reduce){
  html body .sp-staffworks__card,
  html body .sp-staffworks__photo,
  html body .sp-staffworks__more-arrow{
    transition: none !important;
  }
  html body .sp-staffworks__card:hover .sp-staffworks__photo,
  html body .sp-staffworks__card:focus-visible .sp-staffworks__photo{
    transform: none !important;
  }
  html body .sp-staffworks.is-ready .sp-section-head,
  html body .sp-staffworks.is-ready .sp-staffworks__lead,
  html body .sp-staffworks.is-ready .sp-staffworks__item,
  html body .sp-staffworks.is-ready .sp-staffworks__cta{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =============================================================================
   ROUTE GUIDANCE（店舗LPテンプレート使用時のみ）
   ============================================================================= */
html body .sp-route-guidance .sec-title-en{
  margin: 3.6em auto 2.4em !important;
  padding: 0 16px !important;
  text-align: center !important;
}
html body .sp-route-guidance .sec-title-en .h2.en{
  display: block !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  font-family: var(--sp-serif-en) !important;
  font-style: italic !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: .28em !important;
  line-height: 1.4 !important;
  color: var(--sp-gold) !important;
}
html body .sp-route-guidance .sec-title-en .small{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: clamp(22px, 3.2vw, 30px) !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  line-height: 1.6 !important;
  color: var(--sp-ink) !important;
}
html body .sp-route-guidance .route_list .box_ph{
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  overflow: hidden !important;
  background: #fff !important;
  border-radius: 4px !important;
}
html body .sp-route-guidance .route_list .box_ph .ph{
  flex: 0 0 auto !important;
  margin: 0 !important;
  overflow: hidden !important;
}
html body .sp-route-guidance .route_list .box_ph .ph img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}
html body .sp-route-guidance .route_list .box_ph .caption{
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 12px 14px 14px !important;
  font-family: var(--sp-serif-jp) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: .04em !important;
  line-height: 1.7 !important;
  color: var(--sp-ink-mute) !important;
  text-align: left !important;
  white-space: normal !important;
  background: #fff !important;
  border-top: 1px solid rgba(179,146,120,.14) !important;
}

@media (max-width: 760px){
  html body .sp-route-guidance .route_list .box_ph .caption{
    padding: 11px 12px 13px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
  }
}
