/**
 * Modern Nail Salon Theme Styling (glitter)
 * Sharp, Editorial, Luxury Design System
 * — No rounded corners. Clean lines. Salon-grade precision.
 */

:root {
  /* --- カラーパレット --- */
  --salon-bg-main: #fbfdfc;
  --salon-bg-sub: #f4f7fa;
  --salon-bg-card: #ffffff;
  --salon-bg-nuance: #f5f3f8;           /* グラデーションに寄り添うラベンダーニュアンス */
  --salon-primary: #64b39a;             /* ロゴカラー：明るいグリーン（ボタン基調） */
  --salon-primary-light: #e8f5f1;       /* 淡いミントグリーン背景・バッジ */
  --salon-primary-dark: #4a9680;        /* ロゴグリーンの濃い版：ホバー */
  --salon-accent: #3a3078;              /* グラデーション起点：ディープパープル */
  --salon-accent-light: #5c4fa0;        /* 明るいパープル */
  --salon-text-main: #232c34;           /* メイン見出し */
  --salon-text-body: #252e38;           /* 本文テキスト：より高コントラストで視認性抜群のディープチャコール */
  --salon-text-sub: #5a6370;            /* サブテキスト・補足 */
  --salon-text-light: #8e95a2;          /* 注記・プレースホルダー */
  --salon-border: rgba(74, 138, 138, 0.25);
  --salon-border-light: #e2e6ec;        /* 上質なクールグレーボーダー */
  --salon-border-subtle: #eef0f4;       /* 微細な区切り線 */
  --salon-shadow-sm: 0 2px 8px rgba(40, 70, 60, 0.04);
  --salon-shadow-md: 0 4px 16px rgba(40, 70, 60, 0.06);
  --salon-shadow-lg: 0 8px 24px rgba(40, 70, 60, 0.08);

  /* --- 統一スペーシングスケール（8pt/4pt グリッド） --- */
  --salon-space-3xs: 2px;
  --salon-space-2xs: 4px;
  --salon-space-xs: 8px;
  --salon-space-sm: 12px;
  --salon-space-md: 16px;
  --salon-space-lg: 24px;
  --salon-space-xl: 32px;
  --salon-space-2xl: 48px;
  --salon-space-3xl: 64px;
  --salon-space-4xl: 80px;
  --salon-space-5xl: 104px;

  /* --- 厳選・統一タイポグラフィシステム（無駄なフォントを完全排除し2系統に統合） --- */
  --salon-font-sans: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --salon-font-ja: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;

  /* サイト全体で統一するため、英字見出し・明朝エイリアスもすべて Montserrat / Noto Sans JP に集約 */
  --salon-font-en: var(--salon-font-sans);
  --salon-font-mincho: var(--salon-font-ja);

  --salon-fs-hero: clamp(28px, 3.4vw, 40px);
  --salon-fs-h1: clamp(24px, 2.8vw, 32px);
  --salon-fs-h2: 26px;
  --salon-fs-h3: 21px;
  --salon-fs-h4: 18px;
  --salon-fs-body: 15.5px;
  --salon-fs-sub: 14px;
  --salon-fs-caption: 13px; /* サイト内絶対下限サイズ：13px未満禁止 */

  --salon-lh-tight: 1.2;
  --salon-lh-snug: 1.45;
  --salon-lh-normal: 1.75;
  --salon-lh-relaxed: 1.95;

  --salon-ls-tight: 0.02em;
  --salon-ls-normal: 0.05em;
  --salon-ls-wide: 0.12em;
  --salon-ls-editorial: 0.18em;

  /* --- シャープエッジ設計：角丸は原則0。丸みを帯びた安易なデザインを排除 --- */
  --salon-radius-xs: 0px;
  --salon-radius-sm: 0px;
  --salon-radius-md: 0px;
  --salon-radius-lg: 0px;

  /* --- 統一トランジション --- */
  --salon-transition: all 0.25s ease;

  /* --- コンテンツ最大幅規約（デザインガイドライン v3.0 準拠） --- */
  --salon-content-max-width: 1200px;           /* PC標準コンテナ幅 */
  --salon-content-editorial-width: 840px;      /* 記事・読み物エディトリアル幅 */
  --salon-content-archive-width: 960px;        /* お知らせ一覧・リスト幅 */
}

/* ==========================================================
   0. Layout & Global Content Width Standard (DESIGN GUIDELINE v3.0 準拠)
   3大レイアウト区分（1200px標準 / 960pxリスト / 840pxエディトリアル）の完全統一
   ========================================================== */

/* --- 1. 標準コンテナ（1200px）: トップページ、サブページ（メニュー、特徴、流れ、問い合わせ、採用） --- */
@media (min-width: 1200px) {
  .container,
  .inside-header,
  .inside-footer-widgets,
  .inside-copyright,
  .site-content > .container,
  .home_section > .container,
  .salon-subpage-hero .container,
  .main_content > .container {
    max-width: var(--salon-content-max-width) !important; /* 1200px */
    padding-left: 32px !important;
    padding-right: 32px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .container,
  .inside-header,
  .inside-footer-widgets,
  .inside-copyright,
  .site-content > .container,
  .home_section > .container,
  .salon-subpage-hero .container,
  .main_content > .container {
    max-width: 100% !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 767px) {
  .container,
  .inside-header,
  .inside-footer-widgets,
  .inside-copyright,
  .site-content > .container,
  .home_section > .container,
  .salon-subpage-hero .container,
  .main_content > .container {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }
}

/* --- 2. リスト・一覧・FAQ（サイト共通 1200px 標準コンテンツ幅に完全合致） --- */
.blog .container > .row,
.archive .container > .row,
.category .container > .row,
.salon-news-archive .container > .row,
.page-id-226 .container > .row {
  justify-content: center !important;
}

.blog .primary,
.archive .primary,
.category .primary,
.salon-news-archive .primary,
.salon-archive-wrap,
.page-id-226 .primary,
.page-id-226 .site-content,
.salon-faq-container {
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅 */
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* --- 3. 記事・読み物・お知らせ（サイト共通 1200px 標準コンテンツ幅に完全合致） --- */
.single-post .container > .row,
.salon-news-single .container > .row,
.page-id-232 .container > .row {
  justify-content: center !important;
}

.single-post .primary,
.salon-news-single .primary,
.salon-editorial-wrap,
.salon-editorial-container,
.page-id-232 .primary,
.page-id-232 .site-content {
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅 */
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Clamp fluid container rows and inner sections to 1200px */
.container-fluid > .row,
.container-fluid > div > .row,
.mainbgcusy .container,
.mainbgcusy .container-fluid,
.mainbgcusy .container-fluid > div > .row {
  max-width: var(--salon-content-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ==========================================================
   Instagram Feed (Gallery): コンテンツ幅(1440px)に完全同期 & 均等マージングリッド
   ========================================================== */
.modern-gallery-section .container {
  max-width: var(--salon-content-max-width) !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.modern-gallery-wrap,
#sb_instagram {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  position: relative !important;
  z-index: 1 !important;
}

/* Bootstrapの.rowと同様の負マージンにより、最外側の写真がコンテンツ境界にピタリと揃う */
#sb_instagram #sbi_images {
  padding: 0 !important;
  margin: -8px !important;
  width: calc(100% + 16px) !important;
  max-width: calc(100% + 16px) !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-wrap: wrap !important;
}

/* 4列均等配置 & 写真間16pxマージン */
#sb_instagram #sbi_images .sbi_item,
#sb_instagram #sbi_images .sbi_item.sbi_type_image {
  padding: 8px !important;
  margin: 0 !important;
  width: 25% !important;
  float: none !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

#sb_instagram #sbi_images .sbi_item .sbi_photo_wrap {
  border-radius: 0px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  transition: box-shadow 0.3s ease !important;
  background-color: var(--salon-bg-card) !important;
}

#sb_instagram #sbi_images .sbi_item .sbi_photo_wrap:hover {
  transform: none !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.10) !important;
}

#sb_instagram #sbi_images .sbi_item .sbi_photo,
#sb_instagram #sbi_images .sbi_item img {
  border-radius: 0px !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

@media (max-width: 768px) {
  #sb_instagram #sbi_images {
    margin: -5px !important;
    width: calc(100% + 10px) !important;
    max-width: calc(100% + 10px) !important;
  }
  #sb_instagram #sbi_images .sbi_item,
  #sb_instagram #sbi_images .sbi_item.sbi_type_image {
    padding: 5px !important;
    width: 50% !important; /* スマホは2列 */
  }
  #sb_instagram #sbi_images .sbi_item .sbi_photo_wrap,
  #sb_instagram #sbi_images .sbi_item .sbi_photo,
  #sb_instagram #sbi_images .sbi_item img {
    border-radius: var(--salon-radius-sm) !important; /* 6px */
  }
}

/* ==========================================================
   1. Base Typography & Accessible Minimum Font Size (14px+)
   ========================================================== */
html {
  font-size: 16px;
}

body {
  font-family: var(--salon-font-ja) !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  background-color: var(--salon-bg-main) !important;
  font-size: 1rem !important; /* 16px */
  line-height: 1.95 !important;
  letter-spacing: 0.05em !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Prevent any font from falling below 14px */
small,
.small,
.caption,
.meta,
.footer-text,
time,
.date {
  font-size: 0.9rem !important; /* 14.4px minimum */
  font-weight: 500 !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--salon-font-ja);
  color: var(--salon-text-main) !important;
  letter-spacing: 0.08em;
  font-weight: 600 !important;
  line-height: 1.45;
}

p,
.entry-content p,
.inside-article p,
.section_description,
.salon-so-desc,
.salon-ct-desc,
.salon-about-desc,
.gmenutext,
.gmsst {
  font-size: 1rem;
  font-weight: 600 !important; /* 視認性と美しさを両立するくっきり一段上ウエイト (Semi-Bold) */
  color: var(--salon-text-body) !important;
  letter-spacing: 0.04em;
  line-height: 1.95;
  margin-bottom: 1.5em;
}

a {
  color: var(--salon-text-main);
  transition: var(--salon-transition);
}

a:hover {
  color: var(--salon-primary) !important;
}

/* ==========================================================
   2. Header & Navigation (Enlarged, Clear & Legible)
   ========================================================== */
.top_header__wrap {
  background-color: #262220 !important;
  color: #dfdad4 !important;
  font-size: 0.925rem !important; /* 14.8px */
  letter-spacing: 0.08em;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.top_header__wrap a {
  color: #dfdad4 !important;
  font-size: 0.925rem !important;
  transition: var(--salon-transition);
}

.top_header__wrap a:hover {
  color: var(--salon-primary-light) !important;
}

.top_header__wrap i {
  font-size: 0.95rem;
  margin-right: 6px;
  color: var(--salon-primary-light);
}

#site-navigation,
#site-navigation.primary_menu,
.navbar-header-wrap {
  position: relative !important;
  z-index: 1000 !important; /* スライダー(#slider)の前面に確実に展開 */
  overflow: visible !important;
  background: rgba(255, 255, 255, 0.97) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--salon-border-light);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  padding: 16px 0;
  transition: var(--salon-transition);
}

#site-navigation .container,
#site-navigation .row,
#site-navigation .navbar-collapse,
#site-navigation .primary-menu {
  overflow: visible !important;
}

#site-navigation .primary-menu {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 6px !important;
}

#site-navigation .primary-menu > li {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

#site-navigation .primary-menu > li > a {
  font-family: var(--salon-font-ja) !important;
  font-size: 0.975rem !important; /* 15.6px */
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  color: var(--salon-text-main) !important;
  padding: 10px 18px !important;
  line-height: 1.5 !important;
  position: relative !important;
  display: inline-block !important;
  border-radius: var(--salon-radius-sm, 8px) !important;
  text-decoration: none !important;
  background: transparent !important;
  transition: color 0.3s cubic-bezier(0.25, 1, 0.5, 1),
              background-color 0.3s cubic-bezier(0.25, 1, 0.5, 1),
              transform 0.3s cubic-bezier(0.25, 1, 0.5, 1),
              box-shadow 0.3s ease !important;
}

/* 階層メニューを持つ項目の右パディング微調整 */
#site-navigation .primary-menu > li.menu-item-has-children > a {
  padding-right: 6px !important;
}

/* ドロップダウン下向き矢印 */
#site-navigation .primary-menu > li > .fa,
#site-navigation .primary-menu > li > span.fa-caret-down {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  line-height: 1 !important;
  font-size: 0.8rem !important;
  color: #777777 !important;
  cursor: pointer !important;
  display: inline-block !important;
  margin-left: 2px !important;
  margin-right: 12px !important;
  pointer-events: auto !important;
  transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1),
              color 0.3s ease !important;
}

/* ホバー時の洗練されたアンダーライン演出（中心から左右へ広がる） */
#site-navigation .primary-menu > li > a::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  bottom: 2px !important;
  left: 16px !important;
  right: 16px !important;
  height: 2px !important;
  background: linear-gradient(90deg, #5cb89d, #357c67) !important;
  border-radius: 0 !important;
  transform: scaleX(0) !important;
  transform-origin: center !important;
  transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1),
              opacity 0.35s ease !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* 子階層を持つ項目のアンダーライン範囲微調整 */
#site-navigation .primary-menu > li.menu-item-has-children > a::after {
  right: 6px !important;
}

/* ホバー時のマイクロインタラクション（文字色変化 + 背景グロー + アンダーライン伸長） */
#site-navigation .primary-menu > li:hover > a {
  color: var(--salon-primary-dark, #235a4a) !important;
  background-color: rgba(53, 124, 103, 0.05) !important;
  transform: none !important;
}

#site-navigation .primary-menu > li:hover > a::after,
#site-navigation .primary-menu > li.current-menu-item > a::after,
#site-navigation .primary-menu > li.current_page_item > a::after,
#site-navigation .primary-menu > li.current-menu-ancestor > a::after {
  transform: scaleX(1) !important;
  opacity: 1 !important;
}

/* ホバー時に矢印が反転（180度回転）& カラー変化 */
#site-navigation .primary-menu > li:hover > .fa,
#site-navigation .primary-menu > li:hover > span.fa-caret-down {
  color: var(--salon-primary, #357c67) !important;
  transform: rotate(180deg) !important;
}

/* 現在のアクティブメニュー */
#site-navigation .primary-menu > li.current-menu-item > a,
#site-navigation .primary-menu > li.current_page_item > a,
#site-navigation .primary-menu > li.current-menu-ancestor > a {
  color: var(--salon-primary-dark, #235a4a) !important;
  font-weight: 600 !important;
}

/* サブメニュー（ドロップダウン）：滑らかなフェード＆スライドイン演出 */
#site-navigation .primary-menu .sub-menu,
.primary-menu ul {
  position: absolute !important;
  top: 100% !important;
  right: 0 !important;
  left: auto !important;
  z-index: 999999 !important;
  background: #ffffff !important;
  border-radius: 0px !important;
  border: 1px solid var(--salon-border, rgba(53, 124, 103, 0.15)) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
  padding: 8px 0 !important;
  min-width: 250px !important;
  margin-top: 8px !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(12px) !important;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.3s !important;
  pointer-events: none !important;
}

#site-navigation .primary-menu.hover li.menu-item-has-children:hover > ul,
#site-navigation .primary-menu.focus li.menu-item-has-children:focus > ul,
#site-navigation .primary-menu.focus li.menu-item-has-children:focus-within > ul {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* ドロップダウン吹き出し矢印 */
.primary-menu ul::before {
  display: none !important;
}

.primary-menu ul::after,
.primary-menu.direction-right ul::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  border: 7px solid transparent !important;
  border-bottom-color: #ffffff !important;
  right: 26px !important;
  top: -14px !important;
  bottom: auto !important;
  filter: drop-shadow(0 -2px 1px rgba(92, 184, 157, 0.25));
}

#site-navigation .primary-menu .sub-menu li {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--salon-border-light, rgba(53, 124, 103, 0.06)) !important;
}

#site-navigation .primary-menu .sub-menu li:last-child {
  border-bottom: none !important;
}

#site-navigation .primary-menu .sub-menu li a {
  position: relative !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.925rem !important; /* 14.8px */
  letter-spacing: 0.06em !important;
  padding: 12px 24px !important;
  color: var(--salon-text-main) !important;
  display: block !important;
  line-height: 1.5 !important;
  border-left: 3px solid transparent !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

#site-navigation .primary-menu .sub-menu li a:hover {
  background-color: var(--salon-primary-light, #eaf5f2) !important;
  color: var(--salon-primary-dark, #235a4a) !important;
  padding-left: 28px !important;
  border-left-color: var(--salon-primary, #357c67) !important;
}

/* ==========================================================
   2.5 Site Brand Logo
   ========================================================== */
.logo-area {
  display: flex !important;
  align-items: center !important;
}

.logo-area .custom-logo-link {
  display: inline-flex !important;
  align-items: center !important;
  text-decoration: none !important;
}

.logo-area .custom-logo,
.custom-logo-link img {
  max-height: 96px !important;
  max-width: 240px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
  display: block !important;
  transition: opacity 0.25s ease, transform 0.25s ease !important;
}

.logo-area .custom-logo:hover,
.custom-logo-link img:hover {
  opacity: 0.85;
}

@media (max-width: 991px) {
  .logo-area {
    justify-content: center !important;
  }
  .logo-area .custom-logo,
  .custom-logo-link img {
    max-height: 68px !important;
    max-width: 190px !important;
    margin: 4px auto !important;
  }
}

@media (max-width: 575px) {
  .logo-area .custom-logo,
  .custom-logo-link img {
    max-height: 56px !important;
    max-width: 160px !important;
  }
}

/* ==========================================================
   3. Main Visual (Slider)
   ========================================================== */
#slider.slider {
  position: relative;
  overflow: hidden;
  background-color: #1a1715;
}

#slider .slide {
  height: 640px;
  background-position: center center;
  background-size: cover;
  position: relative;
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  #slider .slide {
    height: 480px;
  }
}

#slider .slide.overlay::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    180deg,
    rgba(30, 25, 22, 0.22) 0%,
    rgba(30, 25, 22, 0.52) 100%
  ) !important;
  z-index: 1;
}

#slider .slide__text {
  position: relative;
  z-index: 2;
  width: 100%;
}

#slider .sliderimgs {
  display: none !important;
}

#slider .slide_subtitle {
  font-family: var(--salon-font-en) !important;
  font-size: 1.45rem !important;
  font-style: italic;
  letter-spacing: 0.22em !important;
  color: var(--salon-primary-light) !important;
  display: inline-block;
  margin-bottom: 14px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

#slider .slide_title {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: 2.85rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  color: #ffffff !important;
  line-height: 1.4 !important;
  margin-bottom: 20px !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}

@media (max-width: 768px) {
  #slider .slide_title {
    font-size: 1.95rem !important;
    letter-spacing: 0.08em !important;
  }
}

#slider .slide_description,
#slider .slide_decription {
  font-size: 1.125rem !important; /* 18px */
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  color: rgba(255, 255, 255, 0.96) !important;
  line-height: 2 !important;
  max-width: 660px;
  margin: 0 auto 28px !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}

#slider .slide_btn {
  display: inline-block;
  font-family: var(--salon-font-sans);
  font-size: 0.925rem !important; /* 14.8px */
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 14px 42px;
  border-radius: var(--salon-radius-sm) !important;
  transition: var(--salon-transition);
  box-shadow: none;
}

#slider .slide_btn:hover {
  background: #ffffff !important;
  color: var(--salon-text-main) !important;
  border-color: #ffffff;
  transform: none;
  box-shadow: none;
}

#slider .owl-dots {
  position: absolute;
  bottom: 24px;
  left: 0;
  width: 100%;
  text-align: center;
  z-index: 3;
}

#slider .owl-dots .owl-dot span {
  width: 24px !important;
  height: 3px !important;
  margin: 5px 6px !important;
  background: rgba(255, 255, 255, 0.38) !important;
  border-radius: 0 !important;
  transition: var(--salon-transition);
}

#slider .owl-dots .owl-dot.active span,
#slider .owl-dots .owl-dot:hover span {
  background: var(--salon-primary-light) !important;
  width: 42px !important;
}

/* ==========================================================
   4. Section Headers (Minimal Luxury)
   ========================================================== */
.home_section {
  padding: 95px 0 !important;
  position: relative;
}

/* Ensure background overlay pseudo-elements never intercept user clicks */
.home_section::before,
.home_section.overlay::before,
.overlay::before {
  pointer-events: none !important;
}

/* Ensure section containers are placed above background pseudo-elements */
.home_section .container,
.home_section .container-fluid {
  position: relative !important;
  z-index: 2 !important;
}

@media (max-width: 768px) {
  .home_section {
    padding: 65px 0 !important;
  }
}

.section_subtitle {
  font-family: var(--salon-font-en) !important;
  font-size: 1.45rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--salon-primary) !important;
  display: inline-block;
  margin-bottom: 8px;
  background: none !important;
  padding: 0 !important;
}

section .section_title,
.section_title {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: 2.15rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  color: var(--salon-text-main) !important;
  margin-bottom: 14px !important;
  line-height: 1.4 !important;
}

@media (max-width: 768px) {
  section .section_title,
  .section_title {
    font-size: 1.65rem !important;
    letter-spacing: 0.1em !important;
  }
}

.titlebottonline,
.titlelineimg {
  display: none !important;
}

.section_title::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: var(--salon-primary);
  margin: 18px auto 22px;
  opacity: 0.85;
}

section .section_description,
.section_description {
  font-size: 1.05rem !important; /* 16.8px */
  font-weight: 500 !important;
  color: var(--salon-text-body) !important;
  line-height: 2.1 !important;
  letter-spacing: 0.04em !important;
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅に完全一致 */
  margin: 0 auto 48px !important; /* 規約準拠 */
  text-wrap: balance !important;
  word-break: auto-phrase !important;
}

.section_description span {
  display: inline-block !important;
}

@media (max-width: 768px) {
  section .section_description,
  .section_description {
    font-size: 0.95rem !important;
    margin-bottom: 40px !important;
    padding: 0 16px !important;
  }
}

/* ==========================================================
/* ==========================================================
   5. Menu Section (Horizontal Split / Luxury Editorial Layout)
   ========================================================== */
.mainbgcusy {
  background-color: var(--salon-bg-main) !important;
}

.boxmargintf {
  margin-top: 15px;
}

.salon-menu-card-col,
.thmenu-boxa {
  margin-bottom: 32px !important;
}

.thmenu-boxa .service-box.thmenu-box,
.service-box.modern-menu-card {
  background: var(--salon-bg-card) !important;
  border-radius: var(--salon-radius-md) !important;
  border: 1px solid var(--salon-border-light) !important;
  box-shadow: var(--salon-shadow-sm) !important;
  overflow: hidden !important;
  height: 100% !important;
  min-height: 220px !important;
  display: flex !important;
  flex-direction: row !important; /* 写真とテキストを左右に配置 */
  align-items: stretch !important;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
  margin-bottom: 0 !important;
  position: relative !important;
}

.thmenu-boxa .service-box.thmenu-box:hover,
.service-box.modern-menu-card:hover {
  transform: none !important;
  box-shadow: var(--salon-shadow-md) !important;
  border-color: var(--salon-border) !important;
}

