@charset "UTF-8";
/* ============================================
   premium.css — 凄腕プロフェッショナルデザインチーム
   全セクション最高品質アップグレード
   M3 / Material You インスパイア
   ============================================ */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   0. グローバル・ベース強化
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* スムーススクロール */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

/* テキストレンダリング最高品質 */
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt" 1, "kern" 1;
  overflow-x: hidden;
}

/* セレクション */
::selection {
  background: rgba(0, 133, 111, 0.15);
  color: var(--color-text);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   1. ヘッダー: グラスモーフィズム強化
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-header {
  transition: background var(--duration-medium) var(--ease-smooth),
              box-shadow var(--duration-medium) var(--ease-smooth),
              backdrop-filter var(--duration-medium) var(--ease-smooth);
}

.p-header__min {
  background: rgba(255, 255, 255, 0.97) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
}

/* ナビリンク: インタラクティブ下線 */
.p-gnav__link {
  position: relative;
  transition: color var(--duration-short) var(--ease-smooth);
}

.p-gnav__link::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--gradient-accent-line);
  border-radius: 1px;
  transition: width var(--duration-medium) var(--ease-spring),
              left var(--duration-medium) var(--ease-spring);
}

.p-gnav__link:hover::after,
.p-gnav__link[aria-current="page"]::after {
  width: 100%;
  left: 0;
}

/* ナビボタン: M3 Filled Button スタイル */
.p-gnav__btn {
  transition: transform var(--duration-short) var(--ease-spring),
              box-shadow var(--duration-short) var(--ease-smooth) !important;
}

.p-gnav__btn:hover {
  transform: translateY(-1px) scale(1.02);
  box-shadow: var(--elevation-2);
}

.p-gnav__btn:active {
  transform: translateY(0) scale(0.98);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   2. プログレスバー: グラデーション＋パーティクル感
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-progress-bar {
  height: 2px;
  background: var(--gradient-accent-line) !important;
  box-shadow: none;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   3. ヒーロー: プレミアムファーストビュー
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ヒーロー見出し: テキストシャドウで奥行き */
@media screen and (min-width: 640px) {
  .p-hero__heading span {
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 4px rgba(0, 0, 0, 0.04);
    border-radius: 2px;
    transition: transform var(--duration-medium) var(--ease-spring),
                box-shadow var(--duration-medium) var(--ease-smooth);
  }

  .p-hero__heading span:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
  }
}

/* ヒーロー CTAボタン: パルスグロー */
.p-hero__btn {
  position: relative;
  overflow: hidden;
  transition: transform var(--duration-short) var(--ease-spring),
              box-shadow var(--duration-short) var(--ease-smooth) !important;
}

.p-hero__btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.2) 0%, transparent 50%);
  opacity: 0;
  transition: opacity var(--duration-short);
}

.p-hero__btn:hover {
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow: var(--shadow-colored-cta) !important;
}

.p-hero__btn:hover::before {
  opacity: 1;
}

.p-hero__btn:active {
  transform: translateY(0) scale(0.98) !important;
}

/* SP専用ポイントカード */
.p-hero-sp-points__card {
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  box-shadow: var(--elevation-2) !important;
  transition: transform var(--duration-medium) var(--ease-spring);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   4. トラストバー: プレミアム質感
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-trustbar {
  background: var(--surface-container-low) !important;
  border-bottom: none !important;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,0.04);
  position: relative;
}

.p-trustbar__item {
  transition: background var(--duration-short) var(--ease-smooth);
  border-radius: var(--radius-sm);
}

.p-trustbar__item:hover {
  background: var(--state-hover);
}

.p-trustbar__icon {
  background: linear-gradient(135deg, var(--color-primary-bg), rgba(0, 133, 111, 0.08)) !important;
  box-shadow: var(--shadow-inner-glow);
  transition: transform var(--duration-short) var(--ease-spring),
              box-shadow var(--duration-short) var(--ease-smooth);
}

.p-trustbar__item:hover .p-trustbar__icon {
  transform: scale(1.08);
  box-shadow: var(--shadow-colored-primary);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   5. ペインポイント: プレミアムダークセクション
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-painpoint {
  background: var(--gradient-dark) !important;
  position: relative;
  overflow: hidden;
}

/* メッシュグラデーション背景 */
.p-painpoint::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 15% 30%, rgba(230, 62, 59, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 70%, rgba(0, 133, 111, 0.06) 0%, transparent 50%);
  pointer-events: none;
}

.p-painpoint__item {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: var(--radius-lg) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  position: relative;
  overflow: hidden;
  transition: transform var(--duration-medium) var(--ease-spring),
              background var(--duration-medium) var(--ease-smooth),
              border-color var(--duration-medium) var(--ease-smooth) !important;
}

/* M3ステートレイヤー的ホバー */
.p-painpoint__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(230, 62, 59, 0.06) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--duration-medium);
  border-radius: inherit;
}

.p-painpoint__item:hover {
  transform: translateY(-4px) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(230, 62, 59, 0.2) !important;
}

.p-painpoint__item:hover::before {
  opacity: 1;
}

.p-painpoint__icon {
  background: rgba(230, 62, 59, 0.12) !important;
  box-shadow: 0 0 0 6px rgba(230, 62, 59, 0.06);
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth);
}

.p-painpoint__item:hover .p-painpoint__icon {
  transform: scale(1.1);
  box-shadow: 0 0 0 10px rgba(230, 62, 59, 0.08), 0 4px 16px rgba(230, 62, 59, 0.2);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   6. 特徴セクション: カード＆画像強化
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-features {
  position: relative;
  overflow: hidden;
}

/* メッシュバックグラウンド */
.p-features::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gradient-mesh-1), var(--gradient-mesh-2);
  pointer-events: none;
  z-index: 0;
}

