@charset "UTF-8";
/* ============================================================
   df-lp（自社LP）— 実験2（figma-lab）
   PC基準1440（Container 1200/gutter120）／SP 375（gutter15）
   ブレークポイント：SP≤767 / PC≥768（@mediaは末尾集約）
   トークン：ANALYSIS.md 正規化トークン表を正とする
============================================================ */

:root {
  --font-base: "Noto Sans JP", "Hiragino Sans", sans-serif;
  --font-en: "Poppins", sans-serif;
  --font-en2: "Inter", sans-serif;
}

body {
  font-family: var(--font-base);
  font-size: 16px;
  line-height: 1.75;
  color: #2c2c2c;
  background: #fff;
  overflow-wrap: break-word;
  font-feature-settings: "palt";
  letter-spacing: 1px;
}

/* ---- 共通ユーティリティ ---- */

.u-sp {
  display: none;
}
.u-pc {
  display: inline;
}
.u-note {
  font-size: 12px;
  color: #7d7d7d;
}
.u-reg {
  font-weight: 400;
}

.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.u-grad-text {
  background: linear-gradient(90deg, #2438cc, #23d2c6);
  -webkit-background-clip: text;
  background-clip: text;
  color: rgba(0, 0, 0, 0);
}

.u-marker {
  background: linear-gradient(rgba(0, 0, 0, 0) 62%, rgba(255, 189, 15, 0.3) 62%);
}

/* 本文中の橙強調（デザインの強調スパン） */
.u-strong {
  color: #f0831e;
  font-weight: 700;
}

/* 紺チップ（WORRY「お悩み」。実測 #0c3a71） */
.u-chip-navy {
  display: inline-block;
  background: #0c3a71;
  color: #fff;
  padding: 0 4px;
  border-radius: 2px;
  line-height: 1.5;
  margin-inline: 0.28em;
}

/* 欧文ウォーターマーク（テキスト実装） */
.wm {
  font-family: var(--font-en);
  font-weight: 300;
  font-size: 100px;
  line-height: 1;
  color: #efefef;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
}

.wm--cta {
  font-family: var(--font-en2);
  font-size: 85px;
  color: #fff;
  opacity: 0.33;
}
.wm--light {
  color: rgba(255, 255, 255, 0.17);
}

/* 裁定#19：WMの書体・サイズ・色はFigma原値を維持（統一しない） */
.about__inner .wm {
  color: #f2f2f2;
}
.worry__inner .wm {
  color: #fff;
}
.reason__inner .wm {
  font-family: var(--font-en2);
  color: rgba(255, 189, 15, 0.3);
}
.service__inner .wm {
  color: rgba(255, 189, 15, 0.3);
}
.price__inner .wm {
  color: #fff;
}
.evidence__inner .wm {
  font-size: 90px;
  color: #fff;
}
.voice__inner .wm {
  font-family: var(--font-en2);
  color: rgba(255, 189, 15, 0.3);
}
.flow__inner .wm {
  color: rgba(255, 189, 15, 0.3);
}
.cta--final .wm--cta {
  font-family: var(--font-en);
  font-weight: 400;
  font-size: 77px;
  opacity: 0.67;
}

/* セクション見出しまわり */
.sec-overline {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
}

.sec-title {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.sec-title--light {
  color: #fff;
}

.sec-intro {
  margin-top: 12px;
  font-size: 16px;
}

.sec-intro--light {
  color: #fff;
}

/* ---- ボタン ---- */

.btn-black,
.btn-white {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 280px;
  min-height: 59px;
  padding: 14px 36px 14px 24px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  transition: opacity 0.3s;
}

.btn-black {
  background: #242424;
  color: #fff;
}

.btn-white {
  background: #fff;
  color: #2c2c2c;
  border: 1px solid #242424;
}

.btn-black:hover,
.btn-white:hover,
.btn-tel:hover {
  opacity: 0.8;
}

.deco-chev {
  position: absolute;
  right: 12px;
  top: 50%;
  translate: 0 -50%;
  width: 7px;
  height: 13px;
  background: url("../img/icon-chevron.svg") center / contain no-repeat;
}

.deco-chev--dark {
  filter: brightness(0);
}

.btn-tel {
  position: relative;
  display: inline-flex;
  padding-right: 30px;
  padding-left: 14px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 100%;
  max-width: 280px;
  min-height: 59px;
  border-radius: 999px;
  background: rgba(239, 130, 29, 0.3);
  border: 1px solid #fff;
  color: #fff;
  transition: opacity 0.3s;
}

.btn-tel--outline {
  background: none;
}

.btn-tel__label {
  font-size: 13px;
  line-height: 1;
  margin-bottom: 3px;
}

.btn-tel__num {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-en);
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  font-weight: bold;
}

.btn-tel__num img {
  filter: brightness(0) invert(1);
}

/* 24時間無料受付バッジ */
.btn-badge-wrap {
  display: inline-grid;
  justify-items: center;
}

.btn-badge-wrap {
  width: 90%;
}

.btn-badge-wrap--center {
  display: grid;
}

.btn-badge {
  position: relative;
  z-index: 1;
  margin-bottom: -14px;
  background: #fff;
  color: #004ca9;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 8px 14px;
  border-radius: 999px;
  white-space: nowrap;
  filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.1));
}

.deco-badge-tri {
  position: absolute;
  bottom: -6px;
  left: 50%;
  translate: -50% 0;
  width: 10px;
  height: 8px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

/* テキストリンク（丸囲みシェブロン） */
.text-link--underline {
  font-size: 15px;
  color: #2c2c2c;
  border-bottom: 1px solid #253ecc;
  padding-bottom: 2px;
}

.u-em {
  color: #e47814;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 400;
  color: #2c2c2c;
  text-decoration: underline;
  text-decoration-color: #f0831e;
  text-underline-offset: 5px;
}

/* 丸矢印は共通SVGで描画（ユーザー指示 2026-08-25。カラー違いは背景画像の差し替えで表現）
   橙アウトライン=i-circle-og-arrow / 青=i-circle-blue-arrow / 橙塗り白矢印=i-circle-og-fill-arrow */
.deco-chev-circle {
  display: inline-block;
  width: 30px;
  aspect-ratio: 1;
  background: url("../img/i-circle-og-arrow.svg") center / contain no-repeat;
}

.deco-chev-circle--down {
  transform: rotate(90deg);
}

/* カルーセル */
.carousel-nav--overlay {
  grid-area: 1 / 1;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  align-items: center;
  /* スクロールコンテナ（カード側）より確実に前面へ。
     iOS等でoverflowコンテナがスタッキングを作り矢印が隠れるのを防ぐ（ユーザー指摘 2026-08-26） */
  z-index: 3;
  /* ボタン半径。prevの中心を1枚目カードの左端に合わせる（＝半分が外に出る）ための量
     （ユーザー指示 2026-08-26） */
  --nav-half: 30px;
}

.carousel-btn {
  pointer-events: auto;
  transition: opacity 0.3s;
}

.carousel-btn:hover {
  opacity: 0.7;
}

.sp-dots {
  display: none;
}

/* ---- ヘッダー ---- */

html {
  scroll-behavior: smooth;
  scroll-padding-top: 96px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  filter: drop-shadow(0 4px 4.5px rgba(0, 0, 0, 0.15));
}

.site-header__inner {
  display: flex;
  align-items: center;
  row-gap: 0;
  column-gap: 20px;
  min-height: 80px;
  padding: 10px 16px;
}

.site-header__logos {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-right: auto;
}

.site-header__logo-combined {
  width: 445px;
  aspect-ratio: 444.6 / 47.6;
  object-fit: contain;
  /* AUN r2 #32/33：スクロール後はロゴを縮小。
     width の transition はリサイズ中に旧幅のまま計算されてCTAが一瞬折り返す原因になるため付けない
     （「ふわっと」はリード文の max-height/opacity トランジションが担う。ユーザー指摘 2026-08-26） */
}

.site-header.is-scrolled .site-header__logo-combined {
  width: 300px;
}

/* リサイズ中はリード開閉のアニメーションを止め、幅変化に伴うちらつきを防ぐ
   （ロゴ幅はtransition自体を持たせない方針。ユーザー指摘 2026-08-26） */
body.is-resizing .site-header__lead {
  transition: none;
}

.site-header__list {
  display: flex;
  gap: 24px;
  font-size: 15px;
  font-weight: 400;
  white-space: nowrap;
}

/* AUN r2 #34：電話ブロックの窮屈感を解消（余白を確保） */
.site-header__tel {
  text-align: center;
  padding-inline: 6px;
}

.site-header__tel-label {
  font-size: 13px;
  line-height: 1;
  margin-bottom: 3px;
}

.site-header__tel-num {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-en);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
  color: #f0831e;
}

.site-header__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 159px;
  min-height: 46px;
  padding-right: 16px;
  border-radius: 999px;
  background: #242424;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  transition: opacity 0.3s;
  flex-shrink: 0;
}

.site-header__cta:hover {
  opacity: 0.8;
}

.site-header__menu {
  display: none;
}

/* スクロール時にロゴ下へ出すリード（AUN #2）。max-height+opacityでヘッダー高さごと滑らかに変化 */
.site-header__inner {
  flex-wrap: wrap;
  /* リードは非表示時も2行目を占有するため、行グループ全体を垂直中央に置く
     （これがないとロゴが上寄りになる。ユーザー指示 2026-08-26） */
  align-content: center;
}

.site-header__lead {
  flex-basis: 100%;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  margin-top: 0;
  font-size: 11px;
  font-weight: 700;
  text-align: left;
  transition:
    max-height 0.3s ease,
    opacity 0.3s ease,
    margin-top 0.3s ease;
}

.site-header.is-scrolled .site-header__lead {
  /* AUN r2 #55：中間幅で2行に折り返しても収まる高さを確保（かぶり解消） */
  max-height: 40px;
  opacity: 1;
  margin-top: 2px;
}

/* スワイプヒント：スライダー中央のアニメーション表示。ひと動かしで消える（ユーザー指示 2026-08-25。
   grid重ねで配置＝absolute不使用。表示のON/OFFは対象ごとのメディアで制御 */
.swipe-wrap {
  display: grid;
  /* autoトラックだと内包テーブルのmax-contentで膨張するため1frに固定 */
  grid-template-columns: minmax(0, 1fr);
}

.swipe-wrap > :not(.swipe-hint) {
  grid-area: 1 / 1;
  min-width: 0;
  /* margin:auto持ちのスクロールコンテナがmax-contentで自動サイズされるのを防ぐ */
  width: 100%;
}

.swipe-hint {
  grid-area: 1 / 1;
  place-self: center;
  z-index: 2;
  pointer-events: none;
  display: none;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  background: rgba(44, 44, 44, 0.6);
  border-radius: 999px;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.25));
  transition: opacity 0.4s;
}

.swipe-hint__label {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}

.swipe-hint.is-dismissed {
  opacity: 0;
}

.swipe-hint::before,
.swipe-hint::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
}

.swipe-hint::before {
  transform: rotate(-45deg);
}

.swipe-hint::after {
  transform: rotate(135deg);
}

.swipe-hint__dot {
  width: 10px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  animation: swipe-dot 1.4s ease-in-out infinite alternate;
}

@keyframes swipe-dot {
  from {
    transform: translateX(-8px);
  }
  to {
    transform: translateX(8px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .swipe-hint__dot {
    animation: none;
  }
}

/* 料金表（2表）と資格カードは、実際にはみ出しうる1439px以下で表示 */
@media (max-width: 1439px) {
  .price .swipe-hint,
  .evidence__inner .swipe-hint {
    display: flex;
  }
}

/* ---- SPナビ展開（不透明パネル） ---- */

.sp-nav {
  display: none;
  position: fixed;
  /* 上端は実際のヘッダー高さに追従（JSが--header-hを更新。リード表示時の埋もれ防止） */
  inset: var(--header-h, 55px) 0 0;
  z-index: 90;
  background: #fdf8d8;
  overflow-y: auto;
}

.sp-nav.is-open {
  display: block;
}

/* リードは白帯の上・波形はその下（Figma 280:2459） */
.sp-nav__hero .sp-nav__lead {
  background: #fff;
}

.sp-nav__hero .deco-navtail {
  aspect-ratio: 125 / 7;
  background: url("../img/sp-header-deco.svg") top center / 100% auto no-repeat;
  /* 素材は上に凸の白波（ヘッダー下端用）。メニューでは下に凸へ反転して白帯の下に置く */
  transform: scaleY(-1);
}

/* AUN r2 #56/57：ドロワーは全体的に詰める（「実績」が見切れないように） */
.sp-nav__lead {
  padding: 20px 15px 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.sp-nav__lead-en {
  font-size: 18px;
  line-height: 1.6;
}

.sp-nav__lead-strong {
  font-size: 16px;
  line-height: 1.6;
}

.sp-nav__inner {
  padding: 10px 23px 24px;
}

.sp-nav__list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 6px 11px 8px;
  border-bottom: 1px solid #f0831e;
  font-size: 16px;
  font-weight: 400;
}

/* メニュー内の丸アイコンは橙塗り＋白シェブロン（Figma 280:2471） */
.sp-nav__list .deco-chev-circle {
  background-image: url("../img/i-circle-og-fill-arrow.svg");
}

.sp-nav__cta {
  display: grid;
  gap: 16px;
  justify-items: center;
  padding: 22px 15px 22px;
  background: linear-gradient(169.3deg, #ffcd47 0.6%, #f59d2c 21%, #f0831e 56%);
  border-radius: 20px 20px 0 0;
}

/* gap指定は25px。badgeのはみ出し分とblack→white 15pxを負マージンで補正（Figma 280:2439） */
.sp-nav__cta .btn-badge-wrap {
  margin-top: -13px;
}

.sp-nav__cta .btn-white {
  margin-top: -10px;
}

.sp-nav__cta .btn-black,
.sp-nav__cta .btn-white,
.sp-nav__cta .btn-tel {
  width: 100%;
  max-width: 345px;
  min-height: 56px;
}

.sp-nav__cta .btn-tel {
  margin-bottom: 10px;
}

.sp-nav__cta .btn-badge-wrap {
  width: 100%;
  max-width: 345px;
}

/* メニュー内のbtn-telは背景なし・白枠のみ（Figma 280:947） */
.sp-nav__cta .btn-tel {
  background: none;
}

/* メニュー展開中は背景スクロールをロック */
body.is-nav-open {
  overflow: hidden;
}

/* ---- MV ---- */

.mv {
  position: relative;
  overflow: hidden;
  background: linear-gradient(193.87deg, #ffcd47 64.73%, #f0831e 85.46%);
}

.deco-blur {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 205, 71, 0.8), rgba(255, 205, 71, 0) 70%);
  filter: blur(30px);
}

.deco-blur {
  width: 382px;
  height: 383px;
}

.deco-blur--1 {
  top: -147px;
  left: -100px;
}
.deco-blur--2 {
  top: -146px;
  left: 486px;
}
.deco-blur--3 {
  top: 406px;
  left: 1060px;
  rotate: -15deg;
}

.mv__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  padding: 74px 0 84px;
}

/* 768px以上は552px固定（画像列の左端592pxに対し40pxのクリアランス）。
   SPはdisplay:contentsで全幅フロー＝実質100%（ユーザー指示 2026-08-24） */
.mv__text {
  position: relative;
  z-index: 1;
  width: 552px;
}

.mv__label {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
  color: #2c2c2c;
}

.mv__title {
  margin-top: 7px;
  font-size: 42px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #2c2c2c;
}

.mv__title-band {
  display: inline-block;
  background: #fff;
  padding: 2px 13px;
  border-radius: 3px;
  font-feature-settings: "halt" 1;
}

.mv__title-band:last-child {
  padding: 2px 15px;
  margin-top: 7px;
}

.mv__title-en {
  font-family: inherit;
  font-size: 45px;
  font-weight: 700;
  letter-spacing: 0;
  padding-right: 10px;
}

.mv__title-tail {
  font-size: 39px;
  color: #2c2c2c;
}

.mv__lead {
  margin-top: 13px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #2c2c2c;
}

/* AUN r2 #58/59：カードを大きく・間隔を詰める（3枚目は「認定マイスター」の詰まり解消）
   幅はgridでレスポンシブ（比率1:1:1.15・上限=実寸520px。ユーザー指示 2026-08-24） */
.mv__stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1.15fr;
  gap: 10px;
  max-width: 520px;
  margin-top: 26px;
}