/* 左側：写真エリア（親の高さに合わせて自動伸縮 & カバー表示） */
.service-box.modern-menu-card .salon-menu-thumb,
.service-box.modern-menu-card .thumbnail_image,
.service-box .thumbnail_image,
.thmenu-box .thumbnail_image,
.thmenu-box .thimg_mo {
  flex: 0 0 42% !important;
  max-width: 42% !important;
  width: 42% !important;
  min-height: 100% !important;
  position: relative !important;
  overflow: hidden !important;
  background: var(--salon-bg-sub);
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.service-box.modern-menu-card .salon-menu-thumb a,
.service-box.modern-menu-card .thumbnail_image a,
.service-box .thumbnail_image a,
.thmenu-box .thumbnail_image a,
.thmenu-box .thimg_mo a {
  display: block !important;
  position: absolute !important;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100% !important;
  height: 100% !important;
}

.service-box.modern-menu-card .salon-menu-thumb img,
.service-box.modern-menu-card .thumbnail_image img,
.service-box .thumbnail_image img,
.thmenu-box .thumbnail_image img,
.thmenu-box .thimg_mo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.service-box.modern-menu-card:hover .salon-menu-thumb img,
.service-box.modern-menu-card:hover .thumbnail_image img,
.thmenu-boxa .service-box.thmenu-box:hover .thumbnail_image img {
  transform: scale(1.06);
}

/* 右側：テキストコンテンツ（旧テーマの height: calc(100% - 300px) を完全無効化） */
.service-box.modern-menu-card .salon-menu-body,
.service-box.modern-menu-card .service_content,
.service-box .service_content,
.thmenu-boxa .thmenu-box .thtex_mo,
.thmenu-box .service_content,
.thtex_mo {
  flex: 1 1 58% !important;
  max-width: 58% !important;
  width: 58% !important;
  height: auto !important; /* 旧テーマの calc(100% - 300px) による非表示を完全修復 */
  min-height: 100% !important;
  padding: 24px 26px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  text-align: left !important;
  float: none !important;
  box-sizing: border-box !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.thmenu-box .service_title,
.service-box .service_title,
.thtex_mo .service_title {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: 1.2rem !important; /* 19.2px */
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  color: var(--salon-text-main) !important;
  margin: 0 0 10px 0 !important;
  line-height: 1.45 !important;
  min-height: auto !important;
  display: block !important;
  text-align: left !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.thmenu-box .service_title a,
.service-box .service_title a,
.thtex_mo .service_title a {
  color: var(--salon-text-main) !important;
  text-decoration: none !important;
  transition: var(--salon-transition);
}

.thmenu-box .service_title a:hover,
.service-box .service_title a:hover {
  color: var(--salon-primary) !important;
}

/* 説明文（旧テーマの display: none を強制上書き） */
.thmenu-box .sercice_desc,
.service-box .sercice_desc,
.thtex_mo .sercice_desc {
  display: -webkit-box !important;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: 0.925rem !important; /* 14.8px */
  color: var(--salon-text-sub) !important;
  line-height: 1.8 !important;
  letter-spacing: 0.03em !important;
  text-align: left !important;
  margin: 0 0 16px 0 !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
  flex-grow: 1;
}

.thmenu-box .menu-btn-wrap,
.thtex_mo .menu-btn-wrap {
  margin-top: auto !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--salon-border-light) !important;
  width: 100% !important;
  display: block !important;
  visibility: visible !important;
}

.thmenu-box .link_btn,
.service-box .link_btn,
.thtex_mo .link_btn,
.modern-menu-btn {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto !important;
  padding: 10px 24px !important;
  font-family: var(--salon-font-ja);
  font-size: 0.9rem !important;
  letter-spacing: 0.1em;
  color: var(--salon-primary-dark) !important;
  font-weight: 500;
  text-decoration: none !important;
  border-radius: 0 !important;
  border: 1px solid rgba(36, 62, 52, 0.35) !important;
  background: transparent !important;
  transition: all 0.25s ease !important;
  box-sizing: border-box !important;
}

.thmenu-box .link_btn i,
.service-box .link_btn i,
.modern-menu-btn i {
  margin-left: 2px;
  font-size: 0.85rem;
  color: var(--salon-primary-dark) !important;
  transition: color 0.25s ease !important;
}

.thmenu-box .link_btn:hover,
.service-box .link_btn:hover,
.modern-menu-btn:hover {
  background: rgba(36, 62, 52, 0.06) !important;
  border-color: var(--salon-primary) !important;
  color: var(--salon-primary-dark) !important;
  transform: none !important; /* 位置を動かさない */
  box-shadow: none !important;
}

.thmenu-box .link_btn:hover i,
.service-box .link_btn:hover i,
.modern-menu-btn:hover i {
  transform: none !important;
  color: var(--salon-primary-dark) !important;
}

/* スマホ・タブレット対応（縦並びカードで写真と文章を美しくゆったり表示） */
@media (max-width: 768px) {
  .salon-menu-card-col,
  .thmenu-boxa {
    margin-bottom: 24px !important;
  }
  .thmenu-boxa .service-box.thmenu-box,
  .service-box.modern-menu-card {
    flex-direction: column !important; /* スマホでは縦並びにして文章をゆったり表示 */
    height: auto !important;
    min-height: auto !important;
    margin: 0 !important;
    border-radius: 0px !important;
  }
  .service-box.modern-menu-card .salon-menu-thumb,
  .service-box.modern-menu-card .thumbnail_image,
  .service-box .thumbnail_image,
  .thmenu-box .thumbnail_image,
  .thmenu-box .thimg_mo {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    height: 200px !important;
    min-height: 200px !important;
    position: relative !important;
    float: none !important;
  }
  .service-box.modern-menu-card .salon-menu-thumb img,
  .service-box.modern-menu-card .thumbnail_image img,
  .service-box .thumbnail_image img,
  .thmenu-box .thumbnail_image img,
  .thmenu-box .thimg_mo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .service-box.modern-menu-card .salon-menu-body,
  .service-box.modern-menu-card .service_content,
  .service-box .service_content,
  .thmenu-boxa .thmenu-box .thtex_mo,
  .thmenu-box .service_content,
  .thtex_mo {
    flex: 1 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    padding: 22px 20px 18px !important;
    float: none !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
  }
  .thmenu-box .service_title,
  .thtex_mo .service_title {
    font-size: 1.18rem !important;
    margin-bottom: 10px !important;
    line-height: 1.45 !important;
    display: block !important;
    visibility: visible !important;
  }
  .thmenu-box .sercice_desc,
  .thtex_mo .sercice_desc {
    font-size: 0.92rem !important;
    line-height: 1.8 !important;
    color: var(--salon-text-body) !important;
    -webkit-line-clamp: unset !important; /* 行数制限で切らずに全文ゆったり読める */
    display: block !important;
    overflow: visible !important;
    visibility: visible !important;
    margin-bottom: 16px !important;
    flex-grow: 0 !important;
  }
  .menu-btn-wrap,
  .thtex_mo .menu-btn-wrap {
    display: block !important;
    margin-top: 0 !important;
    padding-top: 14px !important;
    border-top: 1px solid var(--salon-border-light) !important;
  }
  .thmenu-box .link_btn,
  .service-box .link_btn,
  .thtex_mo .link_btn,
  .modern-menu-btn {
    display: inline-flex !important;
    visibility: visible !important;
    padding: 9px 24px !important;
    font-size: 0.88rem !important;
    border-radius: 0px !important;
  }
}

/* ==========================================================
   6. Notice / News Section (Split Modern List Layout)
   ========================================================== */
section#news.home_section.news {
  background-color: var(--salon-bg-sub) !important;
  border-top: 1px solid var(--salon-border-light);
  border-bottom: 1px solid var(--salon-border-light);
  padding: 100px 0 !important;
}

.modern-notice-row {
  align-items: flex-start;
}

/* 左カラム: 洗練された見出し・説明・一覧ボタン */
.modern-notice-head-col {
  padding-right: 48px;
}

.modern-notice-header {
  position: sticky;
  top: 120px;
}

.modern-notice-header .section_subtitle {
  text-align: left;
  display: block;
}

.modern-notice-header .section_title {
  text-align: left;
  font-size: 2.2rem !important;
  margin-bottom: 0 !important;
}

.modern-notice-header .section_title::after {
  margin: 16px 0 22px !important;
}

.modern-notice-header .section_description {
  text-align: left;
  margin: 0 0 32px 0 !important;
  max-width: 100% !important;
  font-size: 0.975rem !important;
  line-height: 2 !important;
  color: var(--salon-text-sub);
}

.modern-notice-btn-wrap {
  margin-top: 24px;
}

.modern-link-arrow {
  display: inline-flex;
  align-items: center;
  font-family: var(--salon-font-sans);
  font-size: 0.875rem !important;
  letter-spacing: 0.18em;
  font-weight: 500;
  color: var(--salon-primary-dark) !important;
  text-decoration: none !important;
  padding: 10px 0;
  border-bottom: 1px solid var(--salon-border);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.modern-link-arrow i {
  margin-left: 12px;
  font-size: 0.95rem;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.modern-link-arrow:hover {
  color: var(--salon-primary) !important;
  border-bottom-color: var(--salon-primary);
}

.modern-link-arrow:hover i {
  transform: translateX(6px);
}

/* 右カラム: 洗練されたミニマルリスト */
.modern-notice-list-col {
  padding-left: 20px;
}

.modern-notice-list {
  background: var(--salon-bg-card);
  border-radius: var(--salon-radius-md) !important;
  border: 1px solid var(--salon-border-light);
  box-shadow: var(--salon-shadow-sm);
  overflow: hidden;
}

.modern-notice-item {
  display: flex;
  align-items: center;
  padding: 24px 28px;
  border-bottom: 1px solid var(--salon-border-light);
  text-decoration: none !important;
  color: inherit;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  background: transparent;
}

.modern-notice-item:last-child {
  border-bottom: none;
}

.modern-notice-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--salon-primary);
  opacity: 0;
  transform: scaleY(0);
  transition: all 0.3s ease;
}

.modern-notice-item:hover {
  background-color: #fffefb;
  padding-left: 34px;
}

.modern-notice-item:hover::before {
  opacity: 1;
  transform: scaleY(1);
}

.modern-notice-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 220px;
  flex-shrink: 0;
}

.modern-notice-date {
  font-family: var(--salon-font-sans) !important;
  font-size: 0.925rem !important;
  letter-spacing: 0.08em;
  color: var(--salon-text-light) !important;
  font-weight: 500;
}

.modern-notice-badge {
  font-family: var(--salon-font-ja);
  font-size: var(--salon-fs-caption) !important;
  padding: 3px 12px;
  border-radius: var(--salon-radius-xs) !important;
  background: var(--salon-primary-light);
  border: 1px solid var(--salon-border);
  color: var(--salon-primary-dark);
  letter-spacing: 0.06em;
  line-height: 1.4;
  white-space: nowrap;
}

.modern-notice-title-wrap {
  flex: 1;
  padding: 0 24px;
  min-width: 0;
}

.modern-notice-title {
  font-family: var(--salon-font-ja) !important;
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  letter-spacing: 0.04em !important;
  color: var(--salon-text-main) !important;
  margin: 0 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.3s ease;
}

.modern-notice-item:hover .modern-notice-title {
  color: var(--salon-primary-dark) !important;
}

.modern-notice-action {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.modern-notice-arrow {
  width: 28px;
  height: 28px;
  border-radius: var(--salon-radius-xs) !important;
  border: 1px solid var(--salon-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--salon-text-light);
  font-size: 0.85rem;
  transition: all 0.3s ease;
}

.modern-notice-item:hover .modern-notice-arrow {
  background: var(--salon-primary);
  border-color: var(--salon-primary);
  color: #ffffff;
  transform: translateX(3px);
}

.modern-notice-empty {
  padding: 40px;
  text-align: center;
  color: var(--salon-text-light);
  margin: 0;
}

@media (max-width: 991px) {
  .modern-notice-head-col {
    padding-right: 15px;
    margin-bottom: 40px;
    text-align: center;
  }
  .modern-notice-header {
    position: static;
  }
  .modern-notice-header .section_subtitle,
  .modern-notice-header .section_title,
  .modern-notice-header .section_description {
    text-align: center;
  }
  .modern-notice-header .section_title::after {
    margin: 16px auto 22px !important;
  }
  .modern-notice-header .section_description {
    margin: 0 auto 24px !important;
  }
  .modern-notice-list-col {
    padding-left: 15px;
  }
}

@media (max-width: 768px) {
  section#news.home_section.news {
    padding: 60px 0 !important;
  }
  .modern-notice-item {
    flex-direction: column;
    align-items: flex-start;
    padding: 18px 20px;
    gap: 10px;
  }
  .modern-notice-item:hover {
    padding-left: 20px;
  }
  .modern-notice-meta {
    min-width: unset;
    width: 100%;
    justify-content: flex-start;
    gap: 12px;
  }
  .modern-notice-title-wrap {
    padding: 0;
    width: 100%;
  }
  .modern-notice-title {
    white-space: normal;
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }
  .modern-notice-action {
    display: none;
  }
}

/* ==========================================================
   7. Testimonial & Gallery Section (Instagram Showcase)
   ========================================================== */
section#gallery.salon-gallery-section,
section#gallery.home_section,
section#testimonial.home_section.testimonial,
.modern-gallery-section {
  background-color: #ffffff !important;
  background-image: none !important;
  padding: 90px 0 60px !important;
}

.modern-gallery-section::before,
.modern-gallery-section.overlay::before {
  display: none !important;
  content: none !important;
}

.modern-instagram-btn-container {
  margin: 30px 0 100px 0 !important;
  position: relative !important;
  z-index: 20 !important;
}

.modern-instagram-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 40px;
  font-family: var(--salon-font-ja);
  font-size: 0.95rem !important;
  letter-spacing: 0.14em;
  font-weight: 500;
  color: #ffffff !important;
  background: var(--salon-primary) !important;
  border: 1px solid var(--salon-primary) !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  box-shadow: none;
  transition: all 0.25s ease !important;
  position: relative !important;
  z-index: 21 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.modern-instagram-btn i {
  font-size: 1.1rem;
}

.modern-instagram-btn:hover {
  background-color: #1b3028 !important;
  border-color: var(--salon-accent) !important;
  color: #ffffff !important;
  transform: none !important;
  box-shadow: none;
}

/* ==========================================================
   Legacy Clutter Eraser (古い緑ボタン・旧パーツの完全無効化)
   ========================================================== */
.more-link.button,
a.more-link {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: inherit !important;
}

/* 旧インスタグラムボタン・グラデーションボタンの完全消去 */
.instbtcolor,
a.instbtcolor,
.sbi_follow_btn,
#sbi_load {
  display: none !important;
  visibility: hidden !important;
}

/* タイトル下の古い画像ラインを万全に非表示 */
.titlebottonline,
.titlelineimg,
img[src*="linestyle.png"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  width: 0 !important;
}

/* 古い抜粋コンテナの余計なマージンをリセット */
.tfymooff,
.tfymooff p.more-link-container {
  display: none !important;
}

/* ==========================================================
   8. Beautiful Table System (汎用 & 採用・料金表の最適化)
   ========================================================== */
.table-responsive-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 35px 0 45px;
  border-radius: var(--salon-radius-md) !important;
  box-shadow: var(--salon-shadow-sm);
  border: 1px solid var(--salon-border);
  background: #ffffff;
}

.entry-content > table,
.entry-content .table-responsive-wrapper table,
.recruit-table,
.modern-salon-table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  margin: 25px 0 !important;
  background: #ffffff;
  font-size: 1rem !important; /* 16px */
  line-height: 1.85 !important;
  color: var(--salon-text-main);
  border-radius: var(--salon-radius-md) !important;
  border: 1px solid var(--salon-border) !important;
  box-shadow: var(--salon-shadow-sm);
  overflow: hidden;
}

.table-responsive-wrapper table {
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.entry-content > table th,
.entry-content .table-responsive-wrapper table th,
.recruit-table th,
.modern-salon-table th {
  background: #f8f6f2 !important;
  color: var(--salon-primary-dark) !important;
  font-family: var(--salon-font-ja) !important;
  font-weight: 500 !important;
  font-size: 0.975rem !important; /* 15.6px */
  letter-spacing: 0.08em !important;
  padding: 18px 24px !important;
  vertical-align: middle !important;
  border-top: none !important;
  border-bottom: 1px solid var(--salon-border) !important;
  border-right: 1px solid var(--salon-border-light) !important;
  border-left: none !important;
  white-space: nowrap;
}

.entry-content > table td,
.entry-content .table-responsive-wrapper table td,
.recruit-table td,
.modern-salon-table td {
  padding: 18px 24px !important;
  vertical-align: middle !important;
  border-top: none !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
  border-right: none !important;
  border-left: none !important;
  color: var(--salon-text-sub) !important;
  font-size: 0.975rem !important;
  line-height: 1.85 !important;
}

.entry-content > table tr:last-child th,
.entry-content > table tr:last-child td,
.recruit-table tr:last-child th,
.recruit-table tr:last-child td,
.modern-salon-table tr:last-child th,
.modern-salon-table tr:last-child td {
  border-bottom: none !important;
}

.entry-content > table tbody tr:hover,
.recruit-table tbody tr:hover,
.modern-salon-table tbody tr:hover {
  background-color: rgba(248, 246, 242, 0.45) !important;
  transition: background-color 0.25s ease;
}

/* 採用要項テーブルの最適化 */
.recruit-table th {
  width: 28%;
  min-width: 170px;
}

.recruit-table td {
  width: 72%;
}

.table-lead {
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  margin-bottom: 8px !important;
}

.table-note {
  font-size: 0.9rem !important;
  color: var(--salon-text-sub) !important;
  background: transparent !important;
  border: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  padding: 8px 0 0 0 !important;
  margin-top: 8px !important;
  line-height: 1.75 !important;
}

.table-subnote {
  font-size: 0.9rem !important;
  color: var(--salon-text-light) !important;
  display: inline-block;
  margin-top: 4px;
}

.salary-block .salary-item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  margin-bottom: 12px;
  gap: 12px;
}

.salary-role {
  font-weight: 500;
  color: var(--salon-text-main);
  background: var(--salon-bg-sub);
  padding: 4px 14px;
  border-radius: var(--salon-radius-xs) !important;
  font-size: 0.925rem;
}

.salary-amount {
  font-weight: 600;
  color: var(--salon-primary-dark);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
}

.salary-model {
  background: #fcfbf9;
  border: 1px dashed var(--salon-border);
  border-radius: var(--salon-radius-sm) !important;
  padding: 16px 20px;
  margin: 14px 0;
}

.salary-model strong {
  color: var(--salon-primary-dark);
  font-size: 0.95rem;
}

.salary-model ul {
  margin: 8px 0 0 20px !important;
  padding: 0 !important;
}

.salary-model li {
  font-size: 0.95rem;
  color: var(--salon-text-sub);
  margin-bottom: 4px;
}

.salary-subnote {
  font-size: 0.9rem !important;
  color: var(--salon-text-light);
  display: block;
  margin-top: 6px;
}

.recruit-table ul {
  margin: 0 0 0 20px;
  padding: 0;
}

.recruit-table li {
  font-size: 0.975rem;
  color: var(--salon-text-sub);
  margin-bottom: 6px;
}

/* スマホ表示時のテーブルのカード化 */
@media (max-width: 768px) {
  .recruit-table th,
  .recruit-table td {
    display: block !important;
    width: 100% !important;
    padding: 14px 18px !important;
  }
  .recruit-table th {
    background: #f3efe8 !important;
    border-right: none !important;
    border-bottom: 1px solid var(--salon-border) !important;
    font-size: 1rem !important;
  }
  .recruit-table td {
    border-bottom: 3px solid var(--salon-bg-sub) !important;
    font-size: 0.95rem !important;
  }
}

/* ==========================================================
   9. Menu Page (layout-glittermenup.php) Price Cards & Tabs
   ========================================================== */
/* (Menu tabs #gtopsmenu consolidated to Section 29 & responsive section below) */

/* ==========================================================
   Menu Category Visual Banner (写真を主役に活かしたダイナミック・スプリットカード)
   ========================================================== */
.gtmenubox .gmenusubtitleinfo {
  background: #ffffff !important;
  border-radius: var(--salon-radius-xs) !important; /* 2px角丸統一 */
  border: 1px solid var(--salon-border-light) !important;
  box-shadow: 0 10px 30px rgba(40, 70, 60, 0.05) !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin-bottom: var(--salon-space-3xl) !important; /* 64px統一 */
  min-height: 280px !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.gtmenubox .gmenusubtitleinfo:hover {
  transform: none !important;
  box-shadow: 0 16px 40px rgba(40, 70, 60, 0.08) !important;
  border-color: var(--salon-border) !important;
}

/* 左側：写真を最大限に魅せるダイナミック・ビジュアルエリア */
.gtmenubox .gmenusubtitle01,
.gtmenubox .gmenusubtitle02,
.gtmenubox .gmenusubtitle03,
.gtmenubox .gmenusubtitle04,
.gtmenubox .gmenusubtitle05,
.gtmenubox .gmenusubtitle06,
.gtmenubox .gmenusubtitle07,
.gtmenubox .gmenusubtitle08 {
  flex: 0 0 46% !important;
  max-width: 46% !important;
  width: 46% !important;
  min-height: 280px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  position: relative !important;
  overflow: hidden !important;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* 写真の右側に微細なグラデーションをかけ、テキストとの調和と上質感を演出 */
.gtmenubox .gmenusubtitle01::after,
.gtmenubox .gmenusubtitle02::after,
.gtmenubox .gmenusubtitle03::after,
.gtmenubox .gmenusubtitle04::after,
.gtmenubox .gmenusubtitle05::after,
.gtmenubox .gmenusubtitle06::after,
.gtmenubox .gmenusubtitle07::after,
.gtmenubox .gmenusubtitle08::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0.05) 100%);
  pointer-events: none;
}

.gtmenubox .gmenusubtitleinfo:hover [class*="gmenusubtitle0"] {
  transform: scale(1.03) !important;
}

/* 右側：洗練されたテキストコンテンツエリア */
.gtmenubox .gmenusubtitleinfo > div:last-child {
  flex: 1 1 54% !important;
  padding: var(--salon-space-2xl) var(--salon-space-2xl) !important; /* 48px 48px統一 */
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  background: #ffffff !important;
  position: relative !important;
  z-index: 1 !important;
}

/* カテゴリタイトル */
.gtmenubox .gmenusubtitleinfo h3.gmstitle {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h2) !important; /* 24px統一 */
  font-weight: 500 !important;
  letter-spacing: var(--salon-ls-normal) !important;
  color: var(--salon-text-main) !important;
  margin: 0 0 var(--salon-space-md) 0 !important;
  line-height: var(--salon-lh-snug) !important;
  position: relative !important;
  padding-bottom: var(--salon-space-sm) !important;
}

/* タイトル下のアクセントバー（ロゴ抽出カラー #64b39a） */
.gtmenubox .gmenusubtitleinfo h3.gmstitle::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 36px;
  height: 2px;
  background: var(--salon-primary);
  border-radius: var(--salon-radius-xs);
}

/* 説明テキスト */
.gtmenubox .gmenusubtitleinfo p.gmsst {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-body) !important; /* 15px統一 */
  line-height: var(--salon-lh-relaxed) !important; /* 1.95統一 */
  color: var(--salon-text-sub) !important;
  margin: 0 !important;
  letter-spacing: var(--salon-ls-normal) !important;
}

/* レスポンシブ配置（タブレット・スマホ） */
@media (max-width: 991px) {
  .gtmenubox .gmenusubtitleinfo {
    flex-direction: column !important;
    min-height: auto !important;
  }
  .gtmenubox .gmenusubtitle01,
  .gtmenubox .gmenusubtitle02,
  .gtmenubox .gmenusubtitle03,
  .gtmenubox .gmenusubtitle04,
  .gtmenubox .gmenusubtitle05,
  .gtmenubox .gmenusubtitle06,
  .gtmenubox .gmenusubtitle07,
  .gtmenubox .gmenusubtitle08 {
    flex: 0 0 240px !important;
    max-width: 100% !important;
    width: 100% !important;
    min-height: 240px !important;
    height: 240px !important;
  }
  .gtmenubox .gmenusubtitleinfo > div:last-child {
    padding: 28px 22px !important;
  }
  .gtmenubox .gmenusubtitleinfo h3.gmstitle {
    font-size: 1.35rem !important;
  }
}

