/*
Theme Name: テストテーマ
Description: シンプルなWordPressテーマ
Version: 1.0.0
*/

/* ==========================================================================
   Base
   ========================================================================== */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.8;
  color: #333;
  background-color: #f9f9f9;
  background-image: url('images/img_top_bg.webp');
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: scroll;
}

/* SP用ベースfont-size: 14px / 375 * 100 = 3.7333vw */
@media (max-width: 768px) {
  html {
    font-size: 3.7333vw;
  }
  
  body {
    background-image: url('images/img_top_bg_sp.webp');
    background-size: 152.26% auto;
    background-repeat: repeat-y;
  }
}

a {
  color: #0073aa;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

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

ul,
ol {
  padding-left: 1.5em;
}

.container {
  max-width: min(78.0556vw, 1124px);
  margin: 0 auto;
  padding: 0;
}

@media (max-width: 768px) {
  .container {
    max-width: 100%;
    padding: 0 1rem;
  }
}

/* ==========================================================================
   Header
   PC: bg white, padding 4px 24px, border-radius 16px, shadow, justify-between
   SP: padding 8px 16px, gap 20px, border-radius 8px
   ========================================================================== */
.site-header {
  position: fixed;
  top: min(0.8333vw, 12px);
  left: min(1.6667vw, 24px);
  right: min(1.6667vw, 24px);
  z-index: 1000;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: min(0.2778vw, 4px) min(1.6667vw, 24px);
  background: #fff;
  border-radius: min(1.1111vw, 16px);
  box-shadow: 0 min(0.3472vw, 5px) min(1.0417vw, 15px) rgba(44, 69, 125, 0.1);
}

/* ロゴ */
.site-header__logo {
  display: flex;
  flex-direction: column;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  text-decoration: none;
  flex-shrink: 0;
}

.site-header__logo:hover {
  text-decoration: none;
}

/* PCナビゲーション */
.site-header__nav {
  display: flex;
  align-items: center;
  gap: min(1.1111vw, 16px);
}

.site-header__menu {
  display: flex;
  gap: min(1.1111vw, 16px);
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-header__menu-item {
  height: min(4.4444vw, 64px);
  display: flex;
  align-items: center;
}

.site-header__menu-item a {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  text-decoration: none;
  white-space: nowrap;
}

.site-header__menu-item a:hover {
  text-decoration: none;
  opacity: 0.7;
}

/* PCボタンエリア */
.site-header__buttons {
  display: flex;
  gap: min(1.1111vw, 16px);
}

.site-header__button {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: min(0.5556vw, 8px) min(1.1111vw, 16px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.04em;
  border-radius: min(0.5556vw, 8px);
  text-decoration: none;
  white-space: nowrap;
}

.site-header__button:hover {
  text-decoration: none;
  opacity: 0.9;
}

.site-header__button--primary {
  background: #00ad6f;
  color: #fff;
}

.site-header__button--secondary {
  background: #eb6605;
  color: #fff;
}

/* SPボタン・ハンバーガー（PC非表示） */
.site-header__sp-buttons,
.site-header__hamburger {
  display: none;
}

@media (max-width: 768px) {
  .site-header {
    top: 0.625rem;
    left: 1rem;
    right: 1rem;
  }

  .site-header__inner {
    gap: 1.25rem;
    padding: 0.5rem 1rem;
    height: 3.3125rem;
    border-radius: 0.5rem;
  }

  /* ロゴ（SP非表示） */
  .site-header__logo {
    display: none;
  }

  /* PCナビゲーション（SP非表示） */
  .site-header__nav {
    display: none;
  }

  /* SPボタン（SP表示） */
  .site-header__sp-buttons {
    display: flex;
    gap: 0.75rem;
    flex: 1;
  }

  .site-header__sp-button {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    height: 2.3125rem;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    border-radius: 0.25rem;
    text-decoration: none;
    white-space: nowrap;
  }

  .site-header__sp-button:hover {
    text-decoration: none;
    opacity: 0.9;
  }

  .site-header__sp-button--primary {
    background: #00c17c;
    color: #fff;
  }

  .site-header__sp-button--secondary {
    background: #fff;
    border: 1px solid #00c17c;
    color: #00ad6f;
  }

  /* ハンバーガー（SP表示） */
  .site-header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 1.25rem;
    height: 1rem;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    flex-shrink: 0;
  }

  .site-header__hamburger-line {
    display: block;
    width: 100%;
    height: 0.125rem;
    background: #00c17c;
    border-radius: 1px;
  }
}

/* ==========================================================================
   パンくずリスト（ヒーロー内）
   PC: left 158px, top 100px, gap 8px, 14px, line-height 1.8, 白文字
   SP: height 50px, padding 16px 20px, gap 8px, 12px, line-height 1.5, letter-spacing 0.6px
   ========================================================================== */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: min(0.5556vw, 8px);
}

.breadcrumb__list {
  display: flex;
  align-items: center;
  gap: min(0.5556vw, 8px);
  list-style: none;
  margin: 0;
  padding: 0;
}

.breadcrumb__item {
  display: flex;
  align-items: center;
  gap: min(0.5556vw, 8px);
}

.breadcrumb__link {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: 1.8;
  color: #fff;
  text-decoration: underline;
}

.breadcrumb__link:hover {
  text-decoration: none;
}

.breadcrumb__link-text--sp {
  display: none;
}

.breadcrumb__text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: 1.8;
  color: #fff;
}

.breadcrumb__text--sp {
  display: none;
}

.breadcrumb__separator {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(0.3472vw, 5px);
  height: min(0.5556vw, 8px);
  color: #fff;
}

.breadcrumb__separator svg {
  width: 100%;
  height: 100%;
}

@media (max-width: 768px) {
  .breadcrumb {
    height: 3.125rem;
    padding: 1rem 0;
    gap: 0.5rem;
  }

  .breadcrumb__list {
    gap: 0.5rem;
  }

  .breadcrumb__item {
    gap: 0.5rem;
  }

  .breadcrumb__link {
    font-size: 0.75rem;
    line-height: 1.5;
    letter-spacing: 0.6px;
  }

  .breadcrumb__link-text--pc {
    display: none;
  }

  .breadcrumb__link-text--sp {
    display: inline;
  }

  .breadcrumb__text {
    font-size: 0.75rem;
    line-height: 1.5;
    letter-spacing: 0.6px;
  }

  .breadcrumb__text--pc {
    display: none;
  }

  .breadcrumb__text--sp {
    display: inline;
  }

  .breadcrumb__separator {
    width: 0.5rem;
    height: 0.5rem;
  }
}

/* ==========================================================================
   ヒーローセクション
   PC: 背景1440x389, パンくず top 100px left 158px, 見出し top 155px left 158px
   SP: 背景375x281, ヘッダーpadding-top 10px, パンくず height 50px, 見出し top 115px left 16px
   ========================================================================== */
.hero {
  position: relative;
  width: 100%;
  height: min(27.0299vw, 389px);
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: scaleY(-1);
}

.hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-top: min(6.9444vw, 100px);
  padding-left: min(10.9722vw, 158px);
  padding-right: min(10.9722vw, 158px);
  z-index: 1;
}

.hero__header {
  display: flex;
  flex-direction: column;
  gap: min(1.3889vw, 20px);
  width: min(69.4444vw, 1000px);
  margin-top: min(3.8194vw, 55px);
}

.hero__title {
  display: flex;
  align-items: center;
  gap: min(0.8333vw, 12px);
  margin: 0;
}

.hero__icon {
  flex-shrink: 0;
  width: min(1.1806vw, 17px);
  height: min(3.6111vw, 52px);
}

.hero__icon img {
  width: 100%;
  height: 100%;
}

.hero__icon-sp {
  display: none;
}

.hero__title-text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(2.5vw, 36px);
  font-weight: 700;
  line-height: normal;
  letter-spacing: 1.44px;
  color: #fff;
}

.hero__description {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 500;
  line-height: normal;
  color: #fff;
  margin: 0;
}

@media (max-width: 768px) {
  .hero {
    height: 17.5625rem; /* 281px - Figma仕様 */
  }

  .hero__content {
    padding-top: 3.9375rem;
    padding-left: 1rem; /* 16px - Figma仕様 */
    padding-right: 1rem; /* 16px - Figma仕様 */
  }

  .hero__header {
    gap: 0.625rem;
    width: 21.4375rem;
    margin-top: 0;
    padding-left: 0;
  }

  .hero__title {
    gap: 0.375rem;
    height: 1.8125rem;
  }

  .hero__icon {
    width: 0.8125rem;
    height: 3.25rem;
  }

  .hero__icon-pc {
    display: none;
  }

  .hero__icon-sp {
    display: block;
  }

  .hero__title-text {
    font-size: 1.5rem;
    letter-spacing: 0.96px;
  }

  .hero__description {
    font-size: 0.875rem;
    font-weight: 700;
  }

  .hero__description br {
    display: none;
  }
}

/* ==========================================================================
   Archive - 一覧ページ
   PC: top 412px, left 158px, width 1124px
   SP: top 319px, width 375px
   ========================================================================== */
.case-archive {
  padding: min(1.5972vw, 23px) 0 0 0;
}

@media (max-width: 768px) {
  .case-archive {
    padding: 0.625rem 0 0 0;
  }
}

/* ==========================================================================
   絞り込み検索アコーディオン
   1440px基準: 1440px以上は固定、1440px以下は比率を保って縮小
   計算式: px値 / 1440 * 100 = vw値
   ========================================================================== */

.case-filter-accordion {
  margin-bottom: min(3.4722vw, 50px);
  background: #fff;
  border: min(0.2083vw, 3px) solid #f1f6e8;
  border-radius: min(1.0417vw, 15px);
  overflow: hidden;
}

@media (max-width: 768px) {
  .case-filter-accordion {
    margin-bottom: 1.875rem;
    border: 0.1875rem solid #f1f6e8;
    border-radius: 0.9375rem;
  }
}

.case-filter-accordion__toggle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: min(2.0833vw, 30px);
  background: #fff;
  border: 0;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.6667vw, 24px);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  cursor: pointer;
  transition: background 0.3s;
}