.mv__stat {
  min-height: 112px;
  background: rgba(255, 255, 255, 0.89);
  border: 4px solid #fff;
  border-radius: 10px;
  padding: 10px 0;
  text-align: center;
  display: grid;
  gap: 10px;
  align-content: start;
  justify-items: center;
}

.mv__stat-label {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
}

.mv__stat-num {
  margin-top: -8px;
  font-size: 24px;
  font-weight: 700;
  color: #ff7b05; /* 裁定#18：原値維持 */
  line-height: 1;
}

.mv__stat-num span {
  font-family: var(--font-en2);
  font-size: 48px;
  font-weight: 600;
}

.mv__stat-num--text {
  font-size: 20px;
  line-height: 1.4;
  color: #024ba5;
}

.mv__stat-logo {
  margin-inline: auto;
  width: 104px;
}

.mv .btn-set {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  margin-top: 26px;
}

/* .mv .btn-black,
.mv .btn-white {
  width: 270px;
  max-width: 270px;
  min-height: 59px;
} */

.mv .btn-black {
  width: 100%;
  max-width: 100%;
  min-height: 59px;
}

/* 右スライダー：横長カード窓×縦2列（Figma 280:2954/2968。装飾レイヤー＝absolute可）
   基準は右端-60pxではなく左端592px固定（1200px時は同一描画）。
   ブラウザ縮小とともに右へ見切れていく（ユーザー指示 2026-08-24。.mvのoverflow:hiddenでクリップ） */
.mv__shots {
  position: absolute;
  top: -119px;
  left: 592px;
  display: flex;
  gap: 14px;
}

.mv__shots-col {
  display: flex;
  flex-direction: column;
}

.mv__shots-col--r {
  margin-top: 111px;
}

/* トラック2連結を-50%動かすとちょうど1セット分＝つなぎ目なしでループする。
   gapはトラック間で割れないよう各カードのmarginで持つ */
.mv__shots-track {
  display: flex;
  flex-direction: column;
}

.mv__shots-col--l .mv__shots-track {
  animation: mv-scroll-up 90s linear infinite;
}

.mv__shots-col--r .mv__shots-track {
  animation: mv-scroll-down 90s linear infinite;
}

@keyframes mv-scroll-up {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-100%);
  }
}

@keyframes mv-scroll-down {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}

/* SP用の横マーキー。列(.mv__shots-col)には同一トラックが2本入っており（各2856px・列5712px）、
   各トラックが自身の幅ぶん＝-100%動くと2本目が1本目の初期位置にちょうど重なって継ぎ目が出ない。
   -50%だと半分しか進まず60秒ごとに巻き戻りが見える（2026-08-31 実測で是正） */
@keyframes mv-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/* 【仕様変更 2026-09-01 ユーザー裁定】MV画像スクロールとロゴマーキーは
   prefers-reduced-motion に関わらず常時再生する（reduce時に animation: none とする
   指定を撤去。Windowsは「アニメーション効果オフ」「パフォーマンス優先」「リモートデスクトップ」で
   reduce になり停止端末が発生していたため）。WCAG 2.2 SC 2.2.2 の観点では一時停止手段が
   ないことを提示済み・承知の上での裁定。再度停止仕様へ戻す場合はこのコメントの履歴を参照 */

.mv-card {
  display: block;
  width: 327px;
  aspect-ratio: 327.443 / 207.855;
  margin-bottom: 10px;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  /* Figmaレンダのピクセル実測（縁α≈0.06・減衰9px・オフセット0の対称影）をCSS換算 */
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.17);
}

.mv-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

.deco-vertical {
  position: absolute;
  left: -77px;
  top: 50%;
  translate: 0 -50%;
  writing-mode: vertical-rl;
  font-family: var(--font-en);
  font-size: 16px;
  font-weight: 600;
  color: #fff;
}

/* ---- Logo実績帯 ---- */

.logos {
  padding: 48px 0 60px;
}

.logos__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: center;
}

.logos__title {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  font-size: 22px;
  font-weight: 700;
}

.deco-slash {
  width: 2px;
  height: 24px;
  background: #f0831e;
}

.deco-slash--l {
  transform: rotate(-25deg);
}
.deco-slash--r {
  transform: rotate(25deg);
}

/* ロゴ帯：右→左の無限マーキー（トラック2連結を-100%移動＝シームレス） */
.logos__marquee {
  display: flex;
  width: 100vw;
  margin: 28px calc((100% - 100vw) / 2) 0;
  overflow: hidden;
}

.logos__list {
  display: flex;
  align-items: center;
  flex: none;
  gap: 48px;
  padding-right: 48px;
  animation: logos-scroll 60s linear infinite;
}

@keyframes logos-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/* reduce時停止の指定は 2026-09-01 ユーザー裁定で撤去（MVブロックのコメント参照）。
   複製した2本目以降の <ul> は aria-hidden 済み */

.logos__list img {
  height: 60px;
  width: auto;
}

/* SP用2段はSPブロックでのみ表示（.logos__marquee の後に書いて後勝ちさせる） */
.logos__marquee--sp {
  display: none;
}

/* ---- Worry ---- */

/* ---- WORRY（Figma 280:3252 / 280:325 の実座標に準拠）---- */

.worry {
  padding: 100px 0 80px;
  background: #efefef;
}

.worry__inner {
  width: min(100% - 40px, 1006px);
  margin-inline: auto;
  text-align: center;
}

/* wm em-box下端は見出し行上端+70px（lh1換算で-45px） */
.worry__inner .wm {
  margin-top: -80px;
  margin-bottom: -40px;
}

.worry__inner .sec-title {
  font-size: 32px;
}

.worry__list {
  display: grid;
  /* 900pxまで3列維持→以降2→1列（auto-fit。文字はclampでSP値まで縮小可） */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  gap: 12px;
  max-width: 990px;
  margin: 68px auto 0;
}

.worry-card {
  background: #fff;
  border-radius: 12px;
  min-height: 226px;
  padding: 0 33px 30px;
}

/* イラスト下端＝カード上端+67px（オーバーハングは画像高さからの導出値） */
.worry-card__illust {
  display: block;
  margin: calc(67px - var(--illust-h)) auto 13px;
  height: var(--illust-h);
  width: auto;
}

.worry-card:nth-child(1) {
  --illust-h: 117px;
}
.worry-card:nth-child(2) {
  --illust-h: 116px;
}
.worry-card:nth-child(3) {
  --illust-h: 108px;
}

.worry-card__title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #0c3a71;
}

.worry-card__text {
  margin-top: 8px;
  font-size: 15px;
  line-height: 1.7;
  text-align: left;
}

.worry__lead {
  margin-top: 15px;
  font-size: 16px;
  line-height: 1.7;
}

/* ---- About ---- */

/* ---- ABOUT（Figma 280:3281 / 280:355 の実座標に準拠）---- */

.about {
  padding: 28px 0 90px;
}

.about__inner {
  width: min(100% - 40px, 1140px);
  margin-inline: auto;
  text-align: center;
}

/* wmは見出しENとベースラインが揃う（wmボックス上端 = セクション上端+28px、見出し上端+90px） */
.about__inner .wm {
  line-height: 1.5;
  margin-bottom: -88px;
}

.about__title {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 0;
}

.about__title-en {
  font-size: 40px;
}

.about__title-ja {
  font-size: 22px;
  letter-spacing: 0.046em;
  padding-bottom: 6px;
}

.about__title-tail {
  font-size: 27px;
}

.about__inner .sec-intro {
  margin-top: 12px;
  line-height: 1.8;
}

.about__body {
  display: grid;
  grid-template-columns: 446px 1fr;
  gap: 48px;
  align-items: start;
  margin-top: 31px;
  text-align: left;
}

.about__photo img {
  display: block;
  width: 100%;
  height: auto;
  /* 右上だけ大きい角丸がこのブロックの識別要素（Figma 280:3293） */
  border-radius: 7px 57px 7px 7px;
}

.about__catch {
  line-height: 1.75;
}

.about__text p {
  line-height: 1.75;
}

.about__text p + p {
  margin-top: 7px;
}

.about__can {
  margin-top: 14px;
  text-align: left;
}

.about__can-title {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 17px;
  font-weight: 700;
  color: #234ea1;
}

.about__can-title img {
  width: 167px;
  height: auto;
}

/* リストはテキスト列(646px)より58px狭い（Figma 280:3306） */
.about__can-list {
  max-width: 588px;
  margin-top: 7px;
}

.about__can-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 4px 5px;
  border-bottom: 1px dashed #f6b624;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
}

.about__can-list li + li {
  margin-top: 10px;
}

.about__can-list li img {
  flex: none;
}

.about__can-etc {
  max-width: 588px;
  margin-top: 9px;
  text-align: right;
  font-size: 17px;
  font-weight: 400;
}

.about__why {
  position: relative;
  width: min(100% - 40px, 1140px);
  margin: 30px auto 0;
  border-radius: 12px;
  background: #fdf8d8;
  /* 白の格子柄・透明度20%（ユーザー指示 2026-08-25。他セクションのsummary帯と同一パターン） */
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px);
  background-size: 14px 14px;
}

.about__why-inner {
  position: relative;
  display: grid;
  /* 人物列267px＋右余白53px（Figma 280:3336 右端1087／カード幅1140） */
  grid-template-columns: minmax(0, 1fr) 267px;
  align-items: end;
  padding: 0 53px 0 0;
}

.about__why-text {
  /* Figmaの本文3行目(755px)は枠800pxを9px超過してnowrapで1行。折返させないため810pxに正規化 */
  max-width: 810px;
  text-align: left;
  padding: 38px 0;
}

/* 帯はカード左端まで突き抜け、内側paddingで文字を送る（Figma 280:3330：帯x=0/幅608/pl52・pr14）。
   親のpadding-left由来のインセットを持たせないこと＝左を絶対に浮かせない */
.about__why-title {
  display: block;
  width: fit-content;
  margin-left: -40px;
  background: linear-gradient(to right, #ee7300, #ffbe10);
  color: #fff;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.74;
  letter-spacing: 0.03em;
  padding: 0 14px 0 68px;
}

.about__why-catch {
  margin-top: 15px;
}

.about__why-text p {
  padding-left: 30px;
  font-size: 16px;
  line-height: 1.8;
}

.about__why-em {
  font-weight: 400;
}
/* ---- Reason ---- */

/* ---- REASON（Figma 280:3339 / 280:415 の実座標に準拠）---- */

.reason {
  background: #fdf8d8;
  padding: 23px 0 90px;
}

.reason__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: center;
}

/* wm箱上端23px → 見出し上端100px（食い込み77px）。lh1.5・ls0でFigmaの幅403pxになる */
.reason__inner .wm {
  line-height: 1.5;
  margin-bottom: -73px;
}

.reason__inner .sec-overline {
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.reason__inner .sec-title {
  font-size: 32px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  font-feature-settings: normal;
}

/* 傍点ピッチは字送りに追従させる（REASONはls0.08em）。
   「誰とつくるか」は偶数6文字のため center 基準だとタイル中心が文字の境目に来て半タイルずれる
   → left 基準＋半端分(-0.04em)の補正が正。垂直はPHILOSOPHYと同じ上端0（ユーザー指示 2026-08-26） */
.reason__inner .u-bouten {
  background-size: 1.08em 5px;
  background-position: left -0.04em top 0;
}

/* 見出しブロックはコンテナ全幅ではなく656px（Figma 280:3340） */
.reason__inner .sec-intro {
  max-width: 656px;
  margin-top: 16px;
  margin-inline: auto;
  line-height: 1.75;
}

.reason__row {
  position: relative;
  display: grid;
  grid-template-columns: 570px 1fr;
  align-items: center;
  margin-top: 43px;
  text-align: left;
}

.reason__row:first-of-type {
  margin-top: 41px;
}

.reason__row--reverse {
  grid-template-columns: 1fr 570px;
}

.reason__row--reverse .reason__photo {
  order: 2;
}
.reason__row--reverse .reason-card {
  order: 1;
}

.reason__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 570 / 340;
  object-fit: cover;
  object-position: left center;
  border-radius: 15px;
}

/* 理由02：SPは専用画像＋中央ロゴ重ね（PCではロゴ非表示。ユーザー指示 2026-08-25） */
.reason__photo--sp-logo {
  position: relative;
}

.reason__photo--sp-logo .reason__photo-logo {
  display: none;
}

.reason-card {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 15px;
  box-shadow: 0 3px 9px rgba(92, 44, 0, 0.04);
  padding: 48px 44px 44px 67px;
}

/* 写真の可視570pxに対しカードが50px重なる（Figma 写真右端690 / カード左640） */
.reason-card--r {
  margin-left: -50px;
}
.reason-card--l {
  margin-right: -50px;
}

/* バッジはカードの左上角にかかる装飾レイヤー（Figma 280:3361 ほか。3枚の揺らぎを-26/-37に統合） */
.reason-card__badge {
  position: absolute;
  left: -26px;
  top: -37px;
  width: 116px;
  line-height: 1;
}

.reason-card__badge img {
  width: 100%;
  height: auto;
}

.reason-card__title {
  position: relative;
  z-index: 1;
  display: inline-block;
  background: linear-gradient(to right, #ee7300 40%, #ffbe10);
  color: #fff;
  border-radius: 2px;
  padding: 0 15px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
}

.reason-card__text {
  margin-top: 10px;
  font-size: 16px;
  line-height: 1.75;
}

.reason-card .text-link {
  margin-top: 14px;
}

/* ---- 白丸パネル共通 ---- */

.panel {
  background: #fff;
  border-radius: 120px;
  max-width: 1380px;
  margin-inline: auto;
}

.panel--philosophy,
.panel--flow {
  background: #fdf8d8;
  border-radius: 0;
  max-width: none;
}

/* CTA①下の90pxはパネル背景（#fdf8d8）の内側（Figma 280:3493 パネル下端2518） */
.panel--philosophy {
  padding-bottom: 90px;
}

.panel--philosophy > .service {
  border-radius: 0 0 120px 120px;
}

.panel--philosophy > div:first-child,
.panel--flow > div:first-child {
  border-radius: 120px 120px 0 0;
}

.panel--flow {
  padding: 110px 0 90px;
}

.panel--flow > .support {
  border-radius: 0 0 120px 120px;
}

.panel--philosophy > .philosophy,
.panel--philosophy > .service,
.panel--flow > .flow,
.panel--flow > .support {
  background: #fff;
  max-width: 1380px;
  margin-inline: auto;
}

/* ---- PHILOSOPHY ---- */

.philosophy {
  padding: 32px 0 34px;
}

.philosophy__inner,
.service__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: center;
}

.service__list {
  max-width: 1140px;
  margin-inline: auto;
}

.philosophy__inner .wm,
.service__inner .wm {
  line-height: 1.5;
  margin-bottom: -62px;
}

.service__inner .wm {
  margin-bottom: -66px;
}

.philosophy__inner .sec-title {
  font-size: 32px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  font-feature-settings: normal;
}

/* 傍点と文字の間隔を確保（ユーザー指摘 2026-08-21） */
.philosophy__inner .u-bouten {
  background-position: center top 0;
}