/* (Menu item styling consolidated to Section 29 & responsive section below) */

/* ==========================================================
   10. Footer Design (Luxury Green Gradient & Modern Salon Palette)
   ========================================================== */
#footer.footer__wrap,
.footer__wrap {
  margin-top: 0 !important;
  padding: 75px 0 65px !important;
  background: linear-gradient(135deg, #3a3078 0%, #3d5a8a 35%, #4a8a8a 65%, #6db8a0 100%) !important;
  color: #ffffff !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.inside-footer-widgets > .row {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important; /* 3カラムの上端・高さを完全に揃える */
  justify-content: center !important;
  row-gap: 30px !important;
}

.inside-footer-widgets > .row > div:first-child {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
}

.inside-footer-widgets > .row > div:first-child .widget {
  height: auto !important;
  width: 100% !important;
  margin-bottom: 0 !important;
}

.inside-footer-widgets > .row > div:nth-child(2),
.inside-footer-widgets > .row > div:nth-child(3) {
  display: flex !important;
  flex-direction: column !important;
  justify-content: stretch !important;
  align-items: stretch !important;
}

.inside-footer-widgets > .row > div:nth-child(2) .widget,
.inside-footer-widgets > .row > div:nth-child(3) .widget {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: stretch !important;
  align-items: stretch !important;
  margin-bottom: 0 !important;
}

.inside-footer-widgets > .row > div:nth-child(3) .textwidget,
.inside-footer-widgets > .row > div:nth-child(3) .custom-html-widget {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: stretch !important;
  flex: 1 1 auto !important;
}

@media (max-width: 991px) {
  .inside-footer-widgets > .row {
    align-items: center !important;
    row-gap: 40px;
  }
}

.footer__wrap a {
  color: #ffffff !important;
  transition: var(--salon-transition);
}

.footer__wrap a:hover {
  color: #d6f2e8 !important;
}

/* ==========================================================
   Footer CTA: サロンのご予約について（全ページフッター直前）
   ========================================================== */
.salon-footer-cta {
  background: var(--salon-bg-nuance) !important;
  padding: 64px 0 !important;
}
.salon-footer-cta-inner {
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅に完全一致 */
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 32px !important;
  box-sizing: border-box !important;
}
@media (max-width: 767px) {
  .salon-footer-cta-inner {
    padding: 0 16px !important;
  }
}
.salon-footer-cta-header {
  text-align: center !important;
  margin-bottom: 40px !important;
}
.salon-footer-cta-en {
  display: block !important;
  font-family: var(--salon-font-en) !important;
  font-size: var(--salon-fs-sub) !important;
  font-weight: 400 !important;
  color: var(--salon-primary) !important;
  letter-spacing: var(--salon-ls-editorial) !important;
  margin-bottom: 8px !important;
  text-transform: uppercase !important;
}
.salon-footer-cta-title {
  font-family: var(--salon-font-mincho) !important;
  font-size: var(--salon-fs-h2) !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  letter-spacing: var(--salon-ls-wide) !important;
  margin: 0 0 12px 0 !important;
  line-height: var(--salon-lh-snug) !important;
}
.salon-footer-cta-lead {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-sub) !important;
  color: var(--salon-text-sub) !important;
  line-height: var(--salon-lh-normal) !important;
  margin: 0 !important;
}

/* 2カラムグリッド */
.salon-footer-cta-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
}
@media (max-width: 768px) {
  .salon-footer-cta-grid {
    grid-template-columns: 1fr !important;
  }
}

/* カード */
.salon-footer-cta-card {
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  padding: 32px 28px !important;
  display: flex !important;
  flex-direction: column !important;
}
.salon-footer-cta-card-en {
  display: block !important;
  font-family: var(--salon-font-en) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: var(--salon-primary) !important;
  letter-spacing: var(--salon-ls-editorial) !important;
  margin-bottom: 8px !important;
  text-transform: uppercase !important;
}
.salon-footer-cta-card h3 {
  font-family: var(--salon-font-mincho) !important;
  font-size: var(--salon-fs-h3) !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  letter-spacing: var(--salon-ls-normal) !important;
  margin: 0 0 12px 0 !important;
  line-height: var(--salon-lh-snug) !important;
}
.salon-footer-cta-card p {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-sub) !important;
  color: var(--salon-text-body) !important;
  line-height: var(--salon-lh-relaxed) !important;
  margin: 0 0 20px 0 !important;
  flex: 1 !important;
}

/* LINE CTAボタン */
.salon-footer-cta-btn-line {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 14px 24px !important;
  background: var(--salon-primary) !important;
  border: 1px solid var(--salon-primary) !important;
  color: #ffffff !important;
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-sub) !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
  margin-bottom: 14px !important;
  align-self: flex-start !important;
}
.salon-footer-cta-btn-line:hover {
  background: var(--salon-primary-dark) !important;
  border-color: var(--salon-primary-dark) !important;
  color: #ffffff !important;
  transform: none !important;
}
.salon-footer-cta-btn-line i {
  font-size: 1.1rem !important;
}

/* 電話番号 */
.salon-footer-cta-tel {
  display: flex !important;
  align-items: baseline !important;
  gap: 10px !important;
  margin-bottom: 14px !important;
}
.salon-footer-cta-tel-label {
  font-family: var(--salon-font-en) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: var(--salon-text-sub) !important;
  letter-spacing: 0.1em !important;
}
.salon-footer-cta-tel-number {
  font-family: var(--salon-font-en) !important;
  font-size: 1.6rem !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  letter-spacing: 0.04em !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--salon-text-main) !important;
  padding-bottom: 2px !important;
  transition: color 0.25s ease !important;
}
.salon-footer-cta-tel-number:hover {
  color: var(--salon-primary) !important;
  border-color: var(--salon-primary) !important;
}

/* 補足テキスト */
.salon-footer-cta-note {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-caption) !important;
  color: var(--salon-text-light) !important;
  line-height: var(--salon-lh-normal) !important;
}

/* ==========================================================
   Footer Left Column (Brand Logo, SNS Pills, Recruit)
   ========================================================== */
.footerlogoimgyc {
  max-width: 220px !important;
  height: auto !important;
  display: block !important;
  margin-bottom: 24px !important;
}

@media (max-width: 991px) {
  .footerlogoimgyc {
    margin: 0 auto 24px !important;
  }
}

/* SNSリンク：ダークフッター上のミニマルデザイン */
.footer__wrap .contact-info-item {
  display: flex !important;
  align-items: stretch !important;
  gap: 8px !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 320px !important;
}

@media (max-width: 991px) {
  .footer__wrap .contact-info-item {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

.footer__wrap .contact-text {
  flex: 1 1 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 14px !important;
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 0 !important;
  transition: all 0.25s ease !important;
  margin: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
}

.footer__wrap .contact-text > i {
  font-size: 1.1rem !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
}

/* LINE アイコン色 */
.footer__wrap .contact-text:first-child > i {
  color: #06c755 !important;
}

/* Instagram アイコン色 */
.footer__wrap .contact-text:last-child > i {
  color: #E1306C !important;
}

.footer__wrap .contact-text > a {
  color: rgba(255, 255, 255, 0.85) !important;
  font-family: var(--salon-font-sans), var(--salon-font-ja) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.04em !important;
  font-weight: 400 !important;
  text-decoration: none !important;
}

.footer__wrap .contact-text:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
  transform: none !important;
}

.footer__wrap .contact-text:hover > a {
  color: #ffffff !important;
}

/* 採用情報ボタン */
.staffinbt,
.footer__wrap .staffinbt {
  margin: 4px 0 0 0 !important;
  width: 100% !important;
  max-width: 320px !important;
}

@media (max-width: 991px) {
  .footer__wrap .staffinbt {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

.staffinbt a.more-link.button,
.footer__wrap .staffinbt a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 12px 20px !important;
  border-radius: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: #ffffff !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.1em !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
  box-sizing: border-box !important;
}

.staffinbt a.more-link.button:hover,
.footer__wrap .staffinbt a:hover {
  background: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(255, 255, 255, 0.7) !important;
  color: #ffffff !important;
  transform: none !important; /* 位置を動かさない */
  box-shadow: none !important;
}

/* ==========================================================
   Footer 2大カード共通仕様（カレンダー ＆ 店舗情報：完全等高・完全調和）
   ========================================================== */
.widget_xo_event_calendar .xo-event-calendar,
.xo-event-calendar,
.footer-contact-card,
.widget_salon_holiday_calendar,
aside#custom_html-6 div[style*="border:1px solid #fff"],
aside#custom_html-6 .custom-html-widget > div {
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  color: var(--salon-text-main) !important;
  padding: 32px 28px 28px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  width: 100% !important;
  max-width: 350px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  height: 100% !important;
  min-height: 440px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  flex: 1 1 auto !important;
}

/* ==========================================================
   Footer Center Column: XO Event Calendar
   ========================================================== */
.xo-event-calendar table,
.xo-event-calendar .xo-month,
.xo-event-calendar .month-dayname,
.xo-event-calendar .month-event-space {
  width: 100% !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.xo-event-calendar .xo-month caption {
  caption-side: top !important;
  padding: 0 0 8px 0 !important;
  color: var(--salon-text-main) !important;
}

.xo-event-calendar .month-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.xo-event-calendar .calendar-caption {
  font-family: var(--salon-font-ja) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: #1b3028 !important;
  letter-spacing: 0.08em;
}

.xo-event-calendar .month-prev,
.xo-event-calendar .month-next {
  background: transparent !important;
  border: none !important;
  cursor: pointer;
  color: #3a7563 !important;
  padding: 4px 8px !important;
  font-size: 1.1rem !important;
  transition: color 0.2s ease;
}

.xo-event-calendar .month-prev:hover,
.xo-event-calendar .month-next:hover {
  color: #64b39a !important;
}

/* 曜日ヘッダー：火曜日（定休日）列を直感的にハイライト */
.xo-event-calendar thead th {
  background: #f8faf9 !important;
  color: #4a5852 !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  padding: 6px 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.xo-event-calendar thead th.tuesday {
  background: #fdf2f0 !important;
  color: #b83220 !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
}

.xo-event-calendar thead th.sunday {
  color: #8c4a38 !important;
}

.xo-event-calendar thead th.saturday {
  color: #486581 !important;
}

.xo-event-calendar td {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  vertical-align: middle !important;
  text-align: center !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.xo-event-calendar .month-week {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

/* 日付セル：ベース */
.xo-event-calendar .dayname td div {
  width: 32px !important;
  height: 32px !important;
  line-height: 32px !important;
  margin: 2px auto !important;
  border-radius: var(--salon-radius-xs) !important;
  font-family: var(--salon-font-sans) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
  position: relative !important;
  transition: all 0.2s ease !important;
}

.xo-event-calendar .dayname td div.other-month {
  color: #c2ceca !important;
  opacity: 0.45;
}

/* 【独自スタイル】定休日（毎週火曜）：上品なソフトローズ背景 ＋「休」マイクロバッジ */
.xo-event-calendar .dayname td div.holiday-all {
  background-color: #fdf0ed !important;
  border: 1px solid #f5c2b8 !important;
  color: #b83220 !important;
  font-weight: 700 !important;
  box-sizing: border-box !important;
}

.xo-event-calendar .dayname td div.holiday-all::after {
  content: '休';
  position: absolute;
  bottom: 0px;
  right: 1px;
  font-size: 7.5px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  color: #b83220 !important;
  font-family: var(--salon-font-ja) !important;
  transform: scale(0.85);
  pointer-events: none;
}

/* 【独自スタイル】本日（TODAY）：清潔なミント枠 ＋ 上部インジケーター */
.xo-event-calendar .dayname td div.today {
  border: 1.5px solid #2d6a56 !important;
  background-color: #eef7f3 !important;
  color: #123326 !important;
  font-weight: 700 !important;
  box-sizing: border-box !important;
}

.xo-event-calendar .dayname td div.today::before {
  content: '';
  position: absolute;
  top: 2px;
  right: 2px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #2d6a56;
  pointer-events: none;
}

/* 凡例エリア：明確で直感的なラベル */
.xo-event-calendar .holiday-titles {
  margin-top: 10px !important;
  padding-top: 8px !important;
  border-top: 1px solid #f0f4f2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

.xo-event-calendar .holiday-title {
  font-size: 0.8rem !important;
  color: #4a5852 !important;
  font-weight: 600 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
}

.xo-event-calendar .holiday-title span {
  display: inline-block !important;
  width: 12px !important;
  height: 12px !important;
  border-radius: 0 !important;
  background-color: #fdf0ed !important;
  border: 1px solid #f5c2b8 !important;
}

/* ==========================================================
   独自休日カレンダー（白カードスタイル — 右カラムと統一）
   ========================================================== */

/* ウィジェットタイトルの葉っぱアイコンを非表示 */
.footer__wrap .widget_salon_holiday_calendar .widget-title i.fa-leaf {
  display: none !important;
}
.footer__wrap .widget_salon_holiday_calendar .widget-title {
  display: none !important;
}

.salon-calendar {
  width: 100% !important;
}
.salon-cal-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 8px !important;
  padding: 0 4px !important;
}
.salon-cal-title {
  font-family: var(--salon-font-ja) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
  flex: 1 !important;
}
.salon-cal-nav {
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  color: #aaa !important;
  padding: 0 !important;
  width: 28px !important;
  height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.1rem !important;
  line-height: 1 !important;
  transition: color 0.2s ease !important;
  flex-shrink: 0 !important;
}
.salon-cal-nav:hover {
  color: var(--salon-text-main) !important;
}

/* テーブル：カラム全幅 */
.salon-cal-table {
  width: 100% !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  table-layout: fixed !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* 曜日ヘッダー */
.salon-cal-table thead th {
  background: #f8faf9 !important;
  color: #4a5852 !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  padding: 7px 0 !important;
  border: none !important;
}
.salon-cal-table thead th.sun {
  color: #8c4a38 !important;
}
.salon-cal-table thead th.sat {
  color: #486581 !important;
}
.salon-cal-table thead th.regular-holiday-col {
  background: #fdf2f0 !important;
  color: #b83220 !important;
  font-weight: 700 !important;
}

/* 日付セル */
.salon-cal-table td {
  padding: 3px 0 !important;
  border: none !important;
  background: transparent !important;
  vertical-align: middle !important;
  text-align: center !important;
}

/* 日付：XO再現（ライト） */
.salon-cal-day {
  width: 32px !important;
  height: 32px !important;
  line-height: 32px !important;
  margin: 0 auto !important;
  font-family: var(--salon-font-sans) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  box-sizing: border-box !important;
}
.salon-cal-day.sun {
  color: #8c4a38 !important;
}
.salon-cal-day.sat {
  color: #486581 !important;
}

/* 休日：ソフトローズ */
.salon-cal-day.holiday {
  background-color: #fdf0ed !important;
  border: 1px solid #f5c2b8 !important;
  color: #b83220 !important;
  font-weight: 700 !important;
}

/* 「休」バッジ */
.salon-cal-rest {
  position: absolute !important;
  bottom: 0px !important;
  right: 1px !important;
  font-size: 7.5px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  color: #b83220 !important;
  font-family: var(--salon-font-ja) !important;
  transform: scale(0.85) !important;
  pointer-events: none !important;
}

/* TODAY：ミント枠 */
.salon-cal-day.today {
  border: 1.5px solid #2d6a56 !important;
  background-color: #eef7f3 !important;
  color: #123326 !important;
  font-weight: 700 !important;
}

/* TODAY + holiday */
.salon-cal-day.today.holiday {
  border-color: #b83220 !important;
  background: linear-gradient(135deg, #eef7f3 50%, #fdf0ed 50%) !important;
}

/* 凡例 */
.salon-cal-legend {
  margin-top: 10px !important;
  padding-top: 8px !important;
  border-top: 1px solid #f0f4f2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 14px !important;
}
.salon-cal-legend-item {
  font-size: 0.8rem !important;
  color: #4a5852 !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
}
.salon-cal-legend-swatch {
  display: inline-block !important;
  width: 12px !important;
  height: 12px !important;
}
.salon-cal-legend-swatch.holiday {
  background-color: #fdf0ed !important;
  border: 1px solid #f5c2b8 !important;
}
.salon-cal-legend-swatch.today {
  border: 1.5px solid #2d6a56 !important;
  background-color: #eef7f3 !important;
}

/* ==========================================================
   Footer Right Column: Salon Info & Contact Box
   ========================================================== */
.footer-contact-inner {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100% !important;
  flex: 1 1 auto !important;
}

/* お問い合わせボタン：上質ディープフォレスト */
.footer-btn-wrap,
.contectbt,
.footer__wrap .contectbt {
  margin-bottom: 0 !important;
  width: 100% !important;
}

.contectbt a.more-link.button,
.footer__wrap .contectbt a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 14px 20px !important;
  border-radius: 0 !important;
  background: var(--salon-primary) !important;
  border: 1px solid var(--salon-primary) !important;
  color: #ffffff !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.14em !important;
  font-weight: 500 !important;
  box-shadow: none !important;
  transition: all 0.25s ease !important;
  text-decoration: none !important;
}

.contectbt a.more-link.button:hover,
.footer__wrap .contectbt a:hover {
  background: var(--salon-primary-dark) !important;
  border-color: var(--salon-primary-dark) !important;
  color: #ffffff !important;
  transform: none !important;
  box-shadow: none !important;
}

/* 電話番号セクション：ボタンと住所情報の間に配置 */
.footer-phone-wrap,
aside#custom_html-6 div[style*="padding-bottom:24px"] {
  padding: 18px 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  text-align: center !important;
  flex: 0 0 auto !important;
}

.footer-phone-wrap > div,
aside#custom_html-6 div[style*="padding-bottom:24px"] > div {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
}

.footer-phone-wrap i,
aside#custom_html-6 i.fa-phone {
  color: #2d6a56 !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
}

.footer-phone-wrap a,
aside#custom_html-6 a[href^="tel:"] {
  font-family: var(--salon-font-sans) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: #1b3028 !important;
  letter-spacing: 0.05em !important;
  text-decoration: none !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  transition: var(--salon-transition) !important;
}

.footer-phone-wrap a:hover,
aside#custom_html-6 a[href^="tel:"]:hover {
  color: #357c67 !important;
}

/* 住所・営業時間・定休日：文字サイズ拡大（15〜16px）＆余白バランス調整 */
.footer-info-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding-top: 4px !important;
}

.footer-info-row,
aside#custom_html-6 div[style*="line-height:1.5"] > div > div {
  font-size: 0.95rem !important; /* 15.2px: 視認性大幅アップ（小さすぎる問題を解決） */
  line-height: 1.7 !important;
  color: var(--salon-primary-dark) !important; /* 上品で視認性の高いディープフォレスト */
  font-weight: 500 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  text-align: left !important;
  padding-bottom: 0 !important;
}

.footer-info-text {
  flex: 1 1 auto !important;
  font-family: var(--salon-font-ja) !important;
}

.footer-info-text a,
aside#custom_html-6 a[href*="maps"] {
  color: var(--salon-primary-dark) !important;
  text-decoration: none !important;
  transition: var(--salon-transition) !important;
}

.footer-info-text a:hover,
aside#custom_html-6 a[href*="maps"]:hover {
  color: #357c67 !important;
  text-decoration: underline !important;
}

.footer-info-row i,
aside#custom_html-6 i.fas,
aside#custom_html-6 i.far {
  color: #2d6a56 !important;
  font-size: 1.15rem !important;
  width: 20px !important;
  min-width: 20px !important;
  text-align: center !important;
  line-height: 1.7 !important;
  margin-top: 1px !important;
  display: inline-block !important;
}

/* コピーライトエリア（さらに深い静謐なフォレスト） */
.copyright__wrap {
  background: #0f1915 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
  padding: 22px 0 !important;
}

.copyright__wrap p {
  font-family: var(--salon-font-sans) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.1em !important;
  color: #9cbdb1 !important;
  margin: 0 !important;
}

/* ==========================================================
   11. High-End Clean Header & SP Drawer Architecture
   不要なライブラリを完全排除した、シンプルで強固なモダンヘッダー
   ========================================================== */
.salon-header-bar {
  background: #ffffff !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
}

.salon-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: 80px !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
  box-sizing: border-box !important;
}