.c-section__2columns {
  transition: transform var(--duration-medium) var(--ease-smooth);
}

/* 画像ボックス: プレミアムシャドウとホバー */
.p-features__imgbox img {
  transition: transform var(--duration-long) var(--ease-smooth),
              box-shadow var(--duration-long) var(--ease-smooth) !important;
  border-radius: var(--radius-md) !important;
}

.c-section__2columns:hover .p-features__imgbox img {
  transform: scale(1.02);
  box-shadow: var(--elevation-3) !important;
}

/* 装飾ドット: アニメーション */
.c-dot {
  transition: transform var(--duration-long) var(--ease-smooth);
}

.c-section__2columns:hover .c-dot {
  transform: scale(1.15) rotate(5deg);
}

/* 見出しインデックス: テキストグラデーション強化 */
.c-heading__index--inner {
  background: linear-gradient(135deg, #00856f 0%, #00a293 40%, #53b332 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   7. メディアカード（求人サービス）: M3 Card
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* メディアカードのスタイルはenhancements.cssで統合管理 */
/* anchorにoverflow:hiddenを付けるとカードシャドウが切れるため削除 */
.p-media__anchor {
  border-radius: 0 !important;
  overflow: visible !important;
  position: relative;
}

/* ホバー時のカード持ち上げはanchorではなくinnerに適用 */
.p-media__anchor:hover .p-media__inner {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover) !important;
}

.p-media__anchor:hover .p-media__link {
  transform: translateX(4px);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   8. 運用手法カード: グラスモーフィズム＋グラデーション
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-operation {
  position: relative;
  overflow: hidden;
}

.p-operation__inner {
  position: relative;
  overflow: hidden;
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth) !important;
}

/* 上部グラデーションライン */
.p-operation__inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--gradient-accent-line);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  opacity: 0;
  transition: opacity var(--duration-medium);
}

.p-operation__card:hover .p-operation__inner {
  transform: translateY(-6px) !important;
  box-shadow: var(--shadow-card-hover) !important;
}

.p-operation__card:hover .p-operation__inner::before {
  opacity: 1;
}

/* ボタン: M3 Tonal Button */
.p-operation__btn {
  transition: transform var(--duration-short) var(--ease-spring),
              box-shadow var(--duration-short) var(--ease-smooth),
              background var(--duration-short) var(--ease-smooth) !important;
}

.p-operation__btn:hover {
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow: var(--shadow-colored-secondary) !important;
}

.p-operation__btn:active {
  transform: translateY(0) scale(0.98) !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   9. 数字実績（Stats）: 超プレミアム
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-stats {
  background: var(--gradient-surface) !important;
  position: relative;
  overflow: hidden;
}

/* メッシュ装飾 */
.p-stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 10% 20%, rgba(83, 179, 50, 0.04) 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(0, 133, 111, 0.04) 0%, transparent 40%);
  pointer-events: none;
}

.p-stats__card {
  background: var(--surface-default) !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: var(--elevation-1) !important;
  position: relative;
  overflow: hidden;
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth),
              border-color var(--duration-medium) var(--ease-smooth) !important;
}

/* 上部アクセントライン: 常時表示に変更 */
.p-stats__card::before {
  opacity: 1 !important;
  height: 3px !important;
  background: var(--gradient-accent-line) !important;
}

/* ホバー: M3 Elevated Card */
.p-stats__card:hover {
  transform: translateY(-8px) scale(1.02) !important;
  box-shadow: var(--shadow-card-hover) !important;
  border-color: rgba(0, 133, 111, 0.12) !important;
}

/* アイコン: グラデーション背景 + ホバーアニメ */
.p-stats__icon {
  background: linear-gradient(135deg, rgba(0, 133, 111, 0.1), rgba(83, 179, 50, 0.1)) !important;
  border-radius: 14px !important;
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth);
}

.p-stats__card:hover .p-stats__icon {
  transform: scale(1.1) rotate(-3deg);
  box-shadow: 0 4px 16px rgba(0, 133, 111, 0.15);
}

/* 数字: グラデーションテキスト */
.p-stats__number {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-secondary-vivid) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
}

.p-stats__number span {
  -webkit-text-fill-color: var(--color-text-muted);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   10. 導入事例: カルーセル強化
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ロゴリスト: グリッドからの洗練 */
.p-logolist__item span {
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth);
  border-radius: var(--radius-sm);
}

.p-logolist__item span:hover {
  transform: scale(1.05);
  box-shadow: var(--elevation-2);
}

/* 事例カード: 高さ統一 + プレミアムホバー */
.c-caseindex__item {
  height: 100% !important;
}

.c-caseindex__item .c-list__link {
  position: relative;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth) !important;
}

.c-caseindex__item .c-list__inner {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

.c-caseindex__item .c-list__excerpt {
  flex: 1 !important;
}

.c-caseindex__item .c-btn__interview {
  margin-top: auto !important;
}

/* Swiperスライド: 高さ統一 */
.swipercarousel .swiper-wrapper {
  align-items: stretch !important;
}

.swipercarousel .swiper-slide {
  height: auto !important;
}

.c-caseindex__item .c-list__link::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--gradient-accent-line);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--duration-medium) var(--ease-spring);
  z-index: 2;
}

.c-caseindex__item .c-list__link:hover {
  transform: translateY(-6px) !important;
  box-shadow: var(--shadow-card-hover) !important;
}

.c-caseindex__item .c-list__link:hover::before {
  transform: scaleX(1);
}

/* 事例画像: ズームイン */
.c-caseindex__imgbox {
  transition: transform var(--duration-long) var(--ease-smooth) !important;
}