.philosophy__inner .sec-overline {
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 見出し2行目の先頭7文字に付く傍点（Figmaはベクター7個。ドット径5px・ピッチ=1em+ls） */
.u-bouten {
  background-image: radial-gradient(circle at center, #f0831e 2.5px, rgba(0, 0, 0, 0) 2.5px);
  background-repeat: repeat-x;
  background-size: 1.05em 5px;
  background-position: center top 4px;
}

.philosophy__list {
  display: grid;
  /* AUN r2 #7 改：auto-fitで3→2→1列へ流動（固定ブレークポイント撤去） */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 10px;
  margin-top: 33px;
  text-align: left;
}

.philosophy-card {
  background: url("../img/phi-bg01.jpg") center / cover no-repeat;
  color: #fff;
  border-radius: 18px;
  min-height: 284px;
  padding: 12px 24px 24px;
}

.philosophy-card:nth-child(2) {
  background-image: url("../img/phi-bg02.jpg");
}

.philosophy-card:nth-child(3) {
  background-image: url("../img/phi-bg03.jpg");
}

.philosophy-card .philosophy-card__num {
  display: flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font-en);
  font-size: 38px;
  font-weight: 400;
  line-height: 1;
  text-align: left;
  margin-bottom: 26px;
}

.philosophy-card .philosophy-card__num::before {
  content: "";
  width: 7px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
}

.philosophy-card__title {
  display: inline-block;
  background: #fff;
  color: #2c2c2c;
  border-radius: 2px;
  padding: 2px 13px;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
}

.philosophy-card p {
  margin-top: 11px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.75;
}

.philosophy__summary,
.service__summary,
.support__summary {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  width: min(100%, 1000px);
  min-height: 160px;
  margin: 47px auto 0;
  background: #fdf8d8;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px);
  background-size: 14px 14px;
  border-radius: 13px;
  padding-right: 40px;
  text-align: left;
}

.support__summary {
  grid-template-columns: 1fr auto;
  gap: 14px;
  width: min(100%, 880px);
  min-height: 160px;
  margin-top: 36px;
  border-radius: 13px;
  padding: 0 0 0 61px;
  align-items: end;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px);
  background-size: 14px 14px;
}

.support__summary p {
  font-size: 19px;
  font-weight: 400;
  line-height: 1.74;
  padding: 28px 0;
}

.support__summary .summary-band__people {
  justify-self: end;
  margin: -9px 19px 0 0;
}

.support__summary .support__person {
  width: 326px;
}

.service__summary--r {
  grid-template-columns: 1fr auto;
  padding: 0 0 0 54px;
}

.service__summary--r .summary-band__people {
  justify-self: end;
  margin: -8px 27px 0 0;
}

.service__summary--r .service__person {
  width: 280px;
}

.philosophy__summary p,
.service__summary p,
.support__summary p {
  font-size: 19px;
  font-weight: 400;
  line-height: 1.7;
  align-self: center;
}

.summary-band__people {
  display: flex;
  align-items: flex-end;
  align-self: end;
  margin: -22px 0 0 38px;
}

.philosophy__person,
.service__person,
.support__person {
  width: 297px;
  height: auto;
}

/* ---- SERVICE ---- */

.service {
  padding: 32px 0 378px;
}

.service__list {
  display: grid;
  /* 900pxまで2列維持→以降1列（auto-fit） */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
  gap: 48px 15px;
  margin-top: 86px;
  text-align: left;
}

.service-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: #f5f5f5;
  border-radius: 5px 52px 5px 5px;
  min-height: 295px;
  padding: 0 32px 37px;
}

.service-card__num {
  width: 43px;
  flex: none;
}

/* AUN r2 #8：現状分析イラストを他カードと同等サイズへ縮小 */
.service-card__illust {
  display: block;
  margin: -65px auto 16px;
  max-height: 171px;
  width: auto;
}

.service-card:nth-child(2) .service-card__illust {
  margin-top: -65px;
  max-height: 177px;
}
.service-card:nth-child(3) .service-card__illust {
  margin-top: -65px;
  max-height: 171px;
}
.service-card:nth-child(4) .service-card__illust {
  margin-top: -65px;
  max-height: 151px;
}

.service-card__title {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: #f0831e;
}

.service-card p {
  margin-top: 12px;
  font-size: 15px;
  line-height: 1.7;
}

/* ---- CTA帯 共通 ---- */

.cta {
  position: relative;
  overflow: hidden;
  background: url("../img/cta-bg-wood.jpg") center / cover no-repeat;
}

.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(255, 205, 71, 0.92), rgba(240, 131, 30, 0.92));
}

.cta__inner {
  position: relative;
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  padding: 80px 0 92px;
  text-align: center;
  color: #fff;
}

.cta--consult {
  width: min(100% - 40px, 1200px);
  margin: -291px auto 0;
  /* 素材 cta-contact_bg.jpg に半径34pxの角丸が焼き込まれている（4隅が白）。
     CSS側の角丸を素材に合わせないと白い角が露出する */
  border-radius: 34px;
  background: url("../img/cta-contact_bg.jpg") center / cover no-repeat;
}

.cta--consult::before {
  content: none;
}

.cta--consult .cta__inner {
  width: min(100% - 194px, 774px);
  margin-inline: 0;
  margin-left: 97px;
  padding: 47px 0 66px;
  text-align: left;
}

.cta--consult .cta__inner .wm--cta {
  margin: 0 auto 0 -40px;
  margin-bottom: -37px;
}

.cta--consult .cta__note {
  margin-top: 7px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
}

.cta--consult .btn-set--row {
  justify-content: flex-start;
  gap: 12px;
  margin-top: 28px;
}

.cta--consult .btn-set--row .btn-black,
.cta--consult .btn-set--row .btn-white,
.cta--consult .btn-set--row .btn-tel {
  width: 250px;
  max-width: 250px;
  min-height: 59px;
}

/* AUN r2 #9：電話番号をデザインのサイズ感（最終CTAと同じ20px）へ */
.cta--consult .btn-tel__num {
  font-size: 20px;
}

.cta--final {
  margin-top: 111px;
  border-radius: 40px 0 0 0;
  background: url("../img/footer-ctabg.png") center / cover no-repeat;
}

.cta--final::before {
  content: none;
} /* 裁定#11：BLOG→最終CTA間の余白は意図（Figma 17519→17630） */

.cta--final .cta__inner {
  width: min(100% - 40px, 866px);
  padding: 56px 0 75px;
}

.cta--final .cta__inner .wm--cta {
  line-height: 1;
  margin-bottom: 5px;
}

.cta--final .cta__note {
  margin-top: 15px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
}

.cta--final .btn-set--row {
  gap: 13px;
  margin-top: 40px;
}

.cta--final .btn-set--row .btn-black,
.cta--final .btn-set--row .btn-white,
.cta--final .btn-set--row .btn-tel {
  max-width: 280px;
  font-size: 15px;
}

.cta--final .btn-black {
  border: 2px solid #242424;
}

.cta--final .btn-white {
  border-color: #111;
}

.cta--final .btn-tel--outline {
  position: relative;
  gap: 0;
  padding: 7px 0;
  border: 1px solid rgba(255, 255, 255, 0.9);
}

.cta--final .btn-tel__label {
  font-weight: 700;
  line-height: 1.5;
}

.cta--final .btn-tel__num {
  gap: 1px;
  font-family: var(--font-en2);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}

.cta .wm--cta {
  margin-inline: auto;
  margin-bottom: -56px;
}

.cta__title {
  position: relative;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.cta__title--final {
  font-size: 28px;
}

.cta__note {
  position: relative;
  margin-top: 12px;
  font-size: 16px;
  font-weight: 400;
}

/* AUN r2 #42：CTA本文の太字/細字混在を解消（ウェイト統一） */
.cta__note .u-reg {
  font-weight: inherit;
}

.btn-set--row {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 20px;
  margin-top: 32px;
}

.btn-set--row .btn-black,
.btn-set--row .btn-white,
.btn-set--row .btn-tel {
  max-width: 265px;
}

/* CTA② 資料DL（Figma 280:4728 再コーディング 2026-08-25）
   焼き込み背景（cta-dlbg.png）を廃止し、CSS多層背景（乗算グラデ＋左フェード写真＋基礎グラデ）
   ＋grid構成へ。absoluteは不使用（モックはgrid重ね） */
.cta--dl {
  position: relative;
  z-index: 1;
  width: min(100% - 40px, 1200px);
  margin: -231px auto 0;
  border-radius: 40px;
  overflow: hidden;
  background:
    linear-gradient(201.35deg, rgba(255, 205, 71, 0.71) 31.73%, rgba(240, 131, 30, 0.71) 80.81%),
    url("../img/cta-dl-photo.png") right -40px top / auto 130% no-repeat,
    linear-gradient(188.87deg, #ffcd47 24.8%, #f0831e 36.15%);
}

.cta--dl::before {
  content: none;
}

.cta__inner--dl {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(240px, 28vw, 345px);
  column-gap: clamp(24px, 4vw, 40px);
  align-items: center;
  width: auto;
  margin: 0;
  padding: 66px clamp(32px, 7vw, 78px) 40px clamp(40px, 7vw, 69px);
  text-align: left;
}

.cta__dl-text {
  min-width: 0;
  /* wmのcqw基準コンテナ */
  container-type: inline-size;
}

.cta__inner--dl .wm--cta {
  line-height: 1;
  margin: -49px 0 -36px -45px;
  /* 幅縮小時に「DOWNLOAD」の右が切れないよう、テキスト列幅に連動（cqw。ユーザー指示 2026-08-25） */
  font-size: min(85px, 15.5cqw);
}

.cta__inner--dl .cta__title {
  letter-spacing: 0.05em;
}

.cta__inner--dl .cta__note {
  margin-top: 11px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
}

.cta__dl-sub {
  font-size: 20px;
}

.cta__inner--dl .btn-white {
  margin-top: 28px;
  max-width: 349px;
  border-color: #111;
  font-size: 15px;
}

/* 資料モック：白紙3枚のファン（Figma 280:4738。回転7.67°/3.32°/0°をgrid重ねで構成） */
.cta__mock {
  display: grid;
  width: 100%;
  aspect-ratio: 345 / 248;
  align-self: center;
}

.cta__mock-sheet,
.cta__mock-cover {
  grid-area: 1 / 1;
  width: 87.7%;
  aspect-ratio: 302.5 / 196.8;
  background: #fff;
  border: 1px solid #f0831e;
  border-radius: 6px;
}

.cta__mock-sheet--b {
  justify-self: end;
  align-self: start;
  transform: rotate(7.7deg);
}

.cta__mock-sheet--m {
  justify-self: center;
  align-self: center;
  transform: rotate(3.3deg);
}

.cta__mock-cover {
  justify-self: start;
  align-self: end;
  /* transform付きシートより前面へ（grid項目はpositionなしでz-indexが効く） */
  z-index: 1;
  display: grid;
  place-content: center;
  font-size: 17px;
  font-weight: 300;
  color: #888;
}

/* ---- PRICE ---- */

.price {
  padding: 60px 0 91px;
  background: #efefef;
}

.price__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: center;
}

.price__inner .wm {
  margin-bottom: -48px;
}

/* タブは白カード上端から垂れ下がるラベル（下側だけ角丸） */
.price__tab {
  position: relative;
  z-index: 1;
  display: grid;
  place-content: center;
  width: 430px;
  min-height: 77px;
  margin: 36px auto -77px;
  background: #2c2c2c;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  border-radius: 0 0 20px 20px;
}

.price__scroll {
  max-width: 1200px;
  margin-inline: auto;
  background: #fff;
  border-radius: 32px;
  padding: 122px clamp(24px, calc((100% - 1018px) / 2), 91px) 60px;
  overflow-x: auto;
}

.price__scroll + .price__tab {
  margin-top: 37px;
}

.price-table td.has-ok::before {
  content: "";
  display: block;
  width: 20px;
  aspect-ratio: 1;
  margin: 0 auto 4px;
  border: 2px solid #fd3636;
  border-radius: 50%;
}

.price-table {
  width: 100%;
  min-width: 1018px;
  border-collapse: separate;
  border-spacing: 3px 3px;
  background: #fff;
  text-align: center;
  font-size: 16px;
}

.price-table th,
.price-table td {
  border: none;
  padding: 14px 10px;
  vertical-align: middle;
  line-height: 1.5;
}

/* 罫線は行見出し列のみ */
.price-table tbody th {
  border-bottom: 1px solid rgba(196, 196, 196, 0.6);
}

.price-table thead th {
  background: #fff;
  border-radius: 12px 12px 0 0;
  padding: 0 10px 8px;
  min-height: 103px;
}

.price-table__corner {
  background: #fff;
}

.price-table__plan {
  width: 260px;
}

.price-table__plan-en {
  display: block;
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
}

.price-table__plan-ja {
  display: block;
  margin-top: 3px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
}

.price-table__plan-ja::after {
  content: "";
  display: block;
  width: 18px;
  height: 1px;
  background: #d9d9d9;
  margin: 10px auto 0;
}

.price-table__plan--std .price-table__plan-ja::after {
  background: #fff;
}

.price-table__plan-desc {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
  color: #2c2c2c;
}

.price-table__plan--std .price-table__plan-desc {
  color: #fff;
  font-weight: 700;
}

.price-table thead th.price-table__plan--std {
  background: linear-gradient(107.5deg, #2438cc 2.24%, #23d2c6 100%);
  color: #fff;
}

.price-table__plan--fc {
  color: #243acc;
}

.price-table__plan--lt {
  color: #23c3c7;
}

.price-table__plan--std .price-table__plan-desc {
  color: #fff;
}

.price-table__osusume {
  position: relative;
  display: block;
  width: fit-content;
  /* AUN r2 #10：吹き出しは白不透明・文字との間隔を確保（デザイン参照） */
  margin: -18px auto 10px;
  background: #fff;
  color: #004ca9;
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.18));
  font-size: 16px;
  font-weight: 700;
  line-height: 1.1;
  padding: 4px 25px;
  border-radius: 20px;
  white-space: nowrap;
}

.price-table__osusume::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  translate: -50% 0;
  width: 12px;
  height: 6px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.price-table tbody th {
  background: #fff;
  font-weight: 400;
  width: 225px;
}

.price-table td.is-std {
  background: #e7f2ff;
  font-weight: 400;
}

.price-table tbody td:not(.is-std) {
  background: #f5f5f5;
}

.price-num {
  font-family: var(--font-en);
  font-size: 27px;
  font-weight: 600;
  color: #2c2c2c;
}

.price-table--support {
  max-width: 1018px;
}

.price-table__cell-main + .u-note {
  margin-left: 8px;
}

.price-table--support tbody th {
  width: 225px;
}

.price-table--support .price-table__plan {
  width: 787px;
}

.price-table--support thead th {
  min-height: 88px;
}

/* AUN r2 #11：運用保守ヘッダー「月額対応」をデザインの見た目（和文太字大）へ */
.price-table--support .price-table__plan-en {
  font-family: var(--font-base);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  position: relative;
}

.price-table--support .price-table__plan-en::after {
  display: block;
  content: "";
  width: 18px;
  height: 1px;
  margin: 10px auto;
  background: #d9d9d9;
}

.price-table--support .price-table__plan-desc {
  margin-top: 2px;
  font-size: 13px;
}

.price__note {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.5;
  color: #2c2c2c;
  text-align: right;
}

/* ---- AFTER SUPPORT ---- */

.aftersupport {
  position: relative;
  overflow: hidden;
  background: url("../img/support-bg.jpg") center top / 100% auto no-repeat;
  padding: 139px 0 100px;
}

/* 背景素材(support-bg)はオーバーレイ合成済みのため、CSS側で暗色を重ねない。
   画像の下端より下は同系色で継ぐ */
.aftersupport {
  background-color: #333;
}

.aftersupport__inner {
  position: relative;
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: left;
  color: #fff;
}

.aftersupport__inner .wm--light {
  font-size: 100px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.17);
  margin-top: -88px;
  margin-bottom: -64px;
  margin-left: -6px;
}

.aftersupport__inner .sec-title {
  margin-left: 31px;
  font-size: 30px;
  line-height: 1.59;
}

.aftersupport__inner .sec-intro {
  margin: 21px 0 0 31px;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.75;
  text-align: left;
}

.aftersupport__body {
  display: grid;
  grid-template-columns: minmax(0, 689px) auto;
  gap: 48px;
  margin-top: 39px;
  text-align: left;
}

.aftersupport__text {
  padding-left: 31px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
}

.aftersupport__catch {
  font-size: 15px;
}