@media (max-width: 991px) {
  .salon-header-inner {
    height: 64px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ロゴエリア（画像の透明余白を考慮し、しっかり視認できるサイズへ最適化） */
.salon-header-logo {
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
}

.salon-header-logo a {
  display: flex !important;
  align-items: center !important;
  text-decoration: none !important;
}

.salon-header-logo .custom-logo,
.salon-header-logo img {
  max-height: 68px !important; /* 透明余白を考慮し実寸ロゴ高さ約46pxに最適化 */
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  transition: opacity 0.2s ease !important;
}

.salon-header-logo a:hover .custom-logo,
.salon-header-logo a:hover img {
  opacity: 0.85 !important;
}

.salon-header-logo .site-title {
  font-family: var(--salon-font-en) !important;
  font-size: 1.65rem !important;
  font-weight: 600 !important;
  color: var(--salon-primary) !important;
  margin: 0 !important;
  letter-spacing: 0.04em !important;
}

@media (max-width: 991px) {
  .salon-header-logo .custom-logo,
  .salon-header-logo img {
    max-height: 52px !important; /* スマホでもしっかり視認できるサイズ（実寸文字高さ約35px） */
    max-width: 170px !important;
  }

  .salon-header-logo .site-title {
    font-size: 1.35rem !important;
  }
}

/* ----------------------------------------------------------
   【完全分離】PCメニュー（992px以上のみ表示・SP時は完全非表示）
   ---------------------------------------------------------- */
.salon-pc-nav {
  display: none !important; /* デフォルト（スマホ）では完全非表示 */
}

@media (min-width: 992px) {
  .salon-pc-nav {
    display: flex !important; /* PC幅（992px以上）のみ表示 */
    align-items: center !important;
  }

  .salon-pc-menu-list {
    display: flex !important;
    align-items: center !important;
    gap: 28px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .salon-pc-menu-list > li {
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .salon-pc-menu-list > li > a {
    display: inline-block !important;
    font-family: var(--salon-font-ja) !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    color: var(--salon-text-main) !important;
    text-decoration: none !important;
    letter-spacing: 0.06em !important;
    padding: 12px 0 !important;
    position: relative !important;
    transition: color 0.2s ease !important;
  }

  .salon-pc-menu-list > li > a::after {
    content: '' !important;
    position: absolute !important;
    bottom: 6px !important;
    left: 0 !important;
    width: 0 !important;
    height: 2px !important;
    background: var(--salon-primary) !important;
    transition: width 0.25s ease !important;
  }

  .salon-pc-menu-list > li:hover > a {
    color: var(--salon-primary) !important;
  }

  .salon-pc-menu-list > li:hover > a::after,
  .salon-pc-menu-list > li.current-menu-item > a::after {
    width: 100% !important;
  }

  /* PCドロップダウンメニュー */
  .salon-pc-menu-list .sub-menu {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    min-width: 220px !important;
    background: #ffffff !important;
    border: 1px solid var(--salon-border-light) !important;
    border-radius: 0px !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08) !important;
    padding: 8px 0 !important;
    margin: 0 !important;
    list-style: none !important;
    display: none !important;
    z-index: 1000 !important;
  }

  .salon-pc-menu-list > li:hover > .sub-menu {
    display: block !important;
  }

  .salon-pc-menu-list .sub-menu li a {
    display: block !important;
    padding: 10px 18px !important;
    font-family: var(--salon-font-ja) !important;
    font-size: 0.9rem !important;
    color: var(--salon-text-body) !important;
    text-decoration: none !important;
    border-bottom: 1px solid #f6f8f7 !important;
    transition: all 0.2s ease !important;
  }

  .salon-pc-menu-list .sub-menu li a:hover {
    background: var(--salon-bg-sub) !important;
    color: var(--salon-primary) !important;
    padding-left: 22px !important;
  }

  /* PC幅ではSPハンバーガーボタンとドロワーを完全非表示 */
  .salon-hamburger-btn,
  .salon-sp-drawer {
    display: none !important;
  }
}

/* ----------------------------------------------------------
   【完全分離】SPハンバーガーボタン（991px以下のみ表示・PC時は完全非表示）
   ---------------------------------------------------------- */
.salon-hamburger-btn {
  display: none !important; /* デフォルト（PC）では完全非表示 */
}

@media (max-width: 991px) {
  .salon-hamburger-btn {
    background: transparent !important;
    border: none !important;
    border-radius: 0px !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 44px !important;
    height: 44px !important;
    display: flex !important; /* SP幅（991px以下）のみ表示 */
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 10001 !important;
    outline: none !important;
  }

  .salon-hamburger-icon {
    width: 22px !important;
    height: 14px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    position: relative !important;
  }

  .salon-hamburger-icon .bar {
    display: block !important;
    width: 22px !important;
    height: 1.5px !important;
    background: var(--salon-text-main) !important;
    border-radius: 0px !important;
    transition: all 0.25s ease !important;
  }

  .salon-hamburger-text {
    display: block !important;
    font-family: var(--salon-font-sans) !important;
    font-size: 8px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    color: var(--salon-text-sub) !important;
    margin-top: 3px !important;
    text-transform: uppercase !important;
    line-height: 1 !important;
    transition: color 0.25s ease !important;
  }

  /* ハンバーガーボタン アクティブ時（×への変形） */
  .salon-hamburger-btn.is-active .bar-1 {
    transform: translateY(6.25px) rotate(45deg) !important;
    background: var(--salon-primary) !important;
  }

  .salon-hamburger-btn.is-active .bar-2 {
    opacity: 0 !important;
  }

  .salon-hamburger-btn.is-active .bar-3 {
    transform: translateY(-6.25px) rotate(-45deg) !important;
    background: var(--salon-primary) !important;
  }

  .salon-hamburger-btn.is-active .salon-hamburger-text {
    color: var(--salon-primary) !important;
  }

  /* SPドロワーメニュー（スマホ専用スライドパネル） */
  .salon-sp-drawer {
    display: block !important;
    position: fixed !important;
    top: 64px !important;
    left: 0 !important;
    width: 100vw !important;
    height: calc(100vh - 64px) !important;
    height: calc(100dvh - 64px) !important;
    z-index: 9998 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.3s ease, visibility 0.3s ease !important;
  }

  /* ドロワー展開時 */
  .salon-sp-drawer.is-active {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.salon-drawer-open {
    overflow: hidden !important;
  }
}

/* 半透明背景バックドロップ */
.salon-sp-drawer-backdrop {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(10, 20, 15, 0.45) !important;
  backdrop-filter: blur(2px) !important;
  -webkit-backdrop-filter: blur(2px) !important;
}

/* スライドパネル本体 */
.salon-sp-drawer-panel {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 86% !important;
  max-width: 360px !important;
  height: 100% !important;
  background: #ffffff !important;
  box-shadow: -6px 0 24px rgba(0, 0, 0, 0.12) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 24px 20px 80px !important;
  box-sizing: border-box !important;
  transform: translateX(100%) !important;
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.salon-sp-drawer.is-active .salon-sp-drawer-panel {
  transform: translateX(0) !important;
}

/* ドロワー内ナビゲーションリスト */
.salon-sp-nav {
  margin-bottom: 28px !important;
}

.salon-sp-menu-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.salon-sp-menu-list li {
  border-bottom: 1px solid var(--salon-border-light) !important;
  position: relative !important;
}

.salon-sp-menu-list li a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 16px 8px !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 1.02rem !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  text-decoration: none !important;
  letter-spacing: 0.04em !important;
  transition: all 0.2s ease !important;
}

.salon-sp-menu-list li.menu-item-has-children > a::after {
  content: '\f078' !important;
  font-family: 'Font Awesome 5 Free' !important;
  font-weight: 900 !important;
  font-size: 0.8rem !important;
  color: var(--salon-primary) !important;
  transition: transform 0.2s ease !important;
}

.salon-sp-menu-list li.menu-item-has-children.is-expanded > a::after {
  transform: rotate(180deg) !important;
}

/* 不要なレガシー caret-down アイコンの完全消去 */
.salon-pc-menu-list .fa-caret-down,
.salon-sp-menu-list .fa-caret-down,
.salon-header-bar .fa-caret-down {
  display: none !important;
}

.salon-sp-menu-list li a:hover,
.salon-sp-menu-list li a:active {
  background: var(--salon-bg-sub) !important;
  color: var(--salon-primary) !important;
}

/* サブメニュー（展開リスト） */
.salon-sp-menu-list .sub-menu {
  display: none;
  background: #f8faf9 !important;
  border-left: 2px solid var(--salon-primary) !important;
  margin: 0 0 8px 8px !important;
  padding: 4px 0 4px 14px !important;
  list-style: none !important;
}

.salon-sp-menu-list .sub-menu li {
  border-bottom: 1px dashed var(--salon-border-light) !important;
}

.salon-sp-menu-list .sub-menu li:last-child {
  border-bottom: none !important;
}

.salon-sp-menu-list .sub-menu li a {
  padding: 12px 8px !important;
  font-size: 0.92rem !important;
  color: var(--salon-text-body) !important;
}

/* ドロワー下部 サロンクイックCTAカード */
.salon-drawer-cta {
  padding: 22px 18px !important;
  background: #fbfdfc !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.drawer-cta-title {
  display: block !important;
  font-family: var(--salon-font-en) !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  color: var(--salon-primary) !important;
  margin-bottom: 14px !important;
  text-transform: uppercase !important;
}

.drawer-cta-btns {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin-bottom: 16px !important;
}

.drawer-btn-line {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: #06c755 !important;
  color: #ffffff !important;
  padding: 13px 16px !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  border-radius: 0px !important;
  text-decoration: none !important;
  box-shadow: 0 2px 8px rgba(6, 199, 85, 0.2) !important;
  transition: opacity 0.2s ease !important;
}

.drawer-btn-line:hover {
  opacity: 0.9 !important;
  color: #ffffff !important;
}

.drawer-btn-tel {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  padding: 13px 16px !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  border-radius: 0px !important;
  text-decoration: none !important;
  transition: background-color 0.2s ease !important;
}

.drawer-btn-tel:hover {
  background: var(--salon-primary-dark) !important;
  color: #ffffff !important;
}

.drawer-info {
  font-size: 0.82rem !important;
  color: var(--salon-text-sub) !important;
  line-height: 1.8 !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 14px 0 0 0 !important;
  border-top: 1px solid var(--salon-border-light) !important;
}

.drawer-info p {
  margin: 0 0 4px 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.drawer-info p:last-child {
  margin-bottom: 0 !important;
}

.drawer-info i {
  color: var(--salon-primary) !important;
  width: 14px !important;
  text-align: center !important;
}



/* ==========================================================
   12. Gentle Scroll Reveal (Replacing heavy Wow.js ZoomIn)
   ========================================================== */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.no-js .reveal-on-scroll {
  opacity: 1;
  transform: none;
}

/* ==========================================================
   13. Modern Information Banner (COVID-19 & Salon Announcements)
   ========================================================== */
section#covid-info.salon-info-banner-section,
section#covid-info.modern-info-banner,
section#cov19.modern-info-banner {
  background-color: var(--salon-bg-sub) !important;
  padding: 60px 0 !important;
  border-top: 1px solid var(--salon-border-light);
  border-bottom: 1px solid var(--salon-border-light);
  position: relative !important;
  z-index: 1 !important;
}

.modern-info-card {
  position: relative !important;
  z-index: 5 !important;
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅に完全一致 */
  width: 100% !important;
  margin: 0 auto !important;
  padding: 44px 48px !important;
  background: var(--salon-bg-card);
  border: 1px solid var(--salon-border);
  border-radius: 0px !important;
  box-shadow: var(--salon-shadow-sm);
  box-sizing: border-box !important;
}

.modern-info-badge {
  display: inline-block;
  font-family: var(--salon-font-sans);
  font-size: var(--salon-fs-caption) !important;
  letter-spacing: 0.2em;
  font-weight: 600;
  color: var(--salon-primary-dark);
  background: var(--salon-primary-light) !important;
  border: 1px solid var(--salon-border);
  border-radius: var(--salon-radius-xs) !important;
  padding: 4px 16px;
  margin-bottom: 16px;
}

.modern-info-title {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: 1.25rem !important; /* 20px */
  font-weight: 500 !important;
  letter-spacing: 0.08em;
  color: var(--salon-text-main);
  margin-bottom: 12px !important;
  line-height: 1.6;
}

.modern-info-desc {
  font-size: 0.95rem !important; /* 15.2px */
  color: var(--salon-text-sub);
  line-height: 1.85;
  margin-bottom: 24px !important;
  max-width: var(--salon-content-max-width) !important;
  margin-left: auto;
  margin-right: auto;
  text-wrap: balance !important;
  word-break: auto-phrase !important;
}

.modern-info-btn-wrap {
  position: relative !important;
  z-index: 20 !important;
}

.modern-btn-minimal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--salon-font-ja);
  font-size: 0.9rem !important;
  letter-spacing: 0.1em;
  font-weight: 500;
  color: var(--salon-primary-dark) !important;
  text-decoration: none !important;
  padding: 10px 24px;
  border-radius: 0 !important;
  border: 1px solid rgba(36, 62, 52, 0.35);
  background: transparent;
  transition: all 0.25s ease !important;
  position: relative !important;
  z-index: 21 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

.modern-btn-minimal i {
  font-size: 0.85rem;
  color: var(--salon-primary-dark) !important;
  transition: color 0.25s ease !important;
}

.modern-btn-minimal:hover {
  background: rgba(36, 62, 52, 0.06) !important;
  border-color: var(--salon-primary) !important;
  color: var(--salon-primary-dark) !important;
  transform: none !important; /* 位置を動かさない */
  box-shadow: none !important;
}

.modern-btn-minimal:hover i {
  transform: none !important;
  color: var(--salon-primary-dark) !important;
}

@media (max-width: 768px) {
  .modern-info-card {
    padding: 28px 20px;
  }
  .modern-info-title {
    font-size: 1.1rem !important;
  }
}

/* ==========================================================
   14. Minimum Standard Button System (必要最低限の2系統ボタンスタイル)
   サイト全体で色んなスタイルを発生させず、PrimaryとOutlineの2種のみを使い回す
   ========================================================== */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
textarea,
select,
.button,
.btn,
a.button,
a.btn,
.more-link.button,
.wp-block-button__link,
.wp-block-search__button,
.modern-menu-btn,
.modern-instagram-btn,
.modern-btn-minimal,
.contact-text,
.staffinbt a,
.contectbt a {
  border-radius: 0 !important;
  transition: all 0.25s ease !important;
  box-sizing: border-box !important;
}

/* ホバー時の位置移動（transform）を全ページで完全禁止：線の消失バグや画面ブレを根絶 */
button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
.button:hover,
.btn:hover,
a.button:hover,
a.btn:hover,
.more-link.button:hover,
.wp-block-button__link:hover,
.wp-block-search__button:hover,
.modern-menu-btn:hover,
.modern-instagram-btn:hover,
.modern-btn-minimal:hover,
.contact-text:hover,
.staffinbt a:hover,
.contectbt a:hover {
  transform: none !important;
  -webkit-transform: none !important;
}

.card,
.service-box,
.service__item,
.post-item,
.widget {
  border-radius: var(--salon-radius-md) !important; /* 8px */
}

.badge,
.label {
  border-radius: var(--salon-radius-xs) !important; /* 4px */
}

/* ==========================================================
   15. Contact & Reservation Luxury Editorial Layout (/contect-us/)
   銀座・表参道の一流サロンデザインを取り入れた 1440px 見開きエディトリアル
   ========================================================== */
.page-id-220 .site-content,
.page-id-220 .inside-article,
.salon-ct-page {
  max-width: var(--salon-content-max-width) !important; /* 1440px */
  margin-left: auto !important;
  margin-right: auto !important;
  padding: var(--salon-space-2xl) var(--salon-space-lg) var(--salon-space-5xl) !important;
  color: var(--salon-text-body);
}

/* ==========================================================
   リッチ・エディトリアル・ヒーローセクション（メニューページと統一感のあるスプリットカード）
   ========================================================== */
.salon-hero-split {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: var(--salon-radius-xs) !important;
  box-shadow: var(--salon-shadow-sm) !important;
  overflow: hidden !important;
  margin-bottom: var(--salon-space-4xl) !important; /* 80px統一 */
  min-height: 380px !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.salon-hero-split:hover {
  box-shadow: var(--salon-shadow-lg) !important;
}

/* 左カラム：サロン写真ビジュアルエリア（メニューページと統一されたアプローチ） */
.salon-hero-img-col {
  flex: 0 0 46% !important;
  max-width: 46% !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 380px !important;
  background: #2a201c;
}

.salon-hero-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.salon-hero-split:hover .salon-hero-photo {
  transform: scale(1.03) !important;
}

/* 微細なグラデーションオーバーレイ */
.salon-hero-photo-gradient {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 0) 70%, rgba(253, 251, 249, 0.2) 100%),
              linear-gradient(to top, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 40%);
  pointer-events: none;
}

/* 右カラム：品格あるエディトリアル・コンテンツエリア */
.salon-hero-text-col {
  flex: 1 1 54% !important;
  padding: var(--salon-space-2xl) var(--salon-space-3xl) !important; /* 48px 64px統一 */
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background: var(--salon-bg-card) !important;
  position: relative !important;
  box-sizing: border-box !important;
}

.salon-hero-content {
  max-width: 580px;
}

.salon-hero-en {
  display: inline-block;
  font-family: var(--salon-font-en) !important;
  font-size: var(--salon-fs-hero) !important; /* 38px/clamp統一 */
  font-weight: 500 !important;
  letter-spacing: var(--salon-ls-editorial) !important;
  line-height: var(--salon-lh-tight) !important;
  color: var(--salon-accent) !important;
  margin-bottom: var(--salon-space-xs) !important;
}

.salon-hero-ja {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-sub) !important; /* 13.5px統一 */
  font-weight: 400 !important;
  letter-spacing: 0.28em !important;
  color: var(--salon-text-sub) !important;
  margin: 0 !important;
}

.salon-hero-ornament {
  display: flex;
  align-items: center;
  gap: var(--salon-space-sm);
  margin: var(--salon-space-md) 0 var(--salon-space-md);
}

.salon-hero-ornament .orn-line {
  width: 42px;
  height: 1px;
  background: var(--salon-primary);
  opacity: 0.65;
}

.salon-hero-ornament .orn-diamond {
  font-size: 8px;
  color: var(--salon-primary);
  line-height: 1;
}

.salon-hero-desc {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-body) !important; /* 15px統一 */
  font-weight: 500 !important;
  color: var(--salon-text-body) !important;
  line-height: var(--salon-lh-relaxed) !important; /* 1.95統一 */
  letter-spacing: var(--salon-ls-normal) !important;
  margin: 0 0 var(--salon-space-lg) 0 !important;
}

/* クイックアンカーボタン（銀座・表参道の一流サロンライクな繊細なボタン） */
.salon-hero-anchors {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: var(--salon-space-sm) !important;
  align-items: center !important;
}

.hero-anchor-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: var(--salon-space-xs) !important;
  padding: 10px var(--salon-space-md) !important;
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-caption) !important; /* 12px統一 */
  letter-spacing: var(--salon-ls-wide) !important;
  border-radius: var(--salon-radius-xs) !important; /* 2px統一 */
  text-decoration: none !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.hero-anchor-btn i {
  font-size: 14px !important;
}

/* LINE予約ボタン */
.hero-anchor-btn.anchor-line {
  background: #06c755 !important;
  color: #ffffff !important;
  border: 1px solid #06c755 !important;
}

.hero-anchor-btn.anchor-line:hover {
  background: #05a347 !important;
  border-color: #05a347 !important;
  box-shadow: none !important;
  transform: none !important;
  color: #ffffff !important;
}

/* TELボタン */
.hero-anchor-btn.anchor-tel {
  background: #ffffff !important;
  color: var(--salon-accent) !important;
  border: 1px solid var(--salon-border-light) !important;
  font-family: var(--salon-font-en), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-sub) !important;
  letter-spacing: var(--salon-ls-normal) !important;
}

.hero-anchor-btn.anchor-tel:hover {
  background: var(--salon-bg-sub) !important;
  border-color: var(--salon-border) !important;
  color: var(--salon-text-main) !important;
  transform: none !important;
}

/* お問い合わせフォームボタン */
.hero-anchor-btn.anchor-form {
  background: var(--salon-bg-card) !important;
  color: var(--salon-accent) !important;
  border: 1px solid var(--salon-border-light) !important;
}

.hero-anchor-btn.anchor-form:hover {
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  border-color: var(--salon-primary) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* レスポンシブ対応 */
@media (max-width: 991px) {
  .salon-hero-split {
    flex-direction: column !important;
    min-height: auto !important;
    margin-bottom: var(--salon-space-2xl) !important;
  }
  .salon-hero-img-col {
    flex: 0 0 280px !important;
    max-width: 100% !important;
    min-height: 280px !important;
  }
  .salon-hero-text-col {
    padding: var(--salon-space-xl) var(--salon-space-lg) !important;
  }
}

@media (max-width: 576px) {
  .salon-hero-img-col {
    flex: 0 0 220px !important;
    min-height: 220px !important;
  }
  .salon-hero-text-col {
    padding: var(--salon-space-lg) var(--salon-space-md) !important;
  }
  .salon-hero-anchors {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .hero-anchor-btn {
    justify-content: center !important;
  }
}

/* ==========================================================
   セクション1: ご予約方法（RESERVATION - 1440px ワイドパネル）
   ========================================================== */
.salon-ct-book-section {
  margin-bottom: var(--salon-space-4xl); /* 80px統一 */
}

.salon-ct-book-inner {
  background: var(--salon-bg-nuance);
  border: 1px solid var(--salon-border-light);
  border-radius: var(--salon-radius-xs);
  padding: var(--salon-space-2xl) var(--salon-space-2xl); /* 48px 48px統一 */
}

@media (max-width: 768px) {
  .salon-ct-book-inner {
    padding: var(--salon-space-xl) var(--salon-space-md);
  }
}

.salon-ct-book-header {
  margin-bottom: var(--salon-space-2xl);
}

.book-sub-en {
  display: block;
  font-family: var(--salon-font-en);
  font-size: var(--salon-fs-caption);
  letter-spacing: var(--salon-ls-editorial);
  color: var(--salon-primary);
  font-weight: 500;
  margin-bottom: var(--salon-space-xs);
}

.book-sub-ja {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h2) !important; /* 24px統一 */
  font-weight: 500 !important;
  letter-spacing: var(--salon-ls-normal);
  color: var(--salon-accent) !important;
  margin: 0 0 var(--salon-space-sm) 0 !important;
}

.book-sub-lead {
  font-size: var(--salon-fs-body); /* 15px統一 */
  line-height: var(--salon-lh-relaxed);
  color: var(--salon-text-sub);
  margin: 0;
  letter-spacing: var(--salon-ls-normal);
}

/* デュアルパネルグリッド */
.salon-ct-book-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--salon-space-xl); /* 32px統一 */
}

@media (max-width: 991px) {
  .salon-ct-book-grid {
    grid-template-columns: 1fr;
    gap: var(--salon-space-lg);
  }
}

.salon-ct-book-col {
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: var(--salon-radius-xs);
  padding: var(--salon-space-2xl) var(--salon-space-xl); /* 48px 32px統一 */
  display: flex;
  flex-direction: column;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease;
}

@media (max-width: 576px) {
  .salon-ct-book-col {
    padding: var(--salon-space-xl) var(--salon-space-md);
  }
}

.salon-ct-book-col:hover {
  transform: none !important;
  border-color: var(--salon-primary);
}

.book-col-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.col-tag {
  display: inline-block;
  font-family: var(--salon-font-en);
  font-size: var(--salon-fs-caption);
  letter-spacing: var(--salon-ls-wide);
  font-weight: 500;
  color: var(--salon-primary);
  margin-bottom: var(--salon-space-sm);
}

.col-title {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h3) !important; /* 20px統一 */
  font-weight: 500 !important;
  letter-spacing: var(--salon-ls-normal);
  color: var(--salon-accent) !important;
  margin: 0 0 var(--salon-space-md) 0 !important;
}

.col-desc {
  font-size: var(--salon-fs-sub); /* 13.5px統一 */
  color: var(--salon-text-sub);
  line-height: var(--salon-lh-normal);
  margin: 0 0 var(--salon-space-xl) 0;
  flex-grow: 1;
}

.col-action {
  margin-top: auto;
}

/* LINE予約ボタン（端正な2px角丸ボタン） */
.btn-salon-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--salon-space-sm);
  min-width: 260px;
  padding: 14px var(--salon-space-xl);
  background: var(--salon-primary);
  border: 1px solid var(--salon-primary);
  border-radius: var(--salon-radius-xs);
  color: #ffffff !important;
  font-size: var(--salon-fs-sub);
  letter-spacing: var(--salon-ls-wide);
  text-decoration: none !important;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.btn-salon-line:hover {
  background: var(--salon-primary);
  border-color: var(--salon-primary);
  color: #ffffff !important;
  transform: none !important;
}

.btn-salon-line .btn-arrow {
  font-size: 14px;
  transition: transform 0.3s ease;
}

.btn-salon-line:hover .btn-arrow {
  transform: translateX(4px);
}

/* TEL予約リンク（セリフ体タイポグラフィ） */
.btn-salon-tel {
  display: inline-flex;
  align-items: baseline;
  gap: var(--salon-space-sm);
  color: var(--salon-accent) !important;
  text-decoration: none !important;
  padding-bottom: var(--salon-space-2xs);
  border-bottom: 1px solid var(--salon-accent);
  transition: all 0.3s ease;
}

.btn-salon-tel:hover {
  color: var(--salon-primary) !important;
  border-bottom-color: var(--salon-primary);
}

.btn-salon-tel .tel-label {
  font-family: var(--salon-font-en);
  font-size: var(--salon-fs-sub);
  font-weight: 500;
  letter-spacing: var(--salon-ls-wide);
  color: var(--salon-primary);
}

.btn-salon-tel .tel-num {
  font-family: var(--salon-font-en);
  font-size: var(--salon-fs-h1); /* 32px統一 */
  font-weight: 400;
  letter-spacing: var(--salon-ls-normal);
  line-height: 1;
}

.col-meta {
  display: block;
  font-size: var(--salon-fs-caption);
  color: var(--salon-text-light);
  margin-top: var(--salon-space-sm);
  letter-spacing: var(--salon-ls-tight);
}

/* ==========================================================
   セクション2: 見開きエディトリアル（サロン写真・案内 × フォーム）
   ========================================================== */