@media (max-width: 768px) {
  .case-filter-accordion__toggle {
    padding: 0.9375rem 1.875rem;
    font-size: 1.125rem;
  }
}

.case-filter-accordion__toggle:hover {
  background: #fafafa;
}

.case-filter-accordion__icon {
  width: min(1.1806vw, 17px);
  height: min(0.625vw, 9px);
  flex-shrink: 0;
  color: #3f4f5f;
  transition: transform 0.3s ease;
}

@media (max-width: 768px) {
  .case-filter-accordion__icon {
    width: 0.9375rem;
    height: 0.4375rem;
  }
}

.case-filter-accordion.is-open .case-filter-accordion__icon {
  transform: rotate(180deg);
}

.case-filter-accordion__content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.case-filter-accordion.is-open .case-filter-accordion__content {
  max-height: min(55.5556vw, 800px);
}

/* 絞り込みフォーム */
.case-filter {
  padding: 0 min(2.0833vw, 30px) min(2.0833vw, 30px);
}

@media (max-width: 768px) {
  .case-filter {
    padding: 0 1.875rem 1.25rem;
  }
}

.case-filter__divider {
  width: 100%;
  height: 1px;
  background: #e1e2eb;
  margin-bottom: min(2.0833vw, 30px);
}

@media (max-width: 768px) {
  .case-filter__divider {
    margin-bottom: 0.625rem;
  }
}

.case-filter__group {
  margin-bottom: min(1.0417vw, 15px);
}

.case-filter__group:last-of-type {
  margin-bottom: 0;
}

.case-filter__label {
  display: flex;
  align-items: center;
  gap: min(0.3472vw, 5px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  margin: 0 0 min(0.6944vw, 10px) 0;
}

@media (max-width: 768px) {
  .case-filter__label {
    font-size: 1rem;
    gap: 0.3125rem;
    margin-bottom: 0.625rem;
  }
}

.case-filter__dot {
  display: inline-block;
  width: min(0.7639vw, 11px);
  height: min(0.7639vw, 11px);
  background: #00ad6f;
  border-radius: 50%;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .case-filter__dot {
    width: 0.5625rem;
    height: 0.5625rem;
  }
}

.case-filter__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: min(0.6944vw, 10px);
}

.case-filter__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.3472vw, 5px) min(1.0417vw, 15px);
  background: #fff;
  border: 1px solid #3f4f5f;
  border-radius: min(3.4722vw, 50px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 500;
  line-height: 1.5;
  color: #3f4f5f;
  cursor: pointer;
  transition: all 0.2s ease;
}

@media (max-width: 768px) {
  .case-filter__button {
    padding: 0.125rem 0.6875rem;
    font-size: 0.75rem;
    line-height: 1.75;
    border-radius: 3.125rem;
  }
}

.case-filter__button:hover {
  background: #f5f5f5;
}

.case-filter__button.is-active {
  background: #00c17c;
  border-color: #00c17c;
  color: #fff;
}

.case-filter__button.is-disabled {
  opacity: 0.4;
  pointer-events: none;
  cursor: not-allowed;
}

.case-filter__actions {
  display: flex;
  justify-content: center;
  margin-top: min(2.0833vw, 30px);
}

@media (max-width: 768px) {
  .case-filter__actions {
    margin-top: 0.625rem;
  }
}

.case-filter__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: min(13.9583vw, 201px);
  height: min(3.4722vw, 50px);
  padding: min(0.6944vw, 10px);
  background: #00c17c;
  color: #fff;
  border: 0;
  border-radius: min(0.6944vw, 10px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 18px);
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.3s;
}

@media (max-width: 768px) {
  .case-filter__submit {
    max-width: 100%;
    height: 3.125rem;
    font-size: 1.125rem;
    border-radius: 0.625rem;
  }
}

.case-filter__submit:hover {
  background: #00a96b;
}

/* ==========================================================================
   Case Results & List
   1440px基準: 1440px以上は固定、1440px以下は比率を保って縮小
   計算式: px値 / 1440 * 100 = vw値
   SP基準: 375px
   ========================================================================== */

.case-results {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: min(3.4722vw, 50px);
}

.case-results__count {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
  color: #3f4f5f;
}

.case-results__number {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 18px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.case-results__unit {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.0108em;
}

.case-results__text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.case-list {
  display: grid;
  grid-template-columns: repeat(3, min(24.7222vw, 356px));
  gap: min(1.9444vw, 28px);
  justify-content: flex-start;
}

@media (max-width: 768px) {
  .case-results {
    margin-top: 0;
    gap: 2.5rem; /* 40px */
  }

  .case-results__number {
    font-size: 1.125rem;
  }

  .case-results__unit {
    font-size: 0.875rem;
  }

  .case-results__text {
    font-size: 0.875rem;
  }

  .case-list {
    grid-template-columns: 1fr;
    gap: 1.5625rem; /* 25px */
  }
}

.case-card {
  margin: 0;
}

@media (max-width: 768px) {
  .case-card {
    width: 100%;
  }
}

.case-card a {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: opacity 0.3s;
}

.case-card a:hover {
  opacity: 0.8;
}

.case-card__thumbnail-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: min(1.3889vw, 20px) min(1.3889vw, 20px) 0 0;
  border: 1px solid #d2d7db;
  border-bottom: none;
  box-sizing: border-box;
}

@media (min-width: 769px) {
  .case-card__thumbnail-wrapper {
    width: min(24.7222vw, 356px);
  }
}

@media (max-width: 768px) {
  .case-card__thumbnail-wrapper {
    width: 100%;
    border-radius: 1.25rem 1.25rem 0 0;
  }
}

.case-card a:hover .case-card__thumbnail-wrapper {
  border-color: #e1e2eb;
}

.case-card__thumbnail {
  width: 100%;
  aspect-ratio: 356 / 210;
  overflow: hidden;
  border-radius: min(1.3889vw, 20px) min(1.3889vw, 20px) 0 0;
}

@media (max-width: 768px) {
  .case-card__thumbnail {
    aspect-ratio: 356 / 210;
    border-radius: 1.25rem 1.25rem 0 0;
  }
}

.case-card__thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.case-card__content {
  width: 100%;
  background: #fff;
  border: 1px solid #d2d7db;
  border-top: none;
  border-radius: 0 0 min(1.3889vw, 20px) min(1.3889vw, 20px);
  padding: min(1.0417vw, 15px);
  display: flex;
  flex-direction: column;
  gap: min(0.6944vw, 10px);
  box-sizing: border-box;
}

@media (min-width: 769px) {
  .case-card__content {
    width: min(24.7222vw, 356px);
  }
}

@media (max-width: 768px) {
  .case-card__content {
    width: 100%;
    border-radius: 0 0 1.25rem 1.25rem;
    padding: 0.9375rem;
    gap: 0.625rem;
  }
}

.case-card a:hover .case-card__content {
  border-color: #e1e2eb;
}

.case-card__logo {
  width: min(8.5417vw, 123px);
  background: #f4f4f4;
  padding: min(0.5556vw, 8px) min(2.1206vw, 30.54px) min(0.625vw, 9px) min(1.9754vw, 28.46px);
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .case-card__logo {
    width: 7.6875rem;
    padding: 0.5rem 1.9088rem 0.5625rem 1.7788rem;
  }
}

.case-card__logo img {
  max-width: 100%;
  height: auto;
  display: block;
}

.case-card__logo--placeholder {
  background: #f4f4f4;
}

.case-card__logo--placeholder p {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.8;
  color: #ccc;
  margin: 0;
  text-align: center;
}

@media (max-width: 768px) {
  .case-card__logo--placeholder p {
    font-size: 1rem;
  }
}

.case-card__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: min(1.4583vw, 21px);
  color: #3f4f5f;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  max-height: min(2.8472vw, 41px);
}

@media (max-width: 768px) {
  .case-card__title {
    font-size: 1rem;
    line-height: 1.3125rem;
    max-height: 2.5625rem;
  }
}

.case-card__company {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: min(1.4583vw, 21px);
  color: #3f4f5f;
  margin: 0;
}

@media (max-width: 768px) {
  .case-card__company {
    font-size: 0.875rem;
    line-height: 1.3125rem;
  }
}

.case-card__meta {
  display: flex;
  flex-direction: column;
  gap: min(0.2778vw, 4px);
  margin: 0;
}

@media (max-width: 768px) {
  .case-card__meta {
    gap: 0.25rem;
  }
}

.case-card__meta-item {
  display: flex;
  align-items: center;
}

.case-card__meta-item dt {
  width: min(4.5139vw, 65px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: min(1.4583vw, 21px);
  color: #00ad6f;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .case-card__meta-item dt {
    width: 4.0625rem;
    font-size: 0.875rem;
    line-height: 1.3125rem;
  }
}

.case-card__meta-item dd {
  flex: 1;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 500;
  line-height: min(1.4583vw, 21px);
  color: #3f4f5f;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .case-card__meta-item dd {
    font-size: 0.875rem;
    line-height: 1.3125rem;
  }
}

/* ==========================================================================
   Pagination
   1440px基準: 1440px以上は固定、1440px以下は比率を保って縮小
   計算式: px値 / 1440 * 100 = vw値
   SP基準: 375px
   ========================================================================== */

.case-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(0.6944vw, 10px);
}

@media (max-width: 768px) {
  .case-pagination {
    gap: 0.5rem;
  }
}

.case-pagination__arrow,
.case-pagination__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(3.1944vw, 46px);
  height: min(3.1944vw, 46px);
  border-radius: 50%;
  border: 1px solid #d2d7db;
  background: #fff;
  text-decoration: none;
  color: #3f4f5f;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.0417vw, 15px);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.2;
  transition: all 0.3s;
}

@media (max-width: 768px) {
  .case-pagination__arrow,
  .case-pagination__number {
    width: 2.875rem;
    height: 2.875rem;
    font-size: 0.9375rem;
  }
}

.case-pagination__arrow {
  padding: 0;
}

.case-pagination__arrow svg {
  width: min(0.4167vw, 6px);
  height: min(0.6944vw, 10px);
}

@media (max-width: 768px) {
  .case-pagination__arrow svg {
    width: 0.375rem;
    height: 0.625rem;
  }
}