.as-em {
  color: #f5aa2d;
  font-weight: 700;
  font-size: 20px;
}

.as-em--lg {
  font-size: 22px;
}

.aftersupport__text p + p {
  margin-top: 7px;
}

.aftersupport__em {
  font-weight: 400;
}

/* 素材は2枚重ね・角丸まで焼き込み済みの合成1枚（544×529）。SPはsupport-img02へ差し替え
   （ユーザー指示 2026-08-25）。CSS側で重ね・角丸・トリミングを行わない */
.aftersupport__photos {
  width: 544px;
  margin: -238px 0 0 -81px;
}

.aftersupport__photos img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 1439px) {
  .aftersupport__body {
    gap: 32px;
  }

  .aftersupport__photos {
    width: min(544px, 50vw);
    margin-left: 0;
  }
}

.aftersupport__list {
  display: grid;
  /* 900pxまで3列維持→以降2→1列（auto-fit） */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  gap: 12px;
  margin-top: 83px;
  text-align: left;
}

.as-card {
  background: linear-gradient(160deg, #fff 30%, #e4e4e4);
  color: #2c2c2c;
  border-radius: 10px;
  padding: 13px 24px 24px;
}

.as-card .as-card__num {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-en);
  font-size: 38px;
  font-weight: 400;
  line-height: 1;
  color: #f0831e;
}

.as-card__num .deco-dot {
  width: 7px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #f0831e;
}

.as-card__title {
  display: inline-block;
  background: #f0831e;
  color: #fff;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.5;
  border-radius: 2px;
  padding: 2px 13px;
  margin-top: 21px;
}

.as-card p {
  margin-top: 8px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
}

.aftersupport__summary {
  margin-top: 50px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.8;
  text-align: center;
}

.aftersupport .btn-badge-wrap--center {
  margin-top: 30px;
}

/* AUN r2 #12：吹き出しは白不透明 */
.aftersupport .btn-badge {
  color: #2c2c2c;
}

.aftersupport .btn-badge-wrap .btn-black {
  width: 360px;
  max-width: none;
  min-height: 68px;
  background: linear-gradient(90deg, #ee7300 52.9%, #ffbe10);
  border: 2px solid #f0831e;
  font-size: 18px;
}

.aftersupport .btn-black {
  background: linear-gradient(96deg, #ee7200, #feb90e);
}

/* ---- EVIDENCE ---- */

/* 波形は .evidence の背景（SVGはpreserveAspectRatio=noneのため高さを独立制御できる）。
   img実体をやめたことでレイアウトを押し下げず、縦の余白を取りすぎない
   （ユーザー指示 2026-08-25。旧: .evidence__wave のimg＋負マージン相殺） */
.evidence {
  background: #fff url("../img/wave-top-pc.svg") top center / 100% clamp(96px, 13.75vw, 198px) no-repeat;
  /* 下限56px：wmのmargin-top -75pxを吸収し、前セクションへはみ出させない */
  padding: clamp(56px, 8.4vw, 100px) 0 98px;
}

.evidence__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  padding: 24px 0 50px;
  text-align: center;
}

.evidence__inner .wm {
  line-height: 1.5;
  margin-top: -75px;
  margin-bottom: -60px;
}

.evidence__inner .sec-title {
  font-size: 30px;
  letter-spacing: 0.08em;
  line-height: 1.6;
}

.evidence__inner .sec-intro {
  margin-top: 12px;
  line-height: 1.8;
}

.evidence__quals {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 230px));
  justify-content: space-between;
  gap: 12px;
  margin-top: 83px;
}

.qual-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  min-height: 275px;
  background: linear-gradient(129deg, #ffcd47 2.8%, #f0831e 95.2%);
  color: #fff;
  border-radius: 10px;
  padding: 0 12px 30px;
}

/* 顔写真の円はカード上端から39pxせり出す（Figma 280:4160） */
.qual-card__photo {
  width: 172px;
  margin: -39px auto 0;
  border-radius: 50%;
  background: rgba(255, 205, 71, 0.3);
}