.salon-ct-spread-grid {
  display: grid;
  grid-template-columns: 4fr 6fr;
  gap: var(--salon-space-3xl); /* 64px統一 */
  align-items: start;
}

@media (max-width: 1024px) {
  .salon-ct-spread-grid {
    grid-template-columns: 1fr;
    gap: var(--salon-space-2xl);
  }
}

/* 左側：サロン写真・アクセス */
.salon-side-frame {
  position: relative;
}

.salon-side-photo {
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  padding: var(--salon-space-sm);
  border-radius: var(--salon-radius-xs);
  margin-bottom: var(--salon-space-xl);
  box-shadow: var(--salon-shadow-sm);
}

.salon-side-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  display: block;
  border-radius: var(--salon-radius-xs);
}

.salon-side-info {
  padding: 0 var(--salon-space-2xs);
}

.info-tag {
  display: block;
  font-family: var(--salon-font-en);
  font-size: var(--salon-fs-caption);
  letter-spacing: var(--salon-ls-editorial);
  font-weight: 500;
  color: var(--salon-primary);
  margin-bottom: var(--salon-space-xs);
}

.info-name {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h3) !important; /* 20px統一 */
  font-weight: 500 !important;
  letter-spacing: var(--salon-ls-normal);
  color: var(--salon-accent) !important;
  margin: 0 0 var(--salon-space-md) 0 !important;
}

.info-address {
  font-style: normal;
  font-size: var(--salon-fs-sub);
  color: var(--salon-text-sub);
  line-height: var(--salon-lh-normal);
  margin-bottom: var(--salon-space-lg);
}

.info-dl {
  margin: 0 0 var(--salon-space-lg) 0;
  border-top: 1px solid var(--salon-border-light);
}

.info-dl .dl-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--salon-space-sm) 0;
  border-bottom: 1px solid var(--salon-border-light);
  font-size: var(--salon-fs-sub);
}

.info-dl dt {
  color: var(--salon-text-sub);
  font-weight: 500;
  width: 6.5em;
  flex: none;
}

.info-dl dd {
  color: var(--salon-text-body);
  margin: 0;
  font-weight: 400;
  text-align: right;
}

.info-map-link {
  margin-top: var(--salon-space-lg);
}

.link-editorial {
  display: inline-flex;
  align-items: center;
  gap: var(--salon-space-xs);
  font-family: var(--salon-font-en);
  font-size: var(--salon-fs-sub);
  letter-spacing: var(--salon-ls-wide);
  color: var(--salon-accent) !important;
  text-decoration: none !important;
  padding-bottom: var(--salon-space-2xs);
  border-bottom: 1px solid var(--salon-accent);
  transition: all 0.3s ease;
}

.link-editorial:hover {
  color: var(--salon-primary) !important;
  border-bottom-color: var(--salon-primary);
}

.link-editorial .link-arrow {
  font-size: 13px;
  transition: transform 0.3s ease;
}

.link-editorial:hover .link-arrow {
  transform: translateX(4px);
}

/* 右側：洗練されたお問い合わせフォーム (ct-box) */
.salon-form-box {
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: var(--salon-radius-xs);
  padding: var(--salon-space-2xl) var(--salon-space-2xl); /* 48px 48px統一 */
  box-shadow: var(--salon-shadow-sm);
}

@media (max-width: 576px) {
  .salon-form-box {
    padding: var(--salon-space-xl) var(--salon-space-md);
  }
}

.form-head {
  margin-bottom: var(--salon-space-lg);
}

.form-en {
  display: block;
  font-family: var(--salon-font-en);
  font-size: var(--salon-fs-caption);
  letter-spacing: var(--salon-ls-editorial);
  font-weight: 500;
  color: var(--salon-primary);
  margin-bottom: var(--salon-space-xs);
}

.form-ja {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h2) !important; /* 24px統一 */
  font-weight: 500 !important;
  letter-spacing: var(--salon-ls-normal);
  color: var(--salon-accent) !important;
  margin: 0 0 var(--salon-space-sm) 0 !important;
}

.form-desc {
  font-size: var(--salon-fs-sub);
  color: var(--salon-text-sub);
  line-height: var(--salon-lh-normal);
  margin: 0;
}

.form-reqnote {
  font-size: var(--salon-fs-caption);
  color: var(--salon-text-light);
  letter-spacing: var(--salon-ls-normal);
  margin: 0 0 var(--salon-space-xl) 0;
  padding-bottom: var(--salon-space-md);
  border-bottom: 1px solid var(--salon-border-light);
}

.req-mark {
  color: #b5795a;
  margin-right: var(--salon-space-2xs);
  font-weight: bold;
}

/* CF7 内部要素 */
.salon-form-body .wpcf7 {
  margin: 0 !important;
}

.salon-form-body br {
  display: none !important;
}

.salon-form-body .wpcf7-form p {
  margin-bottom: var(--salon-space-lg) !important;
}

.salon-form-body .large-label {
  display: block !important;
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-sub) !important;
  font-weight: 400 !important;
  letter-spacing: var(--salon-ls-normal) !important;
  color: var(--salon-text-main) !important;
  margin-bottom: var(--salon-space-xs) !important;
}

.salon-form-body input[type="text"],
.salon-form-body input[type="email"],
.salon-form-body input[type="tel"],
.salon-form-body textarea {
  width: 100% !important;
  padding: 14px var(--salon-space-md) !important;
  border: 1px solid var(--salon-border-light) !important;
  background: var(--salon-bg-nuance) !important;
  border-radius: var(--salon-radius-xs) !important;
  font-size: var(--salon-fs-body) !important; /* 15px統一 */
  color: var(--salon-text-body) !important;
  font-family: inherit !important;
  box-sizing: border-box !important;
  transition: border-color 0.3s ease, background 0.3s ease !important;
}

.salon-form-body input[type="text"]:focus,
.salon-form-body input[type="email"]:focus,
.salon-form-body input[type="tel"]:focus,
.salon-form-body textarea:focus {
  background: #ffffff !important;
  border-color: var(--salon-primary) !important;
  outline: none !important;
  box-shadow: none !important;
}

.salon-form-body textarea {
  min-height: 160px !important;
  line-height: var(--salon-lh-relaxed) !important;
  resize: vertical !important;
}

/* 送信ボタン */
.salon-form-body .contact-submit {
  text-align: center !important;
  margin-top: var(--salon-space-2xl) !important;
  margin-bottom: var(--salon-space-xs) !important;
}

.salon-form-body .contact-submit input[type="submit"] {
  display: block !important;
  width: auto !important;
  min-width: 260px !important;
  margin: 0 auto !important;
  padding: 16px var(--salon-space-xl) !important;
  border-radius: var(--salon-radius-xs) !important;
  border: 1px solid var(--salon-primary) !important;
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  font-family: inherit !important;
  font-size: var(--salon-fs-sub) !important;
  font-weight: 400 !important;
  letter-spacing: var(--salon-ls-editorial) !important;
  cursor: pointer !important;
  transition: all 0.4s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}

.salon-form-body .contact-submit input[type="submit"]:hover {
  background: var(--salon-primary) !important;
  border-color: var(--salon-primary) !important;
  color: #ffffff !important;
  transform: none !important;
}

.salon-form-body .wpcf7-response-output {
  border-radius: var(--salon-radius-xs) !important;
  padding: var(--salon-space-sm) var(--salon-space-lg) !important;
  font-size: var(--salon-fs-sub) !important;
  line-height: var(--salon-lh-normal) !important;
  margin-top: var(--salon-space-lg) !important;
  text-align: center !important;
  border: 1px solid var(--salon-border-light) !important;
}

.salon-form-body .wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--salon-primary) !important;
  background-color: var(--salon-primary-light) !important;
  color: var(--salon-primary-dark) !important;
}

.salon-form-body .wpcf7 form.failed .wpcf7-response-output,
.salon-form-body .wpcf7 form.invalid .wpcf7-response-output {
  border-color: #e06d53 !important;
  background-color: #fdf2f0 !important;
  color: #9c2d1b !important;
}

/* ==========================================================
   Section 16: 施術の流れページ（TREATMENT FLOW - 1440px 見開きエディトリアル）
   ========================================================== */
.page-id-1074 .site-content,
.page-id-1074 .inside-article,
.salon-so-page,
.serviceorderfullbox {
  max-width: var(--salon-content-max-width) !important; /* 1440px */
  margin-left: auto !important;
  margin-right: auto !important;
  padding: var(--salon-space-2xl) var(--salon-space-lg) var(--salon-space-5xl) !important;
  color: var(--salon-text-body);
}

/* ヒーロー内のステップアンカーボタン */
.hero-anchor-btn.anchor-step {
  background: #ffffff !important;
  color: var(--salon-accent) !important;
  border: 1px solid var(--salon-border-light) !important;
  font-size: var(--salon-fs-caption) !important;
  padding: 10px var(--salon-space-md) !important;
  border-radius: var(--salon-radius-xs) !important;
}

.hero-anchor-btn.anchor-step .step-badge {
  font-family: var(--salon-font-en) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--salon-primary) !important;
  margin-right: var(--salon-space-2xs) !important;
}

.hero-anchor-btn.anchor-step:hover {
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  border-color: var(--salon-primary) !important;
  box-shadow: none !important;
  transform: none !important;
}

.hero-anchor-btn.anchor-step:hover .step-badge {
  color: #ffffff !important;
}

/* 各ステップカード（.salon-so-card / .so-step-card）：写真を主役に活かしたダイナミック・スプリットエディトリアル */
.salon-so-page .salon-so-card,
.salon-so-page .serviceorderbox {
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: var(--salon-radius-xs) !important;
  box-shadow: 0 10px 30px rgba(40, 70, 60, 0.05) !important;
  padding: 0 !important; /* スプリット写真のためにカードパディングを0化 */
  margin-bottom: var(--salon-space-4xl) !important; /* 80px統一 */
  position: relative !important;
  overflow: visible !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.salon-so-page .salon-so-card:hover,
.salon-so-page .serviceorderbox:hover {
  transform: none !important;
  box-shadow: 0 18px 45px rgba(40, 70, 60, 0.09) !important;
  border-color: var(--salon-border) !important;
}

/* スプリットカード内部コンテナ */
.salon-so-page .so-split-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  overflow: hidden !important;
  border-radius: var(--salon-radius-xs) !important;
  min-height: 440px !important;
}

/* 左右交互（Zigzag）反転配置：右写真クラス */
.salon-so-page .salon-so-card.so-step-right-img .so-split-inner,
.salon-so-page .serviceorderbox.so-step-right-img .so-split-inner,
.salon-so-page .so-split-inner.so-step-right-img {
  flex-direction: row-reverse !important;
}

/* 写真カラム：45%の堂々たる高解像度ビジュアルエリア */
.salon-so-page .so-photo-col {
  flex: 0 0 45% !important;
  max-width: 45% !important;
  position: relative !important;
  overflow: hidden !important;
  background: #2a201c !important;
  min-height: 380px !important;
}

.salon-so-page .so-step-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.salon-so-page .salon-so-card:hover .so-step-photo,
.salon-so-page .serviceorderbox:hover .so-step-photo {
  transform: scale(1.04) !important;
}

/* 写真上の微細なラグジュアリー・オーバーレイ */
.salon-so-page .so-photo-overlay {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 50%) !important;
  pointer-events: none !important;
}

/* テキストコンテンツカラム：55%の上質なエディトリアルエリア */
.salon-so-page .so-text-col {
  flex: 1 1 55% !important;
  padding: var(--salon-space-2xl) var(--salon-space-2xl) !important; /* 48px 48px */
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

/* 旧PNG画像を非表示 */
.salon-so-page .serviceorderbox .numixon {
  display: none !important;
}

/* セリフ体の高解像度ナンバーバッジ */
.salon-so-page .so-step-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: absolute !important;
  top: -18px !important;
  left: var(--salon-space-2xl) !important;
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  font-family: var(--salon-font-en) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  padding: 4px 22px !important;
  border-radius: var(--salon-radius-xs) !important;
  box-shadow: none !important;
  z-index: 5 !important;
}

/* ステップ見出し */
.salon-so-page .salon-so-card h3,
.salon-so-page .serviceorderbox h3 {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h3) !important; /* 21px統一 */
  font-weight: 600 !important;
  letter-spacing: var(--salon-ls-normal) !important;
  color: var(--salon-accent) !important;
  border-top: none !important;
  border-bottom: 2px solid var(--salon-primary) !important;
  padding: 0 0 var(--salon-space-md) 0 !important;
  margin: var(--salon-space-sm) 0 var(--salon-space-lg) 0 !important;
  width: 100% !important;
}

/* リード文 */
.salon-so-page .so-step-lead {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-body) !important; /* 15.5px統一 */
  font-weight: 500 !important;
  line-height: var(--salon-lh-relaxed) !important;
  color: var(--salon-text-body) !important;
  letter-spacing: var(--salon-ls-normal) !important;
  margin-bottom: var(--salon-space-lg) !important;
}

/* 予約ボックス（お電話予約、LINE予約等） */
.salon-so-page .salon-so-booking-box,
.salon-so-page .serviceorderbox .glittergreaybox {
  background-color: var(--salon-bg-nuance) !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: var(--salon-radius-xs) !important;
  padding: var(--salon-space-lg) var(--salon-space-xl) !important;
  margin-bottom: var(--salon-space-lg) !important;
}

.salon-so-page .salon-so-booking-box h5,
.salon-so-page .serviceorderbox .glittergreaybox h5 {
  color: var(--salon-primary-dark) !important;
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-body) !important;
  font-weight: 600 !important;
  letter-spacing: var(--salon-ls-normal) !important;
  margin: 0 0 var(--salon-space-xs) 0 !important;
}

.salon-so-page .salon-so-booking-box h5 i,
.salon-so-page .serviceorderbox .glittergreaybox h5 i {
  color: var(--salon-primary) !important;
  margin-right: var(--salon-space-2xs) !important;
}

.salon-so-page .salon-so-booking-box p,
.salon-so-page .serviceorderbox .glittergreaybox p {
  color: var(--salon-text-body) !important;
  font-size: var(--salon-fs-sub) !important;
  font-weight: 500 !important;
  line-height: var(--salon-lh-normal) !important;
  margin-bottom: var(--salon-space-md) !important;
}

.salon-so-page .salon-so-booking-box p:last-child,
.salon-so-page .serviceorderbox .glittergreaybox p:last-child {
  margin-bottom: 0 !important;
}

/* Step 04 複合ステップ：下部メニューフローエリア */
.salon-so-page .so-subflow-wrap {
  padding: var(--salon-space-xl) var(--salon-space-2xl) var(--salon-space-2xl) !important;
  border-top: 1px solid var(--salon-border-light) !important;
  background: var(--salon-bg-sub) !important;
}

/* ==========================================================
   Step 05 お会計：洗練された一体型チェックアウトパネル (決済 & 次回予約)
   システム風の二重カード構造を撤廃し、品格あるサロンエディトリアルへ統合
   ========================================================== */
.salon-so-page .so-step-lead {
  font-size: var(--salon-fs-body) !important; /* 15.5px */
  color: var(--salon-text-body) !important;
  line-height: var(--salon-lh-relaxed) !important;
  margin-bottom: var(--salon-space-lg) !important;
}

.salon-so-page .so-checkout-panel {
  background: var(--salon-bg-nuance) !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: var(--salon-radius-xs) !important;
  padding: var(--salon-space-2xl) var(--salon-space-2xl) !important; /* 48px 48px */
  margin: var(--salon-space-xl) 0 !important;
}

@media (max-width: 768px) {
  .salon-so-page .so-checkout-panel {
    padding: var(--salon-space-xl) var(--salon-space-md) !important;
  }
}

.salon-so-page .so-block-title {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h4) !important; /* 18px */
  color: var(--salon-accent) !important;
  font-weight: 500 !important;
  letter-spacing: var(--salon-ls-normal) !important;
  margin: 0 0 var(--salon-space-xs) 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: var(--salon-space-xs) !important;
}

.salon-so-page .so-block-title i {
  color: var(--salon-primary) !important;
  font-size: 16px !important;
}

.salon-so-page .so-block-desc {
  font-size: var(--salon-fs-sub) !important; /* 14px */
  color: var(--salon-text-sub) !important;
  line-height: var(--salon-lh-normal) !important;
  margin: 0 0 var(--salon-space-lg) 0 !important;
}

/* ブランドグループ（クレジットカード ＆ PayPay）の横並びレイアウト */
.salon-so-page .so-brand-group {
  display: flex !important;
  align-items: stretch !important;
  gap: var(--salon-space-lg) !important;
  flex-wrap: wrap !important;
}

.salon-so-page .so-brand-item {
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: var(--salon-radius-xs) !important;
  padding: var(--salon-space-md) var(--salon-space-lg) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  gap: var(--salon-space-xs) !important;
  box-shadow: 0 2px 8px rgba(40, 70, 60, 0.03) !important;
}

.salon-so-page .so-brand-label {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-caption) !important; /* 13px */
  font-weight: 500 !important;
  color: var(--salon-text-light) !important;
  letter-spacing: var(--salon-ls-wide) !important;
}

.salon-so-page .so-brand-plate {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 104px !important;
  padding: 4px 8px !important;
}

/* クレジットカードロゴ画像（500×255px）：幅200pxで鮮明・適正表示 */
.salon-so-page .img-card-brands {
  width: 200px !important;
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  object-fit: contain !important;
}

/* PayPayロゴ画像（150×150px）：幅68pxで適正表示 */
.salon-so-page .plate-paypay {
  min-width: 120px !important;
}

.salon-so-page .img-paypay-brand {
  width: 68px !important;
  height: auto !important;
  display: block !important;
  object-fit: contain !important;
}

/* パネル内セパレーター */
.salon-so-page .so-panel-sep {
  border: none !important;
  border-top: 1px solid var(--salon-border-light) !important;
  margin: var(--salon-space-xl) 0 !important;
}

/* 次回予約テキスト */
.salon-so-page .so-nextvisit-text {
  font-size: var(--salon-fs-sub) !important; /* 14px */
  color: var(--salon-text-body) !important;
  line-height: var(--salon-lh-relaxed) !important;
  margin: 0 !important;
}

/* 注意事項リスト */
.salon-so-page .serviceorderbox .contentsbox .gliconbotlist {
  border-top: 1px solid var(--salon-border-light) !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
  margin-top: var(--salon-space-lg) !important;
  padding: var(--salon-space-md) var(--salon-space-lg) !important;
  background: var(--salon-bg-card) !important;
  border-radius: var(--salon-radius-xs) !important;
}

.salon-so-page .serviceorderbox .contentsbox .gliconbotlist ul {
  margin: 0 !important;
  padding: 0 0 0 18px !important;
}

.salon-so-page .serviceorderbox .contentsbox .gliconbotlist ul li {
  padding: 6px 0 !important;
  font-size: var(--salon-fs-sub) !important;
  line-height: var(--salon-lh-normal) !important;
  color: var(--salon-text-sub) !important;
  list-style-type: square !important;
}

/* テキストと画像スプリット（ご来店・初回来店手続きなど） */
.salon-so-page .serviceorderbox .contentsbox .flaxboxtexim {
  display: flex !important;
  flex-direction: row !important;
  gap: var(--salon-space-xl) !important;
  align-items: center !important;
  margin-bottom: var(--salon-space-lg) !important;
}

.salon-so-page .serviceorderbox .contentsbox .flaxboxtexim p {
  flex: 1 1 auto !important;
  font-size: var(--salon-fs-body) !important;
  line-height: var(--salon-lh-relaxed) !important;
  color: var(--salon-text-body) !important;
  margin: 0 !important;
}

.salon-so-page .serviceorderbox .contentsbox .flaxboxtexim .leftimg {
  flex: 0 0 320px !important;
  max-width: 320px !important;
  overflow: hidden !important;
  border-radius: var(--salon-radius-xs) !important;
  border: 1px solid var(--salon-border-light) !important;
}

.salon-so-page .serviceorderbox .contentsbox .flaxboxtexim .leftimg img {
  width: 100% !important;
  height: 210px !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.6s ease !important;
}

.salon-so-page .serviceorderbox:hover .flaxboxtexim .leftimg img {
  transform: scale(1.03) !important;
}

/* ボタン（ピル型100px撤廃、上品な2px角丸ボタンへ） */
.salon-so-page .serviceorderbox .contentsbox .leftbutton {
  text-align: right !important;
  margin-top: var(--salon-space-xl) !important;
}

.salon-so-page .serviceorderbox .contentsbox .leftbutton p {
  border: 1px solid var(--salon-primary) !important;
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  border-radius: var(--salon-radius-xs) !important;
  padding: 14px var(--salon-space-xl) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: var(--salon-space-xs) !important;
  font-size: var(--salon-fs-sub) !important;
  letter-spacing: var(--salon-ls-wide) !important;
  margin: 0 !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.salon-so-page .serviceorderbox .contentsbox .leftbutton p span {
  color: #ffffff !important;
}

.salon-so-page .serviceorderbox .contentsbox .leftbutton:hover p {
  background: var(--salon-primary) !important;
  border-color: var(--salon-primary) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ==========================================================================
   ステップ間の洗練されたエディトリアル・フローインジケーター
   飛び出し線による事故感を完全撤廃。
   ボックス間の余白の中央に端正なサークルバッジ単体を自立配置し、
   上下のカードに1pxも干渉・重なり・飛び出しを生じさせない清潔な設計。
   ========================================================================== */

/* カード本体の z-index と背景色 */
.salon-so-page .salon-so-card,
.salon-so-page .serviceorderbox {
  position: relative !important;
  z-index: 2 !important;
  background: #ffffff !important;
}

/* フロー要素：カードとカードの隙間（72px）の完全中央に配置 */
.salon-so-page .salon-so-card .arrow-down,
.salon-so-page .serviceorderbox .arrow-down,
.salon-so-page .so-step-card .arrow-down,
.salon-so-page .arrow-down.so-step-flow,
.salon-so-page .so-step-flow {
  position: absolute !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  bottom: -72px !important; /* PCカード間隔72pxに完全合致 */
  width: 44px !important;
  height: 72px !important; /* 隙間の高さに一致 */
  z-index: 3 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 事故感の原因となっていた上下の突き抜け線および古い画像を完全撤廃 */
.salon-so-page .arrow-down::before,
.salon-so-page .serviceorderbox .arrow-down::before,
.salon-so-page .so-step-card .arrow-down::before,
.salon-so-page .arrow-down.so-step-flow::before,
.salon-so-page .so-step-flow::before,
.salon-so-page .arrow-down::after,
.salon-so-page .serviceorderbox .arrow-down::after,
.salon-so-page .arrow-down::after,
.salon-so-page .so-step-flow::after,
.salon-so-page .arrow-down img,
.salon-so-page .so-step-flow img {
  display: none !important;
  content: none !important;
}

/* 端正なフローサークルバッジ：カード間の余白に品良く浮かび、上下のボックスに一切触れない */
.salon-so-page .so-flow-circle {
  position: relative !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 1.5px solid var(--salon-primary) !important;
  color: var(--salon-primary) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 3px 10px rgba(40, 70, 60, 0.1) !important;
  transition: all 0.3s ease !important;
}

.salon-so-page .so-flow-circle i {
  color: var(--salon-primary) !important;
  font-size: 10px !important;
  line-height: 1 !important;
  display: block !important;
  transform: translateY(1px) !important;
}

/* カードホバー時のインタラクション */
.salon-so-page .salon-so-card:hover .so-flow-circle,
.salon-so-page .serviceorderbox:hover .so-flow-circle {
  background: var(--salon-primary) !important;
  border-color: var(--salon-primary) !important;
  box-shadow: 0 6px 16px rgba(100, 179, 154, 0.35) !important;
}
.salon-so-page .salon-so-card:hover .so-flow-circle i,
.salon-so-page .serviceorderbox:hover .so-flow-circle i {
  color: #ffffff !important;
}

/* 最終ステップの矢印非表示 */
.salon-so-page .salon-so-card:last-child .arrow-down,
.salon-so-page .salon-so-card:last-of-type .arrow-down,
.salon-so-page .serviceorderbox:last-child .arrow-down,
#step06 .arrow-down,
#step06 .so-step-flow {
  display: none !important;
}

/* レスポンシブ対応 */
@media (max-width: 991px) {
  .salon-so-page .salon-so-card .arrow-down,
  .salon-so-page .serviceorderbox .arrow-down,
  .salon-so-page .so-step-card .arrow-down,
  .salon-so-page .arrow-down.so-step-flow,
  .salon-so-page .so-step-flow {
    bottom: -56px !important;
    height: 56px !important;
  }
  .salon-so-page .so-flow-circle {
    width: 28px !important;
    height: 28px !important;
  }
  .salon-so-page .so-flow-circle i {
    font-size: 9px !important;
  }
}

@media (max-width: 767px) {
  .salon-so-page .salon-so-card .arrow-down,
  .salon-so-page .serviceorderbox .arrow-down,
  .salon-so-page .so-step-card .arrow-down,
  .salon-so-page .arrow-down.so-step-flow,
  .salon-so-page .so-step-flow {
    bottom: -40px !important;
    height: 40px !important;
  }
  .salon-so-page .so-flow-circle {
    width: 24px !important;
    height: 24px !important;
  }
  .salon-so-page .so-flow-circle i {
    font-size: 8px !important;
  }
}


/* 各メニューの流れ（ジェルネイル、ケア&ポリッシュ等） */
.salon-so-page .menuscm {
  font-family: var(--salon-font-mincho), var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h3) !important; /* 21px統一 */
  color: var(--salon-accent) !important;
  margin: var(--salon-space-2xl) 0 var(--salon-space-lg) 0 !important;
  position: relative !important;
  padding-left: var(--salon-space-md) !important;
}

.salon-so-page .menuscm::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 3px;
  background: var(--salon-primary);
  border-radius: var(--salon-radius-xs);
}