.c-caseindex__item .c-list__link:hover .c-caseindex__imgbox {
  transform: scale(1.05);
}

/* 「この事例を見る」ボタン: 矢印アニメ */
.c-btn__interview {
  transition: transform var(--duration-short) var(--ease-spring),
              letter-spacing var(--duration-short) var(--ease-smooth) !important;
}

.c-caseindex__item .c-list__link:hover .c-btn__interview {
  letter-spacing: 0.08em;
}

/* Swiperナビゲーション: 洗練 */
.swiper-button-prev,
.swiper-button-next {
  transition: transform var(--duration-short) var(--ease-spring),
              box-shadow var(--duration-short) var(--ease-smooth) !important;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
  transform: scale(1.1) !important;
  box-shadow: var(--elevation-2) !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   11. CTAセクション: CV最大化デザイン
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.c-btn__cv {
  position: relative !important;
  overflow: hidden !important;
}

/* アニメーテッドグラデーション背景 */
.c-btn__cv::before {
  content: "";
  position: absolute;
  inset: -50%;
  background:
    radial-gradient(circle at 30% 50%, rgba(230, 62, 59, 0.15) 0%, transparent 50%),
    radial-gradient(circle at 70% 50%, rgba(0, 133, 111, 0.1) 0%, transparent 50%);
  animation: ctaMeshFloat 15s ease-in-out infinite;
  pointer-events: none;
}

@keyframes ctaMeshFloat {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(2%, -2%) rotate(1deg); }
  66% { transform: translate(-2%, 2%) rotate(-1deg); }
}

/* CTAボタン: パルスグローアニメーション */
.c-btn__cvbtn {
  position: relative !important;
  overflow: hidden !important;
  z-index: 1;
}

/* シャインエフェクト */
.c-btn__cvbtn::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  transition: none;
  animation: btnShine 4s ease-in-out infinite;
}

@keyframes btnShine {
  0%, 70%, 100% { left: -100%; opacity: 0; }
  85% { left: 150%; opacity: 1; }
}

.c-btn__cvbtn:hover {
  transform: translateY(-3px) scale(1.03) !important;
  box-shadow: var(--shadow-colored-cta), 0 0 0 4px rgba(230, 62, 59, 0.1) !important;
}

.c-btn__cvbtn:active {
  transform: translateY(0) scale(0.98) !important;
}

/* マイクロコピー: 信頼性強化 */
.c-btn__microcopy {
  position: relative;
  z-index: 1;
}

/* コンテキストコピー */
.c-btn__cv-context {
  position: relative;
  z-index: 1;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   12. 料金セクション: プレミアムプライシング
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-price__section {
  transition: box-shadow var(--duration-medium) var(--ease-smooth);
}

.p-price__section:hover {
  box-shadow: var(--elevation-3);
}

/* 料金数字: グラデーション */
.p-price__price {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* オプションカード: ホバー効果 */
.p-option__item {
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth);
}

.p-option__item:hover {
  transform: translateY(-4px);
  box-shadow: var(--elevation-3);
}

/* オプション価格: プレミアム表示 */
.p-option__price {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-secondary-vivid) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   13. 掲載フロー: タイムライン洗練
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-flow__item {
  transition: transform var(--duration-medium) var(--ease-spring) !important;
}

.p-flow__item:hover {
  transform: translateY(-4px) !important;
}

/* ステップ番号: グラデーション円 */
.p-flow__num p {
  transition: transform var(--duration-medium) var(--ease-spring),
              box-shadow var(--duration-medium) var(--ease-smooth);
}

.p-flow__item:hover .p-flow__num p {
  transform: scale(1.08);
  box-shadow: var(--shadow-colored-secondary);
}

/* フローアイコン: ホバーアニメ */
.p-flow__iconbox {
  transition: transform var(--duration-medium) var(--ease-spring);
}

.p-flow__item:hover .p-flow__iconbox {
  transform: scale(1.1);
}

/* 最終ステップ（掲載）: 特別強調 */
.p-flow__item--05 .p-flow__inner {
  position: relative;
  overflow: hidden;
}

.p-flow__item--05 .p-flow__inner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(0, 133, 111, 0.04), transparent 70%);
  animation: flowPulse 3s ease-in-out infinite;
  pointer-events: none;
}

@keyframes flowPulse {
  0%, 100% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
}

/* STEP5「掲載開始」: STEP1〜4と完全統一（PC/SP共通） */

/* 背景色のみダーク、それ以外は通常のp-flow__innerスタイルを継承 */
.p-flow__inner--05 {
  background: #2a2d2d !important;
}

/* 元CSSの ::after display:none を上書きしない（最終ステップなので矢印不要のまま） */

/* shoulder白文字 */
.p-flow__shoulder--05 {
  color: rgba(255, 255, 255, 0.7) !important;
}

/* アイコン白 */
.p-flow__iconbox--05 {
  height: auto !important;
}

.p-flow__iconbox--05 svg {
  stroke: #ffffff !important;
}