.case-pagination__arrow--disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.case-pagination__number:hover {
  background: #f5f5f5;
}

.case-pagination__number--current {
  background: #00c17c; /* Figma仕様 */
  border-color: #00c17c; /* Figma仕様 */
  color: #fff; /* Figma仕様 */
  font-weight: 400;
  pointer-events: none;
}

.case-pagination__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 4px;
  color: #3f4f5f;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2em;
}


/* ==========================================================================
   Single - 詳細ページ
   PC基準: 1440px / SP基準: 375px (rem = 14px)
   Figma PC detail: node-id=1878-59186
   2カラムレイアウト: 左701px + gap73px + 右350px = 1124px
   ========================================================================== */
.case-single {
  padding: 0;
  background: transparent;
}

/* 2カラムコンテナ */
.case-single__container {
  display: flex;
  gap: min(5.0694vw, 73px);
  max-width: min(78.0556vw, 1124px);
  margin: 0 auto;
  padding: 0;
  align-items: flex-start;
}

/* 左カラム：記事 */
.case-article {
  display: flex;
  flex-direction: column;
  gap: min(4.8611vw, 70px);
  width: min(48.6806vw, 701px);
  flex-shrink: 0;
}

/* 記事ヘッダー+サムネイル+サマリー+目次をグループ化 */
.case-article__intro {
  display: flex;
  flex-direction: column;
  gap: min(1.3889vw, 20px);
}

/* 右カラム：サイドバー */
.case-sidebar {
  width: min(24.3056vw, 350px);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: min(2.0833vw, 30px);
  position: sticky;
  top: min(7.2222vw, 104px);
}

/* ヘッダー部分 */
.case-header {
  display: flex;
  flex-direction: column;
  gap: min(0.6944vw, 10px);
  width: 100%;
}

.case-header__company {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 16px);
  font-weight: 700;
  line-height: 1.5;
  color: #3f4f5f;
  margin: 0;
}

.case-header__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.875vw, 24px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  margin: 0;
}

.case-header__date {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 16px);
  font-weight: 400;
  line-height: 1.5;
  color: #3f4f5f;
  margin: 0;
}

/* アイキャッチ画像 */
.case-thumbnail {
  width: 100%;
}

.case-thumbnail img {
  width: 100%;
  height: auto;
  border-radius: min(1.5625vw, 20px);
  display: block;
}

/* 導入前の課題・導入後の効果エリア */
.case-summary {
  display: flex;
  flex-direction: column;
  gap: min(1.171875vw, 15px);
  padding: min(1.171875vw, 15px);
  background: #f2f3f5;
  border-radius: min(1.5625vw, 20px);
}

.case-summary__box {
  background: #fff;
  border-radius: min(0.78125vw, 10px);
  padding: min(1.171875vw, 15px) min(1.5625vw, 20px);
}

.case-summary__header {
  margin-bottom: min(0.78125vw, 10px);
  padding-bottom: min(0.625vw, 8px);
  border-bottom: 1px solid #e1e2eb;
}

.case-summary__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 16px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  margin: 0;
}

.case-summary__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: min(0.390625vw, 5px);
}

.case-summary__item {
  display: flex;
  align-items: flex-start;
}

.case-summary__icon {
  flex-shrink: 0;
  width: min(1.328125vw, 17px);
  height: min(2.03125vw, 26px);
  margin-right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.case-summary__icon img {
  width: min(1.09375vw, 14px);
  height: min(1.015625vw, 13px);
}

.case-summary__text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.09375vw, 14px);
  font-weight: 500;
  line-height: 1.8;
  color: #3f4f5f;
}

/* SP（モバイル）レスポンシブ */
@media (max-width: 768px) {
  .case-single {
    padding: 0;
  }

  .case-single__container {
    flex-direction: column;
    max-width: 100%;
    gap: 0;
    padding: 0 1rem;
    /* 16px */
  }

  .case-article {
    width: 100%;
    gap: 3.125rem; /* 50px - セクション間 */
  }

  .case-article__intro {
    gap: 1.25rem; /* 20px - ヘッダー/サムネイル/サマリー/目次間 */
  }

  .case-sidebar {
    display: none;
  }

  .case-header {
    gap: 0.714rem;
    /* 10px - Figma値 */
  }

  .case-header__company {
    font-size: 1rem;
    /* 14px */
  }

  .case-header__title {
    font-size: 1.429rem;
    /* 20px */
    line-height: 1.4;
  }

  .case-header__date {
    font-size: 1rem;
    /* 14px */
  }

  .case-thumbnail img {
    border-radius: 1.071rem;
    /* 15px */
  }

  .case-summary {
    gap: 0.714rem;
    /* 10px */
    padding: 0.714rem;
    /* 10px */
    border-radius: 1.071rem;
    /* 15px */
  }

  .case-summary__box {
    padding: 0.714rem;
    /* 10px */
    border-radius: 0.714rem;
    /* 10px */
  }

  .case-summary__header {
    margin-bottom: 0.714rem;
    /* 10px */
    padding-bottom: 0.571rem;
    /* 8px */
    border-bottom: 1px solid #e1e2eb;
  }

  .case-summary__title {
    font-size: 1.143rem;
    /* 16px */
  }

  .case-summary__list {
    gap: 0.714rem;
    /* 10px */
  }

  .case-summary__item {
    align-items: flex-start;
    gap: 0;
  }

  .case-summary__icon {
    width: 1.357rem;
    /* 19px */
    height: 1.357rem;
    /* 19px */
    margin-right: 0;
  }

  .case-summary__icon img {
    width: 1rem;
    /* 14px */
    height: 0.929rem;
    /* 13px */
  }

  .case-summary__text {
    font-size: 1rem;
    /* 14px */
    line-height: 1.4;
  }
}

/* 本文 */
.case-content {
  font-family: 'Zen Maru Gothic', sans-serif;
  color: #3f4f5f;
  display: flex;
  flex-direction: column;
  gap: min(2.0833vw, 30px);
}

/* H2の直後のH3は間隔を詰める */
.case-content h2 + h3 {
  margin-top: calc(min(1.3889vw, 20px) - min(2.0833vw, 30px));
}

/* H3の直後のPは間隔を詰める (20pxに) */
.case-content h3 + p {
  margin-top: calc(min(1.3889vw, 20px) - min(2.0833vw, 30px));
}

/* Pの連続は間隔を詰める (5pxに) */
.case-content p + p {
  margin-top: calc(min(0.3472vw, 5px) - min(2.0833vw, 30px));
}

.case-content h2 {
  font-size: min(1.5278vw, 22px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  margin: 0;
  padding-bottom: min(0.6944vw, 10px);
  border-bottom: 2px solid #00ad6f;
}

.case-content h2:first-child {
  margin-top: 0;
}

.case-content h3 {
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  margin: 0;
}

.case-content p {
  font-size: min(1.25vw, 16px);
  font-weight: 500;
  line-height: 1.7;
  margin: 0;
}

.case-content ul,
.case-content ol {
  font-size: min(1.09375vw, 14px);
  font-weight: 500;
  line-height: 1.8;
  margin: 0;
  padding-left: 1.5em;
}

.case-content li {
  margin-bottom: min(0.390625vw, 5px);
}

.case-content img {
  border-radius: min(1.3889vw, 20px);
  margin: 0;
  width: 100%;
  height: auto;
}

/* SP本文レスポンシブ */
@media (max-width: 768px) {
  .case-content {
    gap: 1.875rem; /* 30px */
  }

  /* SP版: H2の直後のH3は間隔を詰める (10pxに) */
  .case-content h2 + h3 {
    margin-top: calc(0.714rem - 1.875rem);
  }

  /* SP版: H3の直後のPは間隔を詰める (10pxに) */
  .case-content h3 + p {
    margin-top: calc(0.714rem - 1.875rem);
  }

  /* SP版: Pの連続は間隔を詰める (5pxに) */
  .case-content p + p {
    margin-top: calc(0.357rem - 1.875rem);
  }

  .case-content h2 {
    font-size: 1.125rem; /* 18px */
    line-height: 1.3;
    margin: 0;
    padding-bottom: 0.625rem; /* 10px */
  }

  .case-content h2:first-child {
    margin-top: 0;
  }

  .case-content h3 {
    font-size: 1rem; /* 16px */
    line-height: 1.4;
    margin: 0;
  }

  .case-content p {
    font-size: 1rem; /* 14px */
    line-height: 1.5;
    margin: 0;
  }

  .case-content ul,
  .case-content ol {
    font-size: 1rem; /* 14px */
    line-height: 1.6;
    margin: 0;
  }

  .case-content li {
    margin-bottom: 0.286rem; /* 4px */
  }

  .case-content img {
    border-radius: 1.071rem; /* 15px */
    margin: 0;
  }
}

/* サイドバー - ボックス共通 */
.sidebar-box {
  border: 1px solid #e1e2eb;
  border-radius: min(0.6944vw, 10px);
  padding: min(1.3889vw, 20px);
}

.sidebar-box__header {
  display: flex;
  align-items: center;
  gap: min(0.3472vw, 5px);
  margin-bottom: min(1.0417vw, 15px);
}

.sidebar-box__dot {
  width: min(0.7639vw, 11px);
  height: min(0.7639vw, 11px);
  background: #00ad6f;
  border-radius: 50%;
  flex-shrink: 0;
}

.sidebar-box__heading {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0.04em;
  color: #3f4f5f;
}

.sidebar-box__body {
  display: flex;
  flex-direction: column;
  gap: min(0.6944vw, 10px);
}

.sidebar-box__item {
  display: flex;
  flex-direction: column;
  gap: min(0.2778vw, 4px);
}

.sidebar-box__label {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: 1.3;
  color: #00ad6f;
  margin: 0;
}

.sidebar-box__value {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 500;
  line-height: 1.3;
  color: #3f4f5f;
  margin: 0;
}

.sidebar-box__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.3472vw, 5px) min(1.0417vw, 15px);
  background: #fff;
  border: 1px solid #3f4f5f;
  border-radius: min(3.4722vw, 50px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 500;
  line-height: 1.5;
  color: #3f4f5f;
  width: fit-content;
}