.salon-so-page .salon-so-panel,
.salon-so-page .dotbox {
  background: var(--salon-bg-card) !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  padding: var(--salon-space-xl) var(--salon-space-xl) !important;
  margin-bottom: var(--salon-space-lg) !important;
}

.salon-so-page .salon-so-sub-title,
.salon-so-page .dotbox h6.mntitle {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-h4) !important; /* 18px統一 */
  color: var(--salon-primary-dark) !important;
  font-weight: 600 !important;
  letter-spacing: var(--salon-ls-normal) !important;
  margin: 0 0 var(--salon-space-lg) 0 !important;
  padding-bottom: var(--salon-space-xs) !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
}

.salon-so-page .salon-so-subflow,
.salon-so-page .dotbox .flaxboxteximm {
  display: flex !important;
  flex-direction: row-reverse !important;
  gap: var(--salon-space-xl) !important;
  align-items: flex-start !important;
}

.salon-so-page .salon-so-subflow-img,
.salon-so-page .dotbox .flaxboxteximm .rightimg {
  flex: 0 0 280px !important;
  max-width: 280px !important;
  overflow: hidden !important;
  border-radius: 0px !important;
  border: 1px solid var(--salon-border-light) !important;
}

.salon-so-page .salon-so-subflow-img img,
.salon-so-page .dotbox .flaxboxteximm .rightimg img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 0px !important;
}

.salon-so-page .salon-so-subflow-list,
.salon-so-page .dotbox .menuorderpo {
  flex: 1 1 auto !important;
}

.salon-so-page .salon-so-subflow-list ul,
.salon-so-page .dotbox .menuorderpo ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ==========================================================================
   各メニューの流れ：四角い箱・矢印を撤廃し、上質な垂直エディトリアル・タイムラインへ
   ========================================================================== */
.salon-so-page .salon-so-subflow-list ul,
.salon-so-page .dotbox .menuorderpo ul {
  list-style: none !important;
  padding: 0 0 0 52px !important;
  margin: 0 !important;
  position: relative !important;
  counter-reset: subflow-step;
}

/* タイムラインの垂直軸線（上品なグラデーションの1本線） */
.salon-so-page .salon-so-subflow-list ul::before,
.salon-so-page .dotbox .menuorderpo ul::before {
  content: "" !important;
  position: absolute !important;
  left: 17px !important;
  top: 16px !important;
  bottom: 24px !important;
  width: 1.5px !important;
  background: linear-gradient(
    to bottom,
    var(--salon-primary) 0%,
    rgba(100, 179, 154, 0.25) 85%,
    transparent 100%
  ) !important;
  z-index: 1 !important;
}

/* 各工程行：四角い枠線を全廃。すっきりとした余白とヘアラインで洗練 */
.salon-so-page .salon-so-subflow-list ul li:not(.salon-so-subflow-arrow):not(.salon-so-subflow-note),
.salon-so-page .dotbox .menuorderpo ul li:not(.marrow-down):not(.grayboxt) {
  counter-increment: subflow-step;
  position: relative !important;
  padding: 14px 0 16px 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(40, 70, 60, 0.08) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: var(--salon-fs-sub) !important; /* 14px */
  font-weight: 500 !important;
  color: var(--salon-text-body) !important;
  line-height: 1.7 !important;
  transition: color 0.2s ease !important;
}

.salon-so-page .salon-so-subflow-list ul li:not(.salon-so-subflow-arrow):not(.salon-so-subflow-note):last-of-type,
.salon-so-page .dotbox .menuorderpo ul li:not(.marrow-down):not(.grayboxt):last-of-type {
  border-bottom: none !important;
}

/* 左側のステップ番号サークルバッジ（01, 02, 03...） */
.salon-so-page .salon-so-subflow-list ul li:not(.salon-so-subflow-arrow):not(.salon-so-subflow-note)::before,
.salon-so-page .dotbox .menuorderpo ul li:not(.marrow-down):not(.grayboxt)::before {
  content: counter(subflow-step, decimal-leading-zero) !important;
  position: absolute !important;
  left: -52px !important;
  top: 12px !important;
  z-index: 2 !important;
  width: 35px !important;
  height: 35px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 1.5px solid var(--salon-primary) !important;
  color: var(--salon-primary) !important;
  font-family: var(--salon-font-en), sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 3px 8px rgba(40, 70, 60, 0.08) !important;
  transition: all 0.25s ease !important;
}

.salon-so-page .salon-so-subflow-list ul li:not(.salon-so-subflow-arrow):not(.salon-so-subflow-note):hover::before,
.salon-so-page .dotbox .menuorderpo ul li:not(.marrow-down):not(.grayboxt):hover::before {
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(100, 179, 154, 0.35) !important;
}

/* 補足アノテーション（※パラジェルの場合等） */
.salon-so-page .salon-so-subflow-annotation {
  font-size: var(--salon-fs-caption) !important; /* 13px */
  color: var(--salon-text-muted) !important;
  font-weight: 400 !important;
  display: block !important;
  margin-top: 4px !important;
}

/* タイムライン化により不要になった野暮ったい中空矢印を完全非表示 */
.salon-so-page .salon-so-subflow-arrow,
.salon-so-page .dotbox .menuorderpo ul li.marrow-down {
  display: none !important;
}

/* 注釈テキスト：AI特有の横ライン付きボックスを全面撤廃し、枠線・背景なしの自然な注記へ */
.salon-so-page .salon-so-subflow-list ul li.salon-so-subflow-note,
.salon-so-page .dotbox .menuorderpo ul li.grayboxt {
  background: transparent !important;
  border: none !important;
  border-left: none !important;
  border-radius: 0 !important;
  color: var(--salon-text-muted) !important;
  font-size: var(--salon-fs-caption) !important; /* 13px */
  font-weight: 500 !important;
  line-height: 1.75 !important;
  padding: 16px 0 0 0 !important;
  margin: 14px 0 0 -52px !important;
  box-shadow: none !important;
  position: relative !important;
}

.salon-so-page .salon-so-subflow-list ul li.salon-so-subflow-note::before,
.salon-so-page .dotbox .menuorderpo ul li.grayboxt::before {
  content: none !important;
  display: none !important;
}

/* ステップカード内のアクションボタン（.so-action-wrap / .so-action-btn） */
.salon-so-page .so-action-wrap {
  margin-top: var(--salon-space-xl) !important; /* 32px */
  display: flex !important;
  justify-content: flex-start !important;
}

.salon-so-page .so-action-btn,
.salon-so-page a.so-action-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: auto !important;
  padding: 11px 28px !important;
  border: 1px solid var(--salon-primary) !important;
  color: var(--salon-primary) !important;
  background: #ffffff !important;
  font-size: var(--salon-fs-sub) !important; /* 14px */
  font-weight: 600 !important;
  letter-spacing: var(--salon-ls-normal) !important;
  text-decoration: none !important;
  border-radius: 0px !important;
  box-shadow: none !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

.salon-so-page .so-action-btn:hover,
.salon-so-page a.so-action-btn:hover {
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  border-color: var(--salon-primary) !important;
  transform: none !important;
}

.salon-so-page .so-action-btn i {
  font-size: 13px !important;
  color: inherit !important;
  transition: transform 0.2s ease !important;
}

.salon-so-page .so-action-btn:hover i {
  transform: translateX(3px) !important;
}

/* レスポンシブ */
@media (max-width: 991px) {
  .salon-so-page .salon-so-card,
  .salon-so-page .serviceorderbox {
    margin-bottom: var(--salon-space-2xl) !important;
  }
  .salon-so-page .so-step-badge {
    left: var(--salon-space-lg) !important;
  }
  .salon-so-page .so-split-inner,
  .salon-so-page .salon-so-card.so-step-right-img .so-split-inner,
  .salon-so-page .serviceorderbox.so-step-right-img .so-split-inner,
  .salon-so-page .so-split-inner.so-step-right-img {
    flex-direction: column !important;
  }
  .salon-so-page .so-photo-col {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    height: 280px !important;
    min-height: 280px !important;
  }
  .salon-so-page .so-text-col {
    padding: var(--salon-space-xl) var(--salon-space-lg) !important;
  }
  .salon-so-page .so-subflow-wrap {
    padding: var(--salon-space-lg) var(--salon-space-md) !important;
  }
  .salon-so-page .salon-so-subflow,
  .salon-so-page .dotbox .flaxboxteximm {
    flex-direction: column !important;
  }
  .salon-so-page .salon-so-subflow-img,
  .salon-so-page .dotbox .flaxboxteximm .rightimg {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .salon-so-page .salon-so-subflow-list ul,
  .salon-so-page .dotbox .menuorderpo ul {
    padding-left: 44px !important;
  }
  .salon-so-page .salon-so-subflow-list ul::before,
  .salon-so-page .dotbox .menuorderpo ul::before {
    left: 14px !important;
  }
  .salon-so-page .salon-so-subflow-list ul li:not(.salon-so-subflow-arrow):not(.salon-so-subflow-note)::before,
  .salon-so-page .dotbox .menuorderpo ul li:not(.marrow-down):not(.grayboxt)::before {
    left: -44px !important;
    width: 30px !important;
    height: 30px !important;
    font-size: 10px !important;
    top: 14px !important;
  }
  .salon-so-page .salon-so-subflow-list ul li.salon-so-subflow-note,
  .salon-so-page .dotbox .menuorderpo ul li.grayboxt {
    margin-left: -44px !important;
    padding: 12px 0 0 0 !important;
    background: transparent !important;
    border: none !important;
    border-left: none !important;
  }
}

/* ==========================================================
   Section 17: 最低文字サイズ（13px未満禁止）の完全保証 & フォームUI改善
   スマートフォンや高解像度端末における可読性と品格を担保
   ========================================================== */
/* お問い合わせフォーム（.formArea）の必須・任意バッジ（旧11pxから13pxへ底上げ） */
.formArea dt.st.must:after,
.formArea dt.dayTitle.must:after,
.formArea dt.st.free:after,
.formArea dt.dayTitle.free:after {
  font-family: var(--salon-font-ja) !important;
  font-size: var(--salon-fs-caption) !important; /* 13px */
  padding: 3px 12px !important;
  border-radius: var(--salon-radius-xs) !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
}

.formArea dt.st.must:after,
.formArea dt.dayTitle.must:after {
  background: var(--salon-primary) !important; /* 品格あるフォレストグリーン */
}

.formArea dt.st.free:after,
.formArea dt.dayTitle.free:after {
  background-color: var(--salon-text-light) !important;
}

/* フォーム内フォーマット・注意書き（旧11px, 0.79remから13px〜14pxへ底上げ） */
.formArea .format {
  font-size: var(--salon-fs-caption) !important; /* 13px (旧11pxから引き上げ) */
  color: var(--salon-text-sub) !important;
  line-height: var(--salon-lh-normal) !important;
}

.formArea .attention {
  font-size: var(--salon-fs-sub) !important; /* 14px (旧0.79remから引き上げ) */
  color: var(--salon-text-body) !important;
  line-height: var(--salon-lh-normal) !important;
}

/* サイト全体における極小テキスト（13px未満）の強制リフトアップ */
small,
caption,
.wp-caption-text,
.comment-notes,
.logged-in-as,
.form-allowed-tags {
  font-size: var(--salon-fs-caption) !important; /* 最低13pxを保証 */
}

/* 施術の流れページの注意書き・注記も可読性を高める */
.salon-so-page .serviceorderbox .contentsbox .gliconbotlist ul li {
  font-size: var(--salon-fs-sub) !important; /* 14px */
  line-height: var(--salon-lh-normal) !important;
}

/* ==========================================================
   Section 18: 浮いた装飾要素（緑帯 .page-header / ◇オーナメント）の完全撤廃
   不要な飾りを排し、写真とタイポグラフィが際立つ本質的なサロンデザインへ
   ========================================================== */

/* 1. 旧テーマ標準のベタ塗り見出し帯（.page-header）を完全撤廃 */
.page-header,
section.page-header,
body .page-header {
  display: none !important;
}

/* ページヘッダー撤廃に伴うメインコンテンツ最上部の余白調整 */
.main_content {
  padding-top: var(--salon-space-xl) !important; /* 32px */
}

@media (max-width: 768px) {
  .main_content {
    padding-top: var(--salon-space-md) !important; /* 16px */
  }
}

/* 2. ヒーローセクション内の浮いたオーナメント飾り（◇と横線）を撤廃 */
.salon-hero-ornament {
  display: none !important;
}

/* オーナメント撤廃に伴う見出しとリード文の洗練されたスペーシング */
.salon-hero-content .salon-hero-ja {
  margin-bottom: var(--salon-space-md) !important;
}

/* ==========================================================
   Section 19: Modern Luxury Back to Top (洗練されたフローティングサークル)
   旧式の黒い四角ボタンを完全刷新し、上質なすりガラス円形デザインへ
   ========================================================== */
.backToTop,
a.backToTop {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important; /* 完全な美しい真円 */
  background: rgba(255, 255, 255, 0.94) !important; /* 上質なすりガラス調ホワイト */
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(53, 124, 103, 0.22) !important; /* 繊細なサロンフォレストの縁取り */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  position: fixed !important;
  bottom: 28px !important;
  right: 28px !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  text-decoration: none !important;
  color: var(--salon-primary-dark) !important;
  z-index: 99999 !important;
  transform: scale(1) translateY(0) !important;
  -webkit-transform: scale(1) translateY(0) !important;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
  cursor: pointer !important;
  outline: none !important;
}

/* jQuery fadeIn による display: block を flex に補正して完全中央配置 */
.backToTop[style*="display: block"],
.backToTop[style*="display: inline"],
.backToTop[style*="opacity"] {
  display: flex !important;
}

.backToTop i {
  font-size: 1.05rem !important;
  line-height: 1 !important;
  color: var(--salon-primary-dark) !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s ease !important;
  margin: 0 !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ホバー時のカラー反転（位置移動なし） */
.backToTop:hover,
a.backToTop:hover {
  background: var(--salon-primary) !important; /* サロンのディープフォレスト */
  border-color: var(--salon-primary) !important;
  transform: none !important;
  -webkit-transform: none !important;
  box-shadow: 0 4px 12px rgba(36, 62, 52, 0.15) !important;
}

.backToTop:hover i {
  color: #ffffff !important;
  transform: none !important;
}

/* スマートフォン表示でのサイズと余白の最適化 */
@media (max-width: 768px) {
  .backToTop,
  a.backToTop {
    width: 42px !important;
    height: 42px !important;
    bottom: 20px !important;
    right: 20px !important;
  }
  .backToTop i {
    font-size: 0.95rem !important;
  }
}

/* ==========================================================
   Section 20: 統一サブページヘッダー（Minimal Luxury Subpage Hero）
   全サブページで一貫した欧文・和文タイトル・アクセント線・パンくずナビゲーション
   ========================================================== */
.salon-subpage-hero {
  background: linear-gradient(180deg, #f8faf9 0%, #edf3f0 100%) !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
  padding: 56px 20px 42px !important;
  margin-bottom: 48px !important;
  position: relative;
  text-align: center;
}

.salon-subpage-hero .salon-subpage-hero-inner {
  max-width: var(--salon-content-max-width);
  margin: 0 auto;
}

.salon-subpage-hero-en {
  display: block;
  font-family: var(--salon-font-en) !important;
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.24em !important;
  color: var(--salon-primary) !important;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.salon-subpage-hero-title {
  font-family: var(--salon-font-ja) !important;
  font-size: clamp(24px, 2.8vw, 34px) !important;
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  letter-spacing: 0.08em !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

.salon-subpage-hero-line {
  width: 40px;
  height: 2px;
  background: var(--salon-primary);
  margin: 16px auto 0;
}

.salon-subpage-breadcrumbs {
  margin-top: 22px;
}

.salon-breadcrumbs-list {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: var(--salon-fs-caption); /* 13px */
  color: var(--salon-text-sub);
}

.salon-breadcrumbs-list a {
  color: var(--salon-text-sub);
  text-decoration: none;
  transition: var(--salon-transition);
}

.salon-breadcrumbs-list a:hover {
  color: var(--salon-primary) !important;
}

.salon-breadcrumbs-list .sep {
  font-size: 10px;
  color: var(--salon-text-light);
}

.salon-breadcrumbs-list .current {
  color: var(--salon-text-main);
  font-weight: 500;
}

/* お知らせ詳細専用パンくずバー */
.salon-single-breadcrumb-wrap {
  background: var(--salon-bg-main);
  border-bottom: 1px solid var(--salon-border-light);
  padding: 14px 0;
  margin-bottom: 40px;
}

.salon-single-breadcrumb .salon-breadcrumbs-list {
  justify-content: flex-start;
}


/* ==========================================================
   Section 21: お知らせ詳細（Single Post Editorial Layout - 840px）
   ========================================================== */
.salon-news-single {
  padding-bottom: 0 !important;
}

.salon-news-single .salon-editorial-wrap {
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅 */
  width: 100% !important;
  margin: 0 auto !important;
}

.salon-news-single .salon-news-article {
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  box-shadow: 0 4px 20px rgba(40, 70, 60, 0.04) !important;
  padding: 56px 48px !important; /* 1200px標準コンテナに調和するパディング */
  margin-bottom: 64px !important; /* 規約準拠：サブコンテンツ末尾 64px */
}

@media (max-width: 768px) {
  .salon-news-single .salon-news-article {
    padding: 32px 20px !important; /* 規約準拠：SP 20px左右パディング */
    margin-bottom: 36px !important; /* 規約準拠：SP末尾 36px */
  }
}

.salon-news-single .salon-news-header {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--salon-border-light);
}

.salon-news-single .salon-news-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
}

.salon-news-single .salon-news-date {
  font-family: var(--salon-font-sans) !important;
  font-size: 14px !important;
  color: var(--salon-text-sub) !important;
  letter-spacing: 0.06em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.salon-news-single .salon-news-cat {
  display: inline-block;
  background: var(--salon-primary-light) !important;
  color: var(--salon-primary-dark) !important;
  font-size: 12.5px !important;
  font-weight: 500;
  padding: 3px 12px;
  border-radius: 0px !important;
  letter-spacing: 0.05em;
}

.salon-news-single .salon-news-title {
  font-family: var(--salon-font-ja) !important;
  font-size: clamp(22px, 2.5vw, 28px) !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  color: var(--salon-text-main) !important;
  letter-spacing: 0.04em;
  margin: 0 !important;
}

.salon-news-single .salon-news-thumbnail {
  margin-bottom: 36px;
}

.salon-news-single .salon-news-thumb-img {
  width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: cover;
  border-radius: 0px !important;
  border: 1px solid var(--salon-border-light);
}

/* 本文エディトリアル組版 */
.salon-news-content {
  font-size: var(--salon-fs-body) !important; /* 15.5px */
  line-height: 2 !important;
  color: var(--salon-text-body) !important;
  letter-spacing: 0.04em;
}

.salon-news-content p {
  margin-bottom: 2em !important;
  text-wrap: pretty !important;
  word-break: auto-phrase !important;
}

.salon-news-content h2 {
  font-size: 1.25rem !important; /* 20px */
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  padding: 0 0 10px 0 !important;
  background: transparent !important;
  border-left: none !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  margin: 44px 0 20px !important;
}

.salon-news-content h3 {
  font-size: 1.12rem !important; /* 18px */
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid var(--salon-border-light) !important;
  margin: 36px 0 16px !important;
}

.salon-news-content ul,
.salon-news-content ol {
  padding-left: 24px;
  margin-bottom: 28px;
  line-height: 1.85;
}

.salon-news-content li {
  margin-bottom: 8px;
}

.salon-news-content blockquote {
  border-left: none !important;
  border-top: 1px solid var(--salon-border-light);
  border-bottom: 1px solid var(--salon-border-light);
  background: var(--salon-bg-sub);
  padding: 18px 24px;
  margin: 28px 0;
  font-style: normal;
  color: var(--salon-text-sub);
}

.salon-news-content img {
  max-width: 100%;
  height: auto;
  border-radius: 0px !important;
  margin: 20px 0;
}

/* 前後の記事ナビゲーション */
.salon-news-footer {
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid var(--salon-border-light);
}

.salon-news-single .post-navigation .nav-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 24px;
}

@media (max-width: 576px) {
  .salon-news-single .post-navigation .nav-links {
    grid-template-columns: 1fr;
  }
}

.salon-news-single .nav-previous a,
.salon-news-single .nav-next a {
  display: block;
  padding: 16px 20px;
  background: var(--salon-bg-sub);
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  text-decoration: none;
  transition: var(--salon-transition);
}

.salon-news-single .nav-previous a:hover,
.salon-news-single .nav-next a:hover {
  background: #ffffff;
  border-color: var(--salon-primary);
}

.salon-news-single .salon-nav-direction {
  display: block;
  font-size: 12.5px;
  color: var(--salon-primary);
  font-weight: 500;
  margin-bottom: 4px;
}

.salon-news-single .salon-nav-title {
  display: block;
  font-size: 14px;
  color: var(--salon-text-main);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 一覧へ戻るボタン */
.salon-news-back-wrap {
  margin-top: 0;
}

.salon-btn-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 32px;
  background: transparent;
  border: 1px solid var(--salon-primary) !important;
  color: var(--salon-primary) !important;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
  border-radius: 0px !important;
  text-decoration: none !important;
  transition: var(--salon-transition);
}

.salon-btn-back:hover {
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  border-color: var(--salon-primary) !important;
}


/* ==========================================================
   Section 22: お知らせ一覧（News Archive Layout - 960px）
   ========================================================== */
.salon-news-archive {
  padding-bottom: 80px;
}

.salon-news-archive .salon-archive-wrap {
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅 */
  width: 100% !important;
  margin: 0 auto !important;
}

.salon-news-list {
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  box-shadow: 0 4px 20px rgba(40, 70, 60, 0.04);
  margin-bottom: 40px;
}

.salon-news-item {
  border-bottom: 1px solid var(--salon-border-subtle);
  transition: var(--salon-transition);
}

.salon-news-item:last-child {
  border-bottom: none;
}

.salon-news-item-link {
  display: flex;
  align-items: center;
  padding: 24px 32px;
  text-decoration: none !important;
  color: var(--salon-text-main);
  transition: var(--salon-transition);
}

@media (max-width: 768px) {
  .salon-news-item-link {
    padding: 18px 20px;
    flex-direction: column;
    align-items: flex-start;
  }
}

.salon-news-item:hover .salon-news-item-link {
  background: #f8faf9;
}

.salon-news-item-thumb {
  flex: 0 0 160px;
  max-width: 160px;
  height: 110px;
  margin-right: 28px;
  overflow: hidden;
  border: 1px solid var(--salon-border-light);
}

@media (max-width: 768px) {
  .salon-news-item-thumb {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
    height: 180px;
    margin-right: 0;
    margin-bottom: 16px;
  }
}

.salon-news-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0px !important;
  transition: transform 0.4s ease;
}

.salon-news-item:hover .salon-news-img {
  transform: scale(1.04);
}

.salon-news-item-content {
  flex: 1;
  min-width: 0;
}

.salon-news-item-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.salon-news-item-date {
  font-family: var(--salon-font-sans) !important;
  font-size: 13.5px !important;
  color: var(--salon-text-sub);
  letter-spacing: 0.06em;
}

.salon-news-item-cat {
  display: inline-block;
  background: var(--salon-primary-light);
  color: var(--salon-primary-dark);
  font-size: 12px;
  font-weight: 500;
  padding: 2px 10px;
  border-radius: 0px !important;
  letter-spacing: 0.04em;
}

.salon-news-item-title {
  font-family: var(--salon-font-ja) !important;
  font-size: 1.05rem !important; /* 16.8px */
  font-weight: 500 !important;
  color: var(--salon-text-main) !important;
  line-height: 1.5 !important;
  margin: 0 0 8px 0 !important;
  transition: color 0.25s ease;
}

.salon-news-item:hover .salon-news-item-title {
  color: var(--salon-primary) !important;
}

.salon-news-item-excerpt {
  font-size: 14px;
  color: var(--salon-text-sub);
  line-height: 1.7;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.salon-news-item-arrow {
  flex: 0 0 32px;
  text-align: right;
  color: var(--salon-text-light);
  font-size: 14px;
  transition: var(--salon-transition);
}

@media (max-width: 768px) {
  .salon-news-item-arrow {
    display: none;
  }
}

.salon-news-item:hover .salon-news-item-arrow {
  color: var(--salon-primary);
}

/* ページネーション（シャープエッジ） */
.salon-pagination-wrap .pagination {
  display: inline-flex;
  gap: 6px;
  margin: 0 auto;
}

.salon-pagination-wrap .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  color: var(--salon-text-main);
  font-family: var(--salon-font-sans);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: var(--salon-transition);
}

.salon-pagination-wrap .page-numbers:hover {
  background: var(--salon-primary-light);
  border-color: var(--salon-primary);
  color: var(--salon-primary-dark);
}

.salon-pagination-wrap .page-numbers.current {
  background: var(--salon-primary) !important;
  border-color: var(--salon-primary) !important;
  color: #ffffff !important;
}


/* ==========================================================
   Section 23: サロンの特徴（About Us Editorial Split Layout）
   ========================================================== */
.salon-about-page {
  padding-bottom: 80px;
}

.salon-about-intro {
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅に完全一致 */
  width: 100% !important;
  margin: 0 auto 64px !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}

.salon-about-lead {
  font-size: 1.05rem !important; /* 16.8px */
  line-height: 2.2 !important;
  color: var(--salon-text-body) !important;
  letter-spacing: 0.04em !important;
}

.salon-about-lead span {
  display: inline-block !important;
}

.salon-about-block {
  margin-bottom: 64px;
}

.salon-about-row {
  display: flex;
  align-items: stretch;
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  box-shadow: 0 4px 20px rgba(40, 70, 60, 0.04);
  overflow: hidden;
}

.salon-about-reverse .salon-about-row {
  flex-direction: row-reverse;
}

@media (max-width: 991px) {
  .salon-about-row,
  .salon-about-reverse .salon-about-row {
    flex-direction: column !important;
  }
}

.salon-about-col-img {
  flex: 0 0 44%;
  min-height: 380px;
  position: relative;
}

@media (max-width: 991px) {
  .salon-about-col-img {
    min-height: 280px;
    height: 280px;
  }
}

.salon-about-img-wrap {
  width: 100%;
  height: 100%;
}

.salon-about-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0px !important;
}

.salon-about-col-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 44px 40px;
}

