/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .sahara-header / __inner / __nav / __right / __sns   - sticky型ヘッダー（84px・和文上＋英字イタリック下のナビ）
 * .sahara-logo / __mark / __body / __name / __sub       - マーク＋英字ロゴ
 * .sahara-nav-toggle / .sahara-sp-nav                   - ヘッダー直下に開くドロップダウン型SPナビ
 * .sahara-btn-reserve (--header/--mv/--lg/--xl/--footer) - グラデーション＋光沢が流れる予約ボタン
 * .sahara-btn-pill (--white/--lg/--dark/--block/--sns/--recruit/--coupon) - 枠線ピルボタン
 * .sahara-ttl (--left/--sm/--menu/--box/--card)        - 英字（EB Garamond）＋和文小見出しの見出し
 * .sahara-eyebrow                                       - 細線付きイタリック英字
 * .sahara-sec / .sahara-wrap / .sahara-stack            - clamp()余白のセクション・幅・縦積みgap
 * .sahara-bg-band-l / -r                                - 片側10%を白で残すベージュ帯背景
 * .sahara-leaf                                          - 葉のあしらい画像（位置・回転・ぼかし違い）
 * .sahara-photo                                         - 内側に白細枠が入る写真（hoverで拡大）
 * .sahara-mv / .sahara-badge                            - TOPメインビジュアル（アーチ写真・丸バッジ）
 * .sahara-about                                         - TOP サロンのご紹介
 * .sahara-campaign-card                                 - TOP キャンペーンカード
 * .sahara-fv-card                                       - TOP 初めての方におすすめ（ボックス展開アニメ）
 * .sahara-contents                                      - TOP 各ページ導線カード（hoverでぼかし＋VIEW MORE）
 * .sahara-movie / .sahara-slider                        - YouTubeショート埋め込み／横スクロールスライダー
 * .sahara-top-access                                    - TOP アクセス
 * .sahara-hero / .sahara-breadcrumb                     - 下層ヒーロー（アーチ写真＋Allura英字）
 * .sahara-lead / .sahara-anchor-nav                     - 下層リード文／ページ内アンカー
 * .sahara-price                                         - メニュー料金表
 * .sahara-reserve-box                                   - 下層ご予約ボックス
 * .sahara-concern / .sahara-flow / .sahara-faq          - 初めての方へ
 * .sahara-message / .sahara-feature / .sahara-staff / .sahara-gallery / .sahara-school - サロン紹介
 * .sahara-transport / .sahara-info-table                - アクセス
 * .sahara-contact-* / .sahara-recruit                   - ご予約・お問い合わせ
 * .sahara-blog / .sahara-entry-row / .sahara-article / .sahara-archive - ブログ
 * .sahara-footer / .sahara-spbar                        - フッター／SP下部固定予約ボタン
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - section / container の余白・幅が clamp() の可変値（例 clamp(72px,9vw,120px)、max-width 1120/1040/1000/960/880/860/760）
 *  - gap 36/44/48px、font-size 11/13/15/17/19px 等の刻みがutilityにない
 *  - body の font-size が tablet/SP で自動縮小される（デザインは常に16px基準）
 * 【指定方向不足】
 *  - ヘッダーの切替ブレークポイントが1100px固定（デザインは1080px）、SP固定バーが896px固定（デザインは767px）
 * 【状態不足】
 *  - カードhover時に画像を scale＋blur、暗幕の outline-offset を変化させる状態
 * 【構造不足】
 *  - sticky型ヘッダー（header-bar は fixed、header-sticky はJS前提）
 *  - ヘッダー直下に開くドロップダウン型SPナビ（sp-nav は全画面のみ）
 *  - 和文が上・英字が下のナビ並び、英字＋和文小見出しの見出し（heading系は英字が大きく和文も太字）
 *  - 写真の内側に白細枠を重ねるフレーム、上部アーチ型の写真マスク＋外枠線
 * 【装飾パターン不足】
 *  - 光沢が流れる（shine）ボタン、片側を残すベージュ帯背景、葉のあしらい画像の配置バリエーション
 *
 */

/* ==========================================================================
   Base（デザイン基準：本文16px / line-height 1.9 / 文字色 #4A3A2A）
   ========================================================================== */
body {
  font-family: "Shippori Mincho", serif;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 1.9;
  letter-spacing: 0;
  color: #4A3A2A;
  background: #FFFFFF;
}
@media (max-width: 896px) { body { font-size: 1.6rem; } }
@media (max-width: 639px) { body { font-size: 1.6rem; } }