.sidebar-box__tags {
  display: flex;
  flex-wrap: wrap;
  gap: min(0.6944vw, 10px);
}

.sidebar-box__tag-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.3472vw, 5px) min(1.0417vw, 15px);
  background: #fff;
  border: 1px solid #3f4f5f;
  border-radius: min(3.4722vw, 50px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 500;
  line-height: 1.5;
  color: #3f4f5f;
  transition: all 0.3s;
  text-decoration: none;
}

.sidebar-box__tag-link:hover {
  background: #f5f5f5;
  text-decoration: none;
}

/* サイドバー - ホワイトペーパーバナー */
.sidebar-wp-banner {
  display: block;
  position: relative;
  width: 100%;
  height: min(11.1806vw, 161px);
  border: 2px solid #13c4ce;
  border-radius: min(0.7228vw, 10.409px);
  overflow: hidden;
  text-decoration: none;
  background: linear-gradient(-55.969deg, rgb(227, 255, 218) 12.163%, rgb(237, 255, 190) 87.837%);
}

.sidebar-wp-banner__bg {
  position: absolute;
  top: min(-8.9583vw, -129px);
  left: 50%;
  transform: translateX(-50%);
  width: min(35.3472vw, 509px);
  height: min(23.5417vw, 339px);
  background: url('images/61deab3ca8309b5f279a37e6cf1864c5a7fdc2f5.png') center/cover no-repeat;
  mix-blend-mode: overlay;
}

.sidebar-wp-banner__content {
  position: absolute;
  top: min(1.1806vw, 17px);
  left: min(1.0417vw, 15px);
  width: min(18.6111vw, 268px);
  display: flex;
  flex-direction: column;
  gap: min(0.2778vw, 4px);
}

.sidebar-wp-banner__dots {
  display: flex;
  gap: min(0.2778vw, 4px);
  margin-bottom: min(0.5556vw, 8px);
}

.sidebar-wp-banner__dots span {
  width: min(0.4861vw, 7px);
  height: min(0.4861vw, 7px);
  background: #3f4f5f;
  border-radius: 50%;
}

.sidebar-wp-banner__subtitle {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 18px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  margin: 0;
}

.sidebar-wp-banner__badges {
  display: flex;
  align-items: center;
  gap: min(0.3472vw, 5px);
}

.sidebar-wp-banner__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.1389vw, 2px) min(0.6944vw, 10px);
  border-radius: min(2.7778vw, 40px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.65;
  color: #fff;
}

.sidebar-wp-banner__badge--yellow {
  background: #edb937;
}

.sidebar-wp-banner__badge--green {
  background: #21c188;
}

.sidebar-wp-banner__no {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 18px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: #3f4f5f;
}

.sidebar-wp-banner__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.8056vw, 26px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.15em;
  color: #3f4f5f;
  margin: 0;
}

.sidebar-wp-banner__footer {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  height: min(1.8056vw, 26px);
  background: #13c4ce;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(0.6944vw, 10px);
}

.sidebar-wp-banner__footer-text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.0417vw, 15px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: #fff;
}

.sidebar-wp-banner__footer-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sidebar-wp-banner__footer-arrow svg {
  width: min(0.7222vw, 10.409px);
  height: min(0.7222vw, 10.409px);
}

/* サイドバー - 資料ダウンロードバナー */
.sidebar-dl-banner {
  display: block;
  position: relative;
  width: 100%;
  height: min(11.1806vw, 161px);
  border: 2px solid #13c4ce;
  border-radius: min(0.7228vw, 10.409px);
  overflow: hidden;
  text-decoration: none;
  background: #34424f;
}

.sidebar-dl-banner__bg {
  position: absolute;
  inset: 0;
  background: url('images/4c8c0f59092c0b2dcc431ed0287a7ff07782e29d.png') center/cover no-repeat;
  opacity: 0.32;
}

.sidebar-dl-banner__images {
  position: absolute;
  top: min(-0.4931vw, -7.1px);
  left: min(3.8403vw, 55.3px);
  width: min(18.0972vw, 260.58px);
  height: min(11.7778vw, 169.6px);
}

.sidebar-dl-banner__image {
  position: absolute;
  box-shadow: 5.441px 0px 6.802px rgba(44, 69, 125, 0.5);
  opacity: 0.25;
}

.sidebar-dl-banner__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sidebar-dl-banner__image--1 {
  width: min(13.7014vw, 197.3px);
  height: min(7.7167vw, 111.12px);
  top: 0;
  left: min(1.8819vw, 27.1px);
  transform: rotate(8.962deg);
}

.sidebar-dl-banner__image--2 {
  width: min(13.5903vw, 195.7px);
  height: min(7.6519vw, 110.19px);
  top: min(2.3611vw, 34px);
  left: min(1.0417vw, 15px);
}

.sidebar-dl-banner__image--3 {
  width: min(13.6597vw, 196.74px);
  height: min(7.6694vw, 110.44px);
  top: min(3.6181vw, 52.1px);
  left: 0;
  transform: rotate(-4.169deg);
}

.sidebar-dl-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #212426;
  mix-blend-mode: soft-light;
  opacity: 0.7;
}

.sidebar-dl-banner__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: min(0.3614vw, 5.204px);
  z-index: 1;
}

.sidebar-dl-banner__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.1807vw, 2.602px) min(0.7228vw, 10.409px);
  background: #f2f3f5;
  border-radius: 0 649.907px 649.907px 0;
  border-top-left-radius: 32.528px;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.6326vw, 9.108px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #03afb9;
}

.sidebar-dl-banner__text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.4457vw, 20.818px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: #fff;
}

.sidebar-dl-banner__arrow {
  position: absolute;
  bottom: min(-0.0236vw, -0.34px);
  right: 0;
  width: min(1.807vw, 26.022px);
  height: min(1.807vw, 26.022px);
  background: #13c4ce;
  border-radius: min(0.3614vw, 5.204px) 0 min(0.3614vw, 5.204px) min(0.7228vw, 10.409px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.sidebar-dl-banner__arrow svg {
  width: min(1.0843vw, 15.613px);
  height: min(1.0843vw, 15.613px);
  transform: rotate(-90deg);
}

/* サイドバー - お問い合わせボックス */
.sidebar-contact {
  position: relative;
  width: 100%;
  height: min(12.7778vw, 184px);
  border-radius: min(0.6944vw, 10px);
  overflow: hidden;
}

.sidebar-contact__bg {
  position: absolute;
  inset: min(-0.2083vw, -3px) min(-0.3472vw, -5px);
  width: min(25vw, 360px);
  height: min(18.8889vw, 272px);
  background: linear-gradient(180deg, #f7fde8 4.934%, #eafdd8 47.893%, #e2fde1 96.676%);
}

.sidebar-contact__bg::before,
.sidebar-contact__bg::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  mix-blend-mode: multiply;
}

.sidebar-contact__bg::before {
  width: min(18.4611vw, 266px);
  height: min(18.4611vw, 266px);
  left: min(-11.4583vw, -165px);
  top: min(-4.6528vw, -67px);
  background: radial-gradient(circle, rgba(197, 241, 183, 0.5) 0%, transparent 70%);
}

.sidebar-contact__bg::after {
  width: min(12.3646vw, 178.05px);
  height: min(12.3646vw, 178.05px);
  right: min(-4.0139vw, -57.82px);
  top: min(-2.1528vw, -31px);
  background: radial-gradient(circle, rgba(200, 240, 180, 0.3) 0%, transparent 70%);
}

.sidebar-contact__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(0.9722vw, 14px);
  width: min(18.3333vw, 264px);
}

.sidebar-contact__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.5278vw, 22px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-align: center;
  color: #00ad6f;
  margin: 0;
}

.sidebar-contact__desc {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.1111vw, 16px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-align: center;
  color: #3f4f5f;
  margin: 0;
}

.sidebar-contact__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: min(3.4722vw, 50px);
  background: #00c17c;
  border: 2px solid #fff;
  border-radius: min(0.8333vw, 12px);
  box-shadow: 0 min(0.3472vw, 5px) min(1.0417vw, 15px) rgba(44, 69, 125, 0.2);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 18px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #fff;
  text-decoration: none;
  transition: all 0.3s;
}

.sidebar-contact__btn:hover {
  background: #00a868;
  text-decoration: none;
}

/* 戻るリンク */
.case-back {
  margin-top: min(2.34375vw, 30px);
  text-align: center;
}

.case-back a {
  display: inline-flex;
  align-items: center;
  gap: min(0.390625vw, 5px);
  padding: min(0.78125vw, 10px) min(1.5625vw, 20px);
  background: #fff;
  border: 1px solid #3f4f5f;
  border-radius: min(3.125vw, 40px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.09375vw, 14px);
  font-weight: 500;
  color: #3f4f5f;
  transition: all 0.3s;
}

.case-back a:hover {
  background: #f5f5f5;
  text-decoration: none;
}

/* SP戻るリンク */
@media (max-width: 768px) {
  .case-back {
    margin-top: 1.429rem;
    /* 20px */
  }

  .case-back a {
    padding: 0.714rem 1.143rem;
    /* 10px 16px */
    font-size: 1rem;
    /* 14px */
    border-radius: 2.857rem;
    /* 40px */
  }
}

/* 企業情報 */
.case-company-info {
  border: 1px solid #e1e2eb;
  border-radius: min(0.78125vw, 10px);
  padding: min(1.5625vw, 20px);
  margin-top: min(3.125vw, 40px);
}

.case-company-info__header {
  display: flex;
  align-items: center;
  gap: min(0.390625vw, 5px);
  margin-bottom: min(1.171875vw, 15px);
}

.case-company-info__dot {
  width: min(0.859375vw, 11px);
  height: min(0.859375vw, 11px);
  background: #00ad6f;
  border-radius: 50%;
  flex-shrink: 0;
}

.case-company-info__heading {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.5625vw, 20px);
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0.04em;
  color: #3f4f5f;
}

.case-company-info__body {
  display: flex;
  flex-direction: column;
  gap: min(0.78125vw, 10px);
}

.case-company-info__item {
  display: flex;
  flex-direction: column;
  gap: min(0.3125vw, 4px);
}