/* プロセス名: 白カプセルバー（STEP1〜4と同じ） */
.p-flow__process--05 {
  height: 28px !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: #2a2d2d !important;
  background: #fff !important;
  border-radius: 14px !important;
  letter-spacing: 0.025em !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

@media screen and (min-width: 769px) {
  .p-flow__process--05 {
    font-size: 1.7rem !important;
  }

  /* フローSTEP5: PC時の高さ・幅をSTEP1〜4と揃える */
  .p-flow__cover {
    display: flex !important;
    align-items: stretch !important;
    height: 100% !important;
    padding: 55px 0 0 15px !important;
  }

  .p-flow__inner--05 {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    flex: 1 !important;
    width: 100% !important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   14. FAQ: 超洗練アコーディオン
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-faq {
  position: relative;
  overflow: hidden;
}

/* 背景メッシュ */
.p-faq::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(0, 133, 111, 0.03) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(83, 179, 50, 0.03) 0%, transparent 50%);
  pointer-events: none;
}

.p-faq__item {
  border-radius: var(--radius-lg) !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: var(--elevation-1) !important;
  transition: box-shadow var(--duration-medium) var(--ease-smooth),
              transform var(--duration-medium) var(--ease-spring),
              border-color var(--duration-medium) var(--ease-smooth) !important;
}

.p-faq__item:hover {
  box-shadow: var(--elevation-2) !important;
  transform: translateY(-2px);
  border-color: rgba(0, 133, 111, 0.12) !important;
}

.p-faq__item.is-open {
  box-shadow: var(--elevation-3) !important;
  border-color: rgba(0, 133, 111, 0.2) !important;
}

/* Qバッジ: グラデーション */
.p-faq__question::before {
  background: var(--gradient-hero) !important;
  box-shadow: 0 2px 8px rgba(0, 133, 111, 0.2);
  transition: transform var(--duration-short) var(--ease-spring),
              box-shadow var(--duration-short) var(--ease-smooth);
}

.p-faq__item:hover .p-faq__question::before {
  transform: scale(1.1);
  box-shadow: 0 4px 12px rgba(0, 133, 111, 0.3);
}

/* 矢印: スムーズ回転 */
.p-faq__question::after {
  transition: transform var(--duration-medium) var(--ease-spring) !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   15. フッター: モダンプレミアム
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-footer {
  position: relative;
  overflow: hidden;
}

/* 上部アクセントグラデーションライン */
.p-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--gradient-accent-line);
}

/* フッターリンク: ホバーアニメ */
.p-footer__maplink {
  position: relative;
  transition: color var(--duration-short) var(--ease-smooth) !important;
}

.p-footer__maplink::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--color-secondary);
  transition: width var(--duration-medium) var(--ease-spring);
}

.p-footer__maplink:hover::after {
  width: 100%;
}

.p-footer__maplink:hover {
  color: var(--color-secondary) !important;
}

/* フッターロゴ: ホバー */
.p-footer__logo {
  transition: transform var(--duration-medium) var(--ease-spring),
              opacity var(--duration-short) var(--ease-smooth);
}

.p-footer__logo:hover {
  transform: scale(1.05);
  opacity: 0.85;
}

/* 認証マーク: ホバー */
.p-footer__icon {
  transition: transform var(--duration-medium) var(--ease-spring) !important;
}

.p-footer__icon:hover {
  transform: scale(1.08);
}

/* コピーライト */
.p-footer__copy {
  position: relative;
}

.p-footer__copy svg {
  transition: transform var(--duration-medium) var(--ease-spring);
}

.p-footer__copy:hover svg {
  transform: rotate(360deg);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   16. モバイルスティッキーCTA: 超洗練
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.p-sticky-cta {
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-top: none !important;
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08) !important;
  padding: 12px 16px env(safe-area-inset-bottom, 12px) !important;
}

.p-sticky-cta__primary {
  box-shadow: var(--shadow-colored-cta) !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
}

.p-sticky-cta__primary:active {
  transform: scale(0.97);
}

.p-sticky-cta__secondary {
  border: 2px solid var(--color-secondary) !important;
  color: var(--color-secondary) !important;
  font-weight: 700 !important;
}

.p-sticky-cta__secondary:active {
  transform: scale(0.97);
  background: var(--state-pressed);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   17. トップへ戻るボタン: プレミアム
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.c-btn__fixedbtn {
  background: var(--color-text, #2a2d2d) !important;
  color: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18) !important;
  transition: transform var(--duration-short) var(--ease-spring),
              box-shadow var(--duration-short) var(--ease-smooth),
              background var(--duration-short) var(--ease-smooth) !important;
}

.c-btn__fixedbtn:hover {
  transform: translateY(-4px) scale(1.05) !important;
  box-shadow: 0 8px 24px rgba(0, 133, 111, 0.25) !important;
  background: var(--color-secondary, #00856f) !important;
  color: #ffffff !important;
}

.c-btn__fixedbtn:active {
  transform: translateY(0) scale(0.95) !important;
}

.c-btn__fixedbtn svg {
  transition: transform var(--duration-short) var(--ease-spring);
}

.c-btn__fixedbtn:hover svg {
  transform: translateY(-2px);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   18. セクション見出し: プレミアムタイポグラフィ
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.c-heading__primary {
  position: relative;
}

/* 下線: グラデーション化 */
.c-heading__primary::after {
  background: var(--gradient-accent-line) !important;
  height: 3px !important;
  border-radius: 2px !important;
}

/* グラデーション見出し強化 */
.c-heading__gradation {
  background: linear-gradient(135deg, #00856f 0%, #00a293 40%, #53b332 100%) !important;
  padding: 16px 24px !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-inner-glow) !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   19. 汎用インタラクション強化
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* リンクホバー: なめらか（本文リンクのみ） */
.c-text__index a,
.p-faq__answer a,
.p-footer__info a {
  transition: color var(--duration-short) var(--ease-smooth);
}

/* 画像フェードイン: animations.jsがあるページのみ有効化 */
/* JSが .js-lazy-fade をbodyに付与した場合のみopacity:0にする */
.js-lazy-fade img[loading="lazy"]:not(.is-loaded) {
  opacity: 0;
  transition: opacity 0.35s ease;
}

.js-lazy-fade img[loading="lazy"].is-loaded {
  opacity: 1;
}

/* JSなしのページ: 全画像を常に表示 */
img {
  opacity: 1;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   20. カスタムスクロールバー（PC）
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* カスタムスクロールバー: html直下のみに限定（ヘッダー等に影響させない） */
@media screen and (min-width: 768px) {
  html::-webkit-scrollbar {
    width: 8px;
  }

  html::-webkit-scrollbar-track {
    background: var(--surface-container-low);
  }

  html::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--color-secondary), var(--color-primary));
    border-radius: 4px;
  }

  html::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, var(--color-secondary-dark), var(--color-primary-dark));
  }

  /* Firefox */
  html {
    scrollbar-width: thin;
    scrollbar-color: var(--color-secondary) var(--surface-container-low);
  }
}

