@charset "utf-8";
/* ==========================================================================
   heading.css — 文字が焼き込まれていた見出し画像を HTML+CSS に置き換えたぶん
   色・書体は MV（ヒーロー画像）から採取したパレットに統一
   ========================================================================== */

:root {
  --hd-ink: #403820;        /* MVの見出し色（温かいオリーブブラウン） */
  --hd-green: #6d9e1d;      /* MVのライムグリーン */
  --hd-green-dark: #4f7212; /* 白地でコントラストを確保する濃さ */
  --hd-cream: #f2f0e8;      /* MVの背景クリーム */
  --hd-cream-dark: #e7e7d7;
  --hd-mincho: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}

/* --- 見出しの共通形 --- */
.hd {
  display: block;
  text-align: center;
  color: var(--hd-ink);
  font-family: var(--hd-mincho);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
}
.hd em {
  font-style: normal;
  color: var(--hd-green-dark);
}
.hd__sub {
  display: block;
  font-family: system-ui, -apple-system, sans-serif;
  font-size: .46em;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--hd-green-dark);
  margin-bottom: .7em;
}
.hd__main {
  display: block;
  font-size: 5.6vw;
}
/* 見出しの下の飾り罫（MVの細い緑ラインに合わせる） */
.hd__main::after {
  content: "";
  display: block;
  width: 3.6em;
  height: 2px;
  margin: .6em auto 0;
  background: var(--hd-green);
  opacity: .55;
}

/* --- resolve のバッジ2つ --- */
.resolve-head-items li {
  background: #fff;
  border: 1.5px solid var(--hd-green);
  border-radius: 10px;
  padding: 2.6vw 2vw;
  text-align: center;
}
.badge__label {
  display: block;
  font-size: 3.1vw;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--hd-green-dark);
  margin-bottom: .35em;
}
.badge__value {
  display: block;
  font-family: var(--hd-mincho);
  font-size: 4.4vw;
  font-weight: 700;
  line-height: 1.35;
  color: var(--hd-ink);
}
.badge__value strong {
  font-size: 1.35em;
  color: var(--hd-green-dark);
}

/* --- 全額返金の帯（closing-warranty） --- */
.warranty {
  display: block;
  background: #fff;
  border: 2px solid var(--hd-green);
  border-radius: 12px;
  padding: 5vw 4vw;
  text-align: center;
}
.warranty__lead {
  display: block;
  font-size: 3.6vw;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--hd-green-dark);
  margin-bottom: .6em;
}
.warranty__main {
  display: block;
  font-family: var(--hd-mincho);
  font-size: 5.6vw;
  font-weight: 700;
  line-height: 1.45;
  color: var(--hd-ink);
}
.warranty__note {
  display: block;
  margin-top: .9em;
  font-size: 3.2vw;
  line-height: 1.7;
  color: #6d6550;
}

/* --- PC --- */
@media print, screen and (min-width: 768px) {
  .hd__main { font-size: 34px; }
  .hd__sub { font-size: 15px; }

  .resolve-head-items li { padding: 18px 20px; border-radius: 12px; }
  .badge__label { font-size: 14px; }
  .badge__value { font-size: 20px; }

  .warranty { padding: 32px 28px; border-radius: 14px; }
  .warranty__lead { font-size: 16px; }
  .warranty__main { font-size: 30px; }
  .warranty__note { font-size: 14px; }
}