@media (max-width: 768px) {
  .salon-about-col-text {
    padding: 32px 24px;
  }
}

.salon-about-header {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--salon-border-light);
}

.salon-about-num {
  font-family: var(--salon-font-en) !important;
  font-size: 3rem !important;
  font-weight: 400 !important;
  color: var(--salon-primary) !important;
  line-height: 0.9;
  letter-spacing: 0.02em;
}

.salon-about-title-wrap {
  flex: 1;
}

.salon-about-en {
  display: block;
  font-family: var(--salon-font-en) !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.2em;
  color: var(--salon-text-sub);
  margin-bottom: 4px;
  text-transform: uppercase;
}

.salon-about-title {
  font-family: var(--salon-font-ja) !important;
  font-size: 1.35rem !important; /* 21.6px */
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  margin: 0 !important;
  line-height: 1.4;
}

.salon-about-points {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.salon-about-point {
  padding-left: 16px;
  border-left: 2px solid var(--salon-primary);
}

.salon-point-title {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  margin: 0 0 6px 0 !important;
}

.salon-point-text {
  font-size: 14.5px !important;
  color: var(--salon-text-sub) !important;
  line-height: 1.85 !important;
  margin-bottom: 0 !important;
}

.salon-about-action {
  margin-top: 28px;
}


/* ==========================================================
   Section 24: 採用情報（Recruit Layout）
   ========================================================== */
.salon-recruit-page {
  padding-bottom: 80px;
}

.salon-recruit-hero-box {
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  padding: 48px 40px;
  box-shadow: 0 4px 20px rgba(40, 70, 60, 0.04);
  margin-bottom: 64px;
}

.salon-recruit-tag {
  display: inline-block;
  font-family: var(--salon-font-en);
  font-size: 0.9rem;
  letter-spacing: 0.22em;
  color: var(--salon-primary);
  margin-bottom: 12px;
}

.salon-recruit-hero-title {
  font-family: var(--salon-font-ja);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 500;
  color: var(--salon-text-main);
  margin-bottom: 16px;
}

.salon-recruit-lead {
  font-size: 1rem;
  line-height: 2;
  color: var(--salon-text-sub);
  max-width: 100% !important;
  margin: 0 auto;
}

.salon-recruit-section {
  margin-bottom: 72px;
}

.salon-recruit-section-header {
  margin-bottom: 40px;
}

.salon-recruit-section-header .sec-en {
  display: block;
  font-family: var(--salon-font-en);
  font-size: 0.95rem;
  letter-spacing: 0.2em;
  color: var(--salon-primary);
  margin-bottom: 4px;
}

.salon-recruit-section-header .sec-title {
  font-family: var(--salon-font-ja);
  font-size: 1.45rem;
  font-weight: 500;
  color: var(--salon-text-main);
  margin: 0;
}

.salon-recruit-section-header .sec-line {
  width: 36px;
  height: 2px;
  background: var(--salon-primary);
  margin: 12px auto 0;
}

.salon-recruit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 28px;
}

.salon-recruit-card {
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  box-shadow: 0 4px 16px rgba(40, 70, 60, 0.04);
  overflow: hidden;
}

.salon-recruit-card .card-img-wrap {
  position: relative;
  height: 200px;
  overflow: hidden;
}

.salon-recruit-card .card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0px !important;
}

.salon-recruit-card .card-num {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 34px;
  height: 34px;
  background: var(--salon-primary);
  color: #ffffff;
  font-family: var(--salon-font-sans);
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0px !important;
}

.salon-recruit-card .card-body {
  padding: 24px 22px;
}

.salon-recruit-card .card-title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--salon-text-main);
  margin-bottom: 10px;
}

.salon-recruit-card .card-text {
  font-size: 14px;
  line-height: 1.85;
  color: var(--salon-text-sub);
  margin-bottom: 0;
}

.salon-recruit-table-wrap {
  background: #ffffff;
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  box-shadow: 0 4px 20px rgba(40, 70, 60, 0.04);
  padding: 8px;
}

.salon-recruit-cta {
  background: linear-gradient(135deg, #f8faf9 0%, #edf4f1 100%);
  border: 1px solid var(--salon-border-light);
  border-radius: 0px !important;
  padding: 56px 32px;
}

.salon-recruit-cta .cta-sub {
  display: block;
  font-family: var(--salon-font-en);
  font-size: 0.9rem;
  letter-spacing: 0.2em;
  color: var(--salon-primary);
  margin-bottom: 8px;
}

.salon-recruit-cta .cta-title {
  font-family: var(--salon-font-ja);
  font-size: clamp(20px, 2.2vw, 25px);
  font-weight: 500;
  color: var(--salon-text-main);
  margin-bottom: 12px;
}

.salon-recruit-cta .cta-desc {
  font-size: 15px;
  line-height: 1.9;
  color: var(--salon-text-sub);
  margin-bottom: 28px;
}


/* ==========================================================
   Section 25: FAQアコーディオン＆感染症対策ページの上質化
   ========================================================== */
/* (FAQ accordion styles consolidated to Section 30 below) */

/* Covid-19 ページの派手なインライン色の上書き・サロン調和 */
.page-id-232 .wp-block-cover {
  background-color: var(--salon-bg-sub) !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  box-shadow: 0 4px 16px rgba(40, 70, 60, 0.04) !important;
  padding: 40px 32px !important;
}

.page-id-232 .wp-block-heading {
  background-color: transparent !important;
  color: var(--salon-text-main) !important;
  font-family: var(--salon-font-ja) !important;
}

.page-id-232 .has-vivid-red-color {
  color: var(--salon-primary-dark) !important;
}

.page-id-232 .wp-block-paragraph {
  background-color: transparent !important;
  color: var(--salon-text-body) !important;
  line-height: 2 !important;
}


/* ==========================================================
   Section 26: サイト全体のボタンスタイル統一（ロゴグリーン #64b39a / 0px角丸 / 静止ホバー）
   ========================================================== */
.salon-btn-primary,
a.salon-btn-primary,
button.salon-btn-primary,
.wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  background: var(--salon-primary) !important;
  border: 1px solid var(--salon-primary) !important;
  color: #ffffff !important;
  border-radius: 0px !important;
  padding: 14px 36px !important;
  font-size: 14.5px !important;
  letter-spacing: 0.12em !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background-color 0.25s ease, border-color 0.25s ease !important;
  cursor: pointer !important;
}

.salon-btn-primary:hover,
a.salon-btn-primary:hover,
button.salon-btn-primary:hover,
.wp-block-button__link:hover {
  background: var(--salon-primary-dark) !important;
  border-color: var(--salon-primary-dark) !important;
  color: #ffffff !important;
  transform: none !important;
}

.salon-btn-outline,
a.salon-btn-outline {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: transparent !important;
  border: 1px solid var(--salon-primary) !important;
  color: var(--salon-primary) !important;
  border-radius: 0px !important;
  padding: 12px 28px !important;
  font-size: 14px !important;
  letter-spacing: 0.1em !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background-color 0.25s ease, color 0.25s ease !important;
  cursor: pointer !important;
}

.salon-btn-outline:hover,
a.salon-btn-outline:hover {
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  border-color: var(--salon-primary) !important;
  transform: none !important;
}

/* ホバー時の translateY 移動の全面禁止 */
.button:hover,
.btn:hover,
a.btn:hover,
.salon-btn-primary:hover,
.salon-btn-outline:hover,
.menulistboxon:hover,
.gtopmenulist a:hover,
.hero-anchor-btn:hover,
.so-step-card:hover,
.salon-about-row:hover,
.salon-ct-book-col:hover,
.salon-news-item:hover {
  transform: none !important;
}

/* ==========================================================
   27. Subpage Unified Content Widths & Strict Editorial Standards
   全サブページで散らかりと間延びを完全に防ぐ厳格な幅統制
   ========================================================== */
/* 全サブページ共通標準コンテナ幅（1200px中央配置・左右エッジ完全一致） */
.salon-editorial-wrap,
.salon-news-single .primary,
.salon-editorial-container,
.salon-archive-wrap,
.salon-news-archive .primary,
.page-id-226 .primary,
.page-id-226 .site-content,
.salon-faq-container {
  max-width: var(--salon-content-max-width) !important; /* 1200px */
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  width: 100% !important;
}

/* 標準コンテナ幅（1200px中央配置） */
.salon-ct-page,
.salon-so-page,
.salon-about-page,
.page-id-1130 .inside-article,
.salon-recruit-wrap {
  max-width: var(--salon-content-max-width) !important; /* 1200px */
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 全サブページの inside-article 余白適正化（左右0pxで親コンテナ1200pxに完全一致） */
.salon-so-page,
.salon-ct-page,
.salon-about-page,
.page-id-1130 .inside-article,
.page-id-1128 .inside-article,
.page-id-1074 .inside-article,
.page-id-220 .inside-article,
.page-id-266 .inside-article,
.salon-recruit-wrap {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 64px !important;
  box-shadow: none !important;
  background: transparent !important;
  border: none !important;
}

/* コロナ対策ページ（840px エディトリアル統一規約準拠） */
.page-id-232 .container > .row {
  justify-content: center !important;
}

.page-id-232 .primary,
.page-id-232 .site-content {
  max-width: var(--salon-content-max-width) !important; /* 1200px */
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.page-id-232 .inside-article {
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  box-shadow: 0 4px 20px rgba(40, 70, 60, 0.04) !important;
  padding: 48px 32px !important; /* 規約準拠：左右32px */
  margin-bottom: 64px !important;
  box-sizing: border-box !important;
}

@media (max-width: 767px) {
  .page-id-232 .inside-article {
    padding: 32px 20px !important;
  }
}

/* ==========================================================
   28. Treatment Flow & Contact Us Intro Split Cards
   共通サブページヒーローと完璧に調和するラグジュアリー・スプリット導入カード
   ========================================================== */
.salon-so-intro-split,
.salon-ct-intro-split {
  display: flex !important;
  align-items: stretch !important;
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  box-shadow: 0 4px 20px rgba(40, 70, 60, 0.04) !important;
  margin-bottom: 56px !important;
  overflow: hidden !important;
}

@media (max-width: 991px) {
  .salon-so-intro-split,
  .salon-ct-intro-split {
    flex-direction: column !important;
  }
}

.salon-so-intro-split .salon-hero-img-col,
.salon-ct-intro-split .salon-hero-img-col {
  flex: 0 0 44% !important;
  min-height: 340px !important;
  position: relative !important;
  overflow: hidden !important;
}

@media (max-width: 991px) {
  .salon-so-intro-split .salon-hero-img-col,
  .salon-ct-intro-split .salon-hero-img-col {
    min-height: 240px !important;
    height: 240px !important;
  }
}

.salon-so-intro-split .salon-hero-photo,
.salon-ct-intro-split .salon-hero-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 0px !important;
}

.salon-so-intro-split .salon-hero-text-col,
.salon-ct-intro-split .salon-hero-text-col {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 44px 40px !important;
  background: #ffffff !important;
}

@media (max-width: 768px) {
  .salon-so-intro-split .salon-hero-text-col,
  .salon-ct-intro-split .salon-hero-text-col {
    padding: 32px 24px !important;
  }
}

.salon-so-intro-split .salon-hero-ja,
.salon-ct-intro-split .salon-hero-ja {
  font-family: var(--salon-font-ja) !important;
  font-size: 1.45rem !important;
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 12px !important;
}

.salon-so-intro-split .salon-hero-desc,
.salon-ct-intro-split .salon-hero-desc {
  font-size: 0.95rem !important;
  line-height: 1.9 !important;
  color: var(--salon-text-body) !important;
  margin-bottom: 24px !important;
}

/* 施術の流れ ステップカードの角丸0pxとシャープ化 */
.so-step-card {
  border-radius: 0px !important;
  border: 1px solid var(--salon-border-light) !important;
  box-shadow: 0 4px 16px rgba(40, 70, 60, 0.04) !important;
  margin-bottom: 48px !important;
}

.so-step-photo {
  border-radius: 0px !important;
}

.so-step-badge {
  border-radius: 0px !important;
  background: var(--salon-primary) !important;
  color: #ffffff !important;
}

/* お問い合わせ 予約パネルカードの角丸0pxとシャープ化 */
.salon-ct-book-section {
  border-radius: 0px !important;
  border: 1px solid var(--salon-border-light) !important;
  background: #ffffff !important;
  padding: 48px 36px !important;
  margin-bottom: 56px !important;
}

.salon-ct-book-col {
  border-radius: 0px !important;
  border: 1px solid var(--salon-border-light) !important;
  background: #fdfdfd !important;
  box-shadow: none !important;
  transition: all 0.25s ease !important;
}

.salon-ct-book-col:hover {
  background: #ffffff !important;
  border-color: var(--salon-primary) !important;
  transform: none !important;
}

.salon-ct-book-btn {
  border-radius: 0px !important;
  transform: none !important;
}

.salon-ct-book-btn:hover {
  transform: none !important;
}

/* ==========================================================
   29. Menu Page Luxury Editorial Overhaul (#gtopsmenu & .menulistboxon)
   銀座・表参道ネイルサロン水準の清潔で知的なメニュー表
   ========================================================== */
ul#gtopsmenu,
#gtopsmenu {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
  max-width: 100% !important;
  margin: 16px 0 44px !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100% !important;
}

ul#gtopsmenu li,
.gtopmenulist {
  flex: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  list-style: none !important;
}

ul#gtopsmenu li a,
.gtopmenulist a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  min-height: 48px !important;
  padding: 10px 12px !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.88rem !important; /* 14px */
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  border-radius: 0px !important;
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  color: var(--salon-text-main) !important;
  text-decoration: none !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02) !important;
  transition: all 0.2s ease !important;
  white-space: normal !important;
  line-height: 1.35 !important;
}

ul#gtopsmenu li a:hover,
.gtopmenulist a:hover {
  background: var(--salon-primary) !important;
  color: #ffffff !important;
  border-color: var(--salon-primary) !important;
  transform: none !important;
  box-shadow: 0 2px 8px rgba(45, 106, 79, 0.15) !important;
}

/* メニューカテゴリバナー（01〜08） */
.gtmenubox {
  margin-bottom: 56px !important;
}

.gtmenubox .gmenusubtitleinfo {
  background: #ffffff !important;
  border-radius: 0px !important;
  border: 1px solid var(--salon-border-light) !important;
  box-shadow: 0 4px 16px rgba(40, 70, 60, 0.04) !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin-bottom: 24px !important;
  min-height: 240px !important;
  transition: border-color 0.25s ease !important;
}

.gtmenubox .gmenusubtitleinfo:hover {
  border-color: var(--salon-border) !important;
  transform: none !important;
  box-shadow: 0 4px 16px rgba(40, 70, 60, 0.04) !important;
}

/* メニュー行カード */
.gtmenubox .menulistboxon,
.menulistboxon {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 20px 24px !important;
  background: #ffffff !important;
  border-radius: 0px !important;
  border: 1px solid var(--salon-border-light) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02) !important;
  margin: 0 0 12px 0 !important;
  transition: background-color 0.2s ease, border-color 0.2s ease !important;
}

.gtmenubox .menulistboxon:hover,
.menulistboxon:hover {
  background: #fafcfb !important;
  border-color: var(--salon-primary-light) !important;
  transform: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
}

.gtmenubox .menulistboxon .textplace,
.menulistboxon .textplace {
  flex: 1 1 auto !important;
  padding-right: 20px !important;
  margin: 0 !important;
}

.gtmenubox .menulistboxon .gmenutitle,
.gtmenubox .menulistboxon .textplace h4,
.menulistboxon .gmenutitle {
  font-family: var(--salon-font-ja) !important;
  font-size: 1.1rem !important; /* 17.6px */
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  margin: 0 0 6px 0 !important;
  letter-spacing: 0.03em !important;
  line-height: 1.4 !important;
}

.gtmenubox .menulistboxon .gmenutext,
.gtmenubox .menulistboxon .textplace p,
.menulistboxon .gmenutext {
  font-size: 0.9rem !important; /* 14.4px */
  color: var(--salon-text-sub) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

.gtmenubox .menulistboxon .price,
.menulistboxon .price {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

.gtmenubox .menulistboxon .gmenuprice,
.gtmenubox .menulistboxon .price p,
.menulistboxon .gmenuprice {
  font-family: var(--salon-font-sans) !important;
  font-size: 1.35rem !important;
  font-weight: 600 !important;
  color: var(--salon-primary-dark) !important;
  letter-spacing: 0.05em !important;
  margin: 0 !important;
  line-height: 1 !important;
}

/* ==========================================================
   30. FAQ Accordion Luxury Styling (.hrf-faq-list & .hrf-entry)
   よくあるご質問のノイズのないクリーンなアコーディオン
   ========================================================== */
.page-id-226 .primary {
  max-width: var(--salon-content-archive-width) !important; /* 960px */
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}

.hrf-faq-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  margin: 12px 0 48px !important;
  padding: 0 !important;
}

.hrf-entry {
  background: #ffffff !important;
  border: 1px solid var(--salon-border-light) !important;
  border-radius: 0px !important;
  overflow: hidden !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02) !important;
  transition: border-color 0.2s ease !important;
  padding: 0 !important; /* ボックス下の不要なマージン・隙間を完全ゼロ化 */
  margin: 0 !important;
}

.hrf-entry:hover {
  border-color: var(--salon-border) !important;
}

.hrf-title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 18px 22px !important;
  margin: 0 !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 1rem !important; /* 16px */
  font-weight: 600 !important;
  color: var(--salon-text-main) !important;
  background: #ffffff !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
  border: none !important;
  user-select: none !important;
}

.hrf-title:hover {
  background: #f8faf9 !important;
  color: var(--salon-primary-dark) !important;
}

.hrf-title .tfopicon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  background: var(--salon-primary-light) !important;
  color: var(--salon-primary-dark) !important;
  font-size: 0.85rem !important;
  margin-right: 14px !important;
  flex-shrink: 0 !important;
  border-radius: 0px !important;
}

.hrf-title .tfopicon i {
  color: var(--salon-primary) !important;
}