/* ヘッダー内のスクロールバーを非表示 */
.p-header,
.p-header *,
.l-header,
.l-header * {
  scrollbar-width: none;
}
.p-header::-webkit-scrollbar,
.p-header *::-webkit-scrollbar,
.l-header::-webkit-scrollbar,
.l-header *::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   21. 高度なアクセシビリティ
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* フォーカスリング: M3スタイル */
:focus-visible {
  outline: 3px solid var(--color-secondary) !important;
  outline-offset: 3px !important;
  border-radius: 4px;
}

/* アニメーション無効設定 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .c-btn__cvbtn::after {
    animation: none !important;
  }
}

/* ハイコントラストモード */
@media (prefers-contrast: high) {
  .p-painpoint__item {
    border: 2px solid rgba(255, 255, 255, 0.5) !important;
  }

  .p-stats__card {
    border: 2px solid var(--color-text) !important;
  }

  .p-faq__item {
    border: 2px solid var(--color-text) !important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   22. SP（モバイル）プレミアム体験
   凄腕プロフェッショナルデザインチーム — SP面全面リデザイン
   M3 Mobile Guidelines 準拠
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

@media screen and (max-width: 767px) {

  /* ─── グローバル: SP基盤 ─── */
  body {
    font-size: 1.5rem !important;
    line-height: 1.75 !important;
    -webkit-tap-highlight-color: rgba(0, 133, 111, 0.1);
  }

  /* タッチターゲット最小44px (M3準拠) — ページネーション等の小要素は除外 */
  a, button, [role="button"], input, select, textarea {
    min-height: 44px;
  }

  .swiper-pagination-bullet,
  .swiper-pagination-bullet-active {
    min-height: auto !important;
    height: 10px !important;
    width: 10px !important;
  }

  /* セクション間の余白リズム統一 */
  .l-section {
    padding: 48px 0 !important;
  }

  /* コンテナ左右余白: 画面端から16px確保 */
  .l-container__inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* ─── ヘッダー: SP最適化 ─── */
  .p-header {
    padding: 0 !important;
  }

  .p-header__logo {
    padding: 10px 16px 8px !important;
  }

  .p-header__logo svg {
    height: 28px !important;
    width: auto !important;
  }

  /* ヘッダー & ハンバーガー: ロゴと同じ高さに揃える */
  .p-header {
    height: 56px !important;
  }

  .p-gnav__toggle {
    height: 56px !important;
    padding: 7px 12px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    -webkit-tap-highlight-color: transparent;
  }

  /* 内部divを相対配置のまま縮小 */
  .p-gnav__toggle div {
    position: relative !important;
    width: 28px !important;
    height: 34px !important;
  }

  /* 3本線 */
  .p-gnav__toggle span {
    height: 3px !important;
    width: 28px !important;
  }

  .p-gnav__toggle span:nth-child(1) {
    top: 0 !important;
  }

  .p-gnav__toggle span:nth-child(2) {
    top: 8px !important;
  }

  .p-gnav__toggle span:nth-child(3) {
    top: 16px !important;
  }

  /* "menu"テキスト */
  .p-gnav__toggle p {
    top: 22px !important;
    font-size: 0.9rem !important;
  }

  /* 開いた状態のバーアニメーション修正 */
  .p-gnav__open .p-gnav__toggle span:nth-child(1) {
    top: 8px !important;
    transform: rotate(45deg) !important;
  }

  .p-gnav__open .p-gnav__toggle span:nth-child(2) {
    opacity: 0 !important;
  }

  .p-gnav__open .p-gnav__toggle span:nth-child(3) {
    top: 8px !important;
    transform: rotate(-45deg) !important;
  }

  .p-gnav__toggle span {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  }

  /* SPメニュー: フルスクリーンオーバーレイ */
  .p-header__gnav {
    background: #ffffff !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding-bottom: 24px !important;
    overflow-y: auto !important;
  }

  /* ナビリスト */
  .p-gnav__main {
    padding: 0 !important;
  }

  /* ナビリンク項目: 統一タッチターゲット */
  .p-gnav__item {
    position: relative !important;
    border-bottom: 1px solid var(--color-border, #e0e3e3) !important;
    border-top: none !important;
    margin: 0 !important;
  }

  .p-gnav__item:first-child {
    border-top: none !important;
  }

  /* 右矢印アイコン（Font Awesome）: 色統一 */
  .p-gnav__item::after {
    color: var(--color-text-muted, #717575) !important;
    right: 16px !important;
    font-size: 1.4rem !important;
  }

  .p-gnav__link {
    font-size: 1.55rem !important;
    font-weight: 600 !important;
    padding: 0 24px !important;
    min-height: 56px !important;
    display: flex !important;
    align-items: center !important;
    color: var(--color-text, #2a2d2d) !important;
    transition: background 0.2s ease !important;
    border-bottom: none !important;
  }

  .p-gnav__link:active {
    background: var(--state-pressed, rgba(0, 133, 111, 0.16)) !important;
  }

  /* ─── SPメニュー内CTAボタン ─── */
  .p-gnav__item--btn {
    border-bottom: none !important;
    padding: 0 20px !important;
    margin-top: 8px !important;
  }

  /* ボタン項目の右矢印を非表示 */
  .p-gnav__item--btn::after {
    display: none !important;
  }

  .p-gnav__btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 52px !important;
    border-radius: var(--radius-md, 10px) !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    margin: 0 !important;
    padding: 0 16px !important;
    color: #ffffff !important;
    text-decoration: none !important;
  }

  /* SVGアイコン: 白色で表示 */
  .p-gnav__btn svg {
    width: 18px !important;
    height: 18px !important;
    stroke: #ffffff !important;
    flex-shrink: 0 !important;
  }

  /* 資料請求ボタン: サーモンピンク */
  .p-gnav__btn--document {
    background: #ff8280 !important;
  }

  .p-gnav__btn--document:active {
    background: #e06e6c !important;
  }

  /* お問い合わせボタン: CTA赤 */
  .p-gnav__btn:not(.p-gnav__btn--document) {
    background: var(--color-cta, #e63e3b) !important;
  }

  .p-gnav__btn:not(.p-gnav__btn--document):active {
    background: var(--color-cta-hover, #cc2b28) !important;
  }

  /* ─── トラストバー: SP 2×2 グリッド改善 ─── */
  .p-trustbar {
    padding: 12px 8px !important;
  }

  .p-trustbar__inner {
    gap: 8px !important;
  }

  .p-trustbar__item {
    min-height: 48px;
    font-size: 1.1rem !important;
    padding: 8px 6px !important;
    gap: 6px !important;
    border-radius: var(--radius-sm, 6px);
  }

  .p-trustbar__icon {
    width: 28px !important;
    height: 28px !important;
    border-radius: 6px !important;
  }

  .p-trustbar__icon svg {
    width: 15px !important;
    height: 15px !important;
  }

  .p-trustbar__number {
    font-size: 1.4rem !important;
  }

  /* ─── ペインポイント: SPカード改善 ─── */
  .p-painpoint {
    padding: 40px 0 !important;
  }

  .p-painpoint__heading {
    font-size: clamp(1.6rem, 5vw, 2.2rem) !important;
    margin-bottom: 28px !important;
  }

  .p-painpoint__list {
    gap: 12px !important;
  }

  .p-painpoint__item {
    padding: 20px 16px !important;
    border-radius: var(--radius-md, 10px) !important;
  }

  .p-painpoint__icon {
    width: 44px !important;
    height: 44px !important;
    margin-bottom: 12px !important;
  }

  .p-painpoint__icon svg {
    width: 22px !important;
    height: 22px !important;
  }

  .p-painpoint__text {
    font-size: 1.4rem !important;
    line-height: 1.6 !important;
  }

  /* ─── 特徴セクション: SP2カラム→1カラム改善 ─── */
  .c-section__2columns {
    margin-bottom: 32px !important;
  }

  .c-heading__index--inner {
    font-size: 1.8rem !important;
    line-height: 1.5 !important;
  }

  .p-features__imgbox {
    border-radius: var(--radius-md, 10px) !important;
    overflow: hidden;
  }

  .p-features__imgbox img {
    border-radius: var(--radius-md, 10px) !important;
  }

  /* ─── メディアカード: SPカード形式 ─── */
  .p-media {
    padding: 40px 0 !important;
  }

  .p-media__item {
    margin-bottom: 16px !important;
  }

  .p-media__item:last-child {
    margin-bottom: 0 !important;
  }

  .p-media__inner {
    padding: 24px 20px !important;
    border-radius: var(--radius-md, 10px) !important;
  }

  .p-media__heading {
    height: 72px !important;
    margin-bottom: 4px;
  }

  .p-media__text {
    font-size: 1.4rem !important;
    line-height: 1.7 !important;
  }

  .p-media__label {
    height: 48px !important;
    font-size: 1.4rem !important;
    border-radius: var(--radius-sm, 6px) !important;
  }

  .p-media__note {
    font-size: 1.15rem !important;
  }

  .p-media__link {
    font-size: 1.4rem !important;
    padding-top: 12px !important;
  }

  /* ─── 運用手法カード: SP改善 ─── */
  .p-operation__inner {
    border-radius: var(--radius-md, 10px) !important;
    padding: 24px 20px !important;
  }

  .p-operation__heading {
    font-size: 1.4rem !important;
    padding: 12px 16px !important;
    border-radius: var(--radius-sm, 6px) !important;
  }

  .p-operation__btn {
    min-height: 48px !important;
    font-size: 1.5rem !important;
    border-radius: var(--radius-full, 999px) !important;
  }

  /* ─── CTA: SP最大インパクト ─── */
  .c-btn__cv {
    padding: 32px 16px !important;
  }

  .c-btn__cv-context {
    font-size: 1.4rem !important;
    margin-bottom: 20px !important;
    line-height: 1.6 !important;
  }

  .c-btn__cvbtn {
    font-size: 1.7rem !important;
    padding: 16px 24px !important;
    border-radius: var(--radius-full, 999px) !important;
    min-height: 56px !important;
    box-shadow: 0 4px 16px rgba(230, 62, 59, 0.25) !important;
  }

  .c-btn__cvbtn:active {
    transform: scale(0.97) !important;
  }

  .c-btn__microcopy {
    font-size: 1.1rem !important;
    margin-top: 12px !important;
  }

  /* ─── 数字実績: SP 2×2グリッド改善 ─── */
  .p-stats {
    padding: 40px 0 !important;
  }

  .p-stats__subtitle {
    font-size: 1.25rem !important;
    margin-bottom: 24px !important;
  }

  .p-stats__grid {
    gap: 10px !important;
  }

  .p-stats__card {
    padding: 20px 12px 16px !important;
    border-radius: var(--radius-md, 10px) !important;
  }

  .p-stats__icon {
    width: 36px !important;
    height: 36px !important;
    margin-bottom: 10px !important;
    border-radius: 10px !important;
  }

  .p-stats__icon svg {
    width: 20px !important;
    height: 20px !important;
  }

  .p-stats__number {
    font-size: 2.6rem !important;
    margin-bottom: 4px !important;
  }

  .p-stats__label {
    font-size: 1.15rem !important;
    margin-bottom: 2px !important;
  }

  .p-stats__note {
    font-size: 1.0rem !important;
  }

  /* ─── 導入事例: SPカルーセル改善 ─── */
  .p-caseindex {
    padding: 40px 0 !important;
  }

  /* 事例カルーセルのはみ出し防止 */
  .p-caseindex__secondary {
    overflow: hidden !important;
  }

  .p-caseindex__cover {
    overflow: hidden !important;
    margin: 0 -16px !important;
    padding: 0 16px !important;
  }

  .swipercarousel {
    overflow: hidden !important;
  }

  .c-caseindex__item .c-list__link {
    border-radius: var(--radius-md, 10px) !important;
  }

  .c-list__inner {
    padding: 16px !important;
  }

  .c-list__heading {
    font-size: 1.4rem !important;
    line-height: 1.5 !important;
    margin-bottom: 6px !important;
  }

  .c-list__excerpt {
    font-size: 1.25rem !important;
    line-height: 1.6 !important;
  }

  .c-btn__interview {
    font-size: 1.3rem !important;
    min-height: 44px !important;
  }

  /* ロゴスライダー: SP余白 */
  .p-logolist__wrap {
    padding: 0 !important;
  }

  /* ─── 料金: SPカード化 ─── */
  .p-price {
    padding: 40px 0 !important;
  }

  .p-price__section {
    border-radius: var(--radius-md, 10px) !important;
    padding: 24px 16px !important;
  }

  .p-price__heading {
    font-size: 1.4rem !important;
    padding: 12px 16px !important;
    border-radius: var(--radius-sm, 6px) !important;
  }

  .p-price__price {
    font-size: 4.8rem !important;
  }

  .p-price__price--unit {
    font-size: 1.8rem !important;
  }

  .p-option__item {
    border-radius: var(--radius-md, 10px) !important;
    margin-bottom: 12px !important;
  }

  /* ─── 掲載フロー: SPタイムライン化 ─── */
  .p-flow {
    padding: 40px 0 !important;
  }

  .p-flow__list {
    gap: 12px !important;
  }

  .p-flow__item {
    margin-bottom: 0 !important;
  }

  .p-flow__inner {
    border-radius: var(--radius-md, 10px) !important;
    padding: 20px 16px !important;
  }

  .p-flow__num p {
    font-size: 1.2rem !important;
  }

  .p-flow__process {
    font-size: 1.4rem !important;
  }

  /* STEP5 SP微調整（共通定義はメディアクエリ外に移動済み） */
  .p-flow__inner--05 {
    border-radius: var(--radius-md, 10px) !important;
    padding: 24px 16px 16px !important;
  }

  /* ─── FAQ: SP洗練アコーディオン ─── */
  .p-faq {
    padding: 40px 0 !important;
  }

  .p-faq__list {
    gap: 10px !important;
  }

  .p-faq__item {
    border-radius: var(--radius-md, 10px) !important;
  }

  .p-faq__question {
    padding: 16px 16px 16px 14px !important;
    gap: 10px !important;
    font-size: 1.4rem !important;
    min-height: 56px !important;
    line-height: 1.5 !important;
  }

  .p-faq__question::before {
    width: 28px !important;
    height: 28px !important;
    font-size: 1.15rem !important;
    flex-shrink: 0 !important;
  }

  .p-faq__question::after {
    width: 10px !important;
    height: 10px !important;
    flex-shrink: 0 !important;
  }

  .p-faq__answer {
    padding: 0 16px 0 52px !important;
  }

  .p-faq__item.is-open .p-faq__answer {
    padding: 0 16px 16px 52px !important;
  }

  .p-faq__answer p {
    font-size: 1.35rem !important;
    line-height: 1.7 !important;
  }

  /* ━━━ フッター: SP完全リデザイン ━━━
     common.cssの全プロパティを!importantで確実に上書き */

  .p-footer {
    padding: 32px 0 0 !important;
  }

  /* 「運営会社」見出し */
  .p-footer__heading {
    font-size: 1.5rem !important;
    margin: 0 0 20px !important;
  }

  /* === 会社情報エリア === */
  /* common.css: margin: 0 auto 24px !important を上書き */
  .p-footer__company {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 20px !important;
    padding: 0 0 24px !important;
    margin: 0 0 0 !important;
  }

  /* Bulma .column の幅リセット */
  .p-footer__company > .column {
    width: 100% !important;
    flex: none !important;
    padding: 0 !important;
  }

  /* ロゴ */
  .p-footer__logo {
    max-width: 120px !important;
    margin: 0 !important;
  }

  /* 会社情報テキスト */
  .p-footer__info {
    text-align: left !important;
    font-size: 1.4rem !important;
    margin: 0 !important;
  }

  .p-footer__info--heading {
    font-size: 1.5rem !important;
    margin: 0 0 12px !important;
  }

  /* dt/dd: 縦並び */
  .p-footer__info dl {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    font-size: 1.3rem !important;
  }

  .p-footer__info dl > .column {
    width: 100% !important;
    flex: none !important;
    padding: 0 !important;
  }

  .p-footer__info dt {
    flex-basis: auto !important;
    font-weight: 700 !important;
    color: var(--color-text-muted, #444) !important;
    font-size: 1.2rem !important;
    margin-top: 10px !important;
  }

  .p-footer__info dd {
    flex-basis: auto !important;
    margin: 2px 0 0 !important;
  }

  .p-footer__info dd a {
    word-break: break-all !important;
    font-size: 1.2rem !important;
  }

  /* === 認証マーク === */
  /* common.css: max-width:160px, background:#fff を上書き */
  .p-footer__mark {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    background: transparent !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .p-footer__mark p {
    width: auto !important;
    padding: 0 !important;
  }

  .p-footer__icon {
    width: auto !important;
    height: 48px !important;
    margin: 0 !important;
  }

  /* === フッターナビ === */
  /* common.css: flex-basis:100%→49%(480px+), background:#fff を上書き */
  .p-footer__map {
    padding: 24px 0 !important;
    margin: 0 !important;
    border-top: 1px solid var(--color-border, #e0e3e3) !important;
    background: transparent !important;
  }

  .p-footer__maplist {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0 !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .p-footer__mapitem {
    flex-basis: auto !important;
    background: transparent !important;
    margin: 0 !important;
    border-bottom: 1px solid var(--color-border, #e0e3e3) !important;
  }

  .p-footer__mapitem:nth-child(odd) {
    border-right: 1px solid var(--color-border, #e0e3e3) !important;
  }

  .p-footer__maplink {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 48px !important;
    padding: 10px 10px !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    background: transparent !important;
  }

  /* 矢印アイコン非表示（グリッドに不要） */
  .p-footer__maplink::after {
    display: none !important;
  }

  /* === コピーライト === */
  .p-footer__copy {
    font-size: 1.1rem !important;
    padding: 16px 0 72px !important;
    text-align: center !important;
  }

  /* ─── スティッキーCTA: SP最終形 — 完全均等 ─── */
  .p-sticky-cta {
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    gap: 8px !important;
    display: flex !important;
  }

  /* 2つのボタンを50:50均等幅に強制 */
  .p-sticky-cta__primary {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    height: 48px !important;
    border-radius: var(--radius-full, 999px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.4rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    color: #ffffff !important;
    white-space: nowrap !important;
    padding: 0 12px !important;
    box-sizing: border-box !important;
  }

  .p-sticky-cta__secondary {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    height: 48px !important;
    border-radius: var(--radius-full, 999px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    padding: 0 12px !important;
    box-sizing: border-box !important;
  }

  .p-sticky-cta__primary:active,
  .p-sticky-cta__secondary:active {
    transform: scale(0.97) !important;
  }

  /* ─── トップへ戻るボタン: SPスティッキーCTA上に配置 ─── */
  .c-btn__fixed {
    bottom: 72px !important;
    right: 12px !important;
  }

  .c-btn__fixedbtn {
    width: 44px !important;
    height: 44px !important;
  }

  /* ─── 見出し: SP全体統一 ─── */
  .c-heading__primary {
    font-size: clamp(1.8rem, 5.5vw, 2.4rem) !important;
    letter-spacing: 0.06em !important;
    margin-bottom: 24px !important;
  }

  .c-heading__secondary {
    font-size: 1.6rem !important;
  }

  .c-heading__gradation {
    font-size: 1.3rem !important;
    padding: 12px 16px !important;
    border-radius: var(--radius-sm, 6px) !important;
  }

  /* ─── ヒーロー下SP専用ポイントカード: 洗練 ─── */
  .p-hero-sp-points {
    padding: 0 12px !important;
  }

  .p-hero-sp-points__inner {
    gap: 8px !important;
  }

  .p-hero-sp-points__card {
    border-radius: var(--radius-md, 10px) !important;
    padding: 12px 10px !important;
  }

  .p-hero-sp-points__num {
    font-size: 2.4rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    background: linear-gradient(135deg, var(--color-secondary, #00856f), var(--color-secondary-vivid, #00c7b5));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }

  .p-hero-sp-points__num--text {
    font-size: 1.6rem !important;
  }

  .p-hero-sp-points__label {
    font-size: 1.1rem !important;
    color: var(--color-text-muted, #444) !important;
    letter-spacing: 0.03em;
  }

  /* ─── ヒーローCTAボタン: SP ─── */
  .p-hero__btnarea {
    padding: 0 12px !important;
  }

  .p-hero__btn {
    min-height: 52px !important;
    font-size: 1.5rem !important;
    border-radius: var(--radius-full, 999px) !important;
    letter-spacing: 0.04em !important;
  }

  /* ─── セクション見出し下線: SP ─── */
  .c-heading__primary::after {
    width: 40px !important;
    height: 3px !important;
  }

  /* ─── 本文テキスト: SP可読性最大化 ─── */
  .c-text__index {
    font-size: 1.4rem !important;
    line-height: 1.8 !important;
    letter-spacing: 0.04em !important;
  }

  /* ─── 注釈: SP ─── */
  .c-note__item {
    font-size: 1.1rem !important;
    line-height: 1.5 !important;
  }

  /* ─── ページネーション: SPタッチ改善 ─── */
  .c-pager__item {
    min-width: 44px !important;
    min-height: 44px !important;
    font-size: 1.4rem !important;
  }

  /* ─── Swiper: SPナビゲーション ─── */
  .swiper-button-prev,
  .swiper-button-next {
    width: 36px !important;
    height: 36px !important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   23. 印刷スタイル
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

@media print {
  .p-progress-bar,
  .p-sticky-cta,
  .c-btn__fixed,
  .p-gnav__toggle {
    display: none !important;
  }

  * {
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .p-stats__number,
  .p-price__price,
  .c-heading__index--inner {
    -webkit-text-fill-color: var(--color-secondary) !important;
    background: none !important;
  }
}
