@charset "utf-8";

/* ==========================================================================
   BLITHE  /  style.css
   デザイン基準幅 1512px  ／  コンテナ幅 1152px（左右余白 180px）
   Bootstrap v4.1 ＋ common.css を拡張
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 変数
   -------------------------------------------------------------------------- */
:root {
  /* Color */
  --c-text: #323224; /* 基本テキスト（オリーブブラック） */
  --c-brown: #623511; /* 見出しブラウン */
  --c-accent: #d45d00; /* アクセント（VIEW MORE・罫線） */
  --c-cream: #e5e1cd; /* クリーム（ボーダー・縦書きボタン文字） */
  --c-bg: #e8e4da; /* セクション背景ベース */
  --c-bg-end: #f3f0e7; /* グラデーション終端 */
  --c-circle: #fffcf1; /* 悩みサークル背景 */
  --c-dark: #2b1809; /* 固定サイドボタン */
  --c-footer: #787673; /* フッター背景 */
  --c-line: #d9d9d9; /* NEWS 区切り線 */

  /* Font */
  /* 見出し・本文（しずか明朝） */
  --shizu: "tot-shizukardmin-stdn", "Hiragino Mincho ProN",
    "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "BIZ UDPMincho",
    "MS PMincho", serif;
  /* 英字（Afacad） */
  --afa: "Afacad", "Aptos", "Segoe UI", "Helvetica Neue", "Arial", sans-serif;
  /* フッター（Noto Sans JP） */
  --sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
    "Yu Gothic", "Yu Gothic UI", "Meiryo", "BIZ UDPGothic", sans-serif;

  /* Layout */
  --container: 1152px;
  --gutter: 24px;
}

/* --------------------------------------------------------------------------
   2. ベース
   -------------------------------------------------------------------------- */
/* スクロールはブラウザ標準の挙動（慣性・スムーススクロールなし）。
   ページ内アンカーのみ common.js の GSAP ScrollToPlugin で制御します。 */

/* Bootstrap 未読込でもレイアウトが崩れないよう明示 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--shizu);
  font-weight: 400;
  font-feature-settings: "palt";
  color: var(--c-text);
  background-color: var(--c-bg);
  line-height: 2.4;
  letter-spacing: 0.1em;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  word-break: auto-phrase;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

#wrapper .js-fade {
  opacity: 1;
  transform: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s ease, color 0.3s ease;
}
a:hover {
  color: inherit;
  text-decoration: none;
  opacity: 0.65;
}

/* --------------------------------------------------------------------------
   3. 共通コンポーネント
   -------------------------------------------------------------------------- */

/* 3-1. 英字ラベル（QUESTION / ABOUT US など 16px） */
.c-label {
  font-family: var(--afa);
  font-size: clamp(11px, 1.06vw, 16px);
  line-height: 1;
  letter-spacing: 0.1em;
  color: inherit;
}
.c-label--center {
  text-align: center;
}