.hrf-toggle-icon {
  color: var(--salon-primary) !important;
  font-size: 1.1rem !important;
  margin-left: 16px !important;
  flex-shrink: 0 !important;
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.hrf-title.open-faq .hrf-toggle-icon {
  transform: rotate(180deg) !important;
}

/* アコーディオン開閉外枠：パディング0・マージン0でジャンプ・カクつきを完全防止 */
.hrf-content {
  display: none;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  overflow: hidden !important;
  background: #fbfdfc !important;
}

/* 内部コンテンツ：ここで余白と上部境界線を保持し、スムーズアニメを実現 */
.hrf-content-inner {
  padding: 22px 26px 22px 64px !important;
  background: #fbfdfc !important;
  border-top: 1px solid var(--salon-border-light) !important;
  font-size: 0.93rem !important;
  line-height: 1.85 !important;
  color: var(--salon-text-body) !important;
  margin: 0 !important;
}

.hrf-content-inner p {
  margin: 0 0 0.8em 0 !important;
}

.hrf-content-inner p:last-child {
  margin-bottom: 0 !important;
}

/* フォールバック用（万が一 .hrf-content-inner が存在しない場合） */
.hrf-content:not(:has(.hrf-content-inner)) {
  padding: 20px 24px 20px 64px !important;
  border-top: 1px solid var(--salon-border-light) !important;
}

@media (max-width: 767px) {
  .hrf-title {
    padding: 16px 16px !important;
    font-size: 0.94rem !important;
  }
  .hrf-content-inner {
    padding: 16px 16px !important;
    font-size: 0.88rem !important;
    line-height: 1.75 !important;
  }
  .hrf-content:not(:has(.hrf-content-inner)) {
    padding: 16px 16px !important;
  }
}

/* ==========================================================
   31. Footer Calendar & Contact Card Complete Parity
   中央カレンダーと右お問い合わせカードの完全な体裁同期
   ========================================================== */
.footer__wrap .widget_salon_holiday_calendar,
.footer__wrap aside#custom_html-6 .footer-contact-card,
.footer__wrap aside#custom_html-6 .custom-html-widget > div {
  background: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 0px !important;
  color: var(--salon-text-main) !important;
  padding: 32px 28px 28px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
  width: 100% !important;
  max-width: 360px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  min-height: 450px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

/* カレンダーカード上部の欧文サブタイトル */
.footer__wrap .widget_salon_holiday_calendar::before {
  content: 'BUSINESS CALENDAR';
  display: block;
  font-family: var(--salon-font-en) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  color: var(--salon-primary) !important;
  text-align: center !important;
  margin-bottom: 12px !important;
  text-transform: uppercase;
}

/* お問い合わせカード上部の欧文サブタイトル */
.footer-contact-card::before {
  content: 'SALON INFO & CONTACT';
  display: block;
  font-family: var(--salon-font-en) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  color: var(--salon-primary) !important;
  text-align: center !important;
  margin-bottom: 16px !important;
  text-transform: uppercase;
}

/* 左カラム採用情報ボタンのシャープエッジ統一 */
.footer__wrap .staffinbt {
  margin-top: 16px !important;
}

.footer__wrap .staffinbt a.more-link.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.75) !important;
  color: #ffffff !important;
  border-radius: 0px !important;
  padding: 10px 24px !important;
  font-family: var(--salon-font-ja) !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.1em !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
}

.footer__wrap .staffinbt a.more-link.button:hover {
  background: var(--salon-primary) !important;
  border-color: var(--salon-primary) !important;
  color: #ffffff !important;
  transform: none !important;
}

/* ==========================================================
   32. Strict Site-Wide Sharp Edge & Zero translateY Enforcement
   サイト全体での角丸全面禁止（0px）と位置ジャンプの完全根絶
   ========================================================== */

/* 全要素の角丸全面排除（Back-to-Top円形ボタンを除く） */
.button,
.btn,
a.btn,
.link_btn,
.more-link,
.salon-btn-primary,
.salon-btn-outline,
.modern-link-arrow,
.modern-menu-btn,
.modern-instagram-btn,
.page-numbers,
.card,
.service-box,
.thmenu-box,
.menulistboxon,
.so-step-card,
.serviceorderbox,
.salon-about-card,
.salon-news-card,
.modern-notice-card,
.salon-ct-book-col,
.gtopmenu-card,
.inside-article,
.wp-block-columns,
.wp-block-column,
.wp-block-cover,
.wp-block-image img,
.hrf-entry,
.hrf-title,
.hrf-content,
.hrf-content-inner,
input[type="submit"],
input[type="button"],
input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select {
  border-radius: 0px !important;
}

/* 唯一の例外：Back-to-Top円形ボタン */
.backToTop,
a.backToTop {
  border-radius: 50% !important;
}

/* ホバー時位置移動（transform: translateY等）の全要素完全禁止 */
.button:hover,
.btn:hover,
a.btn:hover,
.link_btn:hover,
.more-link:hover,
.salon-btn-primary:hover,
.salon-btn-outline:hover,
.modern-link-arrow:hover,
.modern-menu-btn:hover,
.modern-instagram-btn:hover,
.page-numbers:hover,
.card:hover,
.service-box:hover,
.thmenu-box:hover,
.menulistboxon:hover,
.so-step-card:hover,
.serviceorderbox:hover,
.salon-about-card:hover,
.salon-news-card:hover,
.modern-notice-card:hover,
.salon-ct-book-col:hover,
.gtopmenu-card:hover,
.backToTop:hover,
a.backToTop:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
  transform: none !important;
  -webkit-transform: none !important;
}

/* ==========================================================
   33. Section Rhythm & Modern Section Standard Padding
   トップページ各セクションの均等で美しい余白リズム
   ========================================================== */
.modern-section,
.home_section {
  padding-top: 84px !important;
  padding-bottom: 84px !important;
  position: relative;
  box-sizing: border-box;
}

@media (max-width: 991px) {
  .modern-section,
  .home_section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }
}

@media (max-width: 767px) {
  .modern-section,
  .home_section {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
}

/* 重複防止: modern-title-line */
.modern-title-line {
  display: none !important;
}

/* セクション共通ヘッダー（トップページ） */
.home_section .section_subtitle,
.modern-section .section_subtitle {
  font-family: var(--salon-font-en) !important;
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
  color: var(--salon-primary) !important;
  display: inline-block;
  margin-bottom: 6px;
}

.home_section .section_title,
.modern-section .section_title {
  font-family: var(--salon-font-ja) !important;
  font-size: clamp(24px, 2.6vw, 32px) !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  color: var(--salon-text-main) !important;
  line-height: 1.4 !important;
  margin-bottom: 0 !important;
}

.home_section .section_title::after,
.modern-section .section_title::after {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background: var(--salon-primary);
  margin: 16px auto 20px;
  opacity: 0.85;
}

.modern-notice-header .section_title::after {
  margin: 16px 0 20px !important;
}

.home_section .section_description,
.modern-section .section_description {
  font-family: var(--salon-font-ja) !important;
  font-size: 1.05rem !important; /* 16.8px */
  line-height: 2.1 !important;
  color: var(--salon-text-body) !important;
  max-width: var(--salon-content-max-width) !important; /* 1200px 標準コンテンツ幅に完全一致 */
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 48px !important;
  text-wrap: balance !important;
  word-break: auto-phrase !important;
}

.modern-notice-header .section_description {
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 24px !important;
  max-width: 100% !important;
}

/* 日本語テキストの自然な改行（単語泣き別れ・孤立行の防止） */
.section_title,
.section_subtitle,
.section_description,
.salon-about-lead,
.salon-hero-desc,
.salon-recruit-lead,
.book-sub-lead,
.salon-footer-cta-lead,
.sec-title,
.salon-hero-ja,
.salon-recruit-hero-title {
  text-wrap: balance !important;
  word-break: auto-phrase !important;
}

.section_description span,
.salon-about-lead span,
.salon-hero-desc span,
.salon-recruit-lead span,
.book-sub-lead span,
.salon-footer-cta-lead span {
  display: inline-block !important;
}

/* ==========================================================
   34. Comprehensive Mobile (SP) Responsive Refinements
   スマホ時の全コンポーネント・ページの徹底最適化
   ========================================================== */

/* --- メニューページ（glittermenup）のSP最適化 --- */
@media (max-width: 767px) {
  /* カテゴリタブ：スマホ時は2列均等グリッド（4行×2列）で全メニューを一望 */
  ul#gtopsmenu,
  #gtopsmenu {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 0 28px !important;
    width: 100% !important;
    overflow-x: visible !important;
    flex-wrap: wrap !important;
    justify-content: stretch !important;
  }
  #gtopsmenu::-webkit-scrollbar {
    display: none !important;
  }
  ul#gtopsmenu li,
  .gtopmenulist {
    flex: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
  }
  ul#gtopsmenu li a,
  .gtopmenulist a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 8px 6px !important;
    font-size: 0.82rem !important;
    line-height: 1.35 !important;
    letter-spacing: 0.02em !important;
    background: #ffffff !important;
    border: 1px solid var(--salon-border-light) !important;
    border-radius: 0px !important;
    color: var(--salon-text-main) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02) !important;
    white-space: normal !important;
  }
  ul#gtopsmenu li a:active,
  ul#gtopsmenu li a:hover,
  .gtopmenulist a:active,
  .gtopmenulist a:hover {
    background: var(--salon-primary) !important;
    color: #ffffff !important;
    border-color: var(--salon-primary) !important;
  }

  /* カテゴリバナー：写真とテキストの均等縦並び */
  .gtmenubox {
    margin-bottom: 40px !important;
  }
  .gtmenubox .gmenusubtitleinfo {
    flex-direction: column !important;
    min-height: auto !important;
  }
  .gtmenubox .gmenusubtitle01,
  .gtmenubox .gmenusubtitle02,
  .gtmenubox .gmenusubtitle03,
  .gtmenubox .gmenusubtitle04,
  .gtmenubox .gmenusubtitle05,
  .gtmenubox .gmenusubtitle06,
  .gtmenubox .gmenusubtitle07,
  .gtmenubox .gmenusubtitle08 {
    flex: 0 0 180px !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 180px !important;
    min-height: 180px !important;
  }
  .gtmenubox .gmenusubtitleinfo > div:last-child {
    padding: 22px 20px !important;
  }
  .gtmenubox .gmenusubtitleinfo h3.gmstitle {
    font-size: 1.25rem !important;
    margin-bottom: 8px !important;
  }
  .gtmenubox .gmenusubtitleinfo p.gmsst {
    font-size: 0.88rem !important;
    line-height: 1.75 !important;
  }

  /* メニュー行：スマホ最適化（無駄な余白・空白を完全排除し、情報密度と洗練性を向上） */
  .gtmenubox .menulistboxon,
  .menulistboxon {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 14px 16px !important;
    margin: 0 0 10px 0 !important;
    background: #ffffff !important;
    border: 1px solid var(--salon-border-light) !important;
    border-radius: 0px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02) !important;
    min-height: auto !important;
    height: auto !important;
  }
  .gtmenubox .menulistboxon .textplace,
  .menulistboxon .textplace {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 0 6px 0 !important;
    flex: none !important;
    height: auto !important;
    min-height: auto !important;
  }
  .gtmenubox .menulistboxon .textplace h4,
  .gtmenubox .menulistboxon .gmenutitle,
  .menulistboxon .gmenutitle {
    font-size: 0.98rem !important; /* 約15.7px */
    font-weight: 600 !important;
    color: var(--salon-text-main) !important;
    line-height: 1.45 !important;
    margin: 0 0 6px 0 !important;
    letter-spacing: 0.02em !important;
    text-align: left !important;
  }
  .gtmenubox .menulistboxon .textplace p,
  .gtmenubox .menulistboxon .textplace > p,
  .gtmenubox .menulistboxon .gmenutext,
  .menulistboxon .gmenutext {
    font-size: 0.83rem !important; /* 約13.3px: スマホで最も読みやすく情報がまとまる */
    color: var(--salon-text-sub) !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }
  .gtmenubox .menulistboxon .gmenutext:empty,
  .menulistboxon .gmenutext:empty {
    display: none !important;
  }
  .gtmenubox .menulistboxon .price,
  .menulistboxon .price {
    flex: none !important; /* 8emの巨大空白を完全排除 */
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: baseline !important;
    align-self: stretch !important;
    margin: 4px 0 0 0 !important;
    padding: 0 !important;
  }
  .gtmenubox .menulistboxon .price p,
  .gtmenubox .menulistboxon .gmenuprice,
  .menulistboxon .gmenuprice {
    font-family: var(--salon-font-sans) !important;
    font-size: 1.25rem !important; /* 20px */
    font-weight: 700 !important;
    color: var(--salon-primary-dark) !important;
    letter-spacing: 0.03em !important;
    margin: 0 !important;
    line-height: 1 !important;
    text-align: right !important;
  }
}

/* --- サブページ共通ヘッダー（salon-subpage-hero）のSP最適化 --- */
@media (max-width: 767px) {
  .salon-subpage-hero {
    padding: 36px 16px 24px !important;
    margin-bottom: 32px !important;
  }
  .salon-subpage-hero-en {
    font-size: 0.85rem !important;
    letter-spacing: 0.18em !important;
    margin-bottom: 4px !important;
  }
  .salon-subpage-hero-title {
    font-size: 22px !important;
  }
  .salon-subpage-hero-line {
    width: 32px !important;
    margin: 12px auto 16px !important;
  }
  .salon-subpage-breadcrumbs {
    margin-top: 12px !important;
  }
  .salon-breadcrumbs-list {
    font-size: 0.78rem !important;
    gap: 6px !important;
    line-height: 1.5 !important;
  }
  .salon-breadcrumbs-list li.current {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* --- 施術の流れ＆お問い合わせ イントロカードのSP最適化 --- */
@media (max-width: 767px) {
  .salon-so-intro-split,
  .salon-ct-intro-split {
    margin-bottom: 36px !important;
  }
  .salon-so-intro-split .salon-hero-img-col,
  .salon-ct-intro-split .salon-hero-img-col {
    min-height: 200px !important;
    height: 200px !important;
  }
  .salon-so-intro-split .salon-hero-text-col,
  .salon-ct-intro-split .salon-hero-text-col {
    padding: 24px 18px !important;
  }
  .salon-so-intro-split .salon-hero-ja,
  .salon-ct-intro-split .salon-hero-ja {
    font-size: 1.25rem !important;
  }
  .salon-hero-anchors {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  .hero-anchor-btn {
    padding: 8px 14px !important;
    font-size: 0.82rem !important;
    flex: 1 1 calc(50% - 8px) !important;
    justify-content: center !important;
  }
}

/* --- フッターカードのSP最適化 --- */
@media (max-width: 991px) {
  .footer__wrap .row > div {
    margin-bottom: 32px !important;
  }
  .footer__wrap .row > div:last-child {
    margin-bottom: 0 !important;
  }
  .footer__wrap .widget_salon_holiday_calendar,
  .footer__wrap aside#custom_html-6 .footer-contact-card,
  .footer__wrap aside#custom_html-6 .custom-html-widget > div {
    max-width: 100% !important;
    min-height: auto !important;
    padding: 28px 20px 24px !important;
  }
}

/* --- トップページスライダー＆セクションのSP最適化 --- */
@media (max-width: 767px) {
  #slider .slide__text {
    padding: 0 16px !important;
  }
  #slider .slide_subtitle {
    font-size: 0.85rem !important;
    letter-spacing: 0.16em !important;
  }
  #slider .slide_title {
    font-size: 1.45rem !important;
    line-height: 1.35 !important;
  }
  #slider .slide_decription {
    font-size: 0.88rem !important;
    line-height: 1.7 !important;
    margin-bottom: 20px !important;
  }
  #slider .slide_btn {
    padding: 11px 28px !important;
    font-size: 0.82rem !important;
  }

  /* お知らせセクション SP */
  .modern-notice-row {
    flex-direction: column !important;
  }
  .modern-notice-header {
    position: static !important;
    margin-bottom: 32px !important;
    text-align: center !important;
  }
  .modern-notice-header .section_subtitle,
  .modern-notice-header .section_title,
  .modern-notice-header .section_description {
    text-align: center !important;
  }
  .modern-notice-header .section_title::after {
    margin: 14px auto 18px !important;
  }
  .modern-notice-btn-wrap {
    text-align: center !important;
    margin-top: 16px !important;
  }

  /* お知らせカード SP */
  .salon-news-item-link {
    padding: 16px 14px !important;
  }
  .salon-news-item-title {
    font-size: 0.95rem !important;
  }
}

/* ==========================================================
   34. Comprehensive Vertical Rhythm & Section Spacing Standard
   全ページ・全セクションの上下マージン・パディングの完全統一
   ========================================================== */

/* --- 1. サブページ共通ヘッダー（salon-subpage-hero）の上下余白 --- */
.salon-subpage-hero {
  padding: 56px 24px 44px !important;
  margin-bottom: 64px !important;
}

@media (max-width: 991px) {
  .salon-subpage-hero {
    padding: 44px 20px 32px !important;
    margin-bottom: 48px !important;
  }
}

@media (max-width: 767px) {
  .salon-subpage-hero {
    padding: 36px 16px 24px !important;
    margin-bottom: 36px !important;
  }
}

/* サブページ内 main_content の上部余白リセット（ヘッダーmargin-bottomとの二重加算防止） */
.salon-subpage-hero + .main_content,
.salon-subpage-hero + main#content,
.main_content {
  padding-top: 0 !important;
}

/* 単一記事（お知らせ詳細）のパンくず下部マージン */
.salon-single-breadcrumb-wrap {
  margin-bottom: 48px !important;
}
@media (max-width: 767px) {
  .salon-single-breadcrumb-wrap {
    margin-bottom: 28px !important;
  }
}

/* --- 2. サブページ内の主要セクション・ブロック間隔（72px / 56px / 40px 統一） --- */
/* メニューカテゴリ、特徴ブロック、施術ステップ、予約案内、採用職種、記事カード */
.gtmenubox,
.salon-about-block,
.salon-so-intro-split,
.salon-so-page .salon-so-card,
.salon-so-page .serviceorderbox,
.serviceorderbox,
.salon-ct-intro-split,
.salon-ct-book-section,
.salon-contact-form-card,
.salon-recruit-hero-box,
.salon-recruit-section,
.salon-news-archive .salon-news-card-list {
  margin-bottom: 72px !important;
}

/* 単一記事・読み物カードの末尾マージン（規約準拠：PC 64px / TB 48px / SP 36px） */
.salon-news-article,
.page-id-232 .inside-article {
  margin-bottom: 64px !important;
}

@media (max-width: 991px) {
  .gtmenubox,
  .salon-about-block,
  .salon-so-intro-split,
  .salon-so-page .serviceorderbox,
  .serviceorderbox,
  .salon-ct-intro-split,
  .salon-ct-book-section,
  .salon-contact-form-card,
  .salon-recruit-hero-box,
  .salon-recruit-section,
  .salon-news-archive .salon-news-card-list {
    margin-bottom: 56px !important;
  }

  .salon-news-article,
  .page-id-232 .inside-article {
    margin-bottom: 48px !important;
  }
}

@media (max-width: 767px) {
  .gtmenubox,
  .salon-about-block,
  .salon-so-intro-split,
  .salon-so-page .serviceorderbox,
  .serviceorderbox,
  .salon-ct-intro-split,
  .salon-ct-book-section,
  .salon-contact-form-card,
  .salon-recruit-hero-box,
  .salon-recruit-section,
  .salon-news-archive .salon-news-card-list {
    margin-bottom: 40px !important;
  }

  .salon-news-article,
  .page-id-232 .inside-article {
    margin-bottom: 36px !important;
  }
}

/* 各セクション内の最後のブロックは下部マージンを0にして親の余白と調和 */
.gtmenubox:last-of-type,
.salon-about-block:last-of-type,
.salon-so-page .salon-so-card:last-of-type,
.salon-so-page .salon-so-card:last-child,
#step06.salon-so-card,
.salon-so-page .serviceorderbox:last-of-type,
.salon-recruit-section:last-of-type,
.salon-recruit-cta {
  margin-bottom: 0 !important;
}

/* --- 3. メニューページ（glittermenup）内パーツの余白統一 --- */
ul#gtopsmenu,
#gtopsmenu {
  margin: 16px 0 48px !important;
}
@media (max-width: 767px) {
  ul#gtopsmenu,
  #gtopsmenu {
    margin: 12px 0 32px !important;
  }
}

.gtmenubox .gmenusubtitleinfo {
  margin-bottom: 24px !important;
}
@media (max-width: 767px) {
  .gtmenubox .gmenusubtitleinfo {
    margin-bottom: 16px !important;
  }
}

.gtmenubox .menulistboxon {
  margin-bottom: 14px !important;
}
.gtmenubox .menulistboxon:last-child {
  margin-bottom: 0 !important;
}

/* --- 4. サブページ最下部（inside-article）のパディング統一 --- */
.salon-so-page,
.salon-ct-page,
.salon-about-page,
.page-id-1130 .inside-article,
.page-id-1128 .inside-article,
.page-id-1074 .inside-article,
.page-id-220 .inside-article,
.page-id-266 .inside-article,
.page-id-226 .inside-article,
.salon-recruit-wrap,
.salon-archive-wrap,
.salon-editorial-wrap {
  padding-bottom: 64px !important;
}

@media (max-width: 991px) {
  .salon-so-page,
  .salon-ct-page,
  .salon-about-page,
  .page-id-1130 .inside-article,
  .page-id-1128 .inside-article,
  .page-id-1074 .inside-article,
  .page-id-220 .inside-article,
  .page-id-266 .inside-article,
  .page-id-226 .inside-article,
  .salon-recruit-wrap,
  .salon-archive-wrap,
  .salon-editorial-wrap {
    padding-bottom: 48px !important;
  }
}

@media (max-width: 767px) {
  .salon-so-page,
  .salon-ct-page,
  .salon-about-page,
  .page-id-1130 .inside-article,
  .page-id-1128 .inside-article,
  .page-id-1074 .inside-article,
  .page-id-220 .inside-article,
  .page-id-266 .inside-article,
  .page-id-226 .inside-article,
  .salon-recruit-wrap,
  .salon-archive-wrap,
  .salon-editorial-wrap {
    padding-bottom: 36px !important;
  }
}

/* --- 5. フッター周辺セクション（コロナ対策バナー・予約CTA）の垂直調和 --- */
section#covid-info.salon-info-banner-section,
section#covid-info.modern-info-banner,
section#cov19.modern-info-banner,
#cov19.home_section.cov19-section {
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}

@media (max-width: 767px) {
  section#covid-info.salon-info-banner-section,
  section#covid-info.modern-info-banner,
  section#cov19.modern-info-banner,
  #cov19.home_section.cov19-section {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
}

.salon-footer-cta {
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}

@media (max-width: 767px) {
  .salon-footer-cta {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
}

.salon-footer-cta-header {
  margin-bottom: 32px !important;
}
@media (max-width: 767px) {
  .salon-footer-cta-header {
    margin-bottom: 24px !important;
  }
}

.inside-footer-widgets {
  padding-top: 64px !important;
  padding-bottom: 48px !important;
}

@media (max-width: 767px) {
  .inside-footer-widgets {
    padding-top: 44px !important;
    padding-bottom: 32px !important;
  }
}

/* --- 6. トップページ各セクションの余白リズム（80px / 60px / 44px） --- */
.modern-section,
.home_section {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

@media (max-width: 991px) {
  .modern-section,
  .home_section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }
}

@media (max-width: 767px) {
  .modern-section,
  .home_section {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
}







/* ==========================================================================
   serviceorder ページ末尾の余白調和（Step 06 と コロナバナーの完璧な垂直調和）
   ========================================================================== */
.salon-so-page {
  padding-bottom: 0 !important;
}
.salon-so-page .entry-content:empty {
  display: none !important;
}
.salon-so-page footer.entry-meta {
  margin: 0 !important;
  padding: 8px 0 !important;
}
.page-id-232 #main,
.page-id-232 .site-content {
  margin-bottom: 0 !important;
}