/* 白地・クリーム地に乗る緑文字（4.5:1以上を確保） */
.hd em, .hd__sub,
.badge__label, .badge__value strong,
.warranty__lead, .warranty__main em { color: #4f7212; }

/* --- 個別のコントラスト補正（WCAG AA） --- */
.reason-item-batch { color: #4f7212 !important; }      /* 薄グレー → 緑 */
.flow-item-deco   { color: #767676 !important; opacity:.55; }        /* 装飾文字を少し濃く */


/* 緑地に白文字が乗るバッジ類の背景を濃く */
.flow-title .small,
.closing-title .small,
.recom-foot .small,
.qa-title .small { background: #4f7212 !important; }
.flow-title .small:before { border-right-color: #4f7212 !important; }
.flow-title .small:after  { border-left-color: #4f7212 !important; }


/* --- resolve セクション見出しビジュアル（支給画像・横幅いっぱい） --- */
.resolve-head {
  width: 100% !important;
  max-width: none !important;
  margin: 0 auto 6vw !important;
  padding: 0 !important;
  background: none !important;
}
.resolve-head-visual { display: block; width: 100%; height: auto; }
@media print, screen and (min-width: 768px) {
  .resolve-head { margin-bottom: 60px !important; }
  .resolve-head-visual { max-width: none; }
}

/* --- resolve の背景テクスチャを外し、MVのクリーム地に --- */
.resolve {
  background-image: none !important;
  background-color: #f2f0e8 !important;
}
.resolve-head { margin-bottom: 0 !important; }

/* --- お悩みセクション：MV人物 ＋ 悩みリスト --- */
.troubles-image {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5vw;
  width: 90vw;
  margin: 0 auto;
}
.troubles-visual {
  width: 100%;
  max-width: 460px;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(64,56,32,.18);
}
.troubles-list {
  width: 100%;
  display: grid;
  gap: 2.4vw;
}
.troubles-list li {
  position: relative;
  padding: 3vw 3vw 3vw 11vw;
  background: rgba(255,255,255,.94);
  border-radius: 8px;
  font-size: 4vw;
  font-weight: 700;
  line-height: 1.5;
  color: #403820;
}
.troubles-list li::before {
  content: "";
  position: absolute;
  left: 4vw;
  top: 50%;
  width: 5vw;
  height: 5vw;
  margin-top: -2.5vw;
  background: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2711%27%20fill%3D%27none%27%20stroke%3D%27%234f7212%27%20stroke-width%3D%272%27%2F%3E%3Cpath%20d%3D%27M7%2012.5l3.2%203.2L17%208.8%27%20fill%3D%27none%27%20stroke%3D%27%234f7212%27%20stroke-width%3D%272.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
}

@media print, screen and (min-width: 768px) {
  .troubles-image {
    flex-direction: row;
    align-items: center;
    gap: 40px;
    width: 900px;
    max-width: 100%;
  }
  .troubles-visual { width: 340px; max-width: 340px; flex: none; }
  .troubles-list { flex: 1; grid-template-columns: 1fr 1fr; gap: 12px; }
  .troubles-list li { padding: 14px 14px 14px 46px; font-size: 15px; border-radius: 8px; }
  .troubles-list li::before { left: 16px; width: 20px; height: 20px; margin-top: -10px; }
}

/* ==========================================================================
   セクション背景を明るく（白 ↔ クリームの交互）／MVのトンマナに統一
   ========================================================================== */
.troubles, .ba, .qa, .voice, .closing, .flow {
  background-image: none !important;
}
/* 交互配色 */
.about    { background-color: #ffffff !important; }
.troubles { background-color: #f2f0e8 !important; }
.raised   { background-color: #ffffff !important; }
.resolve  { background-color: #f2f0e8 !important; }
.ba       { background-color: #ffffff !important; }
.recom    { background-color: #f2f0e8 !important; }
.reason   { background-color: #ffffff !important; }
.flow     { background-color: #f2f0e8 !important; }
.voice    { background-color: #ffffff !important; }
.qa       { background-color: #f2f0e8 !important; }
.closing  { background-color: #ffffff !important; }
.salon    { background-color: #f2f0e8 !important; }

/* 明るくなったぶん、見出し・本文を濃いオリーブに戻す */
.troubles .hd, .troubles .hd__main,
.ba .hd, .ba .hd__main,
.qa .hd, .qa .hd__main,
.voice .hd, .voice .hd__main,
.closing .closing-title .big,
.closing .closing-title .small,
.flow .flow-title .big { color: #403820; }

.troubles .hd em, .troubles .hd__sub,
.ba .hd em, .ba .hd__sub,
.qa .hd em, .qa .hd__sub,
.voice .hd em, .voice .hd__sub,
.flow .flow-title .en { color: #4f7212; }

.troubles .hd__main::after,
.ba .hd__main::after,
.qa .hd__main::after,
.voice .hd__main::after { background: #6d9e1d; opacity: .55; }

/* 白地のカード類はクリーム地の上で境界が出るよう白のまま＋淡い枠 */
.troubles-list li,
.qa-items > li,
.voice-items > li { border: 1px solid rgba(64,56,32,.10); }

/* --- 内側ブロックの暗背景も明るく --- */
.troubles-body,
.troubles-body-inner,
.qa-foot, .qa-foot-inner,
.ba-item-box, .voice-item-content {
  background-color: transparent !important;
  background-image: none !important;
}
.troubles-body { color: #403820; }

/* --- 警告帯（raised）は濃いグリーンで残してメリハリを出す --- */
.raised {
  background-color: #3f5c14 !important;
  background-image: none !important;
}
.raised .frame,
.raised .big,
.raised .small,
.raised p { color: #ffffff !important; }
.raised .frame { border-color: rgba(255,255,255,.6) !important; }

/* --- about の人物ビジュアル（MV人物・縦長）と地色 --- */
.about-head {
  background-color: #f2f0e8 !important;
  background-position: left bottom !important;
  background-size: auto 100% !important;
  background-repeat: no-repeat !important;
}
@media print, screen and (min-width: 768px) {
  .about-head {
    background-size: contain !important;
    background-position: left center !important;
    padding-bottom: 80px !important;
  }
}

/* --- 残りのコントラスト補正 --- */
.ba .case, span.case { color: #ffffff !important; background: #5b543d !important; }
.voice-item-batch { color: #4f7212 !important; }

/* ==========================================================================
   クロージング再設計（3つの安心／初回の内容／最終CTA）
   ========================================================================== */

/* --- 3つの安心 --- */
.assure {
  display: grid;
  gap: 3vw;
  width: 90vw;
  margin: 0 auto 8vw;
}
.assure li {
  background: #fff;
  border: 2px solid #6d9e1d;
  border-radius: 12px;
  padding: 5vw 4vw;
  text-align: center;
}
.assure__label {
  display: block;
  font-family: var(--hd-mincho);
  font-size: 5vw;
  font-weight: 700;
  line-height: 1.35;
  color: #4f7212;
  margin-bottom: .5em;
}
.assure__text {
  display: block;
  font-size: 3.6vw;
  line-height: 1.7;
  color: #403820;
}

/* --- 初回カウンセリングでやること --- */
.firststep {
  width: 90vw;
  margin: 0 auto 8vw;
  background: #f2f0e8;
  border-radius: 12px;
  padding: 6vw 5vw;
}
.firststep__title {
  font-family: var(--hd-mincho);
  font-size: 5vw;
  font-weight: 700;
  text-align: center;
  color: #403820;
  margin-bottom: 4vw;
}
.firststep__list {
  counter-reset: fs;
  display: grid;
  gap: 3vw;
  margin-bottom: 4vw;
}
.firststep__list li {
  counter-increment: fs;
  position: relative;
  background: #fff;
  border-radius: 8px;
  padding: 3.5vw 3.5vw 3.5vw 13vw;
  font-size: 3.6vw;
  line-height: 1.7;
  color: #403820;
}
.firststep__list li::before {
  content: counter(fs);
  position: absolute;
  left: 4vw;
  top: 50%;
  transform: translateY(-50%);
  width: 7vw;
  height: 7vw;
  border-radius: 50%;
  background: #6d9e1d;
  color: #fff;
  font-size: 3.8vw;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.firststep__list b {
  display: block;
  font-size: 4vw;
  color: #4f7212;
  margin-bottom: .2em;
}
.firststep__note {
  text-align: center;
  font-size: 3.5vw;
  line-height: 1.8;
  color: #403820;
}
.firststep__note b { color: #4f7212; }

/* --- 最終CTA --- */
.cv--final {
  background: #f2f0e8 !important;
  background-image: none !important;
  padding: 8vw 0 10vw;
}
.cv--final .cv-final__lead { color: #403820; }
.cv--final .cv-final__access { color: #6d6550; }
.cv-final__lead {
  text-align: center;
  font-family: var(--hd-mincho);
  font-size: 4.6vw;
  font-weight: 700;
  color: #403820;
  margin-bottom: 4vw;
}
.cv-final__actions {
  display: grid;
  gap: 3vw;
  width: 90vw;
  margin: 0 auto 4vw;
}
.cv-final__actions a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1vw;
  padding: 4.5vw 4vw;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 700;
  transition: transform .18s ease, box-shadow .18s ease;
}
.cv-final__actions a:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(64,56,32,.18); }
.cv-final__row { display: flex; align-items: center; gap: 2.5vw; }
.cv-final__row svg { width: 1.1em; height: 1.1em; flex: none; }
.cv-final__tel {
  background: #f2f0e8;
  color: #403820;
  border: 2px solid #ddd9c2;
}
.cv-final__num { font-size: 6vw; letter-spacing: .01em; }
.cv-final__book { background: #4f7212; color: #fff; }
.cv-final__main { font-size: 4.8vw; }
.cv-final__sub { font-size: 3.2vw; font-weight: 500; opacity: .85; }
.cv-final__access {
  text-align: center;
  font-size: 3.2vw;
  line-height: 1.8;
  color: #6d6550;
}

@media print, screen and (min-width: 768px) {
  .assure {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    width: 900px;
    max-width: 100%;
    margin-bottom: 50px;
  }
  .assure li { padding: 26px 20px; }
  .assure__label { font-size: 22px; }
  .assure__text { font-size: 14px; }

  .firststep { width: 900px; max-width: 100%; padding: 32px 30px; margin-bottom: 50px; }
  .firststep__title { font-size: 24px; margin-bottom: 20px; }
  .firststep__list { grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 20px; }
  .firststep__list li { padding: 18px 16px 18px 16px; text-align: center; font-size: 14px; }
  .firststep__list li::before { position: static; transform: none; margin: 0 auto 8px; width: 32px; height: 32px; font-size: 16px; }
  .firststep__list b { font-size: 17px; }
  .firststep__note { font-size: 14px; }

  .cv--final { padding: 50px 0 70px; }
  .cv-final__lead { font-size: 24px; margin-bottom: 24px; }
  .cv-final__actions { grid-template-columns: 1fr 1fr; gap: 20px; width: 800px; max-width: 100%; margin-bottom: 20px; }
  .cv-final__actions a { padding: 22px 20px; }
  .cv-final__num { font-size: 30px; }
  .cv-final__main { font-size: 22px; }
  .cv-final__sub { font-size: 13px; }
  .cv-final__access { font-size: 13px; }
}

/* --- ビフォーアフターの縦位置を揃える（上揃え→中央揃え） --- */
@media print, screen and (min-width: 768px) {
  .ba-items > li {
    align-items: center !important;
    gap: 40px;
  }
  .ba-item-text { flex: 1; }
}

/* --- recom-foot の装飾を整理（マーカー線を消す・1行に収める） --- */
.recom-foot-title .big {
  display: block;
  background: none !important;
  text-align: center;
  line-height: 1.4;
  white-space: nowrap;
}
.recom-foot-title .big > span { display: inline; }
@media screen and (max-width: 480px) {
  .recom-foot-title .big { white-space: normal; }
}

/* --- recom-foot のバッジを文字幅に合わせる（全幅の帯にしない） --- */
.recom-foot-title .small {
  display: inline-block !important;
  width: auto !important;
  padding: .5em 1.6em;
  border-radius: 999px;
  color: #fff;
  font-size: 3.9vw;
  letter-spacing: .06em;
  line-height: 1.4;
}
@media print, screen and (min-width: 768px) {
  .recom-foot-title .small { font-size: 17px; padding: 10px 30px; margin-bottom: 18px; }
}


/* --- LINE（従） --- */
.hdr-cta__line a {
  gap: 1.6vw;
  padding: 2vw 3vw;
  background: #06C755;           /* LINEブランドカラー */
  color: #fff;
}
.hdr-cta__ico { display: flex; }
.hdr-cta__ico svg { width: 5.4vw; height: 5.4vw; }
.hdr-cta__label { display: flex; flex-direction: column; line-height: 1.15; }
.hdr-cta__label b { font-size: 3.6vw; letter-spacing: .04em; }
.hdr-cta__label small { font-size: 2.6vw; font-weight: 500; opacity: .92; }

/* --- 無料カウンセリング（主）--- */
.hdr-cta__book { flex: 1; }

@media print, screen and (min-width: 768px) {
  .hdr-cta { gap: 12px; }
  .hdr-cta__line a { gap: 10px; padding: 0 20px; }
  .hdr-cta__ico svg { width: 26px; height: 26px; }
  .hdr-cta__label b { font-size: 17px; }
  .hdr-cta__label small { font-size: 12px; }
}

/* --- スマホ：アイコン中心で2つ並べる --- */
@media screen and (max-width: 767px) {
  .hdr-cta { gap: 1.6vw; }
  .hdr-cta__line a { padding: 1.6vw 2.6vw; }
  .hdr-cta__book .deco { font-size: 2.6vw !important; padding: .3em .7em !important; }
  .hdr-cta__book .title { font-size: 3.4vw !important; }
  .hdr-cta__book .icon { font-size: 4.4vw !important; }
}


/* --- ヘッダーCTA 2本（元のボタン構造をそのまま2つ並べる） --- */
.hdr-cta {
  display: flex !important;
  gap: 2vw;
  width: auto !important;
  margin: 0 !important;
}
.hdr-cta > li { width: auto !important; margin: 0 !important; }
.hdr-cta .contact-item-inner { gap: .5em; }
.hdr-cta .title { background: none !important; padding-right: 0 !important; }

@media print, screen and (min-width: 768px) {
  .hdr-cta { gap: 14px; }
  .hdr-cta .title { font-size: 21px; }
}
@media screen and (max-width: 767px) {
  .hdr-cta { gap: 1.6vw; }
  .hdr-cta .title { font-size: 3.5vw !important; }
  .hdr-cta .icon { font-size: 4.4vw !important; }
}

/* ==========================================================================
   ヘッダー：ロゴ ／ 電話ブロック ／ CTA2つ
   ========================================================================== */
.header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 2vw;
}

/* --- 電話ブロック --- */
.hdr-tel {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: none;
}
.hdr-tel__label {
  border: 1px solid #6d9e1d;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.35;
  text-align: center;
  color: #4f7212;
  white-space: nowrap;
}
.hdr-tel__body { text-decoration: none; display: block; }
.hdr-tel__num {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.1;
  color: #403820;
  letter-spacing: .01em;
  white-space: nowrap;
}
.hdr-tel__num svg { width: .78em; height: .78em; flex: none; }
.hdr-tel__hours {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.5;
  color: #6d6550;
  white-space: nowrap;
}

/* --- CTA 2つ：横幅を内容に合わせる --- */
.hdr-cta { gap: 10px !important; flex: none; }
.hdr-cta > li { flex: none; }
.hdr-cta .contact-item-inner {
  gap: .45em;
  padding-left: 18px;
  padding-right: 18px;
  white-space: nowrap;
}
.hdr-cta .title { font-size: 17px !important; white-space: nowrap; }

@media screen and (max-width: 1200px) {
  .hdr-tel__num { font-size: 24px; }
  .hdr-tel__label { font-size: 11px; padding: 5px 8px; }
  .hdr-cta .title { font-size: 15px !important; }
  .hdr-cta .contact-item-inner { padding-left: 12px; padding-right: 12px; }
}

/* --- スマホ：電話はアイコンのみ --- */
@media screen and (max-width: 767px) {
  .header-content { gap: 1.6vw; }
  .hdr-tel__label,
  .hdr-tel__hours { display: none; }
  .hdr-tel__num {
    font-size: 0;
    gap: 0;
    width: 11vw;
    height: 11vw;
    border-radius: 50%;
    background: #f2f0e8;
    border: 1.5px solid #6d9e1d;
    align-items: center;
    justify-content: center;
    color: #4f7212;
  }
  .hdr-tel__num svg { width: 5.4vw; height: 5.4vw; }
  .hdr-cta { gap: 1.4vw !important; }
  .hdr-cta .title { font-size: 3.2vw !important; }
  .hdr-cta .contact-item-inner { padding-left: 2.4vw; padding-right: 2.4vw; }
  .hdr-cta .icon { font-size: 4vw !important; }
}

/* --- ヘッダー幅の最適化（3ブロックを1行に収める） --- */
@media print, screen and (min-width: 768px) {
  .header-content {
    width: 1000px !important;
    max-width: 94vw !important;
    margin-left: auto !important;
    margin-right: auto !important;
    flex-wrap: nowrap !important;
    gap: 16px !important;
  }
  .header-logo { width: 158px !important; flex: none; }
  .hdr-tel { gap: 7px; flex: none; }
  .hdr-tel__label { font-size: 10px; padding: 4px 6px; line-height: 1.35; }
  .hdr-tel__num { font-size: 22px; }
  .hdr-tel__hours { font-size: 9.5px; }
  .hdr-cta { gap: 7px !important; flex: none; }
  .hdr-cta > li { width: 225px !important; padding: 8px 0 !important; }
  .hdr-cta > li > a { width: 100% !important; }
  .hdr-cta .contact-item-inner { width: 100% !important; box-sizing: border-box; padding-left: 10px !important; padding-right: 10px !important; }
  .hdr-cta .title { font-size: 13.5px !important; }
  .hdr-cta .icon { font-size: 17px !important; }
}

/* ==========================================================================
   明るいトンマナ化（2026-08-01）
   PC余白の黒 → MVと同じクリーム。暗い写真背景セクションを明るく差し替え。
   ========================================================================== */
html { background: #f2f0e8; }
body { background: #f2f0e8 !important; }

/* CVセクション：暗いサロン写真 → クリーム地＋淡いグリーンの光 */
.cv,
.cv--final {
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(146, 190, 74, .20) 0%, rgba(146, 190, 74, 0) 60%),
    radial-gradient(110% 80% at 88% 100%, rgba(146, 190, 74, .16) 0%, rgba(146, 190, 74, 0) 55%),
    linear-gradient(180deg, #f6f4ec 0%, #eef1e3 100%) !important;
}

/* 上下セクションとの境目を柔らかく */
.cv { border-top: 1px solid rgba(109, 158, 29, .16); border-bottom: 1px solid rgba(109, 158, 29, .16); }

/* 緑ベタ（raised）はアクセントとして残しつつ、やや軽く */
.raised { background: #4f7212 !important; }

/* --- 施術の流れ：枠＝金、STEP＝金、見出し＝緑（2026-08-01） --- */
.flow-items li { border-color: #c8a882 !important; }
.flow-item-head { border-bottom-color: #c8a882 !important; background: rgba(200, 168, 130, .07); }
.flow-item-batch { color: #b8935f !important; }
.flow-item-title { color: #4f7212 !important; }
.flow-item-deco { color: #c8a882 !important; opacity: .35 !important; }

/* --- サロン情報：黒帯・濃茶 → 緑＋淡グリーンの明るいトーン（2026-08-01） --- */
.salon .title { background: #4f7212 !important; color: #fff !important; border-radius: 4px 4px 0 0; }
.salon table { border: 1px solid rgba(109, 158, 29, .28); border-top: 0; }
.salon th {
  background: #e8efdc !important;
  color: #3f5c14 !important;
  border-bottom: 1px solid rgba(109, 158, 29, .28) !important;
  border-right: 1px solid rgba(109, 158, 29, .28) !important;
}
.salon td {
  background: #faf9f4 !important;
  color: #403820 !important;
  border-bottom: 1px solid rgba(109, 158, 29, .18) !important;
}
.salon td .tel { color: #4f7212 !important; }

/* --- PC：コンテンツ両脇の影を軽く（不透明な濃茶3重 → 透過のやわらかい影） --- */
@media print, screen and (min-width: 768px) {
  .wrapper {
    box-shadow:
      0 0 0 1px rgba(109, 158, 29, .22),
      0 0 18px rgba(146, 190, 74, .38),
      0 0 55px rgba(146, 190, 74, .26),
      0 0 110px rgba(146, 190, 74, .16),
      0 12px 60px rgba(64, 56, 32, .06) !important;
  }
}

/* ==========================================================================
   スマホ調整（2026-08-01）
   ①ヘッダーにロゴを出す（2段組）②about の人物写真とテキストの重なり解消
   ========================================================================== */
@media screen and (max-width: 767px) {
  /* --- ヘッダー：1段目 ロゴ＋電話 / 2段目 CTA2つ --- */
  .header-content {
    flex-wrap: wrap !important;
    row-gap: 6px;
    padding: 7px 12px !important;
    gap: 8px;
  }
  .header-logo {
    display: block !important;
    width: 112px !important;
    flex: none !important;
    order: 1;
  }
  .header-logo img { width: 100% !important; height: auto !important; display: block; }
  .hdr-tel { order: 2; margin-left: auto; }
  .hdr-tel__num { width: 9.5vw; height: 9.5vw; }
  .hdr-tel__num svg { width: 4.8vw; height: 4.8vw; }
  .hdr-cta { order: 3; width: 100% !important; gap: 6px !important; }
  .hdr-cta > li { flex: 1 1 0 !important; width: auto !important; margin: 0 !important; }
  .hdr-cta > li > a { width: 100% !important; }
  .hdr-cta .contact-item-inner { padding: 8px 4px !important; }
  .hdr-cta .title { font-size: 3.3vw !important; }
  .hdr-cta .icon { font-size: 4vw !important; }

  /* --- about：人物写真を下部だけに置き、見出し・本文と重ねない --- */
  .about-head {
    background-size: auto 95vw !important;
    background-position: center bottom !important;
  }
  .about-head-title,
  .about-head-subtitle { position: relative; z-index: 1; }
}

/* ==========================================================================
   スマホ：下部固定CTAバナー（ヘッダーからCTAを移設）
   ========================================================================== */
.sp-fixed-cta { display: none; }

@media screen and (max-width: 767px) {
  /* ヘッダーは ロゴ＋電話 の1段に戻す */
  .hdr-cta { display: none !important; }
  .header-content { flex-wrap: nowrap !important; row-gap: 0; }
  .header-logo { width: 132px !important; }
  .hdr-tel { margin-left: auto; }

  /* 固定バナー本体 */
  .sp-fixed-cta {
    display: flex;
    gap: 8px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9000;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    box-shadow: 0 -2px 16px rgba(64, 56, 32, .14);
  }
  .sp-fixed-cta__btn {
    flex: 1 1 0;
    min-width: 0;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 6px;
    border-radius: 8px;
    color: #fff;
    font-size: 3.5vw;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    background: linear-gradient(180deg, #79a03b 0%, #4f7212 100%);
    box-shadow: 0 2px 6px rgba(64, 56, 32, .18);
  }
  .sp-fixed-cta__btn svg { width: 4.4vw; height: 4.4vw; flex: none; }
  .sp-fixed-cta__btn:active { transform: translateY(1px); box-shadow: 0 1px 3px rgba(64, 56, 32, .18); }
  .sp-fixed-cta__btn--line { background: linear-gradient(180deg, #6cc24a 0%, #47922c 100%); }

  /* 固定バナーぶんの余白（フッターが隠れないように） */
  body { padding-bottom: 72px; }
}

/* --- スマホヘッダー：電話アイコン＋受付時間テキスト（参考デザイン準拠） --- */
@media screen and (max-width: 767px) {
  .hdr-tel { gap: 6px; align-items: center; }
  .hdr-tel__body { display: flex; align-items: center; gap: 6px; text-decoration: none; }
  /* 番号テキストは隠し、受話器アイコンだけ残す（丸ボタンは解除） */
  .hdr-tel__num {
    font-size: 0;
    width: auto; height: auto;
    background: none; border: 0; border-radius: 0;
    color: #4f7212;
    display: flex; align-items: center;
  }
  .hdr-tel__num svg { width: 5.6vw; height: 5.6vw; }
  /* 受付時間を2行で表示 */
  .hdr-tel__hours {
    display: block;
    font-size: 2.9vw;
    line-height: 1.45;
    color: #403820;
    text-align: left;
    white-space: nowrap;
  }
  .header-logo { width: 152px !important; }
}

/* ============================================
   ヘッダーロゴ：女性LPと同じサイズ感に揃える
   PC：1000px 枠に収まる最大＝175px（要素間の余白を 16px→8px に詰めて確保。
       電話・予約ボタンのサイズは一切変えていない。女性LPは全幅なので 210px）
   SP：女性LPと同値の 168px（≦640px）
   ============================================ */
@media print, screen and (min-width: 768px) {
  .header-content { gap: 8px !important; }
  .header-logo { width: 175px !important; max-width: 175px !important; }
}
.header-logo img { width: 100% !important; height: auto !important; display: block; }
@media screen and (max-width: 640px) {
  .header-logo { width: 168px !important; max-width: 168px !important; }
}

/* ============================================
   スマホ（≦767px）：ヘッダーを女性LPと同じ寸法に揃える
   ・電話ブロックの vw 指定（アイコン5.6vw／受付時間2.9vw）を
     女性LPと同じ固定px（19px／9.5px）に変更
     → 画面幅が広くなるほど巨大化する問題が解消
   ・結果、ヘッダー高さ 123px → 54px（女性LPと同値）
   ・.container の上余白（20vw）もヘッダー高さに合わせて 54px に
   ============================================ */
@media screen and (max-width: 767px) {
  .header-logo { width: 168px !important; max-width: 168px !important; }
  .hdr-tel { align-items: center !important; gap: 6px !important; }
  .hdr-tel__num,
  .hdr-tel__num svg { width: 19px !important; height: 19px !important; flex: 0 0 auto !important; }
  .hdr-tel__hours { font-size: 9.5px !important; line-height: 1.35 !important; }
  /* ヘッダー高さ：20vw（＝画面幅に比例して伸びる）を女性LPと同じ 54px 固定に */
  .header { height: 54px !important; }
  /* 左右の余白も女性LPと同じ 15px に */
  .header-content { padding: 7px 15px !important; }
  .container { padding-top: 54px !important; }
}

/* ============================================
   最終CTA：LINE予約ボタンを追加
   PCは「電話（横いっぱい）／ LINE予約・無料カウンセリング予約（横並び）」
   SPは3つ縦積み（既存の1カラムグリッドのまま）
   色はスマホ固定バーのLINEボタンと同じグラデーション
   ============================================ */
.cv-final__line { background: linear-gradient(180deg, #6cc24a 0%, #47922c 100%); color: #fff; }
@media print, screen and (min-width: 768px) {
  .cv-final__tel { grid-column: 1 / -1; }
}


/* ============================================
   SP：ヘッダーの固定を解除して、MVの上の空白をなくす
   固定ヘッダーのために container に確保していた上余白が
   MVの上の空きに見えていたため。ヘッダーは通常の流れに戻し、
   スクロールで一緒に流れる。下部の固定CTAバーはそのまま残す。
   ============================================ */
@media screen and (max-width: 767px) {
  .header {
    position: static !important;
  }
  .container {
    padding-top: 0 !important;
  }
}