/* 3-2. セクション見出し（48px） */
.c-h2 {
  font-size: clamp(24px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0.15em;
  white-space: pre-line;
}

/* 3-3. 本文リード（16px） */
.c-lead {
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.55;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* 3-4. VIEW MORE（上罫線 ＋ ◆ マーカー） */
.c-more {
  display: block;
  position: relative;
  width: 201px;
  max-width: 100%;
  padding-top: 36px;
  border-top: 1px solid var(--c-accent);
  color: var(--c-accent);
}
.c-more > p {
  font-family: var(--afa);
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.1em;
  padding-left: 30px;
  transition: transform 0.3s ease;
}
.c-more::before {
  content: "";
  position: absolute;
  left: 0;
  top: 39px;
  width: 9px;
  height: 9px;
  background: var(--c-accent);
  transform: rotate(45deg);
}
.c-more:hover {
  opacity: 1;
  color: var(--c-accent);
} /* ホバーで色を変えない */
.c-more:hover > p {
  transform: translateX(6px);
}

/* 3-5. 固定サイドボタン（縦書き） */
.c-side {
  box-sizing: border-box;
  position: fixed;
  right: 18px;
  z-index: 90;
  display: flex;
  flex-direction: column; /* vertical-rl では右→左の並び（英字が右／和文が左） */
  align-items: flex-start; /* 英字と和文の上端を揃える */
  justify-content: center; /* ボタン内で左右中央 */
  gap: 7px;
  width: 91px;
  background: var(--c-dark);
  border-radius: 999px;
  color: var(--c-cream);
  writing-mode: vertical-rl;
  text-align: start;
}
/* 画面下部から 40px を起点に、下→上へ積む */
.c-side--reserve {
  bottom: 297px;
  height: 244px;
  padding: 39px 0;
}
.c-side--guide {
  bottom: 40px;
  height: 238px;
  padding: 49px 0;
}
.c-side:hover {
  opacity: 0.8;
  color: #cccabd;
}
.c-side__en {
  font-family: var(--afa);
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.c-side__ja {
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

/* 3-6. 角丸アウトラインボタン */
.c-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 387px;
  max-width: 100%;
  height: 85px;
  background: #fff;
  border: 1px solid var(--c-cream);
  border-radius: 43px;
}
.c-btn__logo {
  width: 122px;
}
.c-btn__icon {
  width: 22px;
}
.c-btn__text {
  font-family: var(--afa);
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #69644b;
}

.sm-br > br {
  display: block;
}

@media (min-width: 576px) {
  .sm-br > br {
    display: none;
  }
}

.md-br > br {
  display: block;
}

@media (min-width: 768px) {
  .md-br > br {
    display: none;
  }
}

.lg-br > br {
  display: block;
}

@media (min-width: 992px) {
  .lg-br > br {
    display: none;
  }
}

.xl-br > br {
  display: block;
}

@media (min-width: 1200px) {
  .xl-br > br {
    display: none;
  }
}

/* --------------------------------------------------------------------------
   4. ヘッダー / グローバルナビ
   -------------------------------------------------------------------------- */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  display: flex;
  align-items: center; /* ロゴ・Instagram・バーガーを上下中央で揃える */
  width: 100%;
  height: 68px;
  padding: 0 27px 0 23px;
}
.l-header__logo,
.l-header__ig,
.l-header__burger {
  display: flex;
  align-items: center;
  line-height: 0;
}
.l-header__logo {
  margin-right: auto;
}
.l-header__logo img {
  width: clamp(104px, 9.7vw, 147px);
}
.l-header__ig {
  margin-right: 27px;
}
.l-header__ig img {
  width: 23px;
}
.l-header__burger img {
  width: 42px;
}

/* バーガー：ナビ展開時に × へ切り替え（common.js が .is-active を付与） */
.l-header__ig .is-open,
.l-header__burger .is-open {
  display: none;
}
.a-nav-open .l-header__ig .is-normal,
.a-burger.is-active .is-normal {
  display: none;
}
.a-nav-open .l-header__ig .is-open,
.a-burger.is-active .is-open {
  display: block;
}

/* common.js が制御（.a-burger / .a-nav-menu） */
.a-nav-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 46px;
  background: rgba(43, 24, 9, 0.96);
  color: #fff;
}
.a-nav-menu__link {
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.1em;
}

/* --------------------------------------------------------------------------
   5. FV
   -------------------------------------------------------------------------- */
.p-fv {
  position: relative;
  height: 100vh;
  min-height: 560px;
  max-height: 1000px;
  background: url(/system_panel/uploads/images/fv.jpg) center / cover no-repeat
    #f1e3c0;
}
.p-fv__inner {
  position: absolute;
  left: max(var(--gutter), 11.9%);
  bottom: 9.9%;
  color: #fff;
}
.p-fv__logo {
  display: block;
  width: clamp(168px, 11.2vw, 214px);
  margin-bottom: 40px;
}
.p-fv__title {
  font-size: clamp(30px, 4.9vw, 74px);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0.15em;
  margin-bottom: 33px;
  text-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
}
.p-fv__lead {
  font-size: clamp(13px, 1.59vw, 24px);
  line-height: 1;
  letter-spacing: 0.15em;
  text-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
}

/* --------------------------------------------------------------------------
   6. QUESTION
   -------------------------------------------------------------------------- */
.p-question {
  /* このセクションのみ、狭い画面でも左右余白をデザイン比率（180/1512＝11.9%）で確保 */
  padding: 9vw max(var(--gutter), 11.9vw) 11vw;
  background: url(/system_panel/uploads/images/question-bg.jpg) center / cover
    no-repeat #928d7c;
  color: #fff;
}
.p-question .c-label,
.p-question__title {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
}
.p-question__title {
  margin-top: 3.2vw;
  padding-right: max(
    0px,
    min(328px, calc(100% - 824px))
  ); /* テキスト領域を 824px に */
  font-size: clamp(24px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.15em;
  white-space: pre-line;
}

/* --------------------------------------------------------------------------
   7. 悩みサークル
   -------------------------------------------------------------------------- */
.p-worry {
  padding: 8.1vw var(--gutter) 10.9vw;
  background: var(--c-bg);
  text-align: center;
}
/* PC・タブレット：1段4個／SP：2段2個（スライダーは使用しない） */
.p-worry__wrap {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: clamp(10px, 1.65vw, 25px);
  max-width: var(--container);
  margin-inline: auto;
}
.p-worry__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: clamp(92px, 10.4vw, 157px);
  height: clamp(92px, 10.4vw, 157px);
  border-radius: 50%;
  background: var(--c-circle);
  font-size: clamp(14px, 1.38vw, 21px);
  line-height: 1;
  letter-spacing: 0.1em;
  box-shadow: 0 2px 18px rgba(90, 80, 60, 0.07);
}
.p-worry__note {
  margin-top: 3.6vw;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-worry__msg {
  margin-top: 2.6vw;
  font-size: clamp(16px, 2.12vw, 32px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* --------------------------------------------------------------------------
   8. VISION（Treat the Cause.）
   -------------------------------------------------------------------------- */
.p-vision {
  position: relative;
  height: 80.6vw; /* 1218 / 1512（バンド571 ＋ 写真647） */
  background: #edeae1;
  overflow: hidden;
}
.p-vision__bg {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 37.8vw; /* 571 / 1512 */
  background: url(/system_panel/uploads/images/treat-bg.jpg) center / cover
    no-repeat #ae9a66;
}
.p-vision__l1,
.p-vision__l2,
.p-vision__l3 {
  position: relative;
  z-index: 2; /* 見出しを写真の上に重ねる */
  font-size: clamp(46px, 10.3vw, 156px);
  font-weight: 400;
  line-height: 1.105;
  letter-spacing: 0.01em; /* 大きな英字は Figma 値。.1em だと 1行が画面幅を超える */
  color: #fff;
  white-space: nowrap;
}
.p-vision__l1 {
  padding-top: 8vw;
  margin-left: 5.95%;
} /*  90 / 1512 */
.p-vision__l2 {
  margin-left: 13.95%;
} /* 211 / 1512 */
.p-vision__l3 {
  margin-left: 43.4%;
} /* 656 / 1512 */
.p-vision__lead {
  position: relative;
  z-index: 2;
  margin: -9.3vw 0 0 14.15%; /* True Skin. の行に重ねる */
  font-size: clamp(15px, 1.85vw, 28px);
  line-height: 1.8;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-vision__img {
  position: absolute;
  z-index: 0; /* 見出し・リードの下に敷く */
  left: 0;
  top: 37.8vw; /* バンド下端から開始 */
  width: 100%;
  height: 42.8vw;
  object-fit: cover;
  object-position: center;
}

/* --------------------------------------------------------------------------
   9. ABOUT US
   -------------------------------------------------------------------------- */
.p-about {
  display: grid;
  grid-template-columns: 32.3% 9% 1fr; /* 488px / 136px / 残り */
  align-items: start;
  padding: 6.9vw 0 11.1vw;
  background: url(/system_panel/uploads/images/about-bg.jpg) center / cover
    no-repeat #cccabd;
}
.p-about__img {
  grid-column: 1;
  grid-row: 1 / 6;
  width: 100%;
  height: 46.2vw; /* 699 / 1512 */
  object-fit: cover;
}
.p-about .c-label {
  grid-column: 3;
  grid-row: 1;
  margin-top: 2.5vw;
}
.p-about .c-h2 {
  grid-column: 3;
  grid-row: 2;
  margin-top: 1.6vw;
}
.p-about .c-lead {
  grid-column: 3;
  grid-row: 3;
  margin-top: 5.7vw;
}
.p-about .c-more {
  grid-column: 3;
  grid-row: 4;
  margin-top: 4.7vw;
}

/* --------------------------------------------------------------------------
   10. PROGRAM
   -------------------------------------------------------------------------- */
.p-program {
  position: relative;
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto;
  padding: 9vw var(--gutter) 0;
}
.p-program__deco {
  position: absolute;
  z-index: 0;
  top: 4.4vw;
  left: 8.4vw;
  width: 9.5vw;
  max-width: 144px;
  pointer-events: none;
}
.p-program .c-label,
.p-program .c-h2,
.p-program .c-lead {
  position: relative;
  z-index: 1;
}
.p-program .c-h2 {
  margin-top: 1.5vw;
}
.p-program .c-lead {
  margin-top: 3vw;
}

/* PROGRAM セクション背景（ラッパー1枚のグラデーションのみ） */
.p-program-sec {
  background: linear-gradient(180deg, #e8e4d9 0%, #f3f1e8 100%);
}

/* 10-1. プログラムカード（画像 ／ タグ・見出し ／ 説明文 ／ VIEW MORE） */
.p-card {
  display: grid;
  grid-template-columns: 43.1% 6.9% 1fr; /* 496 / 80 / 576 */
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto;
  padding: 7.6vw var(--gutter) 0;
}
.p-card__img {
  grid-column: 1 / -1;
  grid-row: 1;
  width: 100%;
  height: 26.5vw; /* 400 / 1512 */
  max-height: 400px;
  object-fit: cover;
}
.p-card__tag {
  grid-column: 1;
  grid-row: 2;
  margin-top: 3.6vw;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 1;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-card__title {
  grid-column: 1;
  grid-row: 3;
  margin-top: 1.6vw;
  font-size: clamp(20px, 2.65vw, 40px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.15em;
}
.p-card__text {
  grid-column: 3;
  grid-row: 2 / 4;
  margin-top: 5vw;
  padding-left: 5.3vw;
  border-left: 1px solid rgba(50, 50, 36, 0.25);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.1em;
}
.p-card .c-more {
  grid-column: 1;
  grid-row: 4;
  margin-top: 3.4vw;
}

/* --------------------------------------------------------------------------
   11. MARQUEE（Personalized Skin Care）
   -------------------------------------------------------------------------- */
.p-marquee {
  display: flex;
  width: 100%;
  padding: 9.5vw 0 3vw;
  overflow: hidden;
}
.p-marquee__text {
  flex: 0 0 auto;
  font-size: clamp(64px, 13.2vw, 200px);
  line-height: 1.05;
  letter-spacing: 0.01em;
  color: #fff;
  white-space: nowrap;
}
.p-personalized {
  display: block;
  width: 100%;
  height: 52.2vw; /* 790 / 1512 */
  object-fit: cover;
  object-position: center 30%;
}

/* --------------------------------------------------------------------------
   12. CASE（変化が、その証です。／ 症例紹介）
   -------------------------------------------------------------------------- */
.p-proof {
  position: relative;
  padding: 10.7vw var(--gutter) 0;
  background: var(--c-bg);
}
.p-proof__deco {
  position: absolute;
  z-index: 0;
  top: 8.6vw;
  left: 30.5%;
  width: 15.5vw;
  max-width: 235px;
  pointer-events: none;
}
.p-proof__title {
  position: relative;
  z-index: 1;
  padding-left: 47.1%;
  font-size: clamp(20px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.15em;
  color: var(--c-brown);
}
.p-case {
  display: grid;
  /* 余白（コンテナ左端＋インデント） / テキスト / 画像（右端まで） */
  grid-template-columns:
    calc(max(var(--gutter), (100% - var(--container)) / 2) + min(137px, 9.1vw))
    minmax(0, 1fr)
    52.8%;
  align-items: start;
  padding: 6.5vw 0 0;
  background: var(--c-bg);
}
.p-case__img {
  grid-column: 3;
  grid-row: 1 / 6;
  width: 100%;
  height: 35.2vw; /* 533 / 1512 */
  object-fit: cover;
}
.p-case .c-label {
  grid-column: 2;
  grid-row: 1;
}
.p-case .c-h2 {
  grid-column: 2;
  grid-row: 2;
  margin-top: 1.1vw;
}
.p-case .c-lead {
  grid-column: 2;
  grid-row: 3;
  margin-top: 3.2vw;
  line-height: 2.4;
}
.p-case .c-more {
  grid-column: 2;
  grid-row: 4;
  margin-top: 3.4vw;
}

/* --------------------------------------------------------------------------
   13. HOME CARE
   -------------------------------------------------------------------------- */
.p-copy {
  position: relative;
  padding: 8.8vw var(--gutter) 0;
  background: var(--c-bg);
  text-align: center;
}
.p-copy__deco {
  position: absolute;
  z-index: 0;
  top: 3.2vw;
  left: 11.2vw;
  width: 10.6vw;
  max-width: 160px;
  pointer-events: none;
}
.p-copy__title {
  position: relative;
  font-size: clamp(20px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.15em;
  color: var(--c-brown);
}
.p-homecare {
  display: grid;
  grid-template-columns: 52.8% 8.3% 1fr; /* 画像 / 余白 / テキスト */
  align-items: start;
  padding: 6.9vw 0 11.5vw;
  background: var(--c-bg);
}
.p-homecare__img {
  grid-column: 1;
  grid-row: 1 / 6;
  width: 100%;
  height: 33.1vw; /* 501 / 1512 */
  object-fit: cover;
}
.p-homecare .c-label {
  grid-column: 3;
  grid-row: 1;
}
.p-homecare .c-h2 {
  grid-column: 3;
  grid-row: 2;
  margin-top: 1.1vw;
}
.p-homecare .c-lead {
  grid-column: 3;
  grid-row: 3;
  margin-top: 3.4vw;
  line-height: 2.4;
}
.p-homecare .c-more {
  grid-column: 3;
  grid-row: 4;
  margin-top: 3.4vw;
}

/* --------------------------------------------------------------------------
   14. GUIDE
   -------------------------------------------------------------------------- */
/* GUIDE ～ NEWS 背景（ラッパー1枚のグラデーションのみ） */
.p-guide-sec {
  background: linear-gradient(180deg, #e8e4d9 0%, #f3f1e8 100%);
}
.p-guide {
  position: relative;
  padding: 8.6vw var(--gutter) 0;
}
.p-guide__deco {
  position: absolute;
  z-index: 0;
  top: 3.6vw;
  left: 5.3vw;
  width: 10.6vw;
  max-width: 160px;
  pointer-events: none;
}
.p-guide .c-label,
.p-guide .c-h2,
.p-guide__lead {
  position: relative;
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
}
.p-guide .c-h2 {
  margin-top: 1.4vw;
}
.p-guide__lead {
  margin-top: 5.5vw;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 1;
  letter-spacing: 0.1em;
}

/* 14-1. GUIDE カード（MENU / STORE） */
.p-guide__cards {
  display: grid;
  grid-template-columns: 1fr 28px 1fr;
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto;
  padding: 9.1vw var(--gutter) 0;
}
.p-gcard--1 {
  grid-column: 1;
}
.p-gcard--2 {
  grid-column: 3;
  margin-top: 5.3vw;
}
.p-gcard:hover {
  opacity: 1;
}
.p-gcard__img {
  width: 100%;
  height: 34.5vw; /* 522 / 1512 */
  max-height: 522px;
  object-fit: cover;
  transition: opacity 0.4s ease;
}
.p-gcard:hover .p-gcard__img {
  opacity: 0.78;
}
.p-gcard__title {
  margin-top: 1.3vw;
  font-size: clamp(15px, 1.87vw, 28px);
  line-height: 1.6;
  letter-spacing: 0.15em;
}
.p-gcard__more {
  position: relative;
  width: 201px;
  max-width: 100%;
  margin-top: 2.7vw;
  padding-top: 36px;
  padding-left: 30px;
  border-top: 1px solid var(--c-accent);
  font-family: var(--afa);
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-gcard__more::before {
  content: "";
  position: absolute;
  left: 0;
  top: 39px;
  width: 9px;
  height: 9px;
  background: var(--c-accent);
  transform: rotate(45deg);
}

/* --------------------------------------------------------------------------
   15. NEWS
   -------------------------------------------------------------------------- */
.p-news {
  display: grid;
  grid-template-columns: 19.7% 5.7% 1fr; /* 見出し列 / 余白 / 一覧 */
  grid-template-rows: auto auto auto 1fr;
  align-items: start;
  max-width: calc(var(--container) + 360px);
  margin-inline: auto;
  padding: 9.6vw var(--gutter) 13vw;
}
.p-news .c-label {
  grid-column: 1;
  grid-row: 1;
}
.p-news .c-h2 {
  grid-column: 1;
  grid-row: 2;
  margin-top: 0.4vw;
}
.p-news__lead {
  grid-column: 1;
  grid-row: 3;
  margin-top: 3.5vw;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.1em;
}
.p-news .c-more {
  grid-column: 1;
  grid-row: 4;
  margin-top: 3.4vw;
}
.p-news__list {
  grid-column: 3;
  grid-row: 1 / -1;
  margin-top: 0.8vw;
}
.p-news__item {
  display: flex;
  align-items: center;
  gap: clamp(24px, 9.2%, 106px);
  height: 120px;
  border-bottom: 1px solid var(--c-line);
}
.p-news__date {
  flex: 0 0 auto;
  font-family: var(--afa);
  font-size: clamp(11px, 0.79vw, 12px);
  line-height: 1;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-news__title {
  font-size: clamp(13px, 1.32vw, 20px);
  line-height: 1.6;
  letter-spacing: 0.15em;
}

/* NEWS：タブレット幅では見出し列の比率を広げる（テキストの詰まり防止） */
@media screen and (max-width: 1200px) {
  .p-news {
    grid-template-columns: 32% 5.5% 1fr;
  }
}

/* --------------------------------------------------------------------------
   16. RESERVATION
   -------------------------------------------------------------------------- */
.p-reserve {
  padding: 8.8vw var(--gutter) 10.9vw;
  background: url(/system_panel/uploads/images/reservation-bg.jpg) center /
    cover no-repeat #f7f4ef;
  text-align: center;
}
.p-reserve__title {
  margin-top: 3.5vw;
  font-size: clamp(1.125rem, 0.68rem + 1.93vw, 2.5rem);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.15em;
  color: var(--c-brown);
}
.p-reserve__lead {
  margin-top: 5.2vw;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* --------------------------------------------------------------------------
   17. CTA ボタン
   -------------------------------------------------------------------------- */
.p-cta {
  display: flex;
  justify-content: center;
  gap: 43px;
  padding: 5.6vw var(--gutter);
  background: #fff;
}

/* --------------------------------------------------------------------------
   18. フッター
   -------------------------------------------------------------------------- */
.l-footer {
  font-family: var(--sans);
  display: flex;
  flex-wrap: wrap;
  justify-content: center; /* ロゴ塊＋ナビ塊のかたまりを画面中央に */
  align-items: flex-start;
  gap: 0 clamp(60px, 19.3vw, 292px);
  padding: 10vw var(--gutter) 4.5vw;
  background: var(--c-footer);
  color: #fff;
}

/* 左：ロゴ／住所／Instagram（ブロック内は中央揃え） */
.l-footer__info {
  width: clamp(220px, 17.6vw, 266px);
  text-align: center;
}
.l-footer__logo {
  display: block;
  line-height: 0;
}
.l-footer__logo img {
  width: 100%;
}
.l-footer__address {
  margin-top: 2.7vw;
  font-size: clamp(11px, 0.93vw, 14px);
  line-height: 2.4;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.l-footer__ig {
  display: inline-block;
  margin-top: 2.6vw;
  line-height: 0;
}
.l-footer__ig img {
  width: 33px;
}

/* 右：ナビゲーション */
.l-footer__nav {
  position: relative;
  width: clamp(300px, 37.3vw, 564px);
  padding-top: 1.4vw;
}
.l-footer__main {
  display: inline-block;
  margin-right: 4vw;
  font-family: var(--afa);
  font-size: clamp(14px, 1.32vw, 20px);
  line-height: 1;
  letter-spacing: 0.1em;
}
.l-footer__head {
  margin-top: 3.5vw;
  padding-bottom: 1.6vw;
  border-bottom: 1px solid rgba(255, 255, 255, 0.55);
  font-family: var(--afa);
  font-size: clamp(14px, 1.32vw, 20px);
  line-height: 1;
  letter-spacing: 0.1em;
}
.l-footer__sub {
  display: block;
  position: relative;
  margin-top: 2.9vw;
  padding-left: 62px;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 1;
  letter-spacing: 0.1em;
}
.l-footer__sub:first-of-type {
  margin-top: 4.6vw;
}
.l-footer__sub::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 32px;
  height: 1px;
  background: #fff;
}
.l-footer__links {
  margin-top: 4.6vw;
  padding-top: 4vw;
  border-top: 1px solid rgba(255, 255, 255, 0.55);
}
.l-footer__link {
  display: inline-block;
  margin-right: 2.4vw;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 1;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.l-footer__link:last-of-type {
  margin-right: 0;
}

/* 著作権表示：フッター全体の中央 */
.l-footer__copy {
  width: 100%;
  margin-top: 8.5vw;
  font-family: var(--sans);
  font-size: clamp(11px, 0.93vw, 14px);
  line-height: 1;
  letter-spacing: 0.1em;
  text-align: center;
}

/* --------------------------------------------------------------------------
   19. GSAP 用初期状態（common.js で .is-shown を付与）
   -------------------------------------------------------------------------- */
.js-fade {
  opacity: 0;
  transform: translateY(28px);
}
.js-fade.is-shown {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .js-fade {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   19-B. 下層ページ：CONCEPT（concept.html）
   Figma node 184:229 ／ 1512 × 7761 基準
   ========================================================================== */

/* -- 下層 FV（全下層ページ共通） -------------------------------------------- */
.p-lower {
  position: relative;
  padding: 22.95vw 0 9.39vw; /* 上 347px ／ 下 142px */
  background: linear-gradient(
      rgba(242, 239, 228, 0.9),
      rgba(242, 239, 228, 0.9)
    ),
    url(/system_panel/uploads/images/concept-fv-bg.jpg) center / cover no-repeat,
    #594b32;
}
.p-lower::after {
  /* 見出し下の罫線（右端まで抜ける） */
  content: "";
  position: absolute;
  left: 11.9%;
  right: 0;
  bottom: 6.35vw; /* 96px */
  border-top: 1px solid rgba(55, 55, 29, 0.35);
}
.p-lower__en {
  margin-left: 11.7%;
  font-size: clamp(52px, 9.26vw, 140px); /* 140px */
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.01em;
  color: #37371d;
}
.p-lower__ja {
  margin-top: 1.06vw;
  margin-left: 11.9%;
  font-size: clamp(14px, 1.59vw, 24px);
  line-height: 2;
  letter-spacing: 0.1em;
  color: #37371d;
}

/* -- VISION ---------------------------------------------------------------- */
.p-vision2 {
  position: relative;
  padding: 36.38vw var(--gutter) 9vw; /* 上 550px ／ 下 136px */
  background: linear-gradient(
        180deg,
        rgba(231, 227, 217, 0) 0%,
        rgba(231, 227, 217, 0.32) 30%,
        rgba(231, 227, 217, 0.36) 60%,
        #e7e3d9 85%
      )
      0 0 / 100% 38.36vw no-repeat,
    url(/system_panel/uploads/images/concept-vision.jpg) 0 0 / 100% 38.36vw
      no-repeat,
    var(--c-bg);
  overflow: hidden;
  text-align: center;
}
.p-vision2__marquee {
  /* 背景を流れる大英字 */
  position: absolute;
  z-index: 0;
  top: 50.73vw; /* 767px */
  left: 0;
  display: flex;
  width: 100%;
  overflow: hidden;
  pointer-events: none;
}
.p-vision2__flow {
  flex: 0 0 auto;
  font-size: clamp(56px, 13.2vw, 200px);
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #f2efe6;
  white-space: nowrap;
}
.p-vision2__deco {
  position: absolute;
  z-index: 0;
  top: 32.8vw; /* 496px */
  left: 76.06%; /* 1150px */
  width: 13.76vw; /* 208px */
  max-width: 208px;
  opacity: 0.65;
  pointer-events: none;
}
.p-vision2 .c-label,
.p-vision2__title,
.p-vision2__lead {
  position: relative;
  z-index: 1;
}
.p-vision2__title {
  margin-top: 2.16vw;
  font-size: clamp(24px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
.p-vision2__lead {
  margin-top: 2.49vw;
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* -- OWNER'S MESSAGE ------------------------------------------------------- */
.p-owner {
  position: relative;
  padding: 56.08vw var(--gutter) 12.2vw; /* 上 848px ／ 下 185px */
  background: url(/system_panel/uploads/images/concept-owner-bg.jpg) center /
    cover no-repeat;
  overflow: hidden;
}
.p-owner::before {
  /* 上部の人物写真（635px） */
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 42vw; /* 635px */
  background: linear-gradient(
      rgba(120, 115, 104, 0.2),
      rgba(120, 115, 104, 0.2)
    ),
    url(/system_panel/uploads/images/concept-owner.jpg) center / cover no-repeat;
}
.p-owner__en {
  position: absolute;
  z-index: 1;
  top: 27.78vw; /* 420px */
  right: 10.85%; /* 164px */
  font-size: clamp(46px, 9.63vw, 146px);
  line-height: 1.1;
  letter-spacing: 0.02em;
  color: #fff;
  text-align: right;
  text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.15);
  white-space: pre-line;
}
.p-owner__deco {
  position: absolute;
  z-index: 0;
  top: 57.14vw; /* 864px */
  left: 65.14%; /* 985px */
  width: 11.64vw; /* 176px */
  max-width: 176px;
  opacity: 0.6;
  pointer-events: none;
}
.p-owner__label,
.p-owner__title,
.p-owner__lead {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
}
.p-owner__label {
  font-size: clamp(14px, 1.32vw, 20px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--c-accent);
}
.p-owner__title {
  margin-top: 0.93vw;
  font-size: clamp(24px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.15em;
}
.p-owner__lead {
  margin-top: 1.65vw;
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* -- POINT 01 / 02 --------------------------------------------------------- */
.p-point {
  position: relative;
  padding: 6.55vw 0 9.33vw; /* 上 99px ／ 下 141px */
  background: linear-gradient(180deg, #e8e4d9 0%, #f3f1e8 100%);
  overflow: hidden;
}
.p-point__deco {
  position: absolute;
  z-index: 0;
  width: 15.87vw; /* 240px */
  max-width: 240px;
  opacity: 0.4;
  pointer-events: none;
}
.p-point__deco--1 {
  top: 19.78vw;
  left: 5.95%;
} /*  299px / 90px  */
.p-point__deco--2 {
  top: 76.52vw;
  left: 70.9%;
} /* 1157px / 1072px */

.p-point__label,
.p-point__title,
.p-point__lead,
.p-point__img,
.p-point__en {
  position: relative;
  z-index: 1;
}

.p-point__label {
  margin-left: 18.58%; /* 281px */
  font-family: var(--afa);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-point__title {
  margin: 0.63vw 0 0 18.25%; /* 276px */
  font-size: clamp(20px, 2.65vw, 40px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
.p-point__lead {
  margin: 0.99vw 0 0 18.58%;
  max-width: 69.5%; /* 1051px */
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-point__img {
  display: block;
  margin: 5.01vw 0 0 18.58%;
  width: 75.46%; /* 1141px */
  height: 34.72vw; /*  525px */
  object-fit: cover;
  object-position: left center;
}
.p-point__en {
  margin: -11.31vw 0 0 11.9%; /* 画像に重ねる（180px） */
  font-size: clamp(34px, 5.95vw, 90px);
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #fff;
  white-space: pre-line;
}
.p-point__en + .p-point__label {
  margin-top: 12.43vw;
}

/* -- PROGRAM --------------------------------------------------------------- */
.p-prog {
  position: relative;
  padding: 6.88vw var(--gutter) 9.33vw; /* 上 104px ／ 下 141px */
  background: linear-gradient(
      201.66deg,
      rgba(232, 228, 218, 0.74) 20%,
      rgba(232, 228, 218, 0.148) 52%,
      rgba(232, 228, 218, 0.74) 85%
    ),
    url(/system_panel/uploads/images/concept-program-bg.jpg) center / cover
      no-repeat,
    #f1efea;
  overflow: hidden;
  text-align: center;
}
.p-prog__ghost {
  position: absolute;
  z-index: 0;
  top: 6.88vw;
  left: 50%;
  transform: translateX(-25.79vw); /* 中央から -390px（1512px 基準） */
  font-size: clamp(64px, 13.2vw, 200px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: #f0ecde;
  white-space: nowrap;
  pointer-events: none;
}
.p-prog__title,
.p-prog__lead,
.p-prog__cards {
  position: relative;
  z-index: 1;
}
.p-prog__title {
  margin-top: 5.95vw; /* 194 - 104 = 90px */
  font-size: clamp(22px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
.p-prog__lead {
  margin-top: 4.99vw;
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-prog__cards {
  display: flex;
  justify-content: center;
  gap: 2.51vw; /* 38px */
  max-width: var(--container);
  margin: 6.88vw auto 0; /* 541 - 437 = 104px */
}
.p-prog__card {
  display: block;
  flex: 1 1 0;
  max-width: 557px;
  /* 高さは中身に追従（上 77px ／ 下 65px を画面幅に比例）。
     min-height を持たせると 1024px 以下でカード下に余白が溜まるため設定しない。 */
  padding: 5.09vw 2.65vw 4.3vw;
  background: var(--c-circle);
}
.p-prog__card:hover {
  opacity: 0.8;
}
.p-prog__tag {
  font-size: clamp(11px, 1.06vw, 16px);
  line-height: 1.8;
  letter-spacing: 0.15em;
  color: var(--c-accent);
}
.p-prog__name {
  margin-top: 2.58vw; /* 685 - 618 - 28.8 ≒ 39px */
  font-size: clamp(20px, 2.65vw, 40px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.15em;
}
.p-prog__more {
  position: relative;
  display: inline-block;
  margin-top: 2.31vw;
  padding: 2.12vw 0 0 30px; /* 罫線から 32px 下 */
  border-top: 1px solid var(--c-accent);
  font-family: var(--afa);
  font-size: clamp(14px, 1.32vw, 20px);
  line-height: 1;
  letter-spacing: 0.2em;
  color: var(--c-accent);
}
.p-prog__more::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(2.12vw + 4px);
  width: 9px;
  height: 9px;
  background: var(--c-accent);
  transform: rotate(45deg);
}

/* ==========================================================================
   19-C. 下層ページ：ADVANCED PROGRAM（advanced-program.html）
   Figma node 185:435 ／ 1512 × 6346 基準
   ========================================================================== */

/* -- 下層 FV：英字2行パターン --------------------------------------------- */
.p-lower--2line {
  padding: 14.15vw 0 9vw;
} /* 上 214px ／ 下 136px */
.p-lower--2line .p-lower__en {
  font-size: clamp(40px, 7.94vw, 120px); /* 120px */
  line-height: 1.1;
  white-space: pre-line;
}
.p-lower--2line .p-lower__ja {
  margin-top: 2.05vw;
} /* 31px */
.p-lower--2line::after {
  bottom: 6.35vw;
}

/* -- INTRO ----------------------------------------------------------------- */
.p-aintro {
  position: relative;
  padding: 46.63vw var(--gutter) 9.39vw; /* 上 705px ／ 下 142px */
  background: #ded8c9;
  overflow: hidden;
}
.p-aintro__img {
  position: absolute;
  z-index: 0;
  top: 5.22vw; /*  79px */
  left: 0;
  width: 65.28%; /* 987px */
  height: 35.19vw; /* 532px */
  object-fit: cover;
}
.p-aintro__deco {
  position: absolute;
  z-index: 0;
  top: 42.33vw; /* 640px */
  left: 72.29%; /* 1093px */
  width: 13.29vw; /* 201px */
  max-width: 201px;
  opacity: 0.65;
  pointer-events: none;
}
.p-aintro__title,
.p-aintro__title2,
.p-aintro__lead {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
}
.p-aintro__title {
  font-size: clamp(20px, 2.51vw, 38px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: var(--c-brown);
}
.p-aintro__title2 {
  font-size: clamp(24px, 3.18vw, 48px);
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: var(--c-brown);
}
.p-aintro__lead {
  margin-top: 3.7vw;
  font-size: clamp(13px, 1.32vw, 20px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* -- JOURNEY（4つのステップ） ---------------------------------------------- */
.p-journey {
  position: relative;
  padding: 47.16vw var(--gutter) 9.52vw; /* 上 713px ／ 下 144px */
  background: url(/system_panel/uploads/images/advanced-journey-bg.jpg) center /
    cover no-repeat;
  overflow: hidden;
}
.p-journey::before {
  /* 上部の人物写真（580px） */
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 38.36vw;
  background: linear-gradient(
      180deg,
      rgba(231, 227, 217, 0.32) 30%,
      rgba(231, 227, 217, 0.36) 60%,
      #e0ddd0 84%
    ),
    url(/system_panel/uploads/images/advanced-journey.jpg) center / cover
      no-repeat;
}
.p-journey__en {
  position: absolute;
  z-index: 1;
  top: 22.22vw; /* 336px */
  left: 11.9%;
  font-size: clamp(38px, 7.54vw, 114px);
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #fff;
  white-space: pre-line;
}
.p-journey__deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.p-journey__deco--1 {
  top: 39.75vw; /* 601px */
  left: 10.19%; /* 154px */
  width: 12.96vw;
  max-width: 196px;
  opacity: 0.6;
}
.p-journey__deco--2 {
  bottom: 6.28vw;
  right: 10.98%; /* 1174px + 172px */
  width: 11.38vw;
  max-width: 172px;
  opacity: 0.65;
}
.p-journey__title {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  font-size: clamp(24px, 3.97vw, 60px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.098em;
  text-align: right;
}

/* -- ステップ（画像 ／ ラベル・見出し・本文） -------------------------------- */
.p-step {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 29.51% 7.47% 1fr; /* 340px / 86px / 726px（コンテナ1152px比） */
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-bottom: 3.97vw; /* 60px */
  border-bottom: 1px solid rgba(50, 50, 36, 0.22);
}
.p-journey__title + .p-step {
  margin-top: 7.08vw;
} /* 107px */
.p-step + .p-step {
  margin-top: 3.84vw;
} /*  58px */
.p-step__img {
  grid-column: 1;
  grid-row: 1 / 4;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.p-step__no {
  grid-column: 3;
  grid-row: 1;
  margin-top: 4.03vw; /* 61px */
  font-family: var(--afa);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-step__name {
  grid-column: 3;
  grid-row: 2;
  margin-top: 1.03vw;
  font-size: clamp(18px, 2.12vw, 32px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
.p-step__text {
  grid-column: 3;
  grid-row: 3;
  margin-top: 1.22vw;
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
}
.p-journey__close {
  position: relative;
  z-index: 1;
  margin-top: 8.6vw; /* 130px */
  font-size: clamp(16px, 1.85vw, 28px);
  line-height: 2.2;
  letter-spacing: 0.1em;
  text-align: center;
  white-space: pre-line;
}

/* ==========================================================================
   19-D. 下層ページ：PERSONAL PROGRAM（personal-program.html）
   Figma node 187:621 ／ 1512 × 10098 基準
   ========================================================================== */

/* -- 下層 FV：英字2行・100px パターン -------------------------------------- */
.p-lower--personal {
  padding: 16.53vw 0 9.52vw;
} /* 上 250px ／ 下 144px */
.p-lower--personal .p-lower__en {
  font-size: clamp(36px, 6.61vw, 100px);
}

/* -- お悩み別ナビ ----------------------------------------------------------- */
.p-pmenu {
  position: relative;
  padding: 47.49vw var(--gutter) 11.64vw; /* 上 718px ／ 下 176px */
  background: url(/system_panel/uploads/images/personal-menu-hero.jpg) 0 0 /
      100% 37.17vw no-repeat,
    /* 562px */ url(/system_panel/uploads/images/personal-menu-bg.jpg) center /
      cover no-repeat;
  overflow: hidden;
  text-align: center;
}
.p-pmenu__title {
  font-size: clamp(20px, 2.65vw, 40px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-pmenu__nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: calc(var(--container) + 180px); /* 300px〜1212px */
  margin: 9.99vw auto 0; /* 151px */
}
.p-pmenu__item {
  position: relative;
  display: block;
  padding-bottom: 3.93vw; /* シェブロン分 59px */
}
.p-pmenu__item + .p-pmenu__item::before {
  /* 縦の区切り線 */
  content: "";
  position: absolute;
  left: 0;
  top: -29%; /* 項目高さ基準（1512px 時 274px 相当） */
  height: 155%;
  width: 1px;
  background: rgba(50, 50, 36, 0.28);
}
.p-pmenu__item::after {
  /* 下向きシェブロン */
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0.8vw;
  width: 13px;
  height: 13px;
  margin-left: -7px;
  border-right: 1px solid var(--c-text);
  border-bottom: 1px solid var(--c-text);
  transform: rotate(45deg);
  transition: transform 0.3s ease;
}
.p-pmenu__item:hover::after {
  transform: rotate(45deg) translate(3px, 3px);
}
.p-pmenu__no {
  font-family: var(--afa);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-pmenu__name {
  margin-top: 1.43vw;
  font-size: clamp(18px, 2.12vw, 32px);
  line-height: 1.8;
  letter-spacing: 0.1em;
}

/* -- お悩み別メニュー（3ブロック） ------------------------------------------ */
.p-carewrap {
  padding: 11.38vw 0 13.62vw; /* 上 172px ／ 下 206px */
  background: #eae7dd;
}
.p-care {
  display: grid;
  grid-template-columns: 11.9% 34.99% 8.14% 1fr; /* 余白180 / 本文529 / 間123 / 画像680 */
  align-items: start;
}
.p-care + .p-care {
  margin-top: 9.92vw;
} /* 150px */
.p-care__img {
  grid-column: 4;
  grid-row: 1 / 30;
  width: 100%;
  height: 45.17vw; /* 683px */
  object-fit: cover;
}
.p-care__label,
.p-care__title,
.p-care__sub,
.p-care__box,
.p-care__note,
.p-care__name,
.p-care__desc {
  grid-column: 2;
}

.p-care__label {
  font-family: var(--afa);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-care__title {
  margin-top: 0.26vw;
  font-size: clamp(22px, 2.65vw, 40px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.p-care__sub {
  margin-top: 0.66vw;
  font-size: clamp(14px, 1.32vw, 20px);
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.p-care__box {
  margin-top: 2.65vw;
  padding: 1.65vw 1.79vw 1.85vw;
  border-top: 1px solid rgba(50, 50, 36, 0.35);
  background: #e0d9c3;
}
.p-care__boxlabel {
  margin-left: 7px;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
}
.p-care__list {
  font-size: clamp(16px, 1.85vw, 28px);
  line-height: 1.8;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-care__note {
  margin-top: 2.25vw;
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.2;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-care__name {
  margin-top: 1.98vw;
  font-size: clamp(15px, 1.19vw, 18px);
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.1em;
  color: var(--c-brown);
}
.p-care__box + .p-care__name {
  margin-top: 2.38vw;
}
.p-care__desc {
  margin-top: 0.36vw;
  padding-left: 1.79vw; /* 27px */
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.2;
  letter-spacing: 0.1em;
}

/* -- GUIDE（初めての方へ） -------------------------------------------------- */
.p-guide2 {
  position: relative;
  padding: 6.88vw var(--gutter) 9.06vw; /* 上 104px ／ 下 137px */
  background: linear-gradient(
      208.38deg,
      rgba(232, 228, 218, 0.74) 20%,
      rgba(232, 228, 218, 0.148) 52%,
      rgba(232, 228, 218, 0.74) 85%
    ),
    url(/system_panel/uploads/images/personal-guide-bg.jpg) center / cover
      no-repeat,
    #f1efea;
  overflow: hidden;
  text-align: center;
}
.p-guide2__ghost {
  position: absolute;
  z-index: 0;
  top: 6.88vw;
  left: 50%;
  transform: translateX(-50%);
  font-size: clamp(64px, 13.2vw, 200px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: #f0ecde;
  white-space: nowrap;
  pointer-events: none;
}
.p-guide2__title,
.p-guide2__sub,
.p-guide2__lead,
.p-guide2__cards,
.p-guide2__close {
  position: relative;
  z-index: 1;
}
.p-guide2__title {
  margin-top: 4.96vw; /* 179 - 104 = 75px */
  font-size: clamp(22px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.p-guide2__sub {
  margin-top: 1.12vw;
  font-size: clamp(15px, 1.59vw, 24px);
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.p-guide2__lead {
  margin-top: 3.9vw;
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.1em;
}
.p-guide2__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.26vw; /* 19px */
  max-width: var(--container);
  margin: 6.48vw auto 0; /* 526 - 427 ≒ 98px */
  text-align: left;
}
.p-gitem {
  padding: 3.37vw 1.92vw 3.04vw; /* 上 51px ／ 左右 29px ／ 下 46px */
  min-height: 16.8vw; /* 254px */
  background: var(--c-circle);
}
.p-gitem__name {
  font-size: clamp(14px, 1.32vw, 20px);
  line-height: 1.5;
  letter-spacing: 0.15em;
  color: var(--c-accent);
  text-align: center;
}
.p-gitem__text {
  margin-top: 2.05vw; /* 31px */
  font-size: clamp(12px, 0.93vw, 14px);
  line-height: 2.2;
  letter-spacing: 0.15em;
}
.p-guide2__close {
  margin-top: 6.61vw; /* 100px */
  font-size: clamp(15px, 1.59vw, 24px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* -- ご来店の流れ ----------------------------------------------------------- */
.p-flow {
  position: relative;
  padding: 14.02vw var(--gutter) 10.19vw; /* 上 212px ／ 下 154px */
  background: linear-gradient(180deg, #e8e4d9 0%, #f7f4e8 100%);
  overflow: hidden;
}
.p-flow__en {
  position: absolute;
  z-index: 0;
  top: 9.59vw; /* 145px */
  right: 11.9%;
  font-size: clamp(46px, 9.63vw, 146px);
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #fff;
  white-space: nowrap;
  pointer-events: none;
}
.p-flow__deco {
  position: absolute;
  z-index: 0;
  top: 8vw; /* 121px */
  left: 77.91%; /* 1178px */
  width: 14.95vw;
  max-width: 226px;
  opacity: 0.6;
  pointer-events: none;
}
.p-flow__title {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  font-size: clamp(24px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.2em;
}
.p-flow__item {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 32.12% 1fr; /* 370px / 782px */
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
}
.p-flow__title + .p-flow__item {
  margin-top: 6.81vw;
} /* 103px */
.p-flow__item + .p-flow__item {
  margin-top: 3.93vw;
} /*  59px */
.p-flow__item::after {
  /* 縦の区切り線 */
  content: "";
  position: absolute;
  left: 25.7%; /* 476px */
  top: 4px;
  width: 1px;
  height: 6.22vw; /* 94px */
  max-height: 94px;
  background: rgba(50, 50, 36, 0.3);
}
.p-flow__no {
  grid-column: 1;
  grid-row: 1 / 3;
  margin-top: 2.12vw; /* 32px */
  padding-left: 10.68%; /* 123px */
  font-family: var(--afa);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.1em;
  color: var(--c-accent);
}
.p-flow__name {
  grid-column: 2;
  grid-row: 1;
  font-size: clamp(18px, 1.98vw, 30px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.p-flow__text {
  grid-column: 2;
  grid-row: 2;
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
}

/* メニュー一覧：タブレット幅では画像を小さめに */
@media screen and (max-width: 1100px) {
  .p-mlist {
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }
  .p-mitem {
    grid-template-columns: 30% 5% 1fr;
  }
}

/* GUIDE カード：タブレット幅は 2 カラム（3 カラムだと 1 枚が狭すぎる） */
@media screen and (max-width: 1100px) {
  .p-guide2__cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 2.2vw;
  }
  .p-gitem {
    padding: 4.4vw 3vw;
    min-height: 0;
  }
}

/* ==========================================================================
   19-E. 下層ページ：MENU（menu.html）
   Figma node 187:916 ／ 1512 × 7162 基準
   ========================================================================== */

/* -- 下層 FV：英字1行・140px（上余白のみ CONCEPT と差分） ------------------- */
.p-lower--menu {
  padding: 23.81vw 0 9vw;
} /* 上 360px ／ 下 136px */
.p-lower--menu .p-lower__ja {
  margin-top: 0.6vw;
} /* 9px */

/* -- INTRO ----------------------------------------------------------------- */
.p-mintro {
  position: relative;
  padding: 10.52vw var(--gutter) 11.31vw; /* 上 159px ／ 下 171px */
  background: #ded8c9;
  overflow: hidden;
}
.p-mintro__deco {
  position: absolute;
  z-index: 0;
  top: 8.8vw; /* 133px */
  left: 61.38%; /* 928px */
  width: 13.29vw;
  max-width: 201px;
  opacity: 0.6;
  pointer-events: none;
}
.p-mintro__title,
.p-mintro__lead {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
}
.p-mintro__title {
  font-size: clamp(24px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: var(--c-brown);
}
.p-mintro__lead {
  margin-top: 3.28vw; /* 50px */
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* -- メニュー一覧 ------------------------------------------------------------ */
.p-mlist {
  padding: 8.53vw 11.9% 8.53vw 5.95%; /* 上下 129px ／ 左 90px ／ 右 180px */
  background: #eae7dd;
}
.p-mitem {
  display: grid;
  grid-template-columns: 32.37% 7% 1fr; /* 画像402 / 間87 / 本文753（計1242） */
  align-items: start;
  padding-bottom: 4.36vw; /* 66px */
  border-bottom: 1px solid rgba(50, 50, 36, 0.25);
}
.p-mitem + .p-mitem {
  margin-top: 4.36vw;
}
.p-mitem__img {
  grid-column: 1;
  grid-row: 1 / 5;
  width: 100%;
  height: 22.62vw; /* 342px */
  object-fit: cover;
}
.p-mitem__name {
  grid-column: 3;
  grid-row: 1;
  font-size: clamp(18px, 1.98vw, 30px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.1em;
  color: var(--c-brown);
  white-space: pre-line;
}
.p-mitem__text {
  grid-column: 3;
  grid-row: 2;
  margin-top: 1.65vw; /* 25px */
  font-size: clamp(13px, 1.06vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.1em;
}
.p-mitem__price {
  grid-column: 3;
  grid-row: 3;
  margin-top: 1.65vw;
  font-size: clamp(20px, 1.98vw, 30px);
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: var(--c-brown);
  text-align: right;
}

/* ==========================================================================
   19-F. 下層ページ：HOME CARE（homecare.html）
   ========================================================================== */

/* -- 下層 FV / VISION のページ別上書き ------------------------------------- */
.p-lower--homecare {
  background: linear-gradient(
      rgba(242, 239, 228, 0.9),
      rgba(242, 239, 228, 0.9)
    ),
    url(/system_panel/uploads/images/homecare-fv-bg.jpg) center / cover
      no-repeat,
    #594b32;
}
.p-vision2--homecare {
  padding: 30.42vw var(--gutter) 11.9vw; /* 上 460px ／ 下 180px */
  background: linear-gradient(
        180deg,
        rgba(231, 227, 217, 0) 0%,
        rgba(231, 227, 217, 0.32) 30%,
        rgba(231, 227, 217, 0.36) 60%,
        #e7e3d9 85%
      )
      0 0 / 100% 38.36vw no-repeat,
    url(/system_panel/uploads/images/homecare-vision.jpg) 0 0 / 100% 38.36vw
      no-repeat,
    var(--c-bg);
}
.p-vision2--homecare .c-label {
  color: var(--c-accent);
}
.p-vision2--homecare .p-vision2__title {
  margin-top: 3.44vw; /* 52px */
  white-space: pre-line;
}
.p-vision2__deco--left {
  top: 28.31vw; /* 428px */
  left: 14.81%; /* 224px */
}

/* -- SELECTED BRANDS ------------------------------------------------------- */
.p-brands {
  position: relative;
  padding-bottom: 10.25vw; /* 155px */
  background: linear-gradient(
      90deg,
      #dedcce 14.42%,
      rgba(228, 226, 213, 0.44) 50%,
      #e1dfd0 88.94%
    ),
    url(/system_panel/uploads/images/homecare-bg.jpg) center / cover no-repeat,
    var(--c-bg);
  overflow: hidden;
}
.p-brands__hero {
  display: block;
  margin-left: auto;
  width: 66.53%; /* 1006px */
  height: 32.01vw; /* 484px */
  margin-top: 9.99vw; /* 151px */
  object-fit: cover;
}
.p-brands__en {
  position: absolute;
  z-index: 1;
  top: 15.01vw; /* 227px */
  left: 11.9%; /* 180px */
  margin: 0;
  font-size: clamp(48px, 10.3vw, 156px);
  font-weight: 400;
  line-height: 1.31;
  letter-spacing: 0.01em;
  color: #fff;
  white-space: pre-line;
}
.p-brands__deco {
  position: absolute;
  z-index: 0;
  opacity: 0.6;
  pointer-events: none;
}
.p-brands__deco--1 {
  top: 48.02vw;
  left: 63.36%;
  width: 12.96vw;
} /*  726px / 958px */
.p-brands__deco--2 {
  top: 87.89vw;
  left: 40.01%;
  width: 10.85vw;
} /* 1329px / 605px */
.p-brands__deco--3 {
  top: 139.62vw;
  left: 5.29%;
  width: 10.85vw;
} /* 2111px /  80px */

.p-brands__title,
.p-brands__lead,
.p-brands__tabs,
.p-brand,
.p-daily__title,
.p-daily__lead,
.p-hitem,
.p-ec__title,
.p-ec__lead,
.p-ec__btn {
  position: relative;
  z-index: 1;
}

.p-brands__en,
.p-brands__title,
.p-brand__name,
.p-daily__title,
.p-hitem__name,
.p-ec__title,
.p-consult__title {
  margin-bottom: 0;
}

.p-brands__title {
  margin: 6.02vw 0 0 25.2%; /* 上 91px ／ 左 381px */
  font-size: clamp(21px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.2em;
  white-space: pre-line;
}
.p-brands__title::before {
  /* 見出し左の縦罫線 */
  content: "";
  position: absolute;
  top: 1.19vw; /* 18px */
  left: -6.61vw; /* 100px 左（= 281px） */
  width: 1px;
  height: 18.78vw; /* 284px */
  background: rgba(50, 50, 36, 0.5);
}
.p-brands__lead {
  margin: 2.18vw 0 0 25.2%; /* 上 33px */
  max-width: 46.89%; /* 709px */
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-brands__tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.45vw; /* 37px */
  width: 67.79%; /* 1025px */
  margin: 6.15vw auto 0; /* 93px */
}
.p-brands__tab {
  display: block;
  padding: 1.79vw 0 1.59vw; /* 27px / 24px → 高さ 109px */
  border: 1px solid rgba(50, 50, 36, 0.28);
  color: var(--c-text);
  text-align: center;
  transition: background-color 0.3s ease;
}
.p-brands__tab > p {
  font-size: clamp(12px, 1.19vw, 18px);
  line-height: 2;
  letter-spacing: 0.2em;
}
.p-brands__tab::after {
  /* ⌄ */
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  margin: 0.66vw auto 0;
  border-right: 1px solid var(--c-text);
  border-bottom: 1px solid var(--c-text);
  transform: rotate(45deg);
}
.p-brands__tab:hover {
  background: rgba(255, 252, 241, 0.5);
}

/* -- ブランド紹介（画像＋テキスト） ---------------------------------------- */
/* 画像は絶対配置。テキストは padding で作った 489px の段に通常フローで積む */
.p-brand {
  position: relative;
  display: flow-root; /* 子の margin-top が突き抜けないように */
  min-height: 40.61vw; /* 614px＝画像高。テキストが長い幅では伸びる */
  padding: 0 17.66% 2.65vw 50%; /* テキスト段 756px〜1245px ／ 下 40px */
  margin-top: 8.33vw; /* 126px（tabs 下端 → 画像 top 1361） */
}
.p-brand--rev {
  padding: 0 50% 2.65vw 17.66%; /* テキスト段 267px〜756px */
  margin-top: 12.1vw; /* 183px */
}
.p-brand + .p-brand:not(.p-brand--rev) {
  margin-top: 12.1vw;
}
.p-brand__img {
  position: absolute;
  top: 0;
  bottom: 0; /* ブロック高に追従 */
  left: 5.95%; /* 90px */
  width: 36.9%; /* 558px */
  object-fit: cover;
}
.p-brand--rev .p-brand__img {
  left: 57.14%;
} /* 864px */
.p-brand__name {
  margin-top: 5.89vw; /* 89px */
  font-size: clamp(20px, 2.38vw, 36px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.2em;
}
.p-brand--rev .p-brand__name {
  margin-top: 3.31vw;
} /* 50px */
.p-brand__lead {
  margin-top: 2.18vw; /* 33px */
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-brand__more {
  margin-top: 6.35vw;
} /* 96px */

/* -- 毎日のスキンケア ------------------------------------------------------ */
.p-daily__title {
  max-width: var(--container);
  margin: 9.92vw auto 0; /* 150px */
  padding: 0 var(--gutter);
  font-size: clamp(21px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.p-daily__lead {
  max-width: var(--container);
  margin: 2.38vw auto 0; /* 36px */
  padding: 0 var(--gutter);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-hitem {
  display: grid;
  grid-template-columns: 45.17% 7.89% 21.74% 3.46% 21.74%; /* 561 / 98 / 270 / 43 / 270 */
  width: 82.14%; /* 1242px */
  margin: 6.15vw 0 0 11.9%; /* 93px ／ 左 180px */
}
.p-hitem + .p-hitem {
  margin-top: 5.62vw;
} /* 85px */
.p-hitem__label {
  grid-column: 1;
  grid-row: 1;
  margin-top: 2.71vw; /* 41px */
  font-size: clamp(13px, 1.32vw, 20px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--c-accent);
}
.p-hitem__name {
  grid-column: 1;
  grid-row: 2;
  margin-top: 1.26vw; /* 19px */
  font-size: clamp(15px, 1.59vw, 24px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.2em;
}
.p-hitem__lead {
  grid-column: 1;
  grid-row: 3;
  margin-top: 1.32vw; /* 20px */
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  white-space: pre-line;
}
.p-hitem__img {
  grid-row: 1 / span 3;
  display: block;
  width: 100%;
  height: 19.38vw; /* 293px */
  object-fit: cover;
}
.p-hitem__img:nth-of-type(1) {
  grid-column: 3;
}
.p-hitem__img:nth-of-type(2) {
  grid-column: 5;
}

/* -- EC 導線 --------------------------------------------------------------- */
.p-ec__title {
  margin-top: 9.65vw; /* 146px */
  font-size: clamp(18px, 2.38vw, 36px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: center;
}
.p-ec__lead {
  max-width: 48.02%; /* 726px */
  margin: 3.17vw auto 0; /* 48px */
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  text-align: center;
  white-space: pre-line;
}
.p-ec__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25.46%; /* 385px */
  max-width: 385px;
  height: 5.49vw; /* 83px */
  min-height: 56px;
  margin: 3.97vw auto 0; /* 60px */
  border: 1px solid var(--c-cream);
  border-radius: 47px;
  background: #fff;
  color: var(--c-text);
  transition: background-color 0.3s ease;
}
.p-ec__btn > p {
  font-size: clamp(13px, 1.19vw, 18px);
  line-height: 2;
  letter-spacing: 0.15em;
}
.p-ec__btn:hover {
  background: var(--c-circle);
}

/* -- 相談セクション -------------------------------------------------------- */
.p-consult {
  padding-bottom: 12.17vw; /* 184px */
  background: linear-gradient(180deg, #e8e4d9 0%, #f3f1e8 100%);
}
.p-consult::before {
  /* 上部の写真帯 */
  content: "";
  display: block;
  width: 100%;
  height: 31.08vw; /* 470px */
  background: url(/system_panel/uploads/images/homecare-consult-bg.jpg) center
    bottom / cover no-repeat;
}
.p-consult__title {
  margin-top: 9.72vw; /* 147px */
  font-size: clamp(18px, 2.38vw, 36px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.2em;
  text-align: center;
}
.p-consult__lead {
  max-width: 52.31%; /* 791px */
  margin: 6.08vw auto 0; /* 92px */
  padding: 0 var(--gutter);
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  text-align: center;
  white-space: pre-line;
}

/* ==========================================================================
   19-G. 下層ページ：CASE（case.html）
   ========================================================================== */

.p-lower--case {
  background: linear-gradient(
      rgba(242, 239, 228, 0.9),
      rgba(242, 239, 228, 0.9)
    ),
    url(/system_panel/uploads/images/case-fv-bg.jpg) center / cover no-repeat,
    #594b32;
}

/* -- INTRODUCTION ---------------------------------------------------------- */
.p-intro {
  position: relative;
  padding: 9.52vw var(--gutter) 8.6vw; /* 上 144px ／ 下 130px */
  background: #ded8c9;
  overflow: hidden;
  text-align: center;
}
.p-intro__deco {
  position: absolute;
  z-index: 0;
  top: 6.75vw; /* 102px */
  left: 45.44%; /* 687px */
  width: 9.06vw; /* 137px */
  opacity: 0.5;
  pointer-events: none;
}
.p-intro__label,
.p-intro__title,
.p-intro__lead {
  position: relative;
  z-index: 1;
}

.p-intro__label {
  color: var(--c-accent);
}
.p-intro__title {
  margin: 5.75vw 0 0; /* 87px（c-label は line-height:1 のため実測で調整） */
  font-size: clamp(21px, 3.18vw, 48px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.p-intro__lead {
  margin-top: 3.35vw; /* 51px */
  font-size: clamp(12px, 1.06vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  white-space: pre-line;
}

/* -- 症例一覧（Before / After） -------------------------------------------- */
.p-case2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 3.99%; /* 46px（コンテンツ幅 1152px 基準） */
  row-gap: 8vw;
  padding: 12vw var(--gutter);
  background: linear-gradient(180deg, #e8e4d9 0%, #f7f4e8 100%);
}

@media (min-width: 992px) {
  .p-case2 {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 4.03vw; /* 61px */
    padding: 9.85vw 11.9% 9.92vw; /* 上 149px ／ 左右 180px ／ 下 150px */
  }
}

/* .p-case2__item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  grid-auto-flow: column;
} */
.p-case2__label {
  font-size: clamp(13px, 1.32vw, 20px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: #000;
}
.p-case2__img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

/* -- 中間幅（〜1200px）の調整 ----------------------------------------------- */
@media screen and (max-width: 1200px) {
  /* 本文の行間を詰めて、変な位置での改行を減らす */
  .p-intro__lead,
  .p-brands__lead,
  .p-brand__lead,
  .p-daily__lead,
  .p-hitem__lead,
  .p-ec__lead,
  .p-consult__lead {
    line-height: 2;
  }

  /* VIEW MORE が本文から離れすぎないように */
  .p-brand__more {
    margin-top: 2.5vw;
  }

  /* アイテム一覧：左の余白を詰めてテキスト段を広げる */
  .p-hitem {
    grid-template-columns: 1fr 4% 22% 3% 22%;
    width: calc(100% - var(--gutter) - 5.95%);
    margin-left: var(--gutter);
  }
  .p-brands__lead {
    max-width: 58%;
  }
  .p-ec__lead {
    max-width: 74%;
  }
  .p-consult__lead {
    max-width: 88%;
  }
}

/* ==========================================================================
   20. レスポンシブ
   ========================================================================== */

/* -------- タブレット（～991px） -------- */
@media screen and (max-width: 991px) {
  /* ---- CASE ---- */

  .p-intro__deco {
    left: 52%;
    width: 14vw;
  }

  .c-side {
    width: 60px;
    border-radius: 30px;
  }
  .c-side--reserve {
    top: 30vh;
    height: 190px;
  }
  .c-side--guide {
    top: calc(30vh + 206px);
    height: 186px;
  }
  .c-side__ja {
    font-size: 15px;
  }

  .p-vision__l1 {
    margin-left: var(--gutter);
  }
  .p-vision__l2 {
    margin-left: 8%;
  }
  .p-vision__l3 {
    margin-left: 40%;
  }
  .p-vision__lead {
    margin-left: var(--gutter);
  }

  .p-proof__title {
    padding-left: 0;
    text-align: center;
  }

  /* ---- HOME CARE ---- */
  .p-brands__deco {
    display: none;
  } /* 縦位置が vw 基準のため中間幅では非表示 */
  .p-brands__hero {
    width: 84%;
    height: 40vw;
  }
  .p-brands__en {
    top: 18vw;
    left: var(--gutter);
  }
  .p-brands__title {
    margin-left: 14%;
  }
  .p-brands__title::before {
    left: -5vw;
    height: 20vw;
  }
  .p-brands__lead {
    margin-left: 14%;
    max-width: 72%;
  }
  .p-brands__tabs {
    width: calc(100% - var(--gutter) * 2);
    gap: 1.6vw;
  }
  .p-brand,
  .p-brand--rev {
    min-height: 0;
    padding: 0 var(--gutter);
    margin-top: 14vw;
  }
  .p-brand + .p-brand:not(.p-brand--rev) {
    margin-top: 14vw;
  }
  .p-brand__img,
  .p-brand--rev .p-brand__img {
    position: static;
    width: 100%;
    height: 62vw;
  }
  .p-brand__more {
    margin-top: 6vw;
  }
  .p-brand__name,
  .p-brand--rev .p-brand__name {
    margin-top: 6vw;
  }
  .p-brand__more {
    margin-top: 6vw;
  }
  .p-hitem {
    grid-template-columns: 1fr 3.46% 1fr;
    width: calc(100% - var(--gutter) * 2);
    margin-left: var(--gutter);
  }
  .p-hitem__label,
  .p-hitem__name,
  .p-hitem__lead {
    grid-column: 1 / -1;
  }
  .p-hitem__label {
    grid-row: 1;
    margin-top: 0;
  }
  .p-hitem__name {
    grid-row: 2;
  }
  .p-hitem__lead {
    grid-row: 3;
    margin-bottom: 3vw;
  }
  .p-hitem__img {
    grid-row: 4;
    height: 34vw;
  }
  .p-hitem__img:nth-of-type(1) {
    grid-column: 1;
  }
  .p-hitem__img:nth-of-type(2) {
    grid-column: 3;
  }
  .p-ec__lead {
    max-width: 78%;
  }
  .p-ec__btn {
    width: 58%;
  }
  .p-consult__lead {
    max-width: 82%;
  }
}

@media (max-width: 991px) {
  .p-care {
    grid-template-columns: 4.9% 40.99% 4.14% 1fr;
  }
}

/* -------- スマートフォン（～767px） -------- */
@media screen and (max-width: 767px) {
  :root {
    --gutter: 20px;
  }

  body {
    line-height: 2.2;
  }

  /* 共通 */
  .c-more {
    width: 160px;
    padding-top: 24px;
  }
  .c-more > p {
    font-size: 16px;
    padding-left: 24px;
  }
  .c-more::before {
    top: 27px;
    width: 7px;
    height: 7px;
  }
  .c-h2 {
    line-height: 1.9;
  }

  /* サイドボタン → 画面下部固定 */
  .c-side {
    right: auto;
    top: auto !important;
    margin-top: 0 !important;
    bottom: 0;
    height: 56px !important;
    padding: 0 !important;
    border-radius: 0;
    writing-mode: horizontal-tb;
    flex-direction: row-reverse; /* 和文を左・英字を右に */
    align-items: center;
    gap: 8px;
  }
  .c-side--reserve {
    left: 0;
    width: 50%;
  }
  .c-side--guide {
    left: 50%;
    width: 50%;
    background: #4a3520;
  }
  .c-side__en {
    font-size: 9px;
  }
  .c-side__ja {
    font-size: 14px;
    letter-spacing: 0.1em;
  }

  /* グローバルナビ */
  .a-nav-menu {
    gap: 30px;
  }

  /* FV */
  .p-fv {
    height: 92vh;
  }
  .p-fv__inner {
    left: var(--gutter);
    bottom: 14%;
  }
  .p-fv__logo {
    width: clamp(128px, 36vw, 168px);
    margin-bottom: 24px;
  }
  .p-fv__title {
    font-size: clamp(20px, 6vw, 30px);
    line-height: 1.6;
    letter-spacing: 0.08em;
    margin-bottom: 20px;
  }
  .p-fv__lead {
    font-size: clamp(11px, 3.2vw, 15px);
    letter-spacing: 0.08em;
  }

  /* QUESTION */
  .p-question {
    padding: 22vw var(--gutter) 26vw;
  }
  .p-question__title {
    margin-top: 8vw;
    padding-right: 0;
    line-height: 1.9;
  }

  /* 悩みサークル */
  .p-worry {
    padding: 18vw var(--gutter) 22vw;
  }
  .p-worry__wrap {
    --wgap: clamp(12px, 5vw, 22px);
    flex-wrap: wrap; /* 2個 × 2段 */
    gap: var(--wgap);
    max-width: calc(120px * 2 + 22px); /* 1行に2個までしか入らない幅に固定 */
  }
  .p-worry__item {
    width: calc(50% - var(--wgap) / 2);
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .p-worry__note,
  .p-worry__msg {
    margin-top: 9vw;
    white-space: normal;
  }

  /* VISION */
  .p-vision {
    height: auto;
    padding-bottom: 78vw;
  }
  .p-vision__bg {
    height: 74vw;
  }
  .p-vision__l1 {
    padding-top: 16vw;
  }
  .p-vision__l1,
  .p-vision__l2,
  .p-vision__l3 {
    font-size: 13.2vw;
    margin-left: var(--gutter);
  }
  .p-vision__lead {
    margin: 6vw 0 0 var(--gutter);
  }
  .p-vision__img {
    top: auto;
    bottom: 0;
    height: 85vw;
  }

  /* 1カラム化 */
  .p-about,
  .p-case,
  .p-homecare,
  .p-news,
  .p-guide__cards {
    display: block;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }
  .p-about {
    padding: 0 0 22vw;
  }
  .p-about__img {
    height: 68vw;
    margin-bottom: 12vw;
  }
  .p-about .c-label,
  .p-about .c-h2,
  .p-about .c-lead,
  .p-about .c-more {
    margin-left: var(--gutter);
    margin-right: var(--gutter);
  }
  .p-about .c-label {
    margin-top: 0;
  }
  .p-about .c-h2 {
    margin-top: 5vw;
  }
  .p-about .c-lead {
    margin-top: 8vw;
  }
  .p-about .c-more {
    margin-top: 10vw;
  }

  /* PROGRAM */
  .p-program {
    padding-top: 22vw;
  }
  .p-program__deco {
    width: 34vw;
    top: 8vw;
    left: 4vw;
  }
  .p-program .c-h2 {
    margin-top: 4vw;
  }
  .p-program .c-lead {
    margin-top: 8vw;
  }

  .p-card {
    display: block;
    padding-top: 18vw;
  }
  .p-card__img {
    height: 52vw;
  }
  .p-card__tag {
    margin-top: 7vw;
  }
  .p-card__title {
    margin-top: 3vw;
  }
  .p-card__text {
    margin-top: 6vw;
    padding-left: 0;
    padding-top: 6vw;
    border-left: none;
    border-top: 1px solid rgba(50, 50, 36, 0.2);
  }
  .p-card .c-more {
    margin-top: 9vw;
  }

  /* MARQUEE */
  .p-marquee {
    padding: 20vw 0 8vw;
  }
  .p-personalized {
    height: 100vw;
  }

  /* CASE */
  .p-proof {
    padding-top: 22vw;
  }
  .p-proof__deco {
    top: 16vw;
    left: 4vw;
    width: 34vw;
  }
  .p-case {
    padding: 14vw var(--gutter) 0;
  }
  .p-case__img {
    height: 62vw;
    margin-bottom: 10vw;
  }
  .p-case .c-h2 {
    margin-top: 4vw;
  }
  .p-case .c-lead {
    margin-top: 7vw;
    white-space: normal;
  }
  .p-case .c-more {
    margin-top: 10vw;
  }

  /* HOME CARE */
  .p-copy {
    padding-top: 22vw;
  }
  .p-copy__deco {
    width: 30vw;
    left: 3vw;
    top: 6vw;
  }
  .p-copy__title {
    line-height: 1.9;
  }
  .p-homecare {
    padding: 12vw 0 24vw;
  }
  .p-homecare__img {
    height: 62vw;
    margin: 0 0 10vw;
  }
  .p-homecare .c-label,
  .p-homecare .c-h2,
  .p-homecare .c-lead,
  .p-homecare .c-more {
    margin-left: var(--gutter);
    margin-right: var(--gutter);
  }
  .p-homecare .c-h2 {
    margin-top: 4vw;
  }
  .p-homecare .c-lead {
    margin-top: 7vw;
    white-space: normal;
  }
  .p-homecare .c-more {
    margin-top: 10vw;
  }

  /* GUIDE */
  .p-guide {
    padding-top: 22vw;
  }
  .p-guide__deco {
    width: 30vw;
    top: 8vw;
    left: 2vw;
  }
  .p-guide .c-h2 {
    margin-top: 4vw;
  }
  .p-guide__lead {
    margin-top: 8vw;
    line-height: 2.2;
  }
  .p-guide__cards {
    padding-top: 16vw;
  }
  .p-gcard {
    display: block;
  }
  .p-gcard--2 {
    margin-top: 16vw;
  }
  .p-gcard__img {
    height: 62vw;
  }
  .p-gcard__title {
    margin-top: 5vw;
  }
  .p-gcard__more {
    width: 160px;
    margin-top: 7vw;
    padding-top: 24px;
    padding-left: 24px;
    font-size: 16px;
  }
  .p-gcard__more::before {
    top: 27px;
    width: 7px;
    height: 7px;
  }

  /* NEWS */
  .p-news {
    padding: 22vw var(--gutter) 26vw;
  }
  .p-news .c-h2 {
    margin-top: 3vw;
  }
  .p-news__lead {
    margin-top: 7vw;
  }
  .p-news .c-more {
    margin-top: 9vw;
    margin-bottom: 12vw;
  }
  .p-news__item {
    display: block;
    padding: 18px 0;
  }
  .p-news__title {
    margin-top: 8px;
  }

  /* RESERVATION */
  .p-reserve {
    padding: 24vw var(--gutter) 24vw;
  }
  .p-reserve__title {
    margin-top: 8vw;
    line-height: 1.9;
  }
  .p-reserve__lead {
    margin-top: 10vw;
    white-space: normal;
  }

  /* CTA */
  .p-cta {
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 14vw var(--gutter);
  }
  .c-btn {
    width: 100%;
    max-width: 340px;
    height: 68px;
  }

  /* ---------- 下層ページ：CONCEPT ---------- */
  .p-lower {
    padding: 34vw 0 14vw;
  }
  .p-lower::after {
    bottom: 9vw;
  }
  .p-lower__en {
    margin-left: var(--gutter);
    font-size: min(71px, 14vw);
  }
  .p-lower__ja {
    margin-left: var(--gutter);
    margin-top: 3vw;
  }

  .p-vision2 {
    padding: 62vw var(--gutter) 20vw;
  }
  .p-vision2__marquee {
    top: 90vw;
  } /* SP はリード文の背面に */
  .p-vision2__flow {
    font-size: min(101px, 17vw);
  }
  .p-vision2__deco {
    top: 52vw;
    left: auto;
    right: 4vw;
    width: 26vw;
  }
  .p-vision2__title {
    margin-top: 6vw;
    font-size: min(24px, 5.6vw);
    letter-spacing: 0.03em;
  }
  .p-vision2__lead {
    margin-top: 8vw;
    white-space: normal;
    text-align: left;
  }

  .p-owner {
    padding: 96vw var(--gutter) 22vw;
  }
  .p-owner::before {
    height: 76vw;
  }
  .p-owner__en {
    top: 44vw;
    right: var(--gutter);
    font-size: min(74px, 15vw);
  }
  .p-owner__deco {
    top: 100vw;
    left: auto;
    right: 4vw;
    width: 24vw;
  }
  .p-owner__title {
    margin-top: 3vw;
    font-size: min(24px, 4.8vw);
    letter-spacing: 0.03em;
  }
  .p-owner__lead {
    margin-top: 7vw;
    white-space: normal;
  }

  .p-point {
    padding: 20vw 0 22vw;
  }
  .p-point__deco--1 {
    top: 44vw;
    left: 2vw;
    width: 30vw;
  }
  .p-point__deco--2 {
    top: 168vw;
    left: 62vw;
    width: 30vw;
  }
  .p-point__label {
    margin-left: var(--gutter);
  }
  .p-point__title {
    margin: 3vw 0 0 var(--gutter);
  }
  .p-point__lead {
    margin: 6vw var(--gutter) 0;
    max-width: none;
    white-space: normal;
  }
  .p-point__img {
    margin: 12vw 0 0 var(--gutter);
    width: calc(100% - var(--gutter));
    height: 58vw;
  }
  .p-point__en {
    margin: -18vw 0 0 var(--gutter);
    font-size: min(46px, 10.5vw);
  }
  .p-point__en + .p-point__label {
    margin-top: 30vw;
  }

  .p-prog {
    padding: 20vw var(--gutter) 22vw;
  }
  .p-prog__ghost {
    top: 18vw;
    font-size: min(101px, 22vw);
    transform: translateX(-50%);
  }
  .p-prog__title {
    margin-top: 10vw;
    font-size: min(24px, 5vw);
    letter-spacing: 0.03em;
  }
  .p-prog__lead {
    margin-top: 8vw;
    white-space: normal;
  }
  .p-prog__cards {
    flex-direction: column;
    gap: 6vw;
    margin-top: 14vw;
  }
  .p-prog__card {
    flex: none;
    padding: 12vw 6vw 12vw;
  }
  .p-prog__name {
    margin-top: 5vw;
  }
  .p-prog__more {
    margin-top: 8vw;
    padding: 24px 0 0 24px;
  }
  .p-prog__more::before {
    top: 27px;
    width: 7px;
    height: 7px;
  }

  /* ---------- 下層ページ：ADVANCED PROGRAM ---------- */
  .p-lower--2line {
    padding: 30vw 0 14vw;
  }
  .p-lower--2line .p-lower__en {
    font-size: min(61px, 12vw);
  }
  .p-lower--2line .p-lower__ja {
    margin-top: 4vw;
  }

  .p-aintro {
    padding: 74vw var(--gutter) 20vw;
  }
  .p-aintro__img {
    top: 14vw;
    width: 88%;
    height: 56vw;
  }
  .p-aintro__deco {
    top: 66vw;
    left: auto;
    right: 3vw;
    width: 26vw;
  }
  .p-aintro__title {
    font-size: min(20px, 4.8vw);
    letter-spacing: 0.03em;
  }
  .p-aintro__title2 {
    font-size: min(24px, 5.2vw);
    letter-spacing: 0.03em;
  }
  .p-aintro__lead {
    margin-top: 8vw;
    white-space: normal;
  }

  .p-journey {
    padding: 78vw var(--gutter) 22vw;
  }
  .p-journey::before {
    height: 72vw;
  }
  .p-journey__en {
    top: 40vw;
    left: var(--gutter);
    font-size: min(58px, 10.5vw);
  }
  .p-journey__deco--1 {
    top: 66vw;
    left: 2vw;
    width: 26vw;
  }
  .p-journey__deco--2 {
    bottom: 8vw;
    right: 3vw;
    width: 24vw;
  }
  .p-journey__title {
    font-size: min(30px, 5.6vw);
    letter-spacing: 0.03em;
    text-align: left;
  }

  .p-step {
    display: block;
    padding-bottom: 10vw;
  }
  .p-journey__title + .p-step {
    margin-top: 14vw;
  }
  .p-step + .p-step {
    margin-top: 12vw;
  }
  .p-step__img {
    width: 100%;
  }
  .p-step__no {
    margin-top: 7vw;
  }
  .p-step__name {
    margin-top: 3vw;
  }
  .p-step__text {
    margin-top: 4vw;
  }
  .p-journey__close {
    margin-top: 16vw;
    white-space: normal;
  }

  /* ---------- 下層ページ：PERSONAL PROGRAM ---------- */
  .p-lower--personal {
    padding-top: 32vw;
  }
  .p-lower--personal .p-lower__en {
    font-size: min(50px, 11vw);
  }

  .p-pmenu {
    padding: 82vw var(--gutter) 18vw;
  }
  .p-pmenu__title {
    font-size: min(20px, 5vw);
    letter-spacing: 0.03em;
  }
  .p-pmenu__nav {
    grid-template-columns: 1fr;
    margin-top: 12vw;
  }
  .p-pmenu__item {
    padding: 9vw 0 11vw;
  }
  .p-pmenu__item + .p-pmenu__item::before {
    left: 50%;
    top: 0;
    width: 76%;
    max-width: 280px;
    height: 1px;
    transform: translateX(-50%);
  }
  .p-pmenu__item::after {
    bottom: 5vw;
  }
  .p-pmenu__name {
    font-size: min(24px, 6vw);
  }

  .p-carewrap {
    padding: 20vw 0 22vw;
  }
  .p-care {
    display: block;
    padding: 0 var(--gutter);
  }
  .p-care + .p-care {
    margin-top: 20vw;
  }
  .p-care__img {
    height: 78vw;
    margin-bottom: 4vw;
  }
  .p-care__title {
    margin-top: 0;
    font-size: min(28px, 7vw);
    letter-spacing: 0.05em;
    line-height: 1.5;
  }
  .p-care__sub {
    margin-top: 3vw;
  }
  .p-care__box {
    margin-top: 3vw;
    padding: 6vw 5vw 6.5vw;
  }
  .p-care__list {
    font-size: min(20px, 5vw);
  }
  .p-care__note {
    margin-top: 7vw;
    white-space: normal;
  }
  .p-care__name {
    margin-top: 8vw;
  }
  .p-care__box + .p-care__name {
    margin-top: 8vw;
  }
  .p-care__desc {
    margin-top: 1.5vw;
    padding-left: 1em;
  }

  .p-guide2 {
    padding: 20vw var(--gutter) 22vw;
  }
  .p-guide2__ghost {
    top: 17vw;
    font-size: min(101px, 22vw);
  }
  .p-guide2__title {
    margin-top: 10vw;
  }
  .p-guide2__sub {
    margin-top: 4vw;
  }
  .p-guide2__lead {
    margin-top: 8vw;
  }
  .p-guide2__cards {
    grid-template-columns: 1fr;
    gap: 5vw;
    margin-top: 12vw;
  }
  .p-gitem {
    min-height: 0;
    padding: 9vw 7vw 9vw;
  }
  .p-gitem__text {
    margin-top: 5vw;
  }
  .p-guide2__close {
    margin-top: 14vw;
    font-size: min(20px, 4.6vw);
    white-space: normal;
  }

  .p-flow {
    padding: 30vw var(--gutter) 22vw;
  }
  .p-flow__en {
    top: 14vw;
    right: var(--gutter);
    font-size: min(74px, 15vw);
  }
  .p-flow__deco {
    top: 10vw;
    left: auto;
    right: 2vw;
    width: 30vw;
  }
  .p-flow__title {
    font-size: min(30px, 7vw);
    letter-spacing: 0.1em;
  }
  .p-flow__item {
    display: block;
  }
  .p-flow__item::after {
    content: none;
  }
  .p-flow__title + .p-flow__item {
    margin-top: 12vw;
  }
  .p-flow__item + .p-flow__item {
    margin-top: 10vw;
  }
  .p-flow__no {
    margin-top: 0;
    padding-left: 0;
  }
  .p-flow__name {
    margin-top: 1vw;
  }
  .p-flow__text {
    margin-top: 2vw;
  }

  /* ---------- 下層ページ：MENU ---------- */
  .p-lower--menu {
    padding: 34vw 0 14vw;
  }
  .p-lower--menu .p-lower__ja {
    margin-top: 2vw;
  }

  .p-mintro {
    padding: 20vw var(--gutter) 20vw;
  }
  .p-mintro__deco {
    top: 12vw;
    left: auto;
    right: 3vw;
    width: 28vw;
  }
  .p-mintro__title {
    font-size: min(24px, 5.4vw);
    letter-spacing: 0.03em;
  }
  .p-mintro__lead {
    margin-top: 7vw;
    white-space: normal;
  }

  .p-mlist {
    padding: 18vw var(--gutter);
  }
  .p-mitem {
    display: block;
    padding-bottom: 10vw;
  }
  .p-mitem + .p-mitem {
    margin-top: 10vw;
  }
  .p-mitem__img {
    height: 58vw;
  }
  .p-mitem__name {
    margin-top: 6vw;
    font-size: min(20px, 4.8vw);
    letter-spacing: 0.05em;
    line-height: 1.8;
  }
  .p-mitem__text {
    margin-top: 4vw;
  }
  .p-mitem__price {
    margin-top: 4vw;
  }

  /* FOOTER（SP はサイドボタン分の余白を確保） */
  .l-footer {
    display: block;
    padding: 22vw var(--gutter) calc(56px + 12vw);
    text-align: center;
  }
  .l-footer__info {
    width: 100%;
    max-width: 240px;
    margin: 0 auto;
  }
  .l-footer__address {
    margin-top: 7vw;
  }
  .l-footer__ig {
    margin-top: 7vw;
  }
  .l-footer__nav {
    width: 100%;
    max-width: 360px;
    margin: 16vw auto 0;
    padding-top: 0;
    text-align: left;
  }
  .l-footer__main {
    margin-right: 10vw;
  }
  .l-footer__head {
    margin-top: 10vw;
    padding-bottom: 5vw;
  }
  .l-footer__sub {
    margin-top: 7vw !important;
    padding-left: 48px;
  }
  .l-footer__sub::before {
    width: 24px;
  }
  .l-footer__links {
    margin-top: 9vw;
    padding-top: 8vw;
  }
  .l-footer__link {
    margin: 0 6vw 3vw 0;
  }
  .l-footer__copy {
    margin-top: 16vw;
  }

  /* ---- CASE ---- */
  .p-intro {
    padding: 20vw var(--gutter) 16vw;
  }
  .p-intro__deco {
    top: 12vw;
    left: 50%;
    width: 26vw;
  }
  .p-intro__title {
    margin-top: 7vw;
    font-size: min(24px, 5.6vw);
    letter-spacing: 0.05em;
  }
  .p-intro__lead {
    margin-top: 6vw;
    letter-spacing: 0.05em;
  }
  .p-case2 {
    row-gap: 12vw;
    padding: 16vw var(--gutter);
  }

  /* ---- HOME CARE ---- */
  /* 本文は字間を詰めて 2〜3 文字の泣き別れを減らす */
  .p-brands__lead,
  .p-brand__lead,
  .p-daily__lead,
  .p-hitem__lead,
  .p-ec__lead,
  .p-consult__lead {
    letter-spacing: 0.05em;
  }

  .p-vision2--homecare {
    padding: 62vw var(--gutter) 18vw;
  }
  .p-vision2__deco--left {
    top: 52vw;
    left: 6%;
    width: 26vw;
  }

  .p-brands {
    padding-bottom: 20vw;
  }
  .p-brands__hero {
    width: 90%;
    height: 54vw;
    margin-top: 20vw;
  }
  .p-brands__en {
    top: 28vw;
    left: var(--gutter);
    font-size: min(79px, 16vw);
  }
  .p-brands__title {
    margin: 12vw 0 0 0;
    padding: 0 var(--gutter);
    font-size: min(24px, 5.6vw);
    letter-spacing: 0.05em;
  }
  .p-brands__title::before {
    display: none;
  }
  .p-brands__lead {
    margin: 5vw 0 0 0;
    padding: 0 var(--gutter);
    max-width: none;
  }
  .p-brands__tabs {
    grid-template-columns: 1fr;
    gap: 3vw;
    margin-top: 12vw;
  }
  .p-brands__tab {
    padding: 4vw 0 5vw;
  }
  .p-brands__tab::after {
    margin-top: 2vw;
  }

  .p-brand,
  .p-brand--rev {
    margin-top: 20vw;
  }
  .p-brand + .p-brand:not(.p-brand--rev) {
    margin-top: 20vw;
  }
  .p-brand__img,
  .p-brand:not(.p-brand--rev) .p-brand__img,
  .p-brand--rev .p-brand__img {
    height: 78vw;
  }
  .p-brand__name,
  .p-brand--rev .p-brand__name {
    margin-top: 8vw;
    font-size: min(20px, 4.8vw);
    letter-spacing: 0.05em;
  }
  .p-brand__lead,
  .p-brand--rev .p-brand__lead {
    margin-top: 5vw;
  }
  .p-brand__more,
  .p-brand--rev .p-brand__more {
    margin-top: 9vw;
  }

  .p-daily__title {
    margin-top: 22vw;
    font-size: min(24px, 5.6vw);
    letter-spacing: 0.05em;
  }
  .p-daily__lead {
    margin-top: 5vw;
  }
  .p-hitem {
    margin-top: 14vw;
  }
  .p-hitem + .p-hitem {
    margin-top: 14vw;
  }
  .p-hitem__name {
    margin-top: 1.5vw;
    font-size: min(15px, 4.2vw);
    letter-spacing: 0.05em;
  }
  .p-hitem__lead {
    margin: 4vw 0 6vw;
  }
  .p-hitem__img {
    height: 44vw;
  }

  .p-ec__title {
    margin-top: 22vw;
    font-size: min(18px, 4.6vw);
    letter-spacing: 0.05em;
  }
  .p-ec__lead {
    margin-top: 6vw;
    max-width: none;
    padding: 0 var(--gutter);
  }
  .p-ec__btn {
    width: calc(100% - var(--gutter) * 2);
    max-width: 320px;
    height: 60px;
    margin-top: 10vw;
  }

  .p-consult {
    padding-bottom: 22vw;
  }
  .p-consult::before {
    height: 56vw;
  }
  .p-consult__title {
    margin-top: 18vw;
    font-size: min(18px, 4.6vw);
    letter-spacing: 0.05em;
  }
  .p-consult__lead {
    margin-top: 7vw;
    max-width: none;
  }
}