.qual-card__title {
  margin-top: auto;
  padding-top: 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.qual-card__title::after {
  content: "";
  display: block;
  width: 23px;
  height: 2px;
  background: #fff;
  margin: 11px auto 0;
}

.qual-card p {
  margin-top: 11px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
}

.evidence__team {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 20px;
  align-items: start;
  margin-top: 66px;
  background: #efefef;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px);
  background-size: 14px 14px;
  border-radius: 13px;
  padding: 32px 0 38px;
  text-align: left;
}

/* 左＝テキスト列／右＝写真列。写真は上へ35pxせり出す（Figma 280:4223） */
.evidence__team-text {
  min-width: 0;
}

.evidence__team-photo {
  width: 420px;
  max-width: 100%;
  margin: -47px 30px 0 0;
  aspect-ratio: 420 / 290;
  object-fit: contain;
  object-position: top;
  border-radius: 0;
}

.evidence__team-title {
  margin-left: 0;
}

.evidence__team-title + p,
.evidence__tags {
  margin-left: 54px;
}

.evidence__team-title,
.evidence__h3 {
  display: inline-block;
  background: linear-gradient(90deg, #ee7300, #ffbe10);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.74;
  padding: 0 14px;
}

.evidence__team-text > p {
  margin-top: 12px;
  font-size: 16px;
  line-height: 1.8;
}

.evidence__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 8px;
  margin-top: 13px;
  max-width: 760px;
}

.evidence__tags li {
  background: #333;
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  padding: 4px 19px;
  border-radius: 2px;
}

/* 帯の右余白を変数化：カルーセルとナビが同じ量だけ右へブリードして
   ビューポート右端まで届く（ユーザー指示 2026-08-25） */
.evidence__seminar {
  --band-gap: 120px;
  /* innerの左オフセット。ナビをビューポート基準で左右対称にするため vw ベースで定義
     （%だと使用箇所の幅で解決されてしまう） */
  --inner-left: max(40px, calc((100vw - var(--band-gap)) / 2 - 540px));
  background: #efefef;
  margin-right: var(--band-gap);
  border-radius: 0 50px 50px 0;
  padding: 60px 0;
}

.evidence__seminar-inner {
  /* 左位置はページ中央基準、右端は帯の右端まで開けてカルーセルのブリードを可能にする。
     テキスト類のみ1200pxで頭打ち */
  margin-left: var(--inner-left);
  margin-right: 0;
  text-align: left;
}

.evidence__seminar-inner > :not(.evidence__carousel-wrap),
.blog__inner > :not(.blog__carousel-wrap) {
  max-width: 1200px;
}

.evidence__seminar .evidence__h3 {
  margin-top: 0;
}

.evidence__h3 {
  margin-top: 56px;
}

.evidence__seminar-intro {
  margin-top: 12px;
  font-size: 16px;
  line-height: 1.8;
  padding-right: 20px;
}

.evidence__carousel-wrap {
  display: grid;
  margin-top: 37px;
}

.evidence__carousel-wrap .carousel-nav--overlay {
  align-items: flex-start;
  /* prevは1枚目カードの左端に中心を合わせて半分外へ出し、nextはビューポート端から
     同じ距離に置く（ユーザー指示 2026-08-26） */
  margin: 69px calc(-1 * var(--band-gap)) 0 calc(-1 * var(--nav-half));
  padding-left: 0;
  padding-right: calc(var(--inner-left) - var(--nav-half));
}

/* カルーセルはブラウザ右端までブリード（帯の右余白ぶんを相殺） */
.evidence__carousel,
.blog__list {
  margin-right: calc(-1 * var(--band-gap));
  padding-right: var(--band-gap);
  scroll-padding-right: var(--band-gap);
}

.evidence__carousel,
.blog__list {
  grid-area: 1 / 1;
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 4px;
}

.evidence__carousel::-webkit-scrollbar,
.blog__list::-webkit-scrollbar {
  display: none;
}

.seminar-card {
  flex: 0 0 330px;
  scroll-snap-align: start;
  text-align: left;
}

.evidence__carousel {
  gap: 23px;
}

.seminar-card img {
  width: 100%;
  aspect-ratio: 330 / 173;
  object-fit: cover;
  border-radius: 0;
}

.seminar-card__title {
  padding: 13px 0 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.seminar-card p {
  padding: 6px 0 0;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  color: #7d7d7d;
}

.evidence__seminar-link {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 11px;
  margin-top: 30px;
}

/* セミナーレポートの丸矢印は青SVG（ユーザー指示 2026-08-25） */
.evidence__seminar-link .deco-chev-circle {
  width: 33px;
  background-image: url("../img/i-circle-blue-arrow.svg");
}

.evidence__analisis {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  margin-top: 40px;
  background: #efefef;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0 2px, rgba(0, 0, 0, 0) 2px 14px);
  background-size: 14px 14px;
  border-radius: 13px;
  overflow: hidden;
  padding: 32px 0 38px;
}

.evidence__analisis {
  text-align: left;
}

.evidence__team-title {
  padding: 0 14px 0 52px;
}

.evidence__analisis .evidence__h3 {
  margin-top: 0;
  background: linear-gradient(90deg, #ee7300, #ffbe10);
  font-size: 22px;
  line-height: 1.74;
  padding: 0 14px 0 52px;
}

.evidence__analisis-card {
  width: min(100% - 120px, 960px);
  margin: 23px auto 0;
  background: #fff;
  border-radius: 13px;
  padding: 30px 0;
}

.evidence__analisis-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
}

.evidence__analisis-logo img {
  width: 313px;
}

.evidence__analisis-label {
  display: grid;
  font-family: var(--font-en);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.5;
  text-align: left;
}

.evidence__analisis-label small {
  font-family: var(--font-base);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}

.evidence__analisis-desc {
  width: min(100% - 80px, 680px);
  margin: 17px auto 0;
  font-size: 15px;
  line-height: 1.8;
  text-align: center;
}

.evidence__analisis-text {
  width: min(100% - 120px, 960px);
  margin: 13px auto 0;
  font-size: 15px;
  line-height: 1.8;
  text-align: left;
}

.evidence__analisis-link {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 11px;
  width: min(100% - 120px, 960px);
  margin: 15px auto 0;
}

.evidence__analisis-link .evidence__analisis-arrow {
  width: 33px;
  height: auto;
}

/* ---- VOICE ---- */

.voice {
  padding: 110px 0 80px;
  background: #fdf8d8;
}

.voice__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: center;
}

.voice__inner .wm {
  font-size: 100px;
  line-height: 1.5;
  margin-top: -88px;
  margin-bottom: -62px;
}

.voice__inner .sec-title {
  font-size: 30px;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.voice__inner .sec-intro {
  margin-top: 15px;
  line-height: 1.8;
}

.voice__list {
  display: grid;
  /* 900pxまで2列維持→以降1列（SPはメディア側でカルーセルに切替） */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
  gap: 23px 20px;
  max-width: 1140px;
  margin: 40px auto 0;
  text-align: left;
}

.voice-card {
  background: #fff;
  border-radius: 5px 52px 5px 5px;
  padding: 21px 35px 37px;
}

.voice-card__head {
  display: flex;
  align-items: center;
  gap: 19px;
  min-height: 72px;
}

.voice-card__name {
  order: -1;
}

.voice-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
}

.voice-card__logo img {
  max-height: 60px;
  width: auto;
}

.voice-card__name {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.voice-card__text {
  margin-top: 2px;
  font-size: 14px;
  line-height: 1.7;
}

.voice-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.voice-card .text-link {
  display: flex;
  align-items: center;
  gap: 9px;
  width: max-content;
  margin: 14px 0 0 auto;
  font-size: 15px;
  text-decoration-color: #f0831e;
  text-underline-offset: 6px;
}

.voice-card .deco-chev-circle {
  width: 33px;
}

.voice__note {
  margin-top: 18px;
  font-size: 12px;
  line-height: 1.5;
  text-align: right;
  max-width: 1140px;
  margin-inline: auto;
}

/* ---- WORKS ---- */

.works {
  padding: 120px 0 80px;
  background: #fff;
}

.works__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: left;
}

.works__inner .wm {
  font-size: 100px;
  line-height: 1.5;
  color: #efefef;
  margin-top: -84px;
  margin-bottom: -66px;
}

.works__inner .sec-title {
  font-size: 30px;
  letter-spacing: 0.06em;
  line-height: 1.5;
}

/* AUN r2 #18：リード文は左寄せ */
.works__inner .sec-intro {
  margin-top: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.works__list {
  display: grid;
  /* 900pxまで3列維持→以降2→1列（SPはメディア側でカルーセルに切替） */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  align-items: stretch;
  gap: 22px;
  margin-top: 37px;
  text-align: left;
}

.work-card {
  min-width: 0;
  background: #fff;
  border: 1px solid #f0831e;
  border-radius: 30px 30px 30px 2px;
  padding: 0 0 33px;
  overflow: hidden;
}

.work-card__shot {
  position: relative;
  overflow: hidden;
}

.work-card__shot img {
  display: block;
  width: 100%;
  aspect-ratio: 385 / 180;
  object-fit: cover;
  object-position: top;
}

.work-card__name {
  margin: 21px 16px 0 24px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.work-card__site {
  margin: 3px 16px 0 24px;
  font-size: 13px;
  line-height: 1.5;
  color: #3d3d3d;
}

.work-card__tags {
  display: flex;
  gap: 4px;
  margin: 9px 16px 0 24px;
}

.work-card__tags li {
  background: #f0831e;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  padding: 2px 6px;
  border-radius: 2px;
}

.work-card__text {
  margin: 12px 16px 0 24px;
  font-size: 14px;
  line-height: 1.7;
}

.work-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.work-card .text-link {
  display: flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  margin: 12px 24px 0 auto;
  font-size: 15px;
  text-decoration-color: #f0831e;
  text-underline-offset: 6px;
}

.work-card .deco-chev-circle {
  width: 33px;
}

.work-card .text-link {
  margin-top: 14px;
  font-size: 14px;
  align-self: flex-end;
}

/* ---- FLOW ---- */

.flow {
  padding: 128px 0 0;
  border-radius: 120px 120px 0 0;
}

.flow__inner,
.support__inner {
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  text-align: center;
}

.flow__inner .wm {
  font-size: 100px;
  line-height: 1.5;
  margin-top: -94px;
  margin-bottom: -56px;
}

.flow__inner .sec-title {
  font-size: 30px;
  letter-spacing: 0.08em;
  line-height: 1.6;
}

.support__inner .wm {
  font-size: 100px;
  line-height: 1.5;
  color: #efefef;
  margin-top: -84px;
  margin-bottom: -66px;
}

.support__inner .sec-title {
  font-size: 30px;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.support__inner .sec-intro {
  line-height: 1.8;
}

.flow__list {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, 1fr);
  justify-content: space-between;
  margin-top: 45px;
}

.flow-step {
  flex: 0 0 231px;
  background: #f5f5f5;
  border-radius: 5px 26px 5px 5px;
  padding: 26px 28px;
}

.flow-step:last-child {
  background: #fff2e5;
}

.flow-step__num {
  margin: -34px 0 -15px -38px;
  width: 49px;
}

.flow-step__num img,
.faq__mark,
.service-card__num {
  display: block;
}

.flow-step__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.flow-step__icon {
  width: 156px;
}

.flow-step__icon img {
  display: block;
  width: 100%;
}

.flow-step__title {
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.09em;
  line-height: 1.5;
}

.flow-step__title::after {
  content: "";
  display: block;
  width: 23px;
  height: 2px;
  background: #f0831e;
  margin: 10px auto 0;
}

.flow-step__text {
  margin-top: 8px;
  font-size: 15px;
  line-height: 1.6;
  text-align: center;
}

.flow-step--em {
  padding-inline: 14px;
}

/* ---- SUPPORT ---- */

.support {
  /* padding: 140px 0 301px; */
  padding: 140px 0px;
}

.support__list {
  display: grid;
  /* 900pxまで2列維持→以降1列（auto-fit） */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 12px;
  width: min(100%, 1140px);
  margin: 40px auto 0;
  text-align: left;
}

.support-card {
  display: flex;
  align-items: center;
  background: #f5f5f5;
  border-radius: 5px;
  padding: 21px 30px;
}

.support-card__title {
  flex: none;
  width: 170px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #f0831e;
  text-align: left;
}

.support-card p {
  position: relative;
  margin: 0;
  padding-left: 42px;
  font-size: 15px;
  line-height: 1.7;
  text-align: left;
}

.support-card p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  translate: 0 -50%;
  width: 2px;
  height: 26px;
  background: #f0831e;
}

/* ---- FAQ ---- */

.faq {
  padding: 100px 0;
  background: #fff;
}

.faq__inner {
  width: min(100% - 40px, 1040px);
  margin-inline: auto;
  text-align: center;
}

.faq__inner .wm {
  font-size: 100px;
  line-height: 1.5;
  color: #efefef;
  margin-top: -80px;
  margin-bottom: -70px;
}

.faq__inner .sec-title {
  font-size: 30px;
  letter-spacing: 0.06em;
  line-height: 1.5;
}

.faq__list {
  display: grid;
  gap: 20px;
  margin-top: 35px;
  text-align: left;
}

.faq__item {
  text-align: left;
}

.faq__q {
  position: relative;
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 18px 64px 22px 34px;
  background: #fdf8d8;
  border-radius: 17px;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.7;
  cursor: pointer;
}

.faq__mark {
  flex-shrink: 0;
  width: 49px;
}

.deco-faq-chev {
  position: absolute;
  right: 27px;
  top: 50%;
  width: 12px;
  height: 12px;
  border-right: 2px solid #f0831e;
  border-bottom: 2px solid #f0831e;
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.3s;
}

.faq__item.is-open .deco-faq-chev {
  transform: translateY(-30%) rotate(-135deg);
}

.faq__a-wrap {
  display: grid;
  grid-template-rows: 0fr;
  margin-top: 0;
  transition:
    grid-template-rows 0.4s ease,
    margin-top 0.4s ease;
}

.faq__item.is-open .faq__a-wrap {
  grid-template-rows: 1fr;
  margin-top: 5px;
}

.faq__a {
  display: flex;
  align-items: flex-start;
  gap: 29px;
  min-height: 0;
  overflow: hidden;
  padding: 0 36px 0 30px;
  background: #efefef;
  border-radius: 17px;
  transition: padding 0.4s ease;
}

.faq__item.is-open .faq__a {
  padding: 18px 36px 22px 30px;
}

.faq__a p {
  padding-top: 10px;
  font-size: 16px;
  line-height: 1.7;
}

/* ---- BLOG ---- */

.blog {
  --band-gap: 120px;
  --inner-left: max(40px, calc((100vw - var(--band-gap)) / 2 - 540px));
  background: #efefef;
  margin-right: var(--band-gap);
  border-radius: 0 50px 50px 0;
  padding: 110px 0 85px;
}

.blog__inner {
  margin-left: var(--inner-left);
  margin-right: 0;
  /* AUN r2 #21：見出し＋リードは左寄せ（デザイン参照） */
  text-align: left;
}

.blog__inner .wm {
  font-size: 100px;
  line-height: 1.5;
  margin-top: -84px;
  margin-bottom: -66px;
  color: #fff;
}

.blog__inner .sec-title {
  font-size: 30px;
  letter-spacing: 0.08em;
  line-height: 1.6;
}

.blog__inner .sec-intro {
  line-height: 1.8;
}

.blog__carousel-wrap {
  display: grid;
  margin-top: 45px;
}

.blog .carousel-nav--overlay {
  align-items: flex-start;
  margin: 107px calc(-1 * var(--band-gap)) 0 calc(-1 * var(--nav-half));
  padding-left: 0;
  padding-right: calc(var(--inner-left) - var(--nav-half));
}

.blog-card {
  flex: 0 0 356px;
  scroll-snap-align: start;
  background: #fff;
  border-radius: 17px;
  padding: 16px 18px 20px;
  text-align: left;
}

.blog-card__thumb img {
  width: 100%;
  display: block;
  border-radius: 8px;
}

.blog-card__title {
  margin-top: 10px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.blog-card__meta {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 7px;
}

.blog-card__cat {
  background: #f0831e;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  padding: 2px 6px;
  border-radius: 2px;
}

.blog-card__meta time {
  font-family: var(--font-en);
  font-size: 15px;
  line-height: 1.6;
  color: #7d7d7d;
}

.blog-card .text-link {
  display: flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  margin: 1px 0 0 auto;
  font-size: 14px;
  text-decoration-color: #f0831e;
  text-underline-offset: 6px;
}

.blog-card .deco-chev-circle {
  width: 34px;
}

.blog__more {
  margin-top: 40px;
  text-align: left;
}

.blog__more .text-link {
  gap: 11px;
  font-size: 15px;
  text-decoration-color: #f0831e;
  text-underline-offset: 6px;
}

.blog__more .deco-chev-circle {
  width: 40px;
}

/* ---- CTA最終・フッター ---- */

.site-footer {
  background: #efefef;
}

.site-footer__inner {
  display: flex;
  align-items: flex-start;
  width: min(100% - 40px, 1200px);
  margin-inline: auto;
  padding: 59px 0 95px;
}

.site-footer__logo img {
  width: 350px;
}

.site-footer__nav {
  padding-top: 10px;
  margin-left: 119px;
}

.site-footer__info {
  margin-left: auto;
}

.site-footer__nav ul {
  display: grid;
  gap: 13px;
  margin: 0;
  font-size: 15px;
  font-weight: 400;
  padding: 0;
}

.site-footer__nav li {
  display: flex;
  align-items: center;
  gap: 7px;
}

.site-footer__nav li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f0831e;
}

.site-footer__info {
  width: 452px;
  padding-top: 10px;
  display: grid;
  justify-items: end;
}

.site-footer__name,
.site-footer__address {
  justify-self: stretch;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
}

.site-footer__hp {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 17px;
}

.site-footer__hp .text-link {
  font-size: 14px;
  text-underline-offset: 6px;
}

/* フッターの丸矢印は黒SVG（ユーザー指示 2026-08-25） */
.site-footer__hp .deco-chev-circle {
  width: 32px;
  background-image: url("../img/i-circle-bk-arrow.svg");
}

.site-footer__map {
  margin-top: 25px;
}

.site-footer__map img,
.site-footer__map iframe {
  display: block;
  width: 452px;
  aspect-ratio: 452 / 161;
  border-radius: 10px;
}

.site-footer__copyright {
  border-top: 1px solid #f0831e;
  padding: 20px 15px 30px;
  text-align: center;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 13px;
  color: #606060;
}

/* ---- SP下部固定CTA（PC非表示） ---- */

.fixed-cta {
  display: none;
}

/* ============================================================
   @media（大→小で集約）
============================================================ */

.mv__inner,
.logos__inner,
.worry__inner,
.about__inner,
.reason__inner,
.philosophy__inner,
.service__inner,
.price__inner,
.aftersupport__inner,
.evidence__inner,
.voice__inner,
.works__inner,
.flow__inner,
.support__inner,
.cta__inner,
.faq__inner,
.site-footer__inner {
  max-width: 1200px;
  max-width: min(calc(100% - 40px), 1200px);
  margin-inline: auto;
}

@media (max-width: 1279px) {
  .site-header__logo-combined {
    width: 300px;
  }
  .site-header.is-scrolled .site-header__logo-combined {
    width: 240px;
  }
  .site-header__tel {
    display: none;
  }
  .site-header__list {
    gap: 16px;
    font-size: 14px;
  }

  /* AUN r2 #29：フッターのナビ列と会社情報列の間隔を確保 */
  .site-footer__inner {
    column-gap: 32px;
  }
  .site-footer__logo img {
    width: min(350px, 26vw);
  }
  .site-footer__nav {
    margin-left: 0;
  }
  .site-footer__info {
    width: min(452px, 38vw);
    margin-left: auto;
  }
  .site-footer__map img,
  .site-footer__map iframe {
    width: 100%;
  }

  .flow__list {
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
  }

  /* AUN r2 #7：3列を長く維持（縮小で対応。2列化は999px以下へ引き下げ）。
     縮小時はPC用の明示改行を解除して自然折返しに任せる */
  .philosophy-card {
    min-height: 0;
    padding: 12px 18px 20px;
  }
  .philosophy-card p {
    font-size: 14px;
  }
  .philosophy-card p br {
    display: none;
  }
  .philosophy-card__title {
    font-size: clamp(19px, 2vw, 25px);
  }

  /* 内容枠のleft97pxとボタン250px×3はコンテナ1200px前提。狭い幅では枠を詰めて折り返す */

  .philosophy__person,
  .service__person {
    width: clamp(150px, 22vw, 297px);
  }

  .cta__dl-sub {
    font-size: clamp(16px, 1.9vw, 20px);
  }
  /* AUN r2 #27：中間幅でタイトルが「〜配布/中」で折れないよう流動化 */
  .cta__inner--dl .cta__title {
    font-size: clamp(26px, 3.2vw, 34px);
  }
  /* 中間幅の狭い列でもボタン文言が1行で収まるようpaddingを詰める */
  .cta__inner--dl .btn-white {
    padding: 14px 30px 14px 16px;
  }

  /* チップ・カード見出しの孤立行回避 */
  .as-card__title {
    font-size: clamp(17px, 2vw, 22px);
  }

  /* 中間幅で列数を維持するための文字・余白縮小（下限はSP値） */
  .worry-card {
    padding: 0 20px 24px;
  }
  .worry-card__title {
    font-size: clamp(17px, 1.9vw, 20px);
  }
  .work-card__name {
    font-size: clamp(17px, 1.9vw, 20px);
  }
  .work-card__name,
  .work-card__site,
  .work-card__tags,
  .work-card__text {
    margin-left: 18px;
    margin-right: 14px;
  }
  .voice-card {
    padding: 21px 20px 30px;
  }
  .voice-card__name {
    font-size: clamp(19px, 2vw, 24px);
  }
  .service-card {
    padding: 0 22px 30px;
  }
  .about__can-title {
    flex-wrap: wrap;
    row-gap: 4px;
  }
  .reason-card__title {
    font-size: clamp(22px, 2.6vw, 28px);
  }
  .qual-card__title {
    font-size: clamp(15px, 1.7vw, 18px);
  }

  /* AFTER SUPPORT：PCの重ね配置は1440px前提。900pxまでは2カラム（写真は縦積み）を維持し、
     重ね配置だけ解除する（AUN r2 #25の重なり解消と両立） */

  .deco-vertical {
    display: none;
  }

  .reason__row {
    grid-template-columns: 1fr 1fr;
  }
  .reason__row--reverse {
    grid-template-columns: 1fr 1fr;
  }
  /* AUN r2 #24：中間幅で写真とテキストの間隔を確保（重なり量を減らす） */
  .reason-card--r {
    margin-left: -24px;
  }
  .reason-card--l {
    margin-right: -24px;
  }

  .evidence .sp-dots {
    margin-top: 25px;
  }
  .flow__list {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 28px;
  }
  /* 中間幅は帯の右余白を40pxへ（カルーセル・ナビは変数で自動追従） */
  .blog,
  .evidence__seminar {
    --band-gap: 40px;
  }
  .about__body {
    grid-template-columns: 1fr 1fr;
  }

  /* AUN r2 #1：中間幅でテキストと人物写真が重ならないよう、人物列を流動化 */
  .about__why-inner {
    grid-template-columns: minmax(0, 1fr) clamp(150px, 22vw, 267px);
  }
  .about__why-text {
    max-width: none;
  }
}

@media (max-width: 1224px) {
  /* 中間幅は見出し・リード文が写真の位置まで伸びるため、上へのせり出しを解除
     （-150pxだと「だから、長く続いています。」やリード文に重なる。AUN r2 #25と同種） */
  .aftersupport__photos {
    margin-top: 0;
  }
}

/* 横スクロールになるスライダーは、領域をビューポート右端まで広げる
   （親コンテナの左右余白を相殺。ユーザー指示 2026-08-26） */
@media (max-width: 1239px) {
  .evidence__inner .swipe-wrap {
    width: 100vw;
    margin-inline: calc((100% - 100vw) / 2);
  }
}

@media (max-width: 767px) {
  .voice .swipe-wrap,
  .works .swipe-wrap {
    width: 100vw;
    margin-inline: calc((100% - 100vw) / 2);
  }
}

/* チーム写真：タブレット幅では420pxだとテキスト列を圧迫するため320pxへ縮小
   （768pxでテキスト258px→358pxに改善。ユーザー指示 2026-08-25） */
@media (max-width: 1023px) and (min-width: 768px) {
  .evidence__team-photo {
    width: 320px;
  }
}

/* 資格カード：5枚（230px）が収まらない幅では横スクロールへ切替（ユーザー指示 2026-08-25。
   1240px以上=5枚グリッド維持／768〜1239px=PCと同サイズのままスワイプ） */
@media (max-width: 1239px) and (min-width: 768px) {
  .evidence__quals {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    gap: 12px;
    /* 領域は親の .swipe-wrap がブリード。ここは内側余白のみ */
    padding-inline: 20px;
    scroll-padding-inline: 20px;
    /* せり出す顔写真（-39px）がoverflowで切れないよう上余白で相殺 */
    padding-top: 39px;
    margin-top: 44px;
  }

  .evidence__quals::-webkit-scrollbar {
    display: none;
  }

  .qual-card {
    flex: 0 0 230px;
    scroll-snap-align: start;
  }
}

@media (max-width: 1419px) and (min-width: 1280px) {
  .site-header__logo-combined {
    width: clamp(305px, calc(100vw - 975px), 445px);
  }
  .site-header__list {
    gap: 20px;
  }
}

/* AUN r2 #23：タブレット幅のヘッダー収まり調整（900px未満はSPヘッダーへ切替） */
@media (max-width: 1023px) and (min-width: 900px) {
  .site-header__logo-combined {
    width: 240px;
  }
  .site-header.is-scrolled .site-header__logo-combined {
    width: 200px;
  }
  .site-header__inner {
    column-gap: 12px;
  }
  .site-header__list {
    gap: 10px;
    font-size: 13px;
  }
  .site-header__cta {
    width: 130px;
    font-size: 14px;
  }
}

@media (max-width: 950px) {
  .cta--consult .cta__inner {
    width: 100%;
    margin: 0;
    max-width: 100%;
    padding-inline: 20px;
  }

  .cta--consult .cta__inner .wm--cta {
    margin-left: 0;
  }

  .cta--consult .btn-set--row .btn-black {
    width: 100%;
    max-width: 210px;
  }

  .cta--consult .btn-set--row .btn-white {
    width: 100%;
    max-width: 210px;
  }

  .cta--consult .btn-set--row .btn-tel {
    width: 100%;
    max-width: 330px;
  }
}

/* MV：767pxのSP切替までPCレイアウトを維持し、右のスクロール画像はブラウザ右端で
   見切れさせる（ユーザー指示 2026-08-24。8/21のSP前倒し適用を差し替え） */
@media (max-width: 767px) {
  /* MV SP（Figma 280:34）：テキスト → スクショ帯 → CTA の順に流す */
  .mv {
    background: linear-gradient(220.19deg, #ffcd47 55.79%, #f0831e 74.1%);
  }
  .mv__inner {
    display: flex;
    flex-direction: column;
    width: calc(100% - 30px);
    padding: 35px 0 36px;
  }
  .mv__text {
    display: contents;
  }
  .mv__label {
    order: 1;
  }
  .mv__title {
    order: 2;
  }
  .mv__lead {
    order: 3;
  }
  .mv__stats {
    order: 4;
  }
  .mv__shots {
    order: 5;
  }
  .mv .btn-set {
    order: 6;
  }

  /* スクショ帯：SPは1列の横マーキー（Figma 280:101 の帯を右→左へ流す） */
  .mv__shots {
    position: static;
    width: 100vw;
    margin: 30px calc((100% - 100vw) / 2) 0;
    overflow: hidden;
    gap: 0;
  }

  .mv__shots-col {
    flex-direction: row;
    width: max-content;
    margin-top: 0;
  }

  .mv__shots-col--r {
    display: none;
  }

  .mv__shots-track {
    flex-direction: row;
  }

  .mv__shots-col--l .mv__shots-track {
    animation: mv-scroll-left 60s linear infinite;
  }

  .mv-card {
    flex: none;
    width: 230px;
    margin: 0 8px 0 0;
    border-radius: 8px;
  }

  /* badgeの-14px込みでボタン上端がスクショ帯の38px下 */
  .mv .btn-set {
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-top: 23px;
  }
  .mv .btn-black,
  .mv .btn-white {
    width: 100%;
    max-width: 345px;
    min-height: 63px;
  }
  .mv .btn-badge-wrap {
    width: 100%;
    max-width: 345px;
  }
}

/* MVの文字・スタットは600pxまでPCサイズを維持し、600px未満でSPサイズへ
   （ユーザー指示 2026-08-24。ボタンと画像マーキーは767pxからSP形） */
@media (max-width: 599px) {
  .mv__label {
    font-size: 17px;
  }
  .mv__title {
    font-size: 27px;
    margin-top: 8px;
  }
  .mv__title-en {
    font-size: 27px;
  }
  .mv__title-tail {
    font-size: 27px;
  }
  .mv__title-band {
    padding: 1px 10px;
    border-radius: 1px;
  }
  .mv__title-band:last-child {
    padding: 1px 10px;
    margin-top: 4px;
  }
  .mv__lead {
    font-size: 15px;
    line-height: 1.6;
    margin-top: 11px;
  }

  .mv__stats {
    grid-template-columns: 1fr 1fr 1.125fr;
    gap: 10px;
    max-width: 345px;
    margin-top: 17px;
  }
  .mv__stat {
    min-height: 86px;
    padding: 6px 0;
    border-width: 3px;
    border-radius: 7px;
  }
  .mv__stat-label {
    font-size: 11px;
  }
  .mv__stat-num {
    margin-top: -6px;
    font-size: 21px;
  }
  .mv__stat-label {
    white-space: normal;
  }
  .mv__stat-num span {
    font-size: 42px;
  }
  .mv__stat-num--text {
    font-size: 14px;
    line-height: 1.2;
  }
  .mv__stat-logo {
    width: 72px;
  }
}

/* フッター：1000px前後からナビをロゴの下へ（左列=ロゴ/ナビ・右列=会社情報。
   ユーザー指示 2026-08-25） */
@media (max-width: 1023px) and (min-width: 768px) {
  .site-footer__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 452px);
    column-gap: 32px;
    row-gap: 24px;
    align-items: start;
  }
  .site-footer__logo {
    grid-column: 1;
    grid-row: 1;
  }
  .site-footer__nav {
    grid-column: 1;
    grid-row: 2;
    margin-left: 0;
    padding-top: 0;
  }
  .site-footer__info {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: auto;
    margin-left: 0;
  }

  .wm--cta {
    font-size: 65px;
  }
}

@media (max-width: 854px) {
  .service__list {
    gap: 24px 15px;
    margin-top: 50px;
  }
}

/* ヘッダーは900px未満でSP（ハンバーガー）へ切替（ユーザー指示 2026-08-24） */
@media (max-width: 899px) {
  html {
    scroll-padding-top: 72px;
  }
  /* ロゴとリードを左の縦積みブロックにし、ハンバーガーは2行にまたがって右に置く。
     リード表示時も左ブロック（ロゴ27+リード14≒41px）がメニュー43pxの内側に収まるため、
     固定ヘッダーの高さが増えない（ユーザー指示 2026-08-26） */
  .site-header__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    /* 行グループ全体を垂直中央に（リード非表示時にロゴが上寄りになるのを防ぐ）。
       ハンバーガーが2行にまたがるため、そのままだと余剰が2行目にも配分されロゴが上寄りになる。
       リード非表示時は2行目を0fr（余剰を受け取らない）に固定してロゴを完全な中央へ */
    align-content: center;
    grid-template-rows: auto 0fr;
    min-height: 55px;
    /* 上下6px＝メニュー43px＋12pxで55px（Figma SPヘッダー高）に収め、
       リード表示時も高さが変わらないようにする。左右は従来どおり8px */
    padding: 6px 8px;
    column-gap: 8px;
  }
  .site-header__logos {
    grid-column: 1;
    grid-row: 1;
    margin-right: 0;
  }
  .site-header__lead {
    grid-column: 1;
    grid-row: 2;
  }
  .site-header__menu {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  /* リード表示時は2行目を内容サイズへ戻す */
  .site-header.is-scrolled .site-header__inner {
    grid-template-rows: auto auto;
  }
  .site-header__logo-combined {
    width: 250px;
  }
  .site-header__nav,
  .site-header__cta {
    display: none;
  }

  .site-header__menu {
    display: grid;
    place-content: center;
    gap: 4px;
    width: 43px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #f0831e;
  }

  .site-header__menu span {
    display: block;
    width: 17px;
    border-top: 2px solid #fff;
    transition:
      transform 0.3s,
      opacity 0.3s;
  }
  .site-header__menu.is-open span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .site-header__menu.is-open span:nth-child(2) {
    opacity: 0;
  }
  .site-header__menu.is-open span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  /* SPリードは改行なしの1行（幅連動フォントでフィット）・ロゴはスクロール後も縮小しない
     （ユーザー指示 2026-08-24。AUN r2 #54の2行案を差し替え） */
  .site-header__logo-combined,
  .site-header.is-scrolled .site-header__logo-combined {
    width: 250px;
  }
  .site-header__lead {
    /* ハンバーガー幅ぶん狭くなった1列目に1行で収める実測値（320pxでも切れない）
       ユーザー指示 2026-08-26 */
    font-size: clamp(6px, 1.85vw, 11px);
    line-height: 1.4;
    white-space: nowrap;
  }
  .site-header.is-scrolled .site-header__lead {
    max-height: 16px;
    margin-top: 2px;
  }

  .reason__row:first-of-type {
    margin-top: 61px;
  }

  .aftersupport__inner .sec-title,
  .aftersupport__inner .sec-intro {
    margin-left: 0;
  }

  .aftersupport__text {
    padding-left: 0;
  }

  .aftersupport__photos img {
    transform: translateX(20px);
  }

  .aftersupport__list {
    margin-top: 50px;
  }

  .evidence__analisis-logo {
    flex-direction: column;
    gap: 8px;
  }
}

@media (max-width: 767px) {
  body {
    font-size: 15px;
  }

  .u-sp {
    display: inline;
  }
  .u-pc {
    display: none;
  }

  .wm {
    font-size: 50px;
  }
  .wm--cta {
    font-size: 50px;
  }
  .sec-overline {
    font-size: 18px;
  }
  .sec-title {
    font-size: 22px;
    line-height: 1.6;
  }
  .sec-intro {
    font-size: 15px;
    text-align: center;
  }
  /* AFTER SUPPORTのみ左寄せ（Figma SP実測） */
  .aftersupport__inner .sec-intro {
    text-align: left;
  }

  /* Logo帯 */
  .logos {
    padding: 20px 0 26px;
  }
  .logos__inner {
    width: calc(100% - 30px);
  }
  .logos__title {
    font-size: 18px;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .logos__marquee--pc {
    display: none;
  }
  .logos__marquee--sp {
    display: flex;
    margin-top: 16px;
  }
  .logos__marquee--sp2 {
    margin-top: 15px;
  }
  .logos__list {
    gap: 24px;
    padding-right: 24px;
    animation-duration: 45s;
  }
  /* 2段目は位相をずらして単調さを避ける（Figmaの見切れオフセット-35/-105相当） */
  .logos__marquee--sp2 .logos__list {
    animation-delay: -20s;
  }
  /* ロゴサイズはPCと同じ（ユーザー指示 2026-08-21） */
  .logos__list img {
    height: 60px;
  }

  /* タイトルの斜線はFigma実測 26.6×38（線2px・約35度） */
  .deco-slash {
    height: 40px;
  }
  .deco-slash--l {
    transform: rotate(-35deg);
  }
  .deco-slash--r {
    transform: rotate(35deg);
  }

  /* AUN r2 #47/50/51 改：SPの横スクロール箇所は全てスワイプヒント表示（動かすと消える） */
  .voice .swipe-hint,
  .evidence__seminar .swipe-hint,
  .works .swipe-hint,
  .blog .swipe-hint {
    display: flex;
  }

  /* セクション共通SP */
  .worry,
  .about,
  .reason,
  .price,
  .voice,
  .faq {
    padding: 52px 0 44px;
  }
  .works {
    padding: 65px 0 24px;
  }
  .aftersupport {
    padding: 50px 0;
  }

  .worry__inner,
  .about__inner,
  .reason__inner,
  .philosophy__inner,
  .service__inner,
  .price__inner,
  .aftersupport__inner,
  .evidence__inner,
  .voice__inner,
  .works__inner,
  .flow__inner,
  .support__inner,
  .cta__inner,
  .faq__inner,
  .blog__inner,
  .about__why-inner,
  .site-footer__inner {
    width: calc(100% - 30px);
  }

  .worry__inner .wm,
  .about__inner .wm,
  .reason__inner .wm,
  .philosophy__inner .wm,
  .service__inner .wm,
  .price__inner .wm,
  .aftersupport__inner .wm--light,
  .evidence__inner .wm,
  .voice__inner .wm,
  .works__inner .wm,
  .flow__inner .wm,
  .support__inner .wm,
  .faq__inner .wm,
  .blog__inner .wm {
    margin-bottom: -36px;
  }
  /* 裁定#19 SP原値：大半がInterへ切替、サイズ個別 */
  .philosophy__inner .wm,
  .service__inner .wm,
  .flow__inner .wm,
  .faq__inner .wm,
  .works__inner .wm,
  .support__inner .wm,
  .evidence__inner .wm,
  .blog__inner .wm,
  .voice__inner .wm,
  .reason__inner .wm {
    font-family: var(--font-en2);
  }
  .worry__inner .wm,
  .about__inner .wm {
    font-size: 60px;
  }
  .aftersupport__inner .wm--light {
    font-size: 40px;
    line-height: 1.2;
    margin: 0 0 0 0;
  }
  .evidence__inner .wm {
    font-size: 50px;
  }
  .cta .wm--cta {
    opacity: 0.5;
  }
  .cta--final .wm--cta {
    font-family: var(--font-en2);
    font-size: 50px;
  }
  .evidence__seminar {
    --band-gap: 0px;
    /* SPは帯自身が padding-left:14px を持つため、ナビの右インセットも同量にして左右対称に */
    --inner-left: 14px;
    border-radius: 0 30px 30px 0;
    margin-top: 36px;
    /* AUN r2 #48：「データの見方を…」帯の上の間隔を狭く */
    padding: 40px 0 24px 14px;
  }
  .evidence__seminar-inner {
    width: 100%;
    margin-inline: 0;
    text-align: left;
  }
  .evidence__carousel {
    margin-right: 0;
    padding-right: 15px;
    scroll-padding-right: 15px;
  }
  .evidence__analisis {
    width: calc(100% - 30px);
  }
  .about__why {
    width: calc(100% - 30px);
  }

  .worry {
    padding: 70px 0 55px;
  }
  .worry__inner .sec-title {
    font-size: 22px;
    line-height: 1.5;
  }
  .worry__inner .wm {
    margin-top: -38px;
    margin-bottom: -22px;
  }
  .worry__lead {
    margin-top: 12px;
  }
  .worry__list {
    grid-template-columns: 1fr;
    gap: 57px;
    margin-top: 70px;
  }
  .worry-card {
    min-height: 210px;
    padding: 0 26px 24px;
  }
  .worry-card__title {
    font-size: 20px;
  }
  .worry-card__text {
    text-align: center;
  }
  .worry__lead {
    font-size: 15px;
    margin-top: 12px;
  }

  /* ABOUT（Figma 280:355 の実座標）*/
  .about {
    padding: 33px 0 60px;
  }
  .about__inner {
    width: 100%;
  }
  .about__inner .wm,
  .about__inner .sec-title,
  .about__inner .sec-intro {
    padding-inline: 15px;
  }
  .about__inner .wm {
    font-size: 60px;
    line-height: 1;
    margin-bottom: -33px;
  }
  .about__title {
    flex-direction: column;
    align-items: center;
    font-size: 30px;
    line-height: 1.45;
  }
  .about__title-en {
    font-size: 30px;
  }
  .about__title-ja {
    font-size: 20px;
    padding-bottom: 0;
  }
  .about__title-tail {
    font-size: 22px;
  }
  .about__inner .sec-intro {
    font-size: 15px;
    line-height: 1.7;
  }

  .about__body {
    grid-template-columns: 1fr;
    gap: 21px;
    margin-top: 30px;
  }
  /* 写真は左端まで裁ち落とし、右だけ15px空ける（Figma 280:365） */
  .about__photo {
    width: 100%;
    margin-left: -20px;
  }
  .about__photo img {
    border-radius: 0 43px 5px 0;
    width: calc(100% + 20px);
    max-width: calc(100% + 20px);
  }
  .about__text {
    padding-inline: 0;
  }
  .about__text p {
    font-size: 15px;
  }
  .about__text p + p {
    margin-top: 9px;
  }
  .about__catch {
    font-size: 15px;
  }

  .about__why-text {
    padding: 0;
  }

  .about__can {
    margin-top: 24px;
    padding: 0;
  }
  .about__can-title {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    font-size: 16px;
  }
  .about__can-list {
    max-width: none;
    margin-top: 15px;
  }
  .about__can-list li {
    font-size: 15px;
  }
  .about__can-list li + li {
    margin-top: 12px;
  }
  .about__can-list li:first-child {
    align-items: flex-start;
  }
  .about__can-list li:first-child img {
    margin-top: 2px;
  }
  .about__can-etc {
    max-width: none;
    margin-top: 6px;
    font-size: 15px;
  }

  .about__why {
    width: calc(100% - 30px);
    margin-top: 24px;
  }
  /* SPは1カラム・人物は下部中央・上下の余白を圧縮（ユーザー指示 2026-08-24） */
  .about__why-inner {
    width: 100%;
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 24px 0 0;
  }
  .about__why-text {
    max-width: none;
  }
  /* SP見出しは独立した2本の帯（Figma 280:404 / 280:406） */
  .about__why-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    background: none;
    padding: 0;
    font-size: 18px;
    margin-left: 0;
  }
  .about__why-title span {
    background: linear-gradient(to right, #ee7300, #ffbe10);
    padding: 0 11px 0 17px;
    /* 帯は1本ずつ1行（Figma 280:404 w323 / 280:406 w176） */
    white-space: nowrap;
  }
  .about__why-text p {
    padding: 0 16px 0 20px;
    font-size: 15px;
    line-height: 1.7;
  }
  /* 人物はカード底に密着・下部中央（Figma 280:412／ユーザー指示 2026-08-24） */
  .about__why-person {
    width: 154px;
    justify-self: center;
  }

  /* SPは写真とカードを左右交互に画面端までブリードさせる（Figma 280:430 以降） */
  .reason {
    padding: 21px 0 52px;
  }
  .reason__inner {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }
  .reason__inner .wm,
  .reason__inner .sec-overline,
  .reason__inner .sec-title,
  .reason__inner .sec-intro {
    padding-inline: 15px;
    letter-spacing: 0;
  }
  .reason__inner .wm {
    font-size: 50px;
    margin-bottom: -31px;
  }
  .reason__inner .sec-overline {
    font-size: 18px;
  }
  .reason__inner .sec-title {
    font-size: 22px;
  }
  .reason__inner .sec-intro {
    max-width: none;
    margin-top: 12px;
    line-height: 1.7;
  }

  .reason__row,
  .reason__row--reverse {
    display: block;
    grid-template-columns: 1fr;
    margin-top: 23px;
  }
  /* AUN r2 #36：リード下（黄ブロック）の余白を縮める */
  .reason__row:first-of-type {
    margin-top: 36px;
  }
  /* 写真は左右交互にブラウザ端へ裁ち落とし（コンテナの左右20px余白ぶんを-20pxで相殺。
     ユーザー指示 2026-08-25） */
  .reason__photo {
    width: calc(100% + 5px);
    margin-left: -20px;
  }
  .reason__row--reverse .reason__photo {
    margin-left: 15px;
    margin-right: -20px;
  }
  .reason__photo img {
    aspect-ratio: 360 / 220;
    border-radius: 0 30px 30px 0;
  }
  .reason__row--reverse .reason__photo img {
    border-radius: 30px 0 0 30px;
  }

  /* 理由02：SP専用画像の中央にロゴを重ねる（AUN r2 #38の恒久対応） */
  .reason__photo--sp-logo .reason__photo-logo {
    display: block;
    position: absolute;
    inset: 0;
    margin: auto;
    width: min(210px, 60%);
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    border-radius: 0 !important;
    transform: translateX(-20px);
  }

  .reason-card {
    width: calc(100% - 15px);
    padding: 23px 20px 30px 25px;
    border-radius: 15px 0 0 15px;
  }
  .reason-card--r,
  .reason-card--l {
    margin: -34px 0 0 15px;
  }

  .reason-card--r {
    margin-right: -20px !important;
  }

  .reason-card--l {
    margin-left: -20px !important;
    padding-left: 40px;
    width: 100%;
  }
  .reason__row--reverse .reason-card {
    margin-left: 0;
    border-radius: 0 15px 15px 0;
  }

  .reason-card__badge {
    left: -8px;
    top: -42px;
    width: 75px;
  }
  .reason__row--reverse .reason-card__badge {
    left: 28px;
  }

  .reason-card__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    background: none;
    padding: 0;
    font-size: 22px;
  }
  .reason-card__title span {
    background: linear-gradient(to right, #ee7300 40%, #ffbe10);
    border-radius: 2px;
    padding: 0 10px;
  }
  .reason-card__text {
    font-size: 15px;
    line-height: 1.7;
  }
  .reason-card .text-link {
    margin-top: 13px;
    font-size: 14px;
  }

  .panel--philosophy > div:first-child,
  .panel--flow > div:first-child {
    border-radius: 40px 40px 0 0;
  }

  /* AUN r2 #43：CTA①下の黄ブロックを縮める（90px→40px） */
  .panel--philosophy {
    padding-bottom: 0;
    margin-bottom: 60px;
  }
  .panel--flow {
    background: #fff;
    padding: 0;
  }
  .panel--flow > .flow,
  .panel--flow > .support {
    border-radius: 0;
    max-width: none;
  }
  .flow {
    padding: 65px 0 25px;
  }
  .support {
    /* AUN r2 #52：DL資料の上（フッター手前）の間隔を狭く */
    padding: 65px 0 30px;
  }
  .flow__inner .sec-title,
  .support__inner .sec-title {
    font-size: 22px;
    line-height: 1.6;
  }
  .support__inner .sec-intro {
    font-size: 15px;
    line-height: 1.7;
  }
  .flow__inner .wm,
  .support__inner .wm,
  .voice__inner .wm,
  .works__inner .wm {
    font-size: 50px;
    margin-top: -44px;
    margin-bottom: -31px;
  }
  .voice__inner .sec-title,
  .works__inner .sec-title {
    font-size: 22px;
    line-height: 1.6;
  }
  .works__inner {
    text-align: center;
  }

  .philosophy {
    padding: 21px 0 35px;
  }
  .philosophy__inner .wm,
  .service__inner .wm {
    font-size: 50px;
    margin-bottom: -31px;
  }
  .philosophy__inner .sec-title {
    font-size: 22px;
  }
  .philosophy__inner .sec-overline {
    font-size: 18px;
  }
  .philosophy__list {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 22px;
  }
  .philosophy-card .philosophy-card__num {
    font-size: 32px;
    margin-bottom: 21px;
  }
  .philosophy-card p {
    margin-top: 9px;
  }
  .u-bouten {
    background-size: 1.03em 4px;
    background-image: radial-gradient(circle at center, #f0831e 2px, rgba(0, 0, 0, 0) 2px);
  }
  /* SPも見出しのlsは0.08emが効いているため、ピッチはPCと同じ1.08em（旧1.03emは字送り不足で
     右へ行くほど文字とずれていた）。ドットのみSPサイズへ */
  .reason__inner .u-bouten {
    background-size: 1em 4px;
    background-image: radial-gradient(circle at center, #f0831e 2px, rgba(0, 0, 0, 0) 2px);
    background-position: left -0.04em top 0;
  }
  .philosophy-card {
    min-height: 0;
    padding: 16px 17px 20px;
  }
  .philosophy-card__title {
    font-size: 22px;
    letter-spacing: 0.05em;
  }
  .philosophy__summary,
  .service__summary {
    grid-template-columns: 1fr;
    min-height: 0;
    margin-top: 28px;
    padding: 24px 20px 0;
    overflow: hidden;
  }
  .support__summary {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 32px;
  }
  .panel--philosophy > .service {
    border-radius: 0;
  }
  .philosophy__summary p,
  .service__summary p {
    order: -1;
    font-size: 16px;
  }
  .support__summary p {
    grid-column: 1 / 3;
    order: -1;
    font-size: 16px;
  }
  .philosophy__summary .summary-band__people,
  .service__summary .summary-band__people {
    justify-self: center;
    margin: 5px 0 0;
  }
  .philosophy__person,
  .service__person,
  .support__person {
    width: 203px;
  }
  .service__summary--r .service__person {
    width: 201px;
  }

  .service {
    /* AUN r2 #44：SERVICE下端の白帯を詰め、CTAとの間は帯（黄）で受ける */
    padding: 21px 0 60px;
  }
  /* AUN r2 #39：1枚目イラストのせり出し40pxがリード文へ被らない間隔を確保 */
  .service__list {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 48px;
  }
  .service-card {
    min-height: 0;
    border-radius: 5px 40px 5px 5px;
    padding: 0 15px 20px;
  }
  .service-card__illust {
    width: 126px;
    max-height: none;
    margin: -40px auto 0;
  }
  .service-card__illust {
    margin-bottom: 10px;
    width: 120px;
  }
  .service-card:nth-child(2) .service-card__illust {
    width: 120px;
    max-height: none;
    margin-top: -36px;
  }
  .service-card:nth-child(3) .service-card__illust {
    width: 125px;
    max-height: none;
    margin-top: -40px;
  }
  .service-card:nth-child(4) .service-card__illust {
    width: 120px;
    max-height: none;
    margin-top: -26px;
  }
  .service-card__title {
    font-size: 20px;
    line-height: 1.45;
    gap: 10px;
  }
  .service-card__num {
    width: 35px;
  }
  .service-card p {
    line-height: 1.65;
  }

  .cta__inner {
    padding: 40px 0 44px;
  }
  /* CTA①：PCの width計算(100%-152px)がSPで二重減算になり31pxに潰れていた（lint-cascade検出） */
  /* Figma 280:931 はノード高590・背景530。下60pxは背景を敷かない余白。
     素材 cta-contact_bg-sp.jpg には半径20pxの角丸が焼き込まれており（4隅が白）、
     CSS側で同じ角丸を与えないと白い角が露出する */
  /* AUN r2 #43/44：CTA上は帯（パネル背景）を見せ、下の黄ブロックはパネル側paddingへ集約 */
  .cta--consult {
    width: 100%;
    margin: 0 0 0;
    border-radius: 20px;
  }
  .cta--consult .cta__inner {
    width: calc(100% - 40px);
    margin-inline: auto;
    padding: 41px 0 55px;
    text-align: center;
  }
  .cta--consult .cta__inner .wm--cta {
    margin: 0 auto -20px;
  }
  .cta--consult .cta__title {
    padding-top: 0;
  }
  .cta--consult .cta__note {
    margin-top: 9px;
  }
  .cta--consult .btn-set--row {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 13px;
    margin-top: 25px;
  }
  .cta--consult .btn-set--row .btn-black,
  .cta--consult .btn-set--row .btn-white,
  .cta--consult .btn-set--row .btn-tel {
    flex: none;
    width: 100%;
    max-width: 335px;
    min-height: 63px;
  }
  .evidence__analisis .evidence__h3 {
    margin-top: 0;
  }
  .cta--final {
    margin-top: 56px;
  }
  .cta--final .cta__inner {
    width: calc(100% - 30px);
    padding: 61px 0 69px;
  }
  .cta--final .cta__inner .wm--cta {
    opacity: 0.5;
    margin-bottom: 6px;
  }
  .cta--final .cta__title--final {
    padding-top: 0;
    font-size: 18px;
    line-height: 1.48;
  }
  .cta--final .cta__note {
    margin-top: 12px;
    font-size: 16px;
    line-height: 1.7;
  }
  .cta--final .btn-set--row {
    margin-top: 25px;
    gap: 13px;
  }
  .cta--final .btn-set--row .btn-black,
  .cta--final .btn-set--row .btn-white,
  .cta--final .btn-set--row .btn-tel {
    width: 100%;
    max-width: none;
    min-height: 63px;
  }
  .cta--final .btn-tel--outline {
    background: rgba(239, 130, 29, 0.3);
  }
  .cta--final .btn-tel .deco-chev {
    display: block;
  }
  .cta__title {
    font-size: 25px;
    padding-top: 28px;
  }
  .cta__title--final {
    font-size: 18px;
  }
  .cta__note {
    font-size: 15px;
  }
  .btn-set--row {
    flex-direction: column;
    align-items: center;
    margin-top: 24px;
  }
  .btn-set--row {
    align-items: stretch;
  }
  .btn-set--row .btn-black,
  .btn-set--row .btn-white,
  .btn-set--row .btn-tel {
    max-width: none;
    min-height: 63px;
  }

  /* CTA②（280:1997 実値）。SPは支給背景 cta-dlbg-sp.png を使用（ユーザー指示 2026-08-25） */
  .cta--dl {
    width: 100%;
    margin-top: 0;
    background: url("../img/cta-dlbg-sp.png") center / cover no-repeat;
  }
  .cta__inner--dl {
    grid-template-columns: 1fr;
    justify-items: center;
    margin-inline: auto;
    /* 左右15px（SP標準ガター）＝ボタン文言が1行で収まる幅を確保 */
    padding: 73px 0px 42px;
    text-align: center;
  }
  /* SPは wm→タイトル→本文→モック→ボタン の縦並び（orderで差し込み） */
  .cta__dl-text {
    display: contents;
  }
  .cta__inner--dl .wm--cta {
    order: 1;
  }
  .cta__inner--dl .cta__title {
    order: 2;
  }
  .cta__inner--dl .cta__note {
    order: 3;
  }
  .cta__mock {
    order: 4;
    width: min(244px, 72%);
    margin: 19px auto 0;
  }
  .cta__inner--dl .btn-white {
    order: 5;
  }
  .cta__inner--dl .wm--cta {
    margin: -30px 0 -20px;
    opacity: 0.5;
    /* SPは50px相当だが右端が8px切れるため48pxへ */
    font-size: 48px;
  }
  .cta__inner--dl .cta__title {
    padding-top: 0;
    font-size: 25px;
    line-height: 1.48;
  }
  .cta__inner--dl .cta__note {
    margin-top: 9px;
    font-size: 15px;
    font-weight: 400;
  }
  .cta__dl-sub {
    font-size: 18px;
    font-weight: 700;
  }
  .cta__inner--dl .btn-white {
    /* justify-items:centerによるfit-content縮小を打ち消して全幅・字間を詰めて1行維持 */
    justify-self: stretch;
    width: 100%;
    margin: 25px auto 0;
    max-width: none;
    min-height: 63px;
    padding: 14px 26px 14px 12px;
  }

  /* PRICE：横スクロール表 */
  .price {
    padding: 65px 0 60px;
  }
  .price__inner {
    width: 100%;
  }
  .price__inner .sec-intro {
    font-size: 15px;
    line-height: 1.7;
  }
  .price__tab {
    width: 210px;
    min-height: 43px;
    font-size: 18px;
    margin: 30px auto -43px;
    border-radius: 0 0 15px 15px;
  }
  .price__scroll {
    max-width: none;
    border-radius: 20px;
    padding: 77px 15px 40px;
    overflow-x: auto;
  }
  .price__scroll + .price__tab {
    margin-top: 32px;
  }
  .price-table {
    min-width: 638px;
    font-size: 14px;
    border-spacing: 3px;
  }
  .price-table th,
  .price-table td {
    padding: 10px 6px;
  }
  .price-table td {
    font-size: 13px;
  }
  .price-table tbody th,
  .price-table--support tbody th {
    width: 128px;
    font-size: 14px;
  }
  .price-table__plan {
    width: 167px;
  }
  .price-table--support {
    min-width: 0;
  }

  .price-table__cell-main {
    display: block;
  }

  /* Figma SP（280:1133）は注記も1行。セル幅に収めるため一段小さくする */
  .price-table__cell-main + .u-note {
    display: block;
    margin-left: 0;
    font-size: 11px;
  }
  .price-table--support .price-table__plan {
    width: auto;
  }
  .price-table thead th {
    min-height: 93px;
  }
  .price-table__plan-en {
    font-size: 12px;
  }
  /* AUN r2 #11のPC値（20px）をSPでは18pxへ（plan-ja SPと同格） */
  .price-table--support .price-table__plan-en {
    font-size: 18px;
  }
  .price-table__plan-ja {
    font-size: 18px;
  }
  .price-table__plan-ja::after {
    margin-top: 8px;
  }
  .price-table__plan-desc {
    font-size: 13px;
  }
  .price-table__osusume {
    font-size: 14px;
    padding: 4px 15px;
    margin: -15px auto 10px;
  }
  .price-num {
    font-size: 22px;
  }
  .price__note {
    font-size: 12px;
    margin-top: 10px;
  }

  .price-num {
    font-size: 22px;
  }

  .aftersupport__inner {
    width: 100%;
  }
  .aftersupport__inner .sec-title {
    margin-left: 0;
    font-size: 22px;
    line-height: 1.59;
  }
  .aftersupport__inner .sec-intro {
    margin: 16px 0 0;
    font-size: 16px;
  }
  .aftersupport__body {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 27px;
  }
  .aftersupport__text {
    padding: 0 0;
    font-weight: 400;
  }
  .aftersupport__text p + p {
    margin-top: 4px;
  }
  .as-em {
    font-size: 19px;
  }
  .as-em--lg {
    font-size: 19px;
  }
  /* SPは写真1枚（右寄せ・テキスト上） */
  .aftersupport__photos {
    display: block;
    width: 100%;
    margin: 0;
    padding-bottom: 0;
    order: -1;
  }

  .aftersupport__catch {
    font-size: 15px;
  }
  /* 375pxは1状態にすぎない。345pxで焼き付けず左右余白基準で流動させる（CLAUDE.md「SPも1状態」） */
  .aftersupport__list {
    grid-template-columns: 1fr;
    justify-content: center;
    gap: 12px;
    margin-top: 36px;
    width: 100%;
    margin-inline: auto;
  }

  .aftersupport__photos img {
    max-width: calc(100% + 20px);
    width: calc(100% + 20px);
    transform: none;
  }

  .as-card {
    padding: 16px 18px 20px 17px;
  }
  .as-card .as-card__num {
    font-size: 32px;
    gap: 9px;
  }
  .as-card__title {
    margin-top: 11px;
    font-size: 20px;
    padding: 2px 9px;
  }
  .as-card p {
    margin-top: 9px;
    line-height: 1.75;
  }
  .aftersupport__summary {
    font-size: 18px;
    margin-top: 36px;
    line-height: 1.6;
  }
  .aftersupport .btn-badge-wrap--center {
    margin-top: 38px;
  }
  .aftersupport .btn-badge-wrap .btn-black {
    width: min(335px, 100%);
    max-width: none;
    min-height: 62px;
    font-size: 16px;
  }

  /* EVIDENCE */
  .evidence__inner {
    padding: 16px 0 0px;
  }
  .evidence__quals {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    /* 領域は親の .swipe-wrap がブリード。ここは内側余白のみ */
    padding-inline: 15px;
    scroll-padding-inline: 15px;
    /* 顔写真のせり出し-20pxがoverflowで上を切られるため、paddingで逃がして
       同量をmarginから引き、見た目の位置は維持（AUN r2 #45の16px間隔＝20-4） */
    padding-top: 20px;
    margin-top: 30px;
  }
  .evidence__quals::-webkit-scrollbar {
    display: none;
  }
  .qual-card {
    flex: 0 0 min(157px, 45%);
    scroll-snap-align: start;
    min-height: 210px;
    padding: 0 4px 18px;
  }
  .qual-card__photo {
    width: 125px;
    margin-top: -20px;
  }
  .qual-card__title {
    padding-top: 10px;
    font-size: 14px;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .qual-card__title::after {
    margin-top: 9px;
  }
  .qual-card p {
    margin-top: 9px;
    font-size: 12px;
    white-space: nowrap;
  }
  .evidence__inner .wm {
    margin-top: -44px;
    margin-bottom: -31px;
  }
  .evidence__inner .sec-title {
    font-size: 22px;
    letter-spacing: 0.05em;
  }
  .evidence__inner .sec-intro {
    font-size: 15px;
    line-height: 1.7;
  }
  .evidence__team {
    grid-template-columns: 1fr;
    padding: 30px 0;
    /* AUN r2 #46：ドット下の間隔を広く */
    margin-top: 32px;
  }
  .evidence__team-title {
    font-size: 18px;
    padding: 0 11px 0 17px;
  }
  .evidence__team-title + p {
    margin-left: 0;
    margin-right: 0;
    margin-top: 11px;
    padding-inline: 20px;
    font-size: 15px;
    line-height: 1.64;
  }
  .evidence__tags {
    margin-left: 0;
    margin-right: 0;
    margin-top: 10px;
    padding-inline: 20px;
    gap: 3px;
  }
  .evidence__tags li {
    font-size: 13px;
    padding: 2px 8px;
    border-radius: 1px;
  }
  /* SPは1列（写真はテキスト・タグの下） */
  .evidence__team {
    grid-template-columns: 1fr;
  }
  .evidence__team-photo {
    width: calc(100% - 40px);
    margin: 18px 20px 0;
    aspect-ratio: 309 / 215;
    object-fit: cover;
  }
  .evidence__h3 {
    margin-top: 28px;
    font-size: 18px;
    padding: 0 11px;
  }
  .evidence__seminar .evidence__h3 {
    margin-top: 0;
  }
  .evidence__seminar-intro {
    margin-top: 12px;
    font-size: 16px;
    line-height: 1.6;
    padding-right: 20px;
  }
  .evidence__carousel-wrap {
    margin-top: 24px;
  }
  .evidence__carousel {
    gap: 11px;
  }
  .evidence__seminar-link {
    margin-top: 30px;
  }
  .seminar-card {
    flex: 0 0 min(300px, 100%);
  }
  .seminar-card p {
    font-size: 11px;
    padding: 6px 0 0;
  }
  .seminar-card__title {
    font-size: 15px;
    padding: 13px 0 0;
  }
  .carousel-nav--overlay {
    display: none;
  }
  .evidence {
    padding: 64px 0 60px;
  }
  .evidence {
    background-image: url("../img/wave-top-sp.svg");
    background-size: 100% clamp(80px, 24vw, 120px);
  }
  .evidence__analisis {
    margin-top: 36px;
    padding: 30px 0;
  }
  .evidence__analisis .evidence__h3 {
    font-size: 18px;
    padding: 0 11px 0 17px;
  }
  .evidence__analisis-card {
    width: calc(100% - 40px);
    margin-top: 11px;
    border-radius: 11px;
    padding: 20px;
  }
  .evidence__analisis-logo {
    flex-direction: column;
    gap: 8px;
  }
  .evidence__analisis-logo img {
    width: 209px;
  }
  .evidence__analisis-label {
    font-size: 14px;
    text-align: left;
    justify-items: start;
  }
  .evidence__analisis-label small {
    font-size: 12px;
  }
  .evidence__analisis-desc {
    width: 100%;
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.6;
    text-align: left;
  }
  .evidence__analisis-text {
    width: calc(100% - 40px);
    margin-top: 16px;
    line-height: 1.6;
  }
  .evidence__analisis-text,
  .evidence__analisis-desc {
    font-size: 13px;
  }

  .evidence__analisis-tool img {
    width: min(240px, 72%);
  }
  .evidence__seminar-link,
  .evidence__analisis-link {
    margin-top: 16px;
  }

  .evidence__analisis-link {
    margin-right: 20px;
  }

  .evidence__analisis-link {
    width: 100%;
    padding-right: 20px;
  }

  .text-link--underline {
    display: block;
    width: auto;
    font-size: 14px;
  }

  /* VOICE / WORKS / BLOG：横スクロール＋ドット */
  .works .sp-dots {
    margin-top: 32px;
  }
  .works__inner .sec-intro {
    margin-top: 16px;
  }

  .voice__list,
  .works__list {
    display: flex;
    /* 領域は親の .swipe-wrap がビューポート全幅までブリード。ここは内側余白のみ */
    padding-inline: 20px;
    scroll-padding-inline: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    gap: 14px;
    margin-top: 30px;
  }
  .work-card {
    padding: 0 0 26px;
    border-radius: 20px 20px 20px 2px;
  }
  .work-card__shot img {
    aspect-ratio: 320 / 166;
  }
  .work-card__name {
    margin: 15px 18px 0;
    font-size: 18px;
    letter-spacing: 0.05em;
  }
  .work-card__site {
    margin: 3px 18px 0;
  }
  .work-card__tags {
    margin: 9px 18px 0;
  }
  .work-card__text {
    margin: 12px 18px 0;
    font-size: 14px;
  }
  .work-card .text-link {
    margin: 13px 18px 0 auto;
    gap: 7px;
  }
  .work-card .deco-chev-circle {
    width: 30px;
  }
  .voice__list::-webkit-scrollbar,
  .works__list::-webkit-scrollbar {
    display: none;
  }
  .voice-card,
  .work-card {
    flex: 0 0 min(320px, 100%);
    scroll-snap-align: start;
  }
  .voice {
    padding: 65px 0 52px;
  }
  .voice__inner .sec-intro {
    font-size: 15px;
    line-height: 1.7;
    margin-top: 16px;
  }
  .voice-card {
    padding: 21px 17px 28px;
    border-radius: 5px 52px 5px 5px;
  }
  .voice-card__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    min-height: 0;
  }
  .voice-card__logo {
    min-height: 65px;
    justify-content: flex-start;
  }
  .voice-card__name {
    order: 0;
    font-size: 17px;
    letter-spacing: 0.05em;
  }
  .voice-card__text {
    margin-top: 12px;
    line-height: 1.65;
  }
  /* AUN r2 #49：本文のコンテンツ（文のまとまり）間に余白を追加（ユーザー裁定） */
  .voice-card__text br {
    display: block;
    content: "";
    margin-top: 8px;
  }
  .voice-card .text-link {
    margin-top: 14px;
    gap: 10px;
    font-size: 14px;
  }
  .voice-card .deco-chev-circle {
    width: 30px;
  }
  .voice__note {
    display: none;
  }

  .sp-dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 20px;
  }

  .sp-dots span {
    width: 8px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(196, 196, 196, 0.6);
  }

  .sp-dots .is-active {
    background: #f0831e;
  }

  /* FLOW / SUPPORT（280:1852 / 280:1601 実値） */
  .flow__list {
    /* 中間幅の repeat(3) を打ち消してSPは1列（横溢れ防止） */
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin-top: 26px;
  }
  .flow-step {
    flex: 1 1 auto;
    width: 100%;
    border-radius: 5px 26px 5px 5px;
    padding: 19px 21px 19px 36px;
  }
  .flow-step__num {
    width: 45px;
    margin: -25px 0 -20px -42px;
  }
  .flow-step__main {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
  }
  .flow-step__icon {
    flex: 0 0 100px;
    min-width: 0;
  }
  .flow-step__txt {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
  }
  .flow-step__title {
    font-size: 20px;
    letter-spacing: 0;
  }
  .flow-step__title::after {
    margin-left: 0;
  }
  .flow-step__text {
    margin-top: 11px;
    text-align: left;
  }
  .flow-step--em .flow-step__title,
  .flow-step--em .flow-step__text {
    font-weight: 700;
  }

  .support__list {
    row-gap: 6px;
    width: 100%;
    margin-inline: auto;
    margin-top: 30px;
  }
  .support-card {
    flex: 1 1 100%;
    display: block;
    border-radius: 3px;
    padding: 15px 16px 15px 20px;
  }
  .support-card__title {
    width: auto;
    font-size: 18px;
  }
  .support-card p {
    padding-left: 0;
    margin-top: 4px;
    line-height: 1.6;
  }
  .support-card p::before {
    content: none;
  }
  .support__summary {
    grid-template-columns: 1fr;
    gap: 0;
    width: 100%;
    margin-inline: auto;
    min-height: 204px;
    margin-top: 26px;
    border-radius: 13px;
    padding: 22px 20px 0;
  }
  .support__summary p {
    font-size: 16px;
    padding: 0;
    line-height: 1.7;
  }
  .support__summary .summary-band__people {
    justify-self: stretch;
    justify-content: center;
    align-self: end;
    margin: 4px 0 0;
  }
  .support__summary .support__person {
    width: min(236px, 80%);
  }

  /* FAQ */
  .faq {
    padding: 65px 0 52px;
  }
  .faq__inner {
    width: calc(100% - 40px);
  }
  .faq__inner .wm {
    font-family: var(--font-en2);
    font-size: 50px;
    font-weight: 300;
    margin-top: -44px;
    margin-bottom: -31px;
  }
  .faq__inner .sec-title {
    font-size: 22px;
    line-height: 1.6;
  }
  .faq__list {
    gap: 12px;
    margin-top: 30px;
  }
  .faq__q {
    font-size: 15px;
    line-height: 1.6;
    padding: 14px 52px 14px 12px;
    gap: 12px;
    border-radius: 8px;
    align-items: flex-start;
  }
  .faq__mark {
    width: 29px;
  }
  .service-card__num {
    font-size: 14px;
  }
  .flow-step__num {
    font-size: 18px;
  }
  .deco-faq-chev {
    right: 13px;
    width: 11px;
    height: 11px;
  }
  .faq__item.is-open .faq__a-wrap {
    margin-top: 6px;
  }
  .faq__a {
    padding: 0 15px 0 12px;
    gap: 12px;
    border-radius: 8px;
  }
  .faq__item.is-open .faq__a {
    padding: 14px 15px 14px 12px;
  }
  .faq__a p {
    padding-top: 3px;
    font-size: 14px;
    line-height: 1.6;
  }

  /* BLOG */
  .blog {
    --band-gap: 0px;
    --inner-left: 0px;
    margin-left: 0;
    border-radius: 0 40px 40px 0;
    padding: 65px 0 52px;
  }
  .blog__inner {
    width: 100%;
    margin-left: 0;
    padding-inline: 20px;
    text-align: center;
  }
  .blog__inner .wm {
    font-family: var(--font-en2);
    font-size: 50px;
    font-weight: 300;
    margin-top: -44px;
    margin-bottom: -31px;
  }
  .blog__inner .sec-title {
    font-size: 22px;
  }
  .blog__inner .sec-intro {
    font-size: 15px;
    line-height: 1.7;
  }
  .blog__carousel-wrap {
    margin-top: 30px;
    margin-inline: -20px;
  }
  .blog__list {
    gap: 10px;
    margin-right: 0;
    padding-inline: 20px;
    scroll-padding-inline: 20px;
  }
  .blog-card {
    flex: 0 0 min(320px, calc(100% - 55px));
    border-radius: 13px;
    text-align: left;
  }
  .blog-card__meta {
    gap: 8px;
  }
  .blog-card .deco-chev-circle {
    width: 30px;
  }
  .blog .sp-dots {
    margin-top: 28px;
  }
  .blog__more {
    display: flex;
    justify-content: flex-end;
    margin-top: 29px;
    padding-right: 0;
  }
  .blog__more .text-link {
    font-size: 14px;
    gap: 10px;
  }
  .blog__more .deco-chev-circle {
    width: 30px;
  }

  /* footer */
  .site-footer__inner {
    flex-direction: column;
    gap: 20px;
    padding: 43px 0 63px;
    width: calc(100% - 40px);
  }
  .site-footer__nav {
    padding-top: 0;
    margin-left: 0;
  }
  .site-footer__nav ul {
    gap: 8px;
  }
  .site-footer__info {
    width: 100%;
    padding-top: 14px;
    justify-items: start;
  }
  .site-footer__name,
  .site-footer__address {
    line-height: 1.6;
  }
  .site-footer__hp {
    margin-top: 11px;
  }
  .site-footer__hp .deco-chev-circle {
    width: 29px;
  }

  .site-footer__logo img {
    width: 252px;
  }
  .site-footer__map {
    margin-top: 28px;
    width: 100%;
  }
  .site-footer__map img,
  .site-footer__map iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 335 / 161;
  }
  .site-footer__copyright {
    padding: 20px 15px 82px;
    font-size: 10px;
  }

  /* SP下部固定CTA */
  .fixed-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: -80px;
    z-index: 80;
    display: flex;
    justify-content: center;
    gap: 1px;
    padding: 0 1px;
    transition: bottom 0.3s;
  }

  .fixed-cta.is-visible {
    bottom: 0;
  }

  /* Figma 280:2860：各186×60・gap1px・左右1px。幅は焼き付けずflexで按分 */
  .fixed-cta__dl,
  .fixed-cta__consult {
    display: grid;
    place-content: center;
    min-height: 60px;
    padding-top: 2px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    border: 1px solid #111;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    white-space: nowrap;
  }

  .fixed-cta__dl {
    flex: 1 1 0;
    background: #fff;
    color: #2c2c2c;
  }

  .fixed-cta__consult-wrap {
    position: relative;
    flex: 1 1 0;
    display: flex;
  }

  .fixed-cta__consult {
    flex: 1;
    background: #242424;
    color: #fff;
  }

  /* badge：ピル12px #004ca9・py3 px10・三角12×11（ピル中心の12px右・重なり6px）・
     ボタン上端-7.5px・drop-shadow 0 2px 5px（Figma 280:2866） */
  .fixed-cta .deco-badge-tri {
    width: 12px;
    height: 7px;
    bottom: -6px;
    left: calc(50%);
  }

  .fixed-cta .btn-badge--sm {
    position: absolute;
    left: 50%;
    top: -7.5px;
    translate: -50% 0;
    margin-bottom: 0;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.1;
    padding: 3px 10px;
    opacity: 1;
  }

  .fixed-cta .btn-badge--sm {
    color: #004ca9;
  }

  /* 公式素材のSP背景変種 */
  .cta--consult {
    border-radius: 0px;
    background-image: url("../img/cta-contact_bg-sp.jpg");
    background-color: #fff;
    background-size: cover;
  }

  .cta::before {
    background: #fff;
  }
  .cta--final {
    background-image: url("../img/footer-ctabg-sp.png");
  }
  .aftersupport {
    background-image: url("../img/support-bg-sp.jpg");
    background-size: 100% auto;
    background-position: center top;
  }

  /* AUN #41/42：セミナーカルーセルはSPでもPCと同じ矢印を表示。
     SPはボタン40pxに対し帯の左余白が14pxしかないため、画面外へ出さず端に合わせる */
  .evidence__carousel-wrap .carousel-nav--overlay {
    --nav-half: 14px;
    display: flex;
    margin: 59px 0 0 calc(-1 * var(--nav-half));
  }

  .evidence__carousel-wrap .carousel-btn img {
    width: 40px;
    height: 40px;
  }
}

/* 360px未満（iPhone SE 1st等）はリードが1行に収まらないため、さらに一段小さく
   （899pxブロックのclampを上書きするため末尾に置く。ユーザー指示 2026-08-26） */
@media (max-width: 359px) {
  .site-header__lead {
    font-size: 5.6px;
  }
}