img { display: block; max-width: 100%; }
a { color: #7A5F42; }
a:hover { color: #4A3A2A; opacity: 1; }
h1, h2, h3, h4 { font-weight: 600; }
main { display: block; }

@keyframes saharaShine {
  0% { transform: translateX(-120%) skewX(-20deg); }
  55%, 100% { transform: translateX(320%) skewX(-20deg); }
}

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.sahara-sec { padding: clamp(72px, 9vw, 120px) 24px; }
.sahara-sec--112 { padding: clamp(72px, 9vw, 112px) 24px; }

.sahara-wrap { position: relative; z-index: 1; margin: 0 auto; }
.sahara-wrap--1200 { max-width: 1200px; }
.sahara-wrap--1160 { max-width: 1160px; }
.sahara-wrap--1120 { max-width: 1120px; }
.sahara-wrap--1040 { max-width: 1040px; }
.sahara-wrap--1000 { max-width: 1000px; }
.sahara-wrap--960  { max-width: 960px; }
.sahara-wrap--860  { max-width: 860px; }

.sahara-stack { display: flex; flex-direction: column; }
.sahara-stack--g36 { gap: 36px; }
.sahara-stack--g40 { gap: 40px; }
.sahara-stack--g44 { gap: 44px; }
.sahara-stack--g48 { gap: 48px; }

.sahara-bg-band-l { background: linear-gradient(90deg, #F8F2E8 0 90%, #FFFFFF 90%); }
.sahara-bg-band-r { background: linear-gradient(90deg, #FFFFFF 10%, #F8F2E8 10%); }
/* ==========================================================================
   Leaf decorations
   ========================================================================== */
.sahara-leaf {
  position: absolute;
  height: auto;
  pointer-events: none;
  z-index: 0;
}
.sahara-leaf--campaign-l { top: 6%; left: -4%; width: clamp(200px, 23vw, 360px); opacity: .4; transform: rotate(18deg); filter: blur(3px); }
.sahara-leaf--campaign-r { bottom: 6%; right: -4%; width: clamp(200px, 23vw, 360px); opacity: .4; transform: rotate(-8deg); filter: blur(3px); }
.sahara-leaf--movie { top: clamp(24px, 3vw, 48px); right: clamp(-40px, -2vw, -16px); width: clamp(150px, 16vw, 240px); opacity: .7; transform: rotate(-16deg); }
.sahara-leaf--menu-l { top: 6%; left: -4%; width: clamp(190px, 21vw, 320px); opacity: .35; transform: rotate(18deg); filter: blur(3px); }
.sahara-leaf--menu-r { top: clamp(24px, 3vw, 48px); right: clamp(-40px, -2vw, -16px); width: clamp(130px, 14vw, 210px); opacity: .6; transform: rotate(-16deg); }
.sahara-leaf--message { top: 4%; right: -4%; width: clamp(190px, 21vw, 320px); opacity: .35; transform: rotate(-8deg); filter: blur(3px); }
.sahara-leaf--contact-l { top: 8%; left: -4%; width: clamp(150px, 16vw, 240px); opacity: .35; transform: rotate(18deg); filter: blur(3px); }
.sahara-leaf--contact-r { bottom: 6%; right: -4%; width: clamp(150px, 16vw, 240px); opacity: .35; transform: rotate(-8deg); filter: blur(3px); }

/* ==========================================================================
   Heading（英字＋和文小見出し）
   ========================================================================== */
.sahara-ttl {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}
.sahara-ttl__en {
  font-family: "EB Garamond", serif;
  font-size: clamp(34px, 4.2vw, 48px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .08em;
  color: #4A3A2A;
}
.sahara-ttl__ja {
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .3em;
  line-height: 1.9;
  color: #7A5F42;
}
.sahara-ttl__lead {
  font-size: 16px;
  letter-spacing: .04em;
  color: #5A4632;
}
.sahara-ttl__lead--dark { color: #4A3A2A; }

.sahara-ttl--left { align-items: flex-start; text-align: left; }
.sahara-ttl--sm { gap: 4px; }
.sahara-ttl--sm .sahara-ttl__en { font-size: clamp(30px, 3.4vw, 40px); }

/* メニューカテゴリ見出し */
.sahara-ttl__num {
  font-family: "EB Garamond", serif;
  font-size: 15px;
  letter-spacing: .2em;
  color: #B79A76;
}
.sahara-ttl--menu .sahara-ttl__en { font-size: clamp(30px, 3.8vw, 44px); line-height: 1.15; letter-spacing: .06em; }
.sahara-ttl--menu .sahara-ttl__ja { font-size: 14px; letter-spacing: .28em; }
.sahara-ttl__leads {
  max-width: 720px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
}
.sahara-ttl__leads p { font-size: 16px; line-height: 2; color: #4A3A2A; }

/* ご予約ボックス見出し */
.sahara-ttl--box { gap: 0; }
.sahara-ttl--box .sahara-ttl__en { font-size: clamp(30px, 3.6vw, 40px); }
.sahara-ttl--box .sahara-ttl__ja { margin-top: 8px; }

/* カード内見出し（お電話・SNS） */
.sahara-ttl--card { gap: 6px; }
.sahara-ttl--card .sahara-ttl__en { font-size: 28px; }

/* 細線付きイタリック英字 */
.sahara-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: clamp(18px, 1.8vw, 22px);
  letter-spacing: .16em;
  color: #8A6E4E;
}
.sahara-eyebrow::before {
  content: "";
  display: block;
  width: 40px;
  height: 1px;
  background: #B79A76;
  flex-shrink: 0;
}
.sahara-eyebrow--sm { font-size: 15px; gap: 12px; }
.sahara-eyebrow--sm::before { width: 32px; }

/* ==========================================================================
   Buttons
   ========================================================================== */
/* 予約ボタン（グラデーション＋光沢） */
.sahara-btn-reserve {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 20px 44px;
  min-width: min(100%, 320px);
  background: linear-gradient(135deg, #7A5F42 0%, #5A4632 45%, #3F3023 100%);
  color: #FFFFFF;
  border-radius: 2px;
  box-shadow: 0 6px 18px rgba(90, 70, 50, .25);
  line-height: 1.35;
  transition: filter .3s ease;
}
.sahara-btn-reserve:hover { filter: brightness(1.12); color: #FFFFFF; }
.sahara-btn-reserve__shine {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 40%;
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,240,215,.55) 50%, rgba(255,255,255,0) 100%);
  animation: saharaShine 3.2s ease-in-out infinite;
  pointer-events: none;
}
.sahara-btn-reserve__label {
  position: relative;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: .14em;
}
.sahara-btn-reserve__arrow { position: relative; flex-shrink: 0; }
.sahara-btn-reserve__label { white-space: nowrap; }
@media (max-width: 639px) {
  .sahara-btn-reserve { padding-left: 28px; padding-right: 28px; }
  .sahara-btn-reserve--xl { gap: 14px; padding: 24px 20px; }
  .sahara-btn-reserve--xl .sahara-btn-reserve__label { letter-spacing: .12em; }
}

.sahara-btn-reserve--mv { gap: 18px; padding: 22px 44px; min-width: min(100%, 340px); }
.sahara-btn-reserve--mv .sahara-btn-reserve__label { font-size: clamp(18px, 1.8vw, 21px); }

.sahara-btn-reserve--lg { padding: 22px 48px; min-width: min(100%, 340px); }
.sahara-btn-reserve--lg .sahara-btn-reserve__label { font-size: 20px; }

.sahara-btn-reserve--xl {
  gap: 20px;
  padding: clamp(22px, 3vw, 30px) clamp(32px, 5vw, 72px);
  width: min(100%, 480px);
  min-width: 0;
}
.sahara-btn-reserve--xl .sahara-btn-reserve__label { font-size: clamp(20px, 2.4vw, 26px); letter-spacing: .16em; }

.sahara-btn-reserve--footer {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 22px 24px;
  min-width: 0;
}

/* ヘッダー（共通 .header__cta の高さ100%・ベタ塗りを上書き） */
.sahara-header .header__cta.sahara-btn-reserve--header {
  height: auto;
  display: flex;
  flex-direction: column;
  padding: 10px 22px;
  min-width: 0;
  background: linear-gradient(135deg, #7A5F42 0%, #5A4632 45%, #3F3023 100%);
  box-shadow: 0 4px 14px rgba(90, 70, 50, .25);
  font-size: inherit;
}
.sahara-btn-reserve--header .sahara-btn-reserve__label { font-size: 15px; letter-spacing: .1em; }

.sahara-btn-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.sahara-btn-group--start { align-items: flex-start; }
.sahara-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  align-items: center;
}
.sahara-note { font-size: 12px; color: #7A5F42; }
.sahara-note--dark { color: #4A3A2A; }

/* ピルボタン */
.sahara-btn-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 16px 40px;
  border: 1px solid #B79A76;
  border-radius: 999px;
  color: #5A4632;
  font-size: 15px;
  letter-spacing: .1em;
  line-height: 1.6;
  transition: background-color .3s ease, color .3s ease;
}
.sahara-btn-pill:hover { background: #F8F2E8; color: #4A3A2A; }
.sahara-btn-pill svg { flex-shrink: 0; }

.sahara-btn-pill--white { background: #FFFFFF; }
.sahara-btn-pill--white:hover { background: #EAD9BE; color: #4A3A2A; }

.sahara-btn-pill--lg {
  padding: 20px 40px;
  min-width: min(100%, 280px);
  border-color: #5A4632;
  background: #FFFFFF;
  color: #4A3A2A;
  font-size: 16px;
}
.sahara-btn-pill--lg:hover { background: #F8F2E8; color: #4A3A2A; }

.sahara-btn-pill--dark { border-color: #5A4632; color: #4A3A2A; }
.sahara-btn-pill--dark:hover { background: #5A4632; color: #FFFFFF; }

.sahara-btn-pill--block { display: flex; gap: 12px; padding: 14px 20px; font-size: 14px; }
.sahara-btn-pill--sns { flex: 1 1 140px; gap: 10px; padding: 14px 16px; font-size: 14px; letter-spacing: 0; }
.sahara-btn-pill--sns i { font-size: 20px; line-height: 1; }
.sahara-btn-pill--recruit { flex: 0 1 auto; gap: 14px; padding: 18px 40px; background: #FFFFFF; }
.sahara-btn-pill--coupon { align-self: flex-start; gap: 14px; padding: 16px 32px; letter-spacing: .08em; }

/* ==========================================================================
   Header
   ========================================================================== */
.sahara-header.header-bar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid #EFE5D5;
  box-shadow: none;
}
.sahara-header .header__inner.sahara-header__inner {
  max-width: 1280px;
  height: 84px;
  padding: 0 clamp(16px, 3vw, 40px);
  gap: 24px;
}
.sahara-header .sahara-header__nav {
  margin-left: auto;
  margin-right: 0;
  gap: clamp(16px, 2vw, 30px);
}
.sahara-header__nav .header__nav-item a {
  gap: 2px;
  padding: 6px 0;
  color: #4A3A2A;
  border-bottom: 1px solid transparent;
  line-height: 1.3;
  transition: color .3s ease;
}
.sahara-header__nav .header__nav-item a::after { display: none; }
.sahara-header__nav .header__nav-item a:hover { color: #8A6E4E; }
.sahara-header__nav .header__nav-item--current a { border-bottom-color: #B79A76; }
.sahara-header__nav .header__nav-ja {
  margin-top: 0;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .08em;
  white-space: nowrap;
  color: inherit;
  line-height: 1.3;
}
.sahara-header__nav .header__nav-en {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .08em;
  color: #8A6E4E;
  line-height: 1.3;
}
.sahara-header .sahara-header__right { gap: 24px; height: auto; }
.sahara-header__sns { display: flex; gap: 12px; align-items: center; }
.sahara-header__sns a { display: flex; color: #8A6E4E; font-size: 20px; line-height: 1; }
.sahara-header__sns a:hover { color: #4A3A2A; }
.sahara-header__sns .sahara-header__line { font-size: 22px; }

.sahara-logo { display: flex; align-items: center; gap: 10px; color: #4A3A2A; }
.sahara-header .header__logo img.sahara-logo__mark { width: 52px; height: 52px; object-fit: contain; }
.sahara-logo__body { display: flex; flex-direction: column; line-height: 1.1; }
.sahara-logo__name { font-family: "EB Garamond", serif; font-size: 28px; letter-spacing: .14em; color: #5A4632; }
.sahara-logo__sub { font-family: "EB Garamond", serif; font-style: italic; font-size: 12px; letter-spacing: .12em; color: #8A6E4E; }

/* デザインの切替幅（1080px）に合わせる */
@media (min-width: 1080px) and (max-width: 1100px) {
  .sahara-header .sahara-header__nav,
  .sahara-header .sahara-header__right { display: flex; }
}

/* ハンバーガー（ヘッダー内右端に重ねる） */
.sahara-nav-toggle.nav-toggle {
  top: 18px;
  right: clamp(16px, 3vw, 40px);
  width: 48px;
  height: 48px;
  border: 1px solid #E5D6BF;
  border-radius: 2px;
  background: #FFFFFF;
  backdrop-filter: none;
}
.sahara-nav-toggle .nav-toggle__line { width: 20px; height: 1px; background: #5A4632; }
.sahara-nav-toggle .nav-toggle__line:nth-child(1) { top: 16px; }
.sahara-nav-toggle .nav-toggle__line:nth-child(2) { top: 23px; }
.sahara-nav-toggle .nav-toggle__line:nth-child(3) { top: 30px; }
.sahara-nav-toggle.is-active .nav-toggle__line:nth-child(1),
.sahara-nav-toggle.is-active .nav-toggle__line:nth-child(3) { top: 23px; }
@media (min-width: 1080px) {
  .sahara-nav-toggle.nav-toggle { display: none; }
}

/* SPナビ（ヘッダー直下のドロップダウン） */
.sahara-sp-nav.sp-nav {
  top: 84px;
  bottom: auto;
  max-height: calc(100vh - 84px);
  display: block;
  padding: 12px 24px 28px;
  background: #FFFFFF;
  border-top: 1px solid #EFE5D5;
  box-shadow: 0 12px 24px rgba(90, 70, 50, .08);
  z-index: 99;
}
@media (min-width: 1080px) {
  .sahara-sp-nav.sp-nav { display: none; }
}
.sahara-sp-nav .sp-nav__list { max-width: none; text-align: left; }
.sahara-sp-nav .sp-nav__item {
  border-bottom: 1px solid #EFE5D5;
  transform: none;
  opacity: 1;
}
.sahara-sp-nav .sp-nav__item:first-child { border-top: 0; }
.sahara-sp-nav .sp-nav__link {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 16px 4px;
  color: #4A3A2A;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .08em;
}
.sahara-sp-nav .sp-nav__link::after { display: none; }
.sahara-sp-nav .sp-nav__link:hover { background: #FBF7F0; }
.sahara-sp-nav .sp-nav__en {
  font-family: "EB Garamond", serif;
  margin: 0;
  padding: 0;
  font-style: italic;
  font-size: 13px;
  letter-spacing: 0;
  opacity: 1;
  color: #8A6E4E;
}
.sahara-sp-nav .sp-nav__bottom {
  display: flex;
  gap: 20px;
  justify-content: center;
  max-width: none;
  padding-top: 22px;
  opacity: 1;
  transform: none;
}
.sahara-sp-nav .sp-nav__bottom a { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #7A5F42; }
.sahara-sp-nav .sp-nav__bottom i { font-size: 20px; line-height: 1; }

/* ==========================================================================
   Footer
   ========================================================================== */
.sahara-footer { background: #F8F2E8; border-top: 1px solid #EFE5D5; }
.sahara-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 88px) 24px 40px;
  display: flex;
  flex-wrap: wrap;
  gap: 40px 56px;
}
.sahara-footer__info { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.sahara-footer__logo { display: flex; align-items: center; gap: 12px; }
.sahara-footer__logo img { width: 60px; height: 60px; object-fit: contain; }
.sahara-footer__logo-body { display: flex; flex-direction: column; line-height: 1.15; }
.sahara-footer__logo-name { font-family: "EB Garamond", serif; font-size: 30px; letter-spacing: .14em; color: #5A4632; }
.sahara-footer__logo-sub { font-size: 12px; letter-spacing: .1em; color: #5A4632; }
.sahara-footer__dl {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px 20px;
  font-size: 14px;
  line-height: 1.8;
}
.sahara-footer__dl dt { color: #7A5F42; }
.sahara-footer__dl a { color: #4A3A2A; }
.sahara-footer__map.embed { flex: 1.2 1 360px; min-width: 0; min-height: 260px; border-radius: 2px; background: #F1E6D4; }
.sahara-footer__map iframe { min-height: 260px; }
.sahara-footer__action { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 20px; justify-content: center; }
.sahara-footer__sns { display: flex; gap: 16px; justify-content: center; }
.sahara-footer__sns a {
  width: 44px;
  height: 44px;
  border: 1px solid #D9C6A8;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5A4632;
  background: #FFFFFF;
  font-size: 20px;
  line-height: 1;
  transition: background-color .3s ease;
}
.sahara-footer__sns a:hover { background: #EAD9BE; color: #4A3A2A; }
.sahara-footer__bottom.footer-bottom { border-top: 1px solid #E5D6BF; padding: 20px 24px; }
.sahara-footer__bottom .footer-bottom__copyright { font-family: "EB Garamond", serif; font-size: 13px; letter-spacing: .1em; color: #7A5F42; }
@media (max-width: 767px) {
  .sahara-footer__bottom.footer-bottom { padding-bottom: 88px; }
}

/* SP下部固定 予約ボタン（767px以下） */
.sahara-spbar.sp-fixed-bar {
  height: 64px;
  padding: 0;
  border-top: 0;
  background: #5A4632;
  box-shadow: 0 -2px 12px rgba(74, 58, 42, .15);
  z-index: 60;
}
.sahara-spbar .sahara-spbar__link {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0;
  color: #FFFFFF;
  line-height: 1.4;
}
.sahara-spbar .sahara-spbar__link:hover { color: #FFFFFF; }
.sahara-spbar__label { font-size: 17px; font-weight: 600; letter-spacing: .14em; }
.sahara-spbar__sub { font-size: 10px; color: #EADBC4; }
@media (min-width: 768px) {
  .sahara-spbar.sp-fixed-bar { display: none; }
}

/* ==========================================================================
   Common parts
   ========================================================================== */
/* 内側に白細枠が入る写真 */
.sahara-photo { position: relative; overflow: hidden; }
.sahara-photo img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform .7s ease;
}
.sahara-photo:hover img { transform: scale(1.05); }
.sahara-photo::after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(255, 255, 255, .75);
  pointer-events: none;
}
.sahara-photo--4-3 img { aspect-ratio: 4 / 3; }

.sahara-tag {
  font-size: 11px;
  padding: 3px 10px;
  background: #5A4632;
  color: #FFFFFF;
  letter-spacing: .08em;
  border-radius: 2px;
  line-height: 1.6;
}
.sahara-pill-badge {
  margin-top: 6px;
  font-size: 11px;
  padding: 4px 14px;
  background: #5A4632;
  color: #FFFFFF;
  border-radius: 999px;
  letter-spacing: .1em;
  line-height: 1.6;
}
.sahara-chip {
  font-size: 13px;
  padding: 5px 14px;
  border: 1px solid #B79A76;
  border-radius: 999px;
  color: #4A3A2A;
  background: #FFFFFF;
  line-height: 1.6;
}
.sahara-icon-circle {
  flex-shrink: 0;
  border-radius: 50%;
  background: #FBF7F0;
  border: 1px solid #B79A76;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5A4632;
}
.sahara-icon-circle i { line-height: 1; }
.sahara-icon-circle--72 { width: 72px; height: 72px; font-size: 24px; }
.sahara-icon-circle--64 { width: 64px; height: 64px; font-size: 20px; }

/* YouTubeショート */
.sahara-movie { display: flex; flex-direction: column; gap: 12px; }
.sahara-movie__frame.embed { aspect-ratio: 9 / 16; border-radius: 4px; background: #5A4632; }
.sahara-movie__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 13px;
  letter-spacing: .06em;
  color: #7A5F42;
}
.sahara-movie__link i { font-size: 18px; line-height: 1; }

/* ==========================================================================
   TOP：メインビジュアル
   ========================================================================== */
.sahara-mv {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse 55% 60% at 8% 18%, rgba(234, 217, 190, .55), transparent 70%),
    radial-gradient(ellipse 45% 55% at 92% 85%, rgba(234, 217, 190, .5), transparent 70%),
    radial-gradient(ellipse 50% 50% at 50% 50%, rgba(248, 242, 232, .9), transparent 75%),
    #FDFAF5;
}
.sahara-mv__bg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: auto;
  opacity: .7;
  pointer-events: none;
  z-index: 0;
}
.sahara-mv__leaf {
  position: absolute;
  top: -4%;
  right: -3%;
  width: clamp(200px, 24vw, 380px);
  height: auto;
  opacity: .45;
  transform: rotate(-12deg);
  filter: blur(3px);
  pointer-events: none;
  z-index: 0;
}
.sahara-mv__inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 56px) clamp(16px, 3vw, 40px) clamp(48px, 6vw, 88px);
  display: flex;
  flex-wrap: wrap-reverse;
  gap: clamp(32px, 4vw, 64px);
  align-items: stretch;
}
.sahara-mv__text {
  flex: 1 1 380px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
}
.sahara-mv__catch {
  font-size: clamp(34px, 4.2vw, 56px);
  line-height: 1.6;
  letter-spacing: .1em;
  font-weight: 600;
  color: #4A3A2A;
}
.sahara-mv__catch-accent { color: #7A5F42; }
.sahara-mv__sub {
  font-size: clamp(11px, 1.15vw, 15px);
  letter-spacing: .04em;
  white-space: nowrap;
  color: #5A4632;
  padding-top: 14px;
  border-top: 1px solid #EFE5D5;
}
.sahara-mv__badges {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}
.sahara-badge {
  width: 136px;
  height: 136px;
  border-radius: 50%;
  background: #FBF7F0;
  border: 1px solid #B79A76;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  line-height: 1.3;
  text-align: center;
}
.sahara-badge__icon { width: 34px; height: 34px; object-fit: contain; margin-bottom: 2px; }
.sahara-badge__en { font-family: "EB Garamond", serif; font-size: 30px; color: #4A3A2A; }
.sahara-badge__en--italic { font-style: italic; font-size: 26px; }
.sahara-badge__en--sm { font-size: 22px; }
.sahara-badge__num { font-size: 30px; }
.sahara-badge__num--ja { font-family: "Shippori Mincho", serif; font-size: 20px; font-weight: 600; margin-left: 2px; }
.sahara-badge__ja { font-size: 14px; font-weight: 600; color: #4A3A2A; }
.sahara-badge__ja--sm { font-size: 13px; }

.sahara-mv__visual {
  flex: 1.35 1 460px;
  min-width: 0;
  position: relative;
  display: flex;
  flex-direction: column;
}
.sahara-mv__frame {
  position: absolute;
  inset: -12px;
  border: 1px solid #D9C6A8;
  border-radius: 252px 252px 10px 10px;
  pointer-events: none;
}
.sahara-mv__leaf-side {
  position: absolute;
  top: 12%;
  left: -128px;
  width: 124px;
  height: auto;
  opacity: .7;
  transform: rotate(-14deg);
  pointer-events: none;
  z-index: 2;
}
@media (max-width: 1079px) {
  .sahara-mv__leaf-side { display: none; }
}

/* #slideshow：CMSスライダー（高さ100%追従）に合わせ高さを明示 */
#slideshow.sahara-mv__arch {
  position: relative;
  width: 100%;
  flex: 1;
  min-height: clamp(300px, 48vw, 420px);
  border-radius: 240px 240px 4px 4px;
  overflow: hidden;
  background: #EAD9BE;
}
/* CMS出力エリアを外枠いっぱいに固定（CMS側の height:100% 連鎖を確実に効かせる） */
#slideshow #cms-slider-1-1-area {
  position: absolute;
  inset: 0;
}
/* .swiper-slide は Swiper（fade）が位置を制御するため position を上書きしない */
#slideshow .swiper-slide,
#slideshow .main_slider__inner {
  height: 100%;
}
#slideshow .main_slider__inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 60% center;
}

/* SP：英字 → キャッチ → サブ → 画像 → 丸アイコン → 予約ボタン の順に並べ替え */
@media (max-width: 767px) {
  .sahara-mv__inner {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 20px;
  }
  .sahara-mv__text { display: contents; }
  .sahara-mv__text > .sahara-eyebrow { order: 1; }
  .sahara-mv__catch { order: 2; }
  .sahara-mv__sub { order: 3; }
  .sahara-mv__visual { order: 4; flex: none; margin: 16px 0 12px; }
  .sahara-mv__badges { order: 5; }
  .sahara-mv__text > .sahara-btn-group { order: 6; margin-top: 8px; }

  /* 丸アイコン：3つ横並びに収まるよう幅に追従して縮小 */
  .sahara-mv__badges { flex-wrap: nowrap; gap: 8px; }
  .sahara-mv__badges .sahara-badge {
    width: calc((100% - 16px) / 3);
    max-width: 112px;
    height: auto;
    aspect-ratio: 1;
    gap: 2px;
  }
  .sahara-mv__badges .sahara-badge__icon { width: 24px; height: 24px; margin-bottom: 0; }
  .sahara-mv__badges .sahara-badge__en { font-size: 22px; }
  .sahara-mv__badges .sahara-badge__en--italic { font-size: 20px; }
  .sahara-mv__badges .sahara-badge__en--sm { font-size: 17px; }
  .sahara-mv__badges .sahara-badge__num { font-size: 22px; }
  .sahara-mv__badges .sahara-badge__num--ja { font-size: 15px; }
  .sahara-mv__badges .sahara-badge__ja { font-size: 11px; letter-spacing: 0; white-space: nowrap; }
  .sahara-mv__badges .sahara-badge__ja--sm { font-size: 10px; }
}

/* ==========================================================================
   TOP：サロンのご紹介
   ========================================================================== */
.sahara-about {
  position: relative;
  overflow: hidden;
  padding: clamp(56px, 7vw, 88px) 24px;
}
.sahara-about__leaf {
  position: absolute;
  top: 50%;
  right: calc(10% - 48px);
  height: 78%;
  width: auto;
  transform: translateY(-50%) rotate(8deg);
  opacity: .75;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 1079px) {
  .sahara-about__leaf { display: none; }
}
.sahara-about__inner {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 24px 56px;
  align-items: center;
}
.sahara-about .sahara-ttl { flex: 0 0 auto; }
.sahara-about__text {
  flex: 1 1 420px;
  min-width: 0;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 2.2;
  letter-spacing: .06em;
  color: #4A3A2A;
  border-left: 1px solid #D9C6A8;
  padding-left: clamp(20px, 3vw, 40px);
}

/* ==========================================================================
   TOP：キャンペーン
   ========================================================================== */
/* 件数（1〜3件）に関わらずカード幅を3列時と同じに固定し、中央寄せ */
.sahara-campaign-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px;
}
.sahara-campaign-card {
  flex: 0 0 calc((100% - 64px) / 3);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-bottom: 22px;
  color: #4A3A2A;
  background: #FFFFFF;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .10);
  transition: transform .4s, box-shadow .4s, color .3s;
}
@media (max-width: 899px) {
  .sahara-campaign-card { flex-basis: calc((100% - 32px) / 2); }
}
@media (max-width: 599px) {
  .sahara-campaign-card { flex-basis: 100%; }
}
.sahara-campaign-card:hover {
  color: #7A5F42;
  transform: translateY(-4px);
  box-shadow: 0 14px 34px rgba(90, 70, 50, .14);
}
.sahara-campaign-card__img { aspect-ratio: 16 / 10; overflow: hidden; background: #F8F2E8; }
.sahara-campaign-card__img img { width: 100%; height: 100%; object-fit: cover; }
.sahara-campaign-card__date {
  padding: 0 22px;
  font-family: "EB Garamond", serif;
  font-size: 14px;
  letter-spacing: .1em;
  color: #7A5F42;
}
.sahara-campaign-card__title {
  padding: 0 22px;
  font-size: 15px;
  line-height: 1.7;
  letter-spacing: .04em;
  font-weight: 600;
}

/* ==========================================================================
   TOP：初めての方におすすめ
   ========================================================================== */
.sahara-firstvisit {
  position: relative;
  overflow: hidden;
  background: #F6EADB url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28890/bg-01.png") left bottom / cover no-repeat;
}
/* スマホ：背景画像を薄くして文字に重なっても読めるようにする */
@media (max-width: 767px) {
  .sahara-firstvisit {
    background-image:
      linear-gradient(rgba(246, 234, 219, .6), rgba(246, 234, 219, .6)),
      url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28890/bg-01.png");
  }
}
.sahara-fv-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 28px;
}
.sahara-fv-card {
  background: #FFFFFF;
  border-radius: 2px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.sahara-fv-card__visual { position: relative; overflow: hidden; }
.sahara-fv-card__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  outline: 1px solid rgba(255, 255, 255, .75);
  outline-offset: -10px;
}
.is-js .sahara-fv-card__img { opacity: 0; }
.sahara-fv-card__box {
  position: absolute;
  inset: 0;
  background: #5A4632;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .6s cubic-bezier(.77, 0, .18, 1);
  pointer-events: none;
}
/* JS（top.js）でボックス展開 → 画像表示 */
.sahara-fv-card__visual.is-box-in .sahara-fv-card__box { transform: scaleX(1); transform-origin: left center; }
.sahara-fv-card__visual.is-box-out .sahara-fv-card__box { transform: scaleX(0); transform-origin: right center; }
.is-js .sahara-fv-card__visual.is-box-out .sahara-fv-card__img { opacity: 1; }
.sahara-fv-card__body { padding: 28px 32px 32px; display: flex; flex-direction: column; gap: 14px; }
.sahara-fv-card__tags { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.sahara-fv-card__en { font-family: "EB Garamond", serif; font-style: italic; font-size: 14px; color: #7A5F42; }
.sahara-fv-card__name { font-size: 19px; letter-spacing: .06em; line-height: 1.6; }
.sahara-fv-card__min { font-family: "EB Garamond", serif; font-size: 22px; margin-left: 8px; }
.sahara-fv-card__price-row {
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  padding-top: 14px;
  border-top: 1px solid #EFE5D5;
}
.sahara-fv-card__price { font-family: "EB Garamond", serif; font-size: 40px; line-height: 1; color: #4A3A2A; }
.sahara-fv-card__regular { font-size: 13px; color: #7A5F42; }
.sahara-fv-taxnote { text-align: center; font-size: 13px; color: #4A3A2A; margin-top: -20px; }

/* ==========================================================================
   TOP：各ページへの導線
   ========================================================================== */
.sahara-contents {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 48px 32px;
}
.sahara-contents__item {
  flex: 1 1 300px;
  max-width: 352px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.sahara-contents__card { position: relative; display: block; overflow: hidden; }
.sahara-contents__img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center;
  transform: scale(1);
  filter: blur(0);
  transition: transform .7s ease, filter .5s ease;
}
.sahara-contents__img--pos-40 { object-position: 40% center; }
.sahara-contents__img--pos-30 { object-position: center 30%; }
.sahara-contents__img--pos-40v { object-position: center 40%; }
.sahara-contents__ov {
  position: absolute;
  inset: 0;
  background: rgba(58, 44, 30, .35);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #FFFFFF;
  text-align: center;
  text-shadow: 0 1px 10px rgba(40, 30, 20, .45);
  outline: 1px solid rgba(255, 255, 255, .7);
  outline-offset: -10px;
  transition: background .5s ease, outline-offset .5s ease;
}
.sahara-contents__en {
  font-family: "EB Garamond", serif;
  font-size: clamp(24px, 2.4vw, 30px);
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.2;
}
.sahara-contents__ja { font-size: 14px; font-weight: 400; letter-spacing: .2em; }
.sahara-contents__more {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "EB Garamond", serif;
  font-size: 13px;
  letter-spacing: .2em;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .5s, transform .5s;
}
.sahara-contents__num {
  position: absolute;
  left: 18px;
  top: 14px;
  font-family: "EB Garamond", serif;
  font-size: 16px;
  letter-spacing: .1em;
  color: #FFFFFF;
}
.sahara-contents__card:hover .sahara-contents__img { transform: scale(1.08); filter: blur(4px); }
.sahara-contents__card:hover .sahara-contents__ov { background: rgba(58, 44, 30, .5); outline-offset: -16px; }
.sahara-contents__card:hover .sahara-contents__more { opacity: 1; transform: translateY(0); }
.sahara-contents__text { flex: 1; font-size: 16px; line-height: 2; color: #4A3A2A; }

/* ==========================================================================
   TOP：動画
   ========================================================================== */
.sahara-movie-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 28px;
  justify-items: center;
}
.sahara-movie-grid .sahara-movie { width: 100%; max-width: 280px; }
.sahara-movie-grid .sahara-movie__link:hover { color: #4A3A2A; }

/* ==========================================================================
   TOP：アクセス
   ========================================================================== */
.sahara-top-access { display: flex; flex-wrap: wrap; gap: 40px 56px; align-items: stretch; }
.sahara-top-access__map.embed { flex: 1.3 1 420px; min-width: 0; min-height: 360px; border-radius: 2px; background: #F1E6D4; }
.sahara-top-access__map iframe { min-height: 360px; }
.sahara-top-access__info { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 28px; justify-content: center; }
.sahara-top-access__text { font-size: 16px; line-height: 2.1; color: #4A3A2A; }
.sahara-top-access__dl { display: grid; grid-template-columns: auto minmax(0, 1fr); border-top: 1px solid #EFE5D5; }
.sahara-top-access__dl dt {
  padding: 16px 20px 16px 0;
  font-size: 13px;
  color: #7A5F42;
  border-bottom: 1px solid #EFE5D5;
  letter-spacing: .08em;
}
.sahara-top-access__dl dd { padding: 16px 0; font-size: 15px; border-bottom: 1px solid #EFE5D5; }
.sahara-top-access__small { font-size: 13px; color: #5A4632; }

/* ==========================================================================
   下層：ヒーロー・パンくず・リード
   ========================================================================== */
.sahara-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid #EFE5D5;
  background:
    radial-gradient(ellipse 50% 80% at 6% 20%, rgba(234, 217, 190, .6), transparent 70%),
    radial-gradient(ellipse 40% 70% at 70% 100%, rgba(234, 217, 190, .45), transparent 70%),
    #FDFAF5;
}
.sahara-hero__bg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -80px;
  width: 100%;
  height: auto;
  opacity: .6;
  pointer-events: none;
}
.sahara-hero__leaf {
  position: absolute;
  top: -12%;
  left: -4%;
  width: clamp(140px, 16vw, 240px);
  height: auto;
  opacity: .35;
  transform: scale(-1, -1) rotate(-6deg);
  filter: blur(3px);
  pointer-events: none;
}
.sahara-hero__arch {
  position: absolute;
  top: clamp(20px, 3vw, 36px);
  bottom: 0;
  right: clamp(16px, 6vw, 96px);
  width: min(30%, 340px);
  pointer-events: none;
}
.sahara-hero__arch-frame {
  position: absolute;
  inset: -10px -10px 0 -10px;
  border: 1px solid #D9C6A8;
  border-bottom: 0;
  border-radius: 200px 200px 0 0;
}
.sahara-hero__arch-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 60% 30%;
  border-radius: 190px 190px 0 0;
}
.sahara-hero__content {
  position: relative;
  max-width: 1120px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 96px) 24px clamp(48px, 6vw, 80px);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sahara-hero__ttl {
  font-size: clamp(26px, 3.2vw, 38px);
  letter-spacing: .14em;
  color: #4A3A2A;
  font-weight: 400;
  line-height: 1.9;
}
.sahara-hero__script {
  display: inline-block;
  align-self: flex-start;
  font-family: "Allura", cursive;
  font-size: clamp(34px, 4.4vw, 52px);
  line-height: 1.3;
  color: #8A6E4E;
  margin-left: clamp(40px, 8vw, 120px);
  transform: rotate(-4deg);
  transform-origin: left center;
}
/* 狭い画面では見出しがアーチ写真に重ならないよう右側を空ける */
@media (max-width: 899px) {
  .sahara-hero__content { padding-right: calc(min(30%, 340px) + clamp(16px, 6vw, 96px) + 16px); }
}
@media (max-width: 639px) {
  /* アーチを太く：幅45%・右側1/3（15%）を画面外に見切れさせる */
  .sahara-hero__arch { width: 45%; right: -15%; }
  .sahara-hero__content { padding-right: calc(30% + 16px); }
  .sahara-hero__ttl { font-size: 22px; letter-spacing: .08em; }
  .sahara-hero__script { margin-left: 32px; }
}

.sahara-breadcrumb.breadcrumb {
  max-width: 1120px;
  margin: 0 auto;
  padding: 16px 24px;
  font-size: 12px;
  letter-spacing: .06em;
  color: #7A5F42;
}
.sahara-breadcrumb .breadcrumb__list { gap: 10px; }
.sahara-breadcrumb .breadcrumb__item { gap: 10px; }
.sahara-breadcrumb .breadcrumb__item:not(:last-child)::after { margin: 0; color: #7A5F42; }
.sahara-breadcrumb .breadcrumb__link { color: #7A5F42; }
.sahara-breadcrumb .breadcrumb__link:hover { text-decoration: none; color: #4A3A2A; }
.sahara-breadcrumb .breadcrumb__current { color: #4A3A2A; }

.sahara-lead { padding: clamp(40px, 5vw, 64px) 24px; }
.sahara-lead--menu { padding-bottom: clamp(24px, 3vw, 40px); }
.sahara-lead--access { padding-bottom: clamp(32px, 4vw, 48px); }
.sahara-lead__text {
  max-width: 760px;
  margin: 0 auto;
  font-size: clamp(16px, 1.5vw, 17px);
  line-height: 2.2;
  text-align: center;
  color: #4A3A2A;
}

/* ==========================================================================
   メニュー・料金
   ========================================================================== */
.sahara-anchor-nav {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 24px 24px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.sahara-anchor-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 8px;
  padding: 10px 22px;
  border: 1px solid #B79A76;
  background: #FBF7F0;
  border-radius: 999px;
  font-size: 13px;
  color: #5A4632;
  letter-spacing: .06em;
  line-height: 1.6;
  transition: background-color .3s ease, color .3s ease;
}
.sahara-anchor-nav__link i { font-size: 11px; line-height: 1; }
.sahara-anchor-nav__link:hover { background: #5A4632; color: #FFFFFF; }
@media (max-width: 639px) {
  .sahara-anchor-nav { grid-template-columns: repeat(2, 1fr); gap: 8px; padding: 0 16px 24px; }
  .sahara-anchor-nav__link { padding: 10px 12px; font-size: 12px; letter-spacing: .02em; }
}

.sahara-menu-sec { scroll-margin-top: 84px; background: #FFFFFF; }
.sahara-menu-sec--beige { background: #F8F2E8; }

.sahara-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 12px;
}

.sahara-price {
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  padding: 12px clamp(16px, 3vw, 40px) 16px;
}
.sahara-price__sub {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 18px 0 10px;
  border-bottom: 1px solid #D9C6A8;
  font-size: 16px;
  letter-spacing: .1em;
  color: #5A4632;
}
.sahara-price__sub-en { font-family: "EB Garamond", serif; font-style: italic; font-size: 14px; color: #8A6E4E; font-weight: 400; letter-spacing: 0; }
.sahara-price__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 4px clamp(12px, 2.4vw, 32px);
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid #EFE5D5;
}
.sahara-price__row:last-child { border-bottom: 0; }
.sahara-price__name-wrap { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sahara-price__name { font-size: clamp(14px, 1.4vw, 16px); line-height: 1.7; color: #4A3A2A; }
.sahara-price__note { font-size: 12px; color: #7A5F42; letter-spacing: .02em; }
.sahara-price__time { font-size: 14px; color: #5A4632; white-space: nowrap; }
.sahara-price__price {
  font-family: "EB Garamond", serif;
  font-size: clamp(18px, 1.8vw, 22px);
  color: #4A3A2A;
  white-space: nowrap;
  text-align: right;
  min-width: 84px;
}
.sahara-price-tax { font-size: 12px; color: #7A5F42; text-align: right; }

/* 下層 ご予約ボックス */
.sahara-reserve-sec { background: #FBF4EA url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28890/bg-02.png") right bottom / cover no-repeat; }
.sahara-reserve-box {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  background: #FFFFFF;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  padding: clamp(40px, 5vw, 60px) clamp(20px, 4vw, 48px);
  outline: 1px solid #D9C6A8;
  outline-offset: -10px;
}
.sahara-reserve-box__text { font-size: 16px; line-height: 2; color: #4A3A2A; }

/* ==========================================================================
   初めての方へ
   ========================================================================== */
.sahara-concern-list { display: flex; flex-direction: column; gap: 14px; }
.sahara-concern {
  background: #FFFFFF;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  padding: 24px clamp(20px, 3vw, 36px);
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  align-items: center;
}
.sahara-concern__main { flex: 1 1 320px; min-width: 0; display: flex; gap: 16px; align-items: flex-start; }
.sahara-concern__check {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  margin-top: 2px;
  border-radius: 50%;
  background: #FBF7F0;
  border: 1px solid #B79A76;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5A4632;
}
.sahara-concern__body { display: flex; flex-direction: column; gap: 4px; }
.sahara-concern__ttl { font-size: 17px; letter-spacing: .06em; line-height: 1.6; }
.sahara-concern__text { font-size: 14px; color: #5A4632; }
.sahara-concern__rec { flex: 0 1 auto; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.sahara-concern__arrow { color: #B79A76; flex-shrink: 0; }
.sahara-concern__tags { display: flex; gap: 8px; flex-wrap: wrap; }

.sahara-concern-summary { display: flex; gap: 20px; align-items: center; justify-content: center; flex-wrap: wrap; }
.sahara-concern-summary__mark { width: 72px; }
.sahara-concern-summary__text {
  max-width: 100%;
  background: #FFFFFF;
  border: 1px solid #D9C6A8;
  border-radius: 4px;
  padding: 20px 28px;
  font-size: 16px;
  line-height: 2;
  white-space: nowrap;
}
@media (max-width: 899px) {
  .sahara-concern-summary__text { white-space: normal; }
}

.sahara-flow {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 20px;
}
.sahara-flow__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  padding: 32px 22px 28px;
  background: #FFFFFF;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
}
.sahara-flow__num {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: #FBF7F0;
  border: 1px solid #B79A76;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
}
.sahara-flow__step { font-family: "EB Garamond", serif; font-style: italic; font-size: 12px; letter-spacing: .16em; color: #8A6E4E; }
.sahara-flow__digit { font-family: "EB Garamond", serif; font-size: 30px; color: #5A4632; }
.sahara-flow__ttl { font-size: 18px; letter-spacing: .1em; }
.sahara-flow__text { text-align: left; font-size: 15px; line-height: 1.95; color: #4A3A2A; }

.sahara-faq { display: flex; flex-direction: column; gap: 12px; }
.sahara-faq__item { background: #FFFFFF; box-shadow: 0 8px 28px rgba(90, 70, 50, .08); display: flex; flex-direction: column; }
.sahara-faq__q {
  display: flex;
  gap: 16px;
  align-items: center;
  width: 100%;
  padding: 22px clamp(20px, 3vw, 36px);
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: "Shippori Mincho", serif;
  color: #4A3A2A;
}
.sahara-faq__mark { font-family: "EB Garamond", serif; font-size: 24px; line-height: 1; color: #8A6E4E; }
.sahara-faq__mark--a { color: #5A4632; }
.sahara-faq__ttl { flex: 1; font-size: 16px; letter-spacing: .06em; line-height: 1.7; }
.sahara-faq__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid #B79A76;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5A4632;
  font-size: 12px;
  transition: transform .3s;
}
.sahara-faq__icon i { line-height: 1; }
.sahara-faq__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.sahara-faq__body-inner { overflow: hidden; }
.sahara-faq__a {
  display: flex;
  gap: 16px;
  align-items: baseline;
  margin: 0 clamp(20px, 3vw, 36px);
  padding: 16px 0 24px;
  border-top: 1px dashed #E5D6BF;
}
.sahara-faq__a p { font-size: 16px; line-height: 1.95; color: #4A3A2A; }
.sahara-faq__item.is-open .sahara-faq__body { grid-template-rows: 1fr; }
.sahara-faq__item.is-open .sahara-faq__icon { transform: rotate(45deg); }

/* ==========================================================================
   サロン紹介
   ========================================================================== */
.sahara-message { padding: clamp(56px, 7vw, 104px) 24px; }
.sahara-message__inner {
  position: relative;
  z-index: 1;
  max-width: 1120px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 48px 72px;
  align-items: center;
}
.sahara-message__photo { flex: 1 1 380px; min-width: 0; position: relative; padding: 12px; }
.sahara-message__frame {
  position: absolute;
  inset: 0;
  border: 1px solid #D9C6A8;
  border-radius: 212px 212px 10px 10px;
  pointer-events: none;
}
.sahara-message__photo img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 62% center;
  border-radius: 200px 200px 4px 4px;
}
.sahara-message__body { flex: 1.2 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.sahara-message__text { font-size: clamp(16px, 1.5vw, 17px); line-height: 2.25; color: #4A3A2A; }

.sahara-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.sahara-feature { background: #FFFFFF; box-shadow: 0 8px 28px rgba(90, 70, 50, .08); overflow: hidden; display: flex; flex-direction: column; }
.sahara-feature__body { padding: 24px 24px 30px; display: flex; flex-direction: column; gap: 12px; }
.sahara-feature__num { font-family: "EB Garamond", serif; font-size: 28px; line-height: 1; color: #B79A76; }
.sahara-feature__ttl { font-size: 17px; letter-spacing: .06em; line-height: 1.6; }
.sahara-feature__text { font-size: 15px; line-height: 1.95; color: #4A3A2A; }

/* 横スクロールスライダー（動画・スタッフ） */
.sahara-slider { display: flex; align-items: center; gap: clamp(8px, 1.5vw, 20px); }
.sahara-slider__btn {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid #B79A76;
  background: #FFFFFF;
  color: #5A4632;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease;
}
.sahara-slider__btn:hover { background: #5A4632; color: #FFFFFF; }
.sahara-slider__track {
  flex: 1;
  min-width: 0;
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding: 2px 0;
}
.sahara-slider__track::-webkit-scrollbar { display: none; }
.sahara-slider__video { flex: 0 0 calc((100% - 72px) / 4); scroll-snap-align: start; }
.sahara-slider__video .sahara-movie__link:hover { color: #4A3A2A; }

.sahara-staff-lead {
  max-width: 100%;
  margin-top: 8px;
  font-size: 15px;
  line-height: 2;
  color: #4A3A2A;
  white-space: nowrap;
}
@media (max-width: 899px) {
  .sahara-staff-lead { white-space: normal; text-align: left; }
}
.sahara-staff {
  flex: 0 0 calc((100% - 48px) / 3);
  scroll-snap-align: start;
  background: #FFFFFF;
  border-radius: 2px;
  padding: 28px;
  border: 1px solid #EFE5D5;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.sahara-staff__head { display: flex; gap: 18px; align-items: center; }
.sahara-staff__img {
  width: 96px;
  height: 96px;
  flex-shrink: 0;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 18%;
  background: #F8F2E8;
  outline: 1px solid #D9C6A8;
  outline-offset: 4px;
}
.sahara-staff__name-wrap { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sahara-staff__kana { font-size: 11px; color: #7A5F42; letter-spacing: .06em; }
.sahara-staff__name { font-size: 20px; letter-spacing: .12em; line-height: 1.5; }
.sahara-staff__role { font-size: 12px; color: #5A4632; line-height: 1.6; }
.sahara-staff__career { display: inline-block; font-size: 12px; padding: 3px 12px; background: #EAD9BE; color: #4A3A2A; border-radius: 2px; }
.sahara-staff__skill { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; border-top: 1px solid #EFE5D5; }
.sahara-staff__label { font-size: 12px; color: #7A5F42; letter-spacing: .08em; }
.sahara-staff__skill p { font-size: 15px; line-height: 1.8; }
.sahara-staff__comment { flex: 1; font-size: 15px; line-height: 1.95; color: #4A3A2A; }

@media (max-width: 999px) {
  .sahara-staff { flex-basis: calc((100% - 24px) / 2); }
  .sahara-slider__video { flex-basis: calc((100% - 48px) / 3); }
}
@media (max-width: 639px) {
  .sahara-staff,
  .sahara-slider__video { flex-basis: 100%; }
}

.sahara-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 639px) {
  .sahara-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
.sahara-gallery__item { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.sahara-gallery__caption { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #5A4632; letter-spacing: .1em; }
.sahara-gallery__caption::before { content: ""; display: block; width: 20px; height: 1px; background: #B79A76; }

.sahara-school-sec { padding: 0 24px clamp(72px, 9vw, 112px); }
.sahara-school {
  max-width: 960px;
  margin: 0 auto;
  background: #FBF4EA url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28890/bg-04.png") center bottom / cover no-repeat;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  padding: clamp(32px, 4vw, 56px);
  display: flex;
  flex-wrap: wrap;
  gap: 28px 48px;
  outline: 1px solid #D9C6A8;
  outline-offset: -10px;
}
.sahara-school .sahara-ttl { flex: 0 0 auto; }
.sahara-school__body { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.sahara-school__text { font-size: 16px; line-height: 2; }
.sahara-school__box { background: #FFFFFF; padding: 20px 24px; border-radius: 2px; display: flex; flex-direction: column; gap: 8px; }
.sahara-school__label { font-size: 13px; font-weight: 600; color: #5A4632; letter-spacing: .08em; }
.sahara-school__box p { font-size: 15px; line-height: 1.95; }

/* ==========================================================================
   アクセス
   ========================================================================== */
.sahara-access-map-sec { padding: 0 24px clamp(64px, 8vw, 96px); }
.sahara-access-map.embed {
  max-width: 1120px;
  margin: 0 auto;
  height: clamp(320px, 40vw, 460px);
  border-radius: 0;
  background: #F1E6D4;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  outline: 1px solid #D9C6A8;
  outline-offset: 8px;
}
.sahara-transport { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.sahara-transport__item {
  background: #FFFFFF;
  padding: 36px 28px;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  text-align: center;
}
.sahara-transport__en { font-family: "EB Garamond", serif; font-style: italic; font-size: 15px; color: #8A6E4E; letter-spacing: .12em; }
.sahara-transport__ttl { font-size: 17px; letter-spacing: .08em; }
.sahara-transport__value { font-size: 15px; }
.sahara-transport__num { font-family: "EB Garamond", serif; font-size: 38px; line-height: 1; color: #4A3A2A; }
.sahara-transport__note { font-size: 13px; color: #5A4632; }

.sahara-info-table { display: grid; grid-template-columns: minmax(96px, 180px) minmax(0, 1fr); border-top: 1px solid #D9C6A8; }
.sahara-info-table dt {
  padding: 22px 20px;
  font-size: 14px;
  color: #5A4632;
  background: #FBF7F0;
  border-bottom: 1px solid #D9C6A8;
  letter-spacing: .12em;
}
.sahara-info-table dd { padding: 22px 20px; font-size: 15px; border-bottom: 1px solid #D9C6A8; }
.sahara-info-table a { color: #4A3A2A; }

/* ==========================================================================
   ご予約・お問い合わせ
   ========================================================================== */
.sahara-contact-reserve { padding: clamp(56px, 7vw, 96px) 24px; }
.sahara-contact-reserve__box {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin: 0 auto;
  background: #FBF4EA url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28890/bg-03.png") left bottom / cover no-repeat;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  padding: clamp(44px, 6vw, 76px) clamp(20px, 5vw, 64px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
  outline: 1px solid #D9C6A8;
  outline-offset: -12px;
}
.sahara-contact-reserve__text { font-size: 16px; line-height: 2.1; max-width: 600px; }
.sahara-contact-reserve__note {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  color: #5A4632;
}
.sahara-hpb-tag { font-size: 10px; padding: 1px 6px; border: 1px solid #B79A76; border-radius: 2px; }

.sahara-contact-cards-sec { padding: 0 24px clamp(56px, 7vw, 88px); }
.sahara-contact-cards {
  max-width: 880px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: 24px;
}
.sahara-contact-card {
  background: #FFFFFF;
  border: 1px solid #EFE5D5;
  box-shadow: 0 8px 28px rgba(90, 70, 50, .08);
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
  text-align: center;
}
.sahara-contact-card__tel {
  font-family: "EB Garamond", serif;
  font-size: 34px;
  letter-spacing: .06em;
  color: #4A3A2A;
  line-height: 1.3;
}
.sahara-contact-card__note { font-size: 13px; color: #5A4632; }
.sahara-contact-card__text { font-size: 15px; line-height: 1.9; }
.sahara-contact-card__sns { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; width: 100%; }

.sahara-recruit {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 28px 56px;
  align-items: center;
}
.sahara-recruit__body { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.sahara-recruit__text { font-size: 16px; line-height: 2.05; }

/* ==========================================================================
   ブログ（キャンペーン）
   ========================================================================== */
.sahara-blog-sec { padding: clamp(40px, 5vw, 72px) 24px clamp(72px, 9vw, 112px); }
.sahara-blog.main-side {
  max-width: 1120px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 56px;
}
.sahara-blog .main-side__main,
.sahara-blog .main-side__side { width: auto; min-width: 0; }
.sahara-blog .main-side__side { position: static; margin-top: 0; }
@media (max-width: 767px) {
  .sahara-blog.main-side { grid-template-columns: minmax(0, 1fr); }
}
.sahara-blog__list { display: flex; flex-direction: column; }
.sahara-entry-row {
  display: flex;
  gap: clamp(16px, 3vw, 32px);
  padding: 24px 0;
  border-bottom: 1px solid #EFE5D5;
  color: #4A3A2A;
  align-items: center;
  transition: color .3s ease;
}
.sahara-entry-row:hover { color: #7A5F42; }
.sahara-entry-row__img {
  position: relative;
  flex: 0 0 clamp(110px, 22vw, 220px);
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #F8F2E8;
}
.sahara-entry-row__img img { width: 100%; height: 100%; object-fit: cover; }
.sahara-entry-row__img::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(255, 255, 255, .8);
  pointer-events: none;
}
.sahara-entry-row__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.sahara-entry-row__date,
.sahara-article__date { font-family: "EB Garamond", serif; font-size: 14px; letter-spacing: .1em; color: #7A5F42; }
.sahara-entry-row__title { font-size: clamp(15px, 1.6vw, 18px); line-height: 1.7; letter-spacing: .04em; }

.sahara-pagination.pagination { margin: 32px 0 0; padding-top: 12px; }
.sahara-pagination .pagination__link {
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #D9C6A8;
  border-radius: 2px;
  color: #4A3A2A;
  font-family: "EB Garamond", serif;
  font-size: 16px;
}
.sahara-pagination .pagination__link:hover { border-color: #5A4632; color: #4A3A2A; }
.sahara-pagination .pagination__link.is-current { background: #5A4632; border-color: #5A4632; color: #FFFFFF; }

.sahara-blog__side {
  align-self: start;
  background: #FBF7F0;
  padding: 32px 28px;
  border: 1px solid #EFE5D5;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.sahara-archive { display: flex; flex-direction: column; gap: 12px; }
.sahara-archive__ttl {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 10px;
  border-bottom: 1px solid #B79A76;
  font-size: 15px;
  letter-spacing: .12em;
}
.sahara-archive__en { font-family: "EB Garamond", serif; font-style: italic; font-size: 13px; color: #8A6E4E; font-weight: 400; letter-spacing: 0; }
.sahara-archive__link { display: flex; justify-content: space-between; font-size: 14px; color: #4A3A2A; padding: 6px 0; }
.sahara-archive__link span { font-family: "EB Garamond", serif; color: #7A5F42; }

.sahara-article { display: flex; flex-direction: column; gap: 28px; }
.sahara-article__date { font-size: 15px; }
.sahara-article__title {
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.6;
  letter-spacing: .06em;
  padding-bottom: 24px;
  border-bottom: 1px solid #D9C6A8;
}
.sahara-article__img { aspect-ratio: 16 / 9; overflow: hidden; background: #F8F2E8; }
.sahara-article__img img { width: 100%; height: 100%; object-fit: cover; }
.sahara-article__body { display: flex; flex-direction: column; gap: 20px; font-size: 15px; line-height: 2.1; }
.sahara-article__body h3 { font-size: 18px; letter-spacing: .08em; padding: 10px 0 10px 18px; border-left: 2px solid #B79A76; }
.sahara-article__body img { height: auto; }
.sahara-article__body a { text-decoration: underline; }
.sahara-article__back {
  display: flex;
  justify-content: center;
  margin-top: 28px;
  padding-top: 32px;
  border-top: 1px solid #EFE5D5;
}
.sahara-article__back a { font-size: 14px; color: #5A4632; letter-spacing: .08em; }

/* ==========================================================================
   初稿前調整（改行・スマホ表示・ページトップ）
   ========================================================================== */
/* 改行切り替え（スマホ＝699px以下） */
.sahara-br-sp { display: none; }
@media (max-width: 699px) {
  .sahara-br-sp { display: inline; }
  .sahara-br-pc { display: none; }
  .sahara-sp-hide { display: none; }
}

/* 見出し・短文の1文字落ち対策 */
.sahara-faq__ttl,
.sahara-concern__ttl,
.sahara-concern__text,
.sahara-hero__ttl,
.sahara-staff__role { text-wrap: balance; }

/* ページトップボタン */
.sahara-page-top .page-top__link {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 1px solid #B79A76;
  color: #5A4632;
  box-shadow: 0 4px 14px rgba(90, 70, 50, .18);
  transition: background-color .3s ease, color .3s ease, transform .3s ease;
}
.sahara-page-top .page-top__link::before {
  content: "\f077";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 16px;
  line-height: 1;
}
.sahara-page-top .page-top__link:hover { background: #5A4632; color: #FFFFFF; }
@media (max-width: 767px) {
  .sahara-page-top { right: 14px; bottom: 80px; } /* SP下部固定ボタン（64px）と重ならない位置 */
  .sahara-page-top .page-top__link { width: 44px; height: 44px; }
}

@media (max-width: 699px) {
  /* MVサブコピー：2行にして読める大きさに */
  .sahara-mv__sub { white-space: normal; font-size: 14px; line-height: 1.8; }

  /* 下層ヒーロー：英字が折り返さないように */
  .sahara-hero .sahara-eyebrow--sm { font-size: 12px; gap: 8px; letter-spacing: .1em; white-space: nowrap; }
  .sahara-hero .sahara-eyebrow--sm::before { width: 18px; }
  .sahara-hero__ttl { font-size: min(22px, 5vw); letter-spacing: .04em; }

  /* ボタン：横幅をそろえる */
  .sahara-btn-reserve,
  .sahara-btn-pill:not(.sahara-btn-pill--sns):not(.sahara-btn-pill--block):not(.sahara-btn-pill--coupon) {
    width: min(100%, 320px);
    min-width: 0;
    padding-left: 16px;
    padding-right: 16px;
  }
  .sahara-btn-pill { white-space: nowrap; }

  /* 左寄せの見出し・ボタンは中央配置 */
  .sahara-ttl--left { align-items: center; text-align: center; }
  .sahara-btn-group--start { align-items: center; }
  .sahara-recruit { justify-content: center; }
  .sahara-recruit__text { text-align: left; }

  /* フッター：ロゴ・店舗情報・ボタンを中央に */
  .sahara-footer__info { align-items: center; }
  .sahara-footer__dl { width: fit-content; max-width: 100%; }
  .sahara-footer__action { align-items: center; }
  .sahara-footer__bottom .footer-bottom__copyright { text-align: center; line-height: 1.8; }

  /* 店舗概要の表：項目名の幅を詰める */
  .sahara-info-table { grid-template-columns: 88px minmax(0, 1fr); }
  .sahara-info-table dt { padding: 18px 12px; letter-spacing: .06em; }
  .sahara-info-table dd { padding: 18px 14px; }

  /* ページ内リンク：2カラム・画面幅に合わせた文字サイズで1行に */
  .sahara-anchor-nav__link { padding: 10px 6px; gap: 4px; font-size: min(12px, 2.75vw); letter-spacing: 0; white-space: nowrap; }
  .sahara-anchor-nav__link i { font-size: 9px; }

  /* スライダー（動画・スタッフ）：ボタンを下に回してカード幅を確保 */
  .sahara-slider { flex-wrap: wrap; justify-content: center; gap: 16px 20px; }
  .sahara-slider__track { order: -1; flex: 0 0 100%; }
  .sahara-slider__btn { width: 44px; height: 44px; }
  .sahara-staff { padding: 24px 20px; }
  .sahara-staff__img { width: 84px; height: 84px; }
}

/* SP：PCで中央寄せの長めの説明文は左寄せ */
@media (max-width: 699px) {
  .sahara-lead__text,
  .sahara-ttl__leads { text-align: left; align-self: stretch; }
}

/* SP：サロン紹介 Message は見出し・本文 → 画像の順 */
@media (max-width: 699px) {
  .sahara-message__photo { order: 2; }
}

/* SP：ご予約バナーの背景画像を薄くして文字を読みやすく */
@media (max-width: 699px) {
  .sahara-contact-reserve__box::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(251, 244, 234, .72);
    pointer-events: none;
  }
  .sahara-contact-reserve__box > * { position: relative; }
}

/* ==========================================================================
   下層ページ：本文の文字サイズを一回り大きく（715166）
   ※TOPには .sahara-hero が無いため、下層ページだけに効く
   ========================================================================== */
main:has(> .sahara-hero) .sahara-ttl__lead,
main:has(> .sahara-hero) .sahara-ttl__leads p,
main:has(> .sahara-hero) .sahara-reserve-box__text,
main:has(> .sahara-hero) .sahara-concern-summary__text,
main:has(> .sahara-hero) .sahara-faq__ttl,
main:has(> .sahara-hero) .sahara-faq__a p,
main:has(> .sahara-hero) .sahara-school__text,
main:has(> .sahara-hero) .sahara-contact-reserve__text,
main:has(> .sahara-hero) .sahara-recruit__text { font-size: 17px; }
main:has(> .sahara-hero) .sahara-flow__text,
main:has(> .sahara-hero) .sahara-feature__text,
main:has(> .sahara-hero) .sahara-staff-lead,
main:has(> .sahara-hero) .sahara-staff__skill p,
main:has(> .sahara-hero) .sahara-staff__comment,
main:has(> .sahara-hero) .sahara-school__box p,
main:has(> .sahara-hero) .sahara-transport__value,
main:has(> .sahara-hero) .sahara-info-table dd,
main:has(> .sahara-hero) .sahara-contact-card__text,
main:has(> .sahara-hero) .sahara-article__body { font-size: 16px; }
main:has(> .sahara-hero) .sahara-concern__text,
main:has(> .sahara-hero) .sahara-info-table dt,
main:has(> .sahara-hero) .sahara-price__time { font-size: 15px; }
main:has(> .sahara-hero) .sahara-transport__note,
main:has(> .sahara-hero) .sahara-contact-card__note,
main:has(> .sahara-hero) .sahara-gallery__caption { font-size: 14px; }
main:has(> .sahara-hero) .sahara-note,
main:has(> .sahara-hero) .sahara-price__note,
main:has(> .sahara-hero) .sahara-price-tax { font-size: 13px; }
main:has(> .sahara-hero) .sahara-lead__text,
main:has(> .sahara-hero) .sahara-message__text { font-size: clamp(17px, 1.6vw, 18px); }
main:has(> .sahara-hero) .sahara-price__name { font-size: clamp(15px, 1.5vw, 17px); }
/* スマホ：メニュー表の文字をさらに大きく */
@media (max-width: 767px) {
  main:has(> .sahara-hero) .sahara-price__sub { font-size: 17px; }
  main:has(> .sahara-hero) .sahara-price__name { font-size: 17px; }
  main:has(> .sahara-hero) .sahara-price__note,
  main:has(> .sahara-hero) .sahara-price-tax { font-size: 14px; }
  main:has(> .sahara-hero) .sahara-price__time { font-size: 16px; }
  main:has(> .sahara-hero) .sahara-price__price { font-size: 21px; }
  /* メニュー名を1行目に全幅、時間・価格を2行目の右寄せに */
  main:has(> .sahara-hero) .sahara-price__row { row-gap: 6px; column-gap: 20px; }
  main:has(> .sahara-hero) .sahara-price__name-wrap { grid-column: 1 / -1; }
  main:has(> .sahara-hero) .sahara-price__time { grid-column: 2; }
  main:has(> .sahara-hero) .sahara-price__price { grid-column: 3; min-width: 0; }
}