.case-company-info__label {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.09375vw, 14px);
  font-weight: 700;
  line-height: 1.3;
  color: #00ad6f;
  margin: 0;
}

.case-company-info__value {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 16px);
  font-weight: 500;
  line-height: 1.3;
  color: #3f4f5f;
  margin: 0;
}

.case-company-info__item:has(.case-company-info__tag) {
  gap: min(0.625vw, 8px);
}

.case-company-info__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.390625vw, 5px) min(1.171875vw, 15px);
  background: #fff;
  border: 1px solid #3f4f5f;
  border-radius: min(3.90625vw, 50px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.09375vw, 14px);
  font-weight: 500;
  line-height: 1.5;
  color: #3f4f5f;
  width: fit-content;
}

/* SP 企業情報 */
@media (max-width: 768px) {
  .case-company-info {
    border-radius: 0.714rem;
    /* 10px */
    padding: 1.071rem;
    /* 15px */
    margin-top: 2.143rem;
    /* 30px */
  }

  .case-company-info__header {
    gap: 0.357rem;
    /* 5px */
    margin-bottom: 1.071rem;
    /* 15px */
  }

  .case-company-info__dot {
    width: 0.643rem;
    /* 9px */
    height: 0.643rem;
    /* 9px */
  }

  .case-company-info__heading {
    font-size: 1.143rem;
    /* 16px */
    letter-spacing: 0.04em;
  }

  .case-company-info__body {
    gap: 0.714rem;
    /* 10px */
  }

  .case-company-info__item {
    gap: 0.286rem;
    /* 4px */
  }

  .case-company-info__label {
    font-size: 1rem;
    /* 14px */
  }

  .case-company-info__value {
    font-size: 1rem;
    /* 14px */
  }

  .case-company-info__item:has(.case-company-info__tag) {
    gap: 0.571rem;
    /* 8px */
  }

  .case-company-info__tag {
    padding: 0.143rem 0.786rem;
    /* 2px 11px */
    border-radius: 3.571rem;
    /* 50px */
    font-size: 0.857rem;
    /* 12px */
  }
}

/* 資料ダウンロードバナー - PC */
.dl-banner {
  display: block;
  position: relative;
  width: 100%;
  max-width: 700px;
  height: 245px;
  margin: 40px auto 0;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  transition: opacity 0.3s;
  isolation: isolate;
}

.dl-banner:hover {
  text-decoration: none;
}

.dl-banner:hover .dl-banner__content {
  opacity: 0.8;
}

.dl-banner:hover .dl-banner__images--pc {
  opacity: 0.8;
}

.dl-banner:hover .dl-banner__btn {
  background: #ff9f67;
}

.dl-banner__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(-49.67deg, rgba(197, 241, 183, 1) 22.12%, rgba(0, 193, 124, 1) 51.19%, rgba(0, 173, 167, 1) 73.9%);
}

.dl-banner__decoration--circle {
  position: absolute;
  top: -25.71%;
  left: -8.43%;
  width: 32.57%;
  aspect-ratio: 1;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  transform: rotate(90deg);
}

.dl-banner__decoration--wave {
  position: absolute;
  bottom: -57.14%;
  right: -34.29%;
  width: 71.43%;
  aspect-ratio: 1;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 50%;
}

.dl-banner__content {
  position: absolute;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 6.94%;
  top: 15.92%;
  left: 3.86%;
  width: 57.14%;
}

.dl-banner__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #fff;
  margin: 0;
}

.dl-banner__desc {
  width: 100%;
}

.dl-banner__desc-text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #fff;
  margin: 0;
}

.dl-banner__desc-text--pc {
  display: block;
}

.dl-banner__desc-text--sp {
  display: none;
}

.dl-banner__images--pc {
  position: absolute;
  top: 15.92%;
  left: 64.14%;
  width: 32.64%;
  height: 75.51%;
  z-index: 1;
}

.dl-banner__images--sp {
  display: none;
}

.dl-banner__image {
  position: absolute;
  box-shadow: 1px 0px 5px 0px rgba(61, 120, 99, 0.25);
  overflow: hidden;
}

.dl-banner__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dl-banner__image--1 {
  width: 82.04%;
  height: 57.14%;
  top: 0;
  left: 11.71%;
  transform: rotate(8.962deg);
  z-index: 1;
}

.dl-banner__image--2 {
  width: 81.48%;
  height: 56.66%;
  top: 17.49%;
  left: 6.67%;
  z-index: 2;
}

.dl-banner__image--3 {
  width: 81.90%;
  height: 56.79%;
  top: 36.22%;
  left: 0;
  transform: rotate(-4.169deg);
  box-shadow: 1px 0px 5px 0px #3d7863;
  z-index: 3;
}

.dl-banner__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  height: 50px;
  padding: 10px 20px;
  background: #ff7e33;
  border: 2px solid #fff;
  border-radius: 12px;
  box-shadow: 0px 5px 15px 0px #00c17c;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #fff;
  transition: background 0.3s;
}

/* SP 資料ダウンロードバナー */
@media (max-width: 768px) {
  .dl-banner {
    width: 24.5rem;
    /* 343px */
    max-width: none;
    height: 20.643rem;
    /* 289px */
    margin-top: 2.143rem;
    /* 30px */
    border-radius: 1.429rem;
    /* 20px */
  }

  .dl-banner__decoration--circle {
    top: -4.5rem;
    left: -4.214rem;
    width: 16.286rem;
    height: 16.286rem;
  }

  .dl-banner__decoration--wave {
    bottom: -8rem;
    right: -15rem;
    width: 28rem;
    height: 28rem;
  }

  .dl-banner__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: auto;
    padding: 0;
    align-items: center;
    text-align: center;
    gap: 1.214rem;
    /* 17px */
  }

  .dl-banner__title {
    font-size: 1.571rem;
    /* 22px */
    text-align: center;
  }

  .dl-banner__desc {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    /* 7px */
    width: auto;
  }

  .dl-banner__desc-text {
    font-size: 1.143rem;
    /* 16px */
    text-align: left;
  }

  .dl-banner__desc-text--pc {
    display: none;
  }

  .dl-banner__desc-text--sp {
    display: block;
  }

  .dl-banner__images--pc {
    display: none;
  }

  .dl-banner__images--sp {
    display: block;
    position: relative;
    width: 7.384rem;
    height: 6.786rem;
    flex-shrink: 0;
  }

  .dl-banner__images--sp .dl-banner__image--1,
  .dl-banner__images--sp .dl-banner__image--2,
  .dl-banner__images--sp .dl-banner__image--3 {
    position: absolute;
    box-shadow: 1px 0px 5px 0px rgba(61, 120, 99, 0.25);
    overflow: hidden;
  }

  .dl-banner__images--sp .dl-banner__image--1 {
    width: 6.862rem;
    height: 3.869rem;
    top: 0;
    left: 0.98rem;
    transform: rotate(8.962deg);
    z-index: 1;
  }

  .dl-banner__images--sp .dl-banner__image--2 {
    width: 6.815rem;
    height: 3.837rem;
    top: 1.184rem;
    left: 0.558rem;
    transform: none;
    z-index: 2;
  }

  .dl-banner__images--sp .dl-banner__image--3 {
    width: 6.851rem;
    height: 3.845rem;
    top: 2.452rem;
    left: 0;
    transform: rotate(-4.169deg);
    z-index: 3;
  }

  .dl-banner__btn {
    height: 3.571rem;
    /* 50px */
    padding: 0.714rem 1.429rem;
    /* 10px 20px */
    border-radius: 0.857rem;
    /* 12px */
    font-size: 1.286rem;
    /* 18px */
  }
}

/* 前後の記事ナビゲーション - カード型 */
.case-nav {
  display: flex;
  justify-content: center;
  gap: min(1.1111vw, 16px);
  margin-top: min(4.8611vw, 70px);
}

.case-nav__card {
  display: flex;
  gap: min(1.171875vw, 15px);
  align-items: flex-start;
  padding: min(1.171875vw, 15px);
  background: #fff;
  border: 1px solid #d2d7db;
  border-radius: min(0.78125vw, 10px);
  text-decoration: none;
  transition: border-color 0.3s, opacity 0.3s;
}

.case-nav__card:hover {
  border-color: #e1e2eb;
  text-decoration: none;
}

.case-nav__card:hover .case-nav__content,
.case-nav__card:hover .case-nav__thumbnail img {
  opacity: 0.8;
}

.case-nav__card--prev {
  flex-direction: row;
}

.case-nav__card--next {
  flex-direction: row;
}

.case-nav__content {
  display: flex;
  flex-direction: column;
  gap: min(0.390625vw, 5px);
  width: min(14.21875vw, 182px);
}

.case-nav__label {
  display: flex;
  align-items: center;
  gap: min(0.546875vw, 7px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.171875vw, 15px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #3f4f5f;
}

.case-nav__label-pc {
  display: inline;
}

.case-nav__label-sp {
  display: none;
}

.case-nav__label--next {
  flex-direction: row;
}

.case-nav__arrow {
  width: min(0.9375vw, 12px);
  height: min(0.78125vw, 10px);
  flex-shrink: 0;
}

.case-nav__arrow--next {
  transform: rotate(180deg) scaleY(-1);
}

.case-nav__info {
  display: flex;
  flex-direction: column;
  gap: min(0.234375vw, 3px);
}

.case-nav__company {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9375vw, 12px);
  font-weight: 500;
  line-height: 1.5;
  color: #3f4f5f;
  margin: 0;
}

.case-nav__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.09375vw, 14px);
  font-weight: 500;
  line-height: 1.09;
  color: #3f4f5f;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  max-height: min(2.34375vw, 30px);
}

.case-nav__thumbnail--pc {
  width: min(8.984375vw, 115px);
  flex-shrink: 0;
}

.case-nav__thumbnail--pc img {
  width: 100%;
  height: min(6.015625vw, 77px);
  object-fit: cover;
  border-radius: min(0.390625vw, 5px);
  display: block;
}

.case-nav__thumbnail--sp {
  display: none;
}

/* SP ナビゲーション */
@media (max-width: 768px) {
  .case-nav {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    gap: 0.6875rem;
    /* 11px */
    margin-top: 0;
  }

  .case-nav__card {
    flex-direction: column;
    width: 10.375rem;
    /* 166px */
    padding: 0.625rem;
    /* 10px */
    border-color: #e1e2eb;
    gap: 0.3125rem;
    /* 5px */
  }

  .case-nav__card--prev,
  .case-nav__card--next {
    flex-direction: column;
  }

  .case-nav__content {
    display: flex;
    flex-direction: column;
    gap: 0.3125rem;
    /* 5px */
    width: 9.125rem;
    /* 146px */
  }

  .case-nav__label {
    font-size: 1.071rem;
    /* 15px */
    gap: 0.5rem;
    /* 7px */
    flex-direction: row;
  }

  .case-nav__label-pc {
    display: none;
  }

  .case-nav__label-sp {
    display: inline;
  }

  .case-nav__label--next {
    flex-direction: row;
    justify-content: flex-end;
    width: 100%;
  }

  .case-nav__arrow {
    width: 0.857rem;
    /* 12px */
    height: 0.714rem;
    /* 10px */
  }

  .case-nav__arrow--next {
    transform: rotate(180deg) scaleY(-1);
  }

  .case-nav__company {
    font-size: 0.857rem;
    /* 12px */
  }

  .case-nav__card--next .case-nav__company {
    text-align: right;
  }

  .case-nav__card--next .case-nav__title {
    text-align: left;
  }

  .case-nav__title {
    font-size: 1rem;
    /* 14px */
    max-height: 2.143rem;
    /* 30px */
  }

  .case-nav__thumbnail--pc {
    display: none;
  }

  .case-nav__thumbnail--sp {
    display: block;
    width: 9.125rem;
    /* 146px */
  }

  .case-nav__thumbnail--sp img {
    width: 100%;
    height: 6.125rem;
    /* 98px */
    object-fit: cover;
    border-radius: 0.3125rem;
    /* 5px */
    display: block;
  }
}

/* 一覧ページに戻るボタン */
.case-back-btn {
  display: flex;
  justify-content: center;
  margin-top: min(1.3889vw, 20px);
}

.case-back-btn__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(20.625vw, 264px);
  height: min(3.59375vw, 46px);
  padding: min(0.78125vw, 10px) min(2.34375vw, 30px);
  background: #fff;
  border: 1px solid #d2d7db;
  border-radius: min(0.78125vw, 10px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.171875vw, 15px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #3f4f5f;
  text-decoration: none;
  transition: border-color 0.3s, opacity 0.3s;
}

.case-back-btn__link:hover {
  border-color: #e1e2eb;
  text-decoration: none;
}

.case-back-btn__link:hover {
  opacity: 0.8;
}

/* SP 一覧ページに戻るボタン */
@media (max-width: 768px) {
  .case-back-btn {
    margin-top: 1.25rem;
    /* 20px */
  }

  .case-back-btn__link {
    width: 18.929rem;
    /* 265px */
    height: 3.286rem;
    /* 46px */
    padding: 0.714rem 2.143rem;
    /* 10px 30px */
    border-radius: 0.714rem;
    /* 10px */
    font-size: 1.071rem;
    /* 15px */
    border-color: #e1e2eb;
  }
}

/* ページネーション */
.pagination {
  margin-top: 40px;
  text-align: center;
}

.pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.pagination a,
.pagination span {
  display: inline-block;
  padding: 8px 15px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.pagination a:hover {
  background: #f5f5f5;
  text-decoration: none;
}

.pagination .current {
  background: #00a960;
  color: #fff;
  border-color: #00a960;
}

/* ==========================================================================
   TOC+ 目次スタイル（ピクセルパーフェクト）
   ========================================================================== */
/*
   PC: 1280px基準 → min(vw, px)
   SP: 375px基準 → rem
   
   Figmaデザイン:
   - PC: width 700px, padding 15px 30px, border 3px #f1f6e8, radius 15px
   - タイトル: 24px Bold, #3f4f5f
   - 大見出し: 14px Bold, #3f4f5f, line-height 1.5
   - 小見出し: 12px Medium, #3f4f5f, line-height 1.7, dot 3px
*/

/* コンテナ - デフォルトスタイルを完全リセット */
#toc_container,
.toc_container_header {
  all: unset;
  display: block;
}

#toc_container {
  background: #fff !important;
  border: min(0.234vw, 3px) solid #f1f6e8 !important;
  border-radius: min(1.172vw, 15px) !important;
  padding: min(1.172vw, 15px) min(2.344vw, 30px) !important;
  width: 100% !important;
  max-width: min(54.688vw, 700px) !important;
  margin: 0 0 min(2.7778vw, 40px) 0 !important;
  font-family: 'Zen Maru Gothic', sans-serif !important;
  box-sizing: border-box !important;
}

/* 目次タイトル部分 */
#toc_container p.toc_title,
#toc_container .toc_title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 0 min(1.172vw, 15px) 0 !important;
  border-bottom: 1px solid #f1f6e8 !important;
  margin: 0 0 min(1.172vw, 15px) 0 !important;
  cursor: pointer !important;
  font-size: min(1.875vw, 24px) !important;
  font-weight: 700 !important;
  color: #3f4f5f !important;
  letter-spacing: 0.04em !important;
  line-height: 1 !important;
  background: none !important;
}

/* 開閉トグルテキストを非表示にしてアイコンに置換 */
#toc_container .toc_toggle,
#toc_container .toc_toggle a,
#toc_container span.toc_toggle {
  font-size: 0 !important;
  color: transparent !important;
  position: relative !important;
  display: block !important;
  width: min(1.328vw, 17px) !important;
  height: min(0.703vw, 9px) !important;
}

#toc_container .toc_toggle::after,
#toc_container span.toc_toggle::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: min(1.328vw, 17px) !important;
  height: min(0.703vw, 9px) !important;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 17 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 8L8.5 1L16 8' stroke='%233f4f5f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  transition: transform 0.3s ease !important;
}

/* 閉じている時のアイコン */
#toc_container.contracted .toc_toggle::after,
#toc_container.contracted span.toc_toggle::after {
  transform: rotate(180deg) !important;
}

/* 目次リスト */
#toc_container ul,
#toc_container ul.toc_list,
#toc_container .toc_list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
}

/* 大見出し（ul > li） */
#toc_container .toc_list > li,
#toc_container ul.toc_list > li {
  margin: 0 0 min(0.781vw, 10px) 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: none !important;
}

#toc_container .toc_list > li:last-child,
#toc_container ul.toc_list > li:last-child {
  margin-bottom: 0 !important;
}

#toc_container .toc_list > li > a,
#toc_container ul.toc_list > li > a {
  font-size: min(1.094vw, 14px) !important;
  font-weight: 700 !important;
  color: #3f4f5f !important;
  letter-spacing: 0.05em !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
  display: block !important;
  background: none !important;
  padding: 0 !important;
}

#toc_container .toc_list > li > a:hover,
#toc_container ul.toc_list > li > a:hover {
  text-decoration: underline !important;
}

/* 小見出し（ul > li > ul > li） */
#toc_container .toc_list li ul,
#toc_container ul.toc_list li ul {
  list-style: none !important;
  padding: 0 !important;
  margin: min(0.234vw, 3px) 0 0 0 !important;
  background: none !important;
}

#toc_container .toc_list li ul li,
#toc_container ul.toc_list li ul li {
  padding: 0 0 0 min(1.25vw, 16px) !important;
  margin: 0 0 min(0.234vw, 3px) 0 !important;
  position: relative !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: min(0.625vw, 8px) !important;
  list-style: none !important;
  background: none !important;
}

#toc_container .toc_list li ul li::before,
#toc_container ul.toc_list li ul li::before {
  content: '' !important;
  display: block !important;
  width: min(0.234vw, 3px) !important;
  height: min(0.234vw, 3px) !important;
  min-width: 3px !important;
  min-height: 3px !important;
  background: #3f4f5f !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  margin-top: min(0.703vw, 9px) !important;
}

#toc_container .toc_list li ul li a,
#toc_container ul.toc_list li ul li a {
  font-size: min(0.938vw, 12px) !important;
  font-weight: 500 !important;
  color: #3f4f5f !important;
  letter-spacing: 0.05em !important;
  line-height: 1.7 !important;
  text-decoration: none !important;
  background: none !important;
  padding: 0 !important;
}

#toc_container .toc_list li ul li a:hover,
#toc_container ul.toc_list li ul li a:hover {
  text-decoration: underline !important;
}

/* ==========================================================================
   TOC+ SP（スマートフォン）
   ========================================================================== */
@media (max-width: 768px) {
  #toc_container {
    width: calc(343 / 375 * 100vw) !important;
    max-width: 343px !important;
    padding: 1.071rem !important; /* 15px */
    border-width: 0.214rem !important; /* 3px */
    border-radius: 1.071rem !important; /* 15px */
    margin: 1.429rem auto !important; /* 20px */
  }

  #toc_container p.toc_title,
  #toc_container .toc_title {
    padding: 0 0 1.071rem 0 !important; /* 15px */
    margin: 0 0 1.071rem 0 !important; /* 15px */
    font-size: 1.286rem !important; /* 18px */
    letter-spacing: 0.04em !important;
  }

  #toc_container .toc_toggle,
  #toc_container .toc_toggle a,
  #toc_container span.toc_toggle {
    width: 1.071rem !important; /* 15px */
    height: 0.5rem !important; /* 7px */
  }

  #toc_container .toc_toggle::after,
  #toc_container span.toc_toggle::after {
    width: 1.071rem !important; /* 15px */
    height: 0.5rem !important; /* 7px */
  }

  /* 大見出し */
  #toc_container .toc_list > li,
  #toc_container ul.toc_list > li {
    margin: 0 0 0.429rem 0 !important; /* 6px */
  }

  #toc_container .toc_list > li > a,
  #toc_container ul.toc_list > li > a {
    font-size: 1rem !important; /* 14px */
    line-height: 1.5 !important;
    letter-spacing: 0.05em !important;
  }

  /* 小見出し */
  #toc_container .toc_list li ul,
  #toc_container ul.toc_list li ul {
    margin: 0.214rem 0 0 0 !important; /* 3px */
  }

  #toc_container .toc_list li ul li,
  #toc_container ul.toc_list li ul li {
    padding: 0 0 0 0.357rem !important; /* 5px */
    margin: 0 0 0.214rem 0 !important; /* 3px */
    gap: 0.571rem !important; /* 8px */
  }

  #toc_container .toc_list li ul li::before,
  #toc_container ul.toc_list li ul li::before {
    width: 0.214rem !important; /* 3px */
    height: 0.214rem !important; /* 3px */
    min-width: 3px !important;
    min-height: 3px !important;
    margin-top: 0.607rem !important; /* 約8.5px */
  }

  #toc_container .toc_list li ul li a,
  #toc_container ul.toc_list li ul li a {
    font-size: 0.857rem !important; /* 12px */
    line-height: 1.7 !important;
    letter-spacing: 0.05em !important;
  }
}

/* 閉じた状態のスタイル */
#toc_container.contracted p.toc_title,
#toc_container.contracted .toc_title {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

#toc_container.contracted .toc_list,
#toc_container.contracted ul.toc_list {
  display: none !important;
}


/* ==========================================================================
   資料バナー（ホワイトペーパー） PC
   ========================================================================== */
.wp-banner {
  display: block;
  width: min(27.344vw, 350px);
  height: min(12.578vw, 161px);
  border-radius: min(0.813vw, 10.409px);
  border: 2px solid #13c4ce;
  background: linear-gradient(-55.97deg, #e3ffda 12.16%, #edffbe 87.84%);
  position: relative;
  overflow: hidden;
  text-decoration: none;
  margin: min(2.5vw, 32px) auto;
}

.wp-banner__bg-image {
  position: absolute;
  top: min(-10.078vw, -129px);
  left: min(-6.172vw, -79px);
  width: min(39.766vw, 509px);
  height: auto;
  aspect-ratio: 1920 / 1280;
  background-image: url('./images/61deab3ca8309b5f279a37e6cf1864c5a7fdc2f5.png');
  background-size: cover;
  background-position: center;
  mix-blend-mode: overlay;
  pointer-events: none;
}

.wp-banner__illust {
  position: absolute;
  top: min(2.109vw, 27px);
  right: min(0.625vw, 8px);
  width: min(8.906vw, 114px);
  height: min(25.509vw, 326.525px);
  background-image: url('./images/9026e9792a44b0b0e6e088b6c151fa2a8e8afe14.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top center;
  pointer-events: none;
}

.wp-banner__content {
  position: absolute;
  top: min(1.328vw, 17px);
  left: min(1.172vw, 15px);
  width: min(20.938vw, 268px);
  display: flex;
  flex-direction: column;
  gap: min(0.313vw, 4px);
}

.wp-banner__subtitle {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.406vw, 18px);
  font-weight: 700;
  color: #3f4f5f;
  letter-spacing: 0.04em;
  line-height: 1.65;
  margin: 0;
}

.wp-banner__badges {
  display: flex;
  align-items: center;
  gap: min(0.391vw, 5px);
}

.wp-banner__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.156vw, 2px) min(0.781vw, 10px);
  border-radius: min(3.125vw, 40px);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.25vw, 16px);
  font-weight: 700;
  color: #fff;
  line-height: 1.65;
}

.wp-banner__badge--yellow {
  background-color: #edb937;
}

.wp-banner__badge--green {
  background-color: #21c188;
}

.wp-banner__no {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.406vw, 18px);
  font-weight: 700;
  color: #3f4f5f;
  letter-spacing: 0.04em;
  line-height: 1.65;
}

.wp-banner__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(2.031vw, 26px);
  font-weight: 700;
  color: #3f4f5f;
  letter-spacing: 0.15em;
  line-height: 1.35;
  margin: 0;
}

.wp-banner__footer {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: min(2.031vw, 26px);
  background-color: #13c4ce;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(0.625vw, 8px);
}

.wp-banner__footer-text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.172vw, 15px);
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
  line-height: 1.65;
}

.wp-banner__footer-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(1.22vw, 15.613px);
  height: min(1.22vw, 15.613px);
}

.wp-banner__footer-arrow svg {
  width: 100%;
  height: 100%;
}

/* ==========================================================================
   資料バナー（ホワイトペーパー） SP
   ========================================================================== */
@media (max-width: 768px) {
  .wp-banner {
    width: calc(350 / 375 * 100vw);
    max-width: 350px;
    height: auto;
    aspect-ratio: 350 / 161;
    border-radius: 0.743rem; /* 10.409px */
    border-width: 0.143rem; /* 2px */
    margin: 1.143rem auto; /* 16px */
  }

  .wp-banner__bg-image {
    top: calc(-129 / 375 * 100vw);
    left: calc(-79 / 375 * 100vw);
    width: calc(509 / 375 * 100vw);
  }

  .wp-banner__illust {
    top: calc(27 / 375 * 100vw);
    right: calc(8 / 375 * 100vw);
    width: calc(114 / 375 * 100vw);
    height: calc(327 / 375 * 100vw);
  }

  .wp-banner__content {
    top: calc(17 / 375 * 100vw);
    left: calc(15 / 375 * 100vw);
    width: calc(268 / 375 * 100vw);
    gap: calc(4 / 375 * 100vw);
  }

  .wp-banner__subtitle {
    font-size: 1.286rem; /* 18px */
    letter-spacing: 0.04em;
  }

  .wp-banner__badges {
    gap: calc(5 / 375 * 100vw);
  }

  .wp-banner__badge {
    padding: 0.143rem 0.714rem; /* 2px 10px */
    border-radius: 2.857rem; /* 40px */
    font-size: 1.143rem; /* 16px */
  }

  .wp-banner__no {
    font-size: 1.286rem; /* 18px */
  }

  .wp-banner__title {
    font-size: 1.857rem; /* 26px */
    letter-spacing: 0.15em;
  }

  .wp-banner__footer {
    height: calc(26 / 375 * 100vw);
    min-height: 26px;
    gap: 0.571rem; /* 8px */
  }

  .wp-banner__footer-text {
    font-size: 1.071rem; /* 15px */
  }

  .wp-banner__footer-arrow {
    width: 1.115rem; /* 15.613px */
    height: 1.115rem; /* 15.613px */
  }
}

/* ==========================================================================
   CTA Section
   PC: 1124px container, gap 48px between title and cards, cards gap 48px
   SP: gap 32px between title and cards, cards gap 24px, cards 343px
   ========================================================================== */
.cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(3.3333vw, 48px);
  width: 100%;
  padding: 0 min(2.0833vw, 30px);
  padding-top: min(6.9444vw, 100px);
  padding-bottom: min(6.6667vw, 96px);
}

.cta__title-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(1.1111vw, 16px);
}

.cta__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(2.7778vw, 40px);
  font-weight: 700;
  color: #3f4f5f;
  letter-spacing: min(0.2778vw, 4px);
  line-height: 1;
  text-align: center;
  margin: 0;
  font-feature-settings: 'pwid';
}

.cta__title--pc {
  display: block;
}

.cta__title--sp {
  display: none;
}

.cta__title--sp p {
  margin: 0;
}

.cta__cards {
  display: flex;
  gap: min(3.3333vw, 48px);
  width: min(78.0556vw, 1124px);
  justify-content: center;
}

/* CTA Card - 共通スタイル */
.cta-card {
  position: relative;
  width: min(37.3611vw, 538px);
  height: min(17.2222vw, 248px);
  border-radius: min(1.1111vw, 16px);
  overflow: hidden;
  display: block;
  text-decoration: none;
  box-shadow: 0 min(1.9444vw, 28px) min(2.5vw, 36px) rgba(6, 93, 62, 0.13);
}

.cta-card--contact {
  background-color: #3f4f5f;
  border: min(0.3472vw, 5px) solid #13c4ce;
}

.cta-card--document {
  background-color: #34424f;
  border: min(0.3472vw, 5px) solid #fc7f26;
}

.cta-card__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.cta-card--document .cta-card__bg-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.cta-card--document .cta-card__bg--base {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 200%;
  height: auto;
  opacity: 0.32;
}

.cta-card__screenshot {
  position: absolute;
  opacity: 0.25;
  pointer-events: none;
}

.cta-card__screenshot--1 {
  width: min(22.6389vw, 326px);
  height: auto;
  top: max(-0.7576vw, -10.91px);
  left: min(8.7958vw, 126.66px);
  transform: rotate(8.962deg);
}

.cta-card__screenshot--2 {
  width: min(20.8921vw, 300.85px);
  height: auto;
  top: min(2.8729vw, 41.37px);
  left: min(7.5vw, 108px);
  box-shadow: min(0.5808vw, 8.364px) 0 min(0.7260vw, 10.455px) rgba(44, 69, 125, 0.5);
}

.cta-card__screenshot--3 {
  width: min(21.8024vw, 313.96px);
  height: auto;
  top: min(4.8097vw, 69.26px);
  left: min(5.9028vw, 85px);
  transform: rotate(-4.169deg);
  box-shadow: min(0.5808vw, 8.364px) 0 min(0.7260vw, 10.455px) rgba(44, 69, 125, 0.5);
}

.cta-card__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #212426;
  mix-blend-mode: soft-light;
  opacity: 0.7;
}

.cta-card__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: min(0.5556vw, 8px);
}

.cta-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(0.2778vw, 4px) min(1.1111vw, 16px);
  background-color: #f2f3f5;
  border-radius: min(3.4722vw, 50px) min(69.375vw, 999px) min(69.375vw, 999px) 0;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.04em;
  font-feature-settings: 'pwid';
}

.cta-card__badge--cyan {
  color: #03afb9;
}

.cta-card__badge--orange {
  color: #fc7f26;
}

.cta-card__text {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(2.2222vw, 32px);
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  letter-spacing: 0.04em;
  line-height: 1.65;
  font-feature-settings: 'pwid';
}

.cta-card__arrow {
  position: absolute;
  bottom: 0;
  right: 0;
  width: min(2.7778vw, 40px);
  height: min(2.7778vw, 40px);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.cta-card__arrow::before {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  border-radius: min(1.1111vw, 16px) 0 0 0;
}

.cta-card__arrow--cyan::before {
  background-color: #13c4ce;
}

.cta-card__arrow--orange::before {
  background-color: #fc7f26;
}

.cta-card__arrow svg {
  width: min(1.6667vw, 24px);
  height: min(1.6667vw, 24px);
  transform: rotate(-90deg);
  position: relative;
  z-index: 1;
}

/* CTA Section SP */
@media (max-width: 768px) {
  .cta {
    gap: 2rem; /* 32px */
    padding: 0 1rem;
    padding-top: 6.25rem; /* 100px */
    padding-bottom: 5.5rem; /* 88px */
  }

  .cta__title {
    font-size: 1.5rem; /* 24px */
    line-height: 1.65;
    letter-spacing: 0.06rem; /* 0.96px */
  }

  .cta__title--pc {
    display: none;
  }

  .cta__title--sp {
    display: block;
    text-align: center;
  }

  .cta__cards {
    flex-direction: column;
    gap: 1.5rem; /* 24px */
    width: 100%;
    align-items: center;
  }

  .cta-card {
    width: 21.4375rem; /* 343px */
    height: 7.875rem; /* 126px */
    border-radius: 0.5rem; /* 8px */
    border-width: 0.125rem; /* 2px */
    box-shadow: 0 1.1157rem 1.4345rem rgba(6, 93, 62, 0.13);
  }

  .cta-card--document {
    background-color: #3f4f5f;
  }

  .cta-card__bg {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }

  .cta-card__content {
    gap: 0;
  }

  .cta-card__badge {
    padding: 0.125rem 0.5rem; /* 2px 8px */
    border-radius: 2rem 62.4375rem 62.4375rem 0; /* 32px 999px 999px 0 */
    font-size: 0.75rem; /* 12px */
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }

  .cta-card__text {
    font-size: 1.375rem; /* 22px */
    line-height: 1.5;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }

  .cta-card__arrow {
    width: 1.75rem; /* 28px */
    height: 1.75rem; /* 28px */
  }

  .cta-card__arrow::before {
    border-radius: 0.7rem 0 0 0; /* 11.2px */
  }

  .cta-card__arrow svg {
    width: 1.09375rem; /* 17.5px */
    height: 1.09375rem; /* 17.5px */
  }
}

/* ==========================================================================
   Footer Area Background (PC only)
   グラデーション背景 + 楕円装飾 + 波形 + 十字/四角装飾
   ========================================================================== */
.footer-area {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #fff;
  margin-top: 96px;
}

/* 一覧ページ用：背景装飾なし */
.footer-area--no-bg {
  background: transparent;
}

.footer-area--no-bg .footer-area__bg {
  display: none;
}

.footer-area__bg {
  position: absolute;
  top: -40px;
  left: 0;
  width: 100%;
  height: calc(100% + 40px);
  overflow: visible;
  pointer-events: none;
  z-index: 0;
}

.footer-area__bg--pc {
  display: block;
}

.footer-area__gradient {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 878px;
  background: linear-gradient(180deg, #f7fde8 4.934%, #eafdd8 47.893%, #e2fde1 96.676%);
}

.footer-area__ellipse {
  position: absolute;
  pointer-events: none;
}

.footer-area__ellipse--left {
  width: 535.068px;
  height: 535.068px;
  top: -221.59px;
  left: -327.61px;
  transform: rotate(61.572deg);
  mix-blend-mode: multiply;
}

.footer-area__ellipse--right1 {
  width: 800px;
  height: 800px;
  top: -46.47%;
  right: -45.36%;
  transform: rotate(309.57deg);
}

.footer-area__ellipse--right2 {
  width: 477px;
  height: 554px;
  top: 19.29%;
  right: -12.29%;
}

.footer-area__wave {
  position: absolute;
  width: 1679px;
  height: 328.02px;
  top: -244px;
  left: 50%;
  transform: translateX(-50%) scaleY(-1);
}

.footer-area__cross {
  position: absolute;
  pointer-events: none;
}

.footer-area__cross--1 {
  width: 77px;
  height: 77px;
  top: 217px;
  left: 105px;
}

.footer-area__cross--1::before,
.footer-area__cross--1::after {
  content: '';
  position: absolute;
  background: #ddf4d2;
}

.footer-area__cross--1::before {
  width: 25.851px;
  height: 77.025px;
  top: 0;
  left: 50%;
  transform: translateX(-50%) rotate(0.318deg);
}

.footer-area__cross--1::after {
  width: 25.851px;
  height: 77.025px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(90.318deg);
}

.footer-area__cross--2 {
  width: 56.402px;
  height: 56.402px;
  top: 368px;
  left: -19px;
}

.footer-area__cross--2::before,
.footer-area__cross--2::after {
  content: '';
  position: absolute;
  background: #ccefbb;
}

.footer-area__cross--2::before {
  width: 18.929px;
  height: 56.402px;
  top: 0;
  left: 50%;
  transform: translateX(-50%) rotate(0.318deg);
}

.footer-area__cross--2::after {
  width: 18.929px;
  height: 56.402px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(90.318deg);
}

.footer-area__square--1 {
  position: absolute;
  width: 77px;
  height: 77px;
  top: 217px;
  left: 105px;
  background: linear-gradient(180deg, #b5eb84 0%, #c6f1bc 88.85%);
}

.footer-area__square--2 {
  position: absolute;
  width: 58px;
  height: 57px;
  top: 368px;
  left: -20px;
  background: linear-gradient(180deg, #c0ed86 22.209%, #a4eb97 100%);
}

.footer-area__content {
  position: relative;
  z-index: 1;
}

/* SP背景 */
.footer-area__bg--sp {
  display: none;
}

@media (max-width: 768px) {
  .footer-area {
    margin-top: 4.286rem; /* 60px */
  }

  .footer-area__bg--pc {
    display: none;
  }

  .footer-area__bg--sp {
    display: block;
    position: absolute;
    top: -141px;
    left: 0;
    width: 100%;
    height: calc(100% + 141px);
    overflow: visible;
    pointer-events: none;
    z-index: 0;
  }

  .footer-area__bg--sp .footer-area__gradient {
    height: 712px;
  }

  .footer-area__bg--sp .footer-area__ellipse--left {
    width: 240.507px;
    height: 240.507px;
    top: 178.53px;
    left: -119.47px;
    transform: rotate(145.018deg);
  }

  .footer-area__bg--sp .footer-area__ellipse--right1 {
    width: 293.885px;
    height: 293.885px;
    top: -19.49%;
    right: -65.05%;
    transform: rotate(309.57deg);
  }

  .footer-area__bg--sp .footer-area__ellipse--right2 {
    width: 192px;
    height: 193px;
    top: 67.13%;
    right: -10.4%;
  }

  .footer-area__bg--sp .footer-area__wave {
    width: 437px;
    height: 110px;
    top: -80px;
    left: 50%;
    transform: translateX(-50%) scaleY(-1);
  }

  .footer-area__bg--sp .footer-area__cross--1 {
    width: 51.67px;
    height: 51.67px;
    top: 515px;
    left: 81.9px;
  }

  .footer-area__bg--sp .footer-area__cross--1::before,
  .footer-area__bg--sp .footer-area__cross--1::after {
    background: #ddf4d2;
  }

  .footer-area__bg--sp .footer-area__cross--1::before {
    width: 17.341px;
    height: 51.67px;
  }

  .footer-area__bg--sp .footer-area__cross--1::after {
    width: 17.341px;
    height: 51.67px;
  }

  .footer-area__bg--sp .footer-area__cross--2 {
    width: 37.836px;
    height: 37.836px;
    top: 616.51px;
    left: -1.95px;
  }

  .footer-area__bg--sp .footer-area__cross--2::before,
  .footer-area__bg--sp .footer-area__cross--2::after {
    background: #ccefbb;
  }

  .footer-area__bg--sp .footer-area__cross--2::before {
    width: 12.698px;
    height: 37.836px;
  }

  .footer-area__bg--sp .footer-area__cross--2::after {
    width: 12.698px;
    height: 37.836px;
  }

  .footer-area__bg--sp .footer-area__square--1 {
    width: 51.654px;
    height: 51.654px;
    top: 515.21px;
    left: 81.9px;
  }

  .footer-area__bg--sp .footer-area__square--2 {
    width: 38.908px;
    height: 38.237px;
    top: 616.51px;
    left: -1.95px;
  }
}

/* ==========================================================================
   Footer
   PC: bg #3f4f5f, padding 20px 160px, width 100%
   SP: padding 20px 16px, gap 16px
   ========================================================================== */
.site-footer {
  position: relative;
  z-index: 1;
  background-color: #3f4f5f;
  padding: min(1.3889vw, 20px) min(11.1111vw, 160px);
}

.site-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: min(1.6667vw, 24px);
  width: min(77.7778vw, 1120px);
}

.site-footer__company {
  display: flex;
  flex-direction: column;
}

.site-footer__name {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(1.6667vw, 24px);
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
  line-height: 1.65;
  margin: 0;
  font-feature-settings: 'pwid';
}

.site-footer__address {
  display: flex;
  flex-direction: column;
}

.site-footer__address-zip,
.site-footer__address-detail {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin: 0;
  font-feature-settings: 'pwid';
}

.site-footer__address-sp {
  display: none;
}

.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.site-footer__copyright {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  color: #e1e2eb;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin: 0;
  font-feature-settings: 'pwid';
  text-align: center;
}

/* Footer SP */
@media (max-width: 768px) {
  .site-footer {
    padding: 1.25rem 1rem; /* 20px 16px */
    margin-top: 5.5rem; /* 88px */
  }

  .site-footer__inner {
    gap: 1rem; /* 16px */
    width: 100%;
  }

  .site-footer__name {
    font-size: 1.25rem; /* 20px */
  }

  .site-footer__address-zip,
  .site-footer__address-detail {
    font-size: 0.75rem; /* 12px */
    font-weight: 500;
    line-height: 1.5;
  }

  .site-footer__address-pc {
    display: none;
  }

  .site-footer__address-sp {
    display: block;
  }

  .site-footer__bottom {
    justify-content: flex-start;
  }

  .site-footer__copyright {
    font-size: 0.75rem; /* 12px */
    font-weight: 500;
    line-height: 1.5;
    text-align: left;
  }
}

