@charset "UTF-8";

/* --- 共通変数設定 --- */
:root {
  /* Colors */
  --c-primary: #4158D0;
  --c-accent: #E7410A;
  --c-text-black: #333333;
  --c-bg-yellow: #FFFBE7;
  --c-white: #ffffff;
  --g-main: linear-gradient(90deg, #212D6A 0%, #4158D0 100%);
  --c-dark:#212D6A;

  /* Spacing */
  --inner-w: 1000px;

  /* Font Sizes (Liquid) */
  --fz-h1: clamp(28px, 4.5vw, 40px);
  --fz-h2: clamp(20px, 3.5vw, 28px);
  --fs-h3: clamp(24px, 3.4vw, 32px);
  --fz-p: clamp(16px, 1.6vw, 18px);

  /* 上下余白：最小 50px / 推奨 8vw / 最大 100px */
  --section-pv: clamp(25px, 8vw, 50px);

  /* 上下余白：最小 50px / 推奨 8vw / 最大 100px */
  --section-cta: clamp(16px, 8vw, 24px);

  /* innerの横幅（左右の余白は確保しつつ中央寄せ） */
  --inner-w: 1000px;

  --txt__cap: 0.8rem;
}

body{
  background:#F5F5FA !important;
  letter-spacing: normal;
}

p{
  font-size: var(--fz-p);
  /* line-height: 1.5; */
}

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

#wrapper{
    overflow: hidden;
    width: 100% !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    background: #ffffff !important;
}

#footer{
  background: var(--g-main);
}

.footermess {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 75px;
}

.footerlogo {
  margin-right: 5px;
}

.footerinner {
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center !important;
    text-align: center !important;
    margin-bottom: -70px;
  }
  .footerinner .footerbox {
    width: 100% !important;
    margin-bottom: 70px;
  }

#header .headerlogo img {
  width: 120px;
}

@media screen and (max-width: 480px) {
  #header .headerlogo img {
  width: 100px;
}
}

/* セクション全体の共通設定 */
.section {
  width: 100%;
  padding-top: var(--section-pv);
  padding-bottom: var(--section-pv);
}

.section-cta {
  width: 100%;
  padding-top: 0;
  padding-bottom: 48px;
}

/* innerは横幅と中央寄せのみを担当 */
.inner {
  max-width: var(--inner-w) !important;
  margin-right: auto;
  margin-left: auto;
  padding-right: 20px; /* スマホ時の左右の最低余白 */
  padding-left: 20px;
}

/* --- Utility --- */
.u-bg-yellow {
  background-color: var(--c-bg-yellow);
  padding: 0 4px;
}

.u-color-accent {
  color: var(--c-accent);
}

.u-font-bold {
  font-weight: 700;
}

.u-txt__cap{
  font-size: var(--txt__cap);
}

.u-txt__cap--normal{
  font-weight: normal;
}

.u-txt__medium{
  font-size: clamp(16px, 1vw, 18px) !important;
}

.u-is-left{
  text-align:left !important;
}

.u-is-full{
  flex: 0 0 100%;
  width: 100%;
  max-width: 100%;
}

.u-marginTop{
  margin-top: 24px !important;
}

.u-marginTop0{
  margin-top: 0 !important;
}

/* --- Main Section Styles --- */
.main-section {
  padding-top: clamp(80px, 10.7vw, 128px) !important;
  padding-bottom: clamp(25px, 6vw, 50px) !important;
  color: var(--c-text-black);
}

.main-section__header {
  margin-bottom: 32px;
}

.main-section__title {
  font-size: var(--fz-h1);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 0.8em;
}

.main-section__sub-title {
  font-size: var(--fz-h2);
  color: var(--c-primary);
  font-weight: 700;
  line-height: 1.4;
}

.main-section__content {
  margin-bottom: 40px;
}

.main-section__text {
  font-size: var(--fz-p);
  line-height: 1.8;
  margin-bottom: 1.5em;
}

.main-section__image {
  width: 100%;
  background-color: #F1F5FF; /* 画像の背景色に合わせたプレースホルダー色 */
  border-radius: 4px;
  overflow: hidden;
}

.main-section__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* --- Responsive Layout for Tablet/SP --- */
@media screen and (max-width: 768.98px) {
  .main-section__text br {
    display: none; /* スマホでは改行を解除して読みやすくする */
  }
}

/* --- Index Section Styles --- */
.index-box {
  background-color: #FAF8F3;
  padding: 24px clamp(20px, 4vw, 80px) 24px;
  position: relative;
  overflow: hidden; /* はみ出しを隠す */
}

.index-box__title {
  font-size: clamp(16px, 2.1vw, 24px);
  font-weight: 700;
  text-align: center;
  border-bottom: 1px solid #DFDCD5;
  padding-bottom: 8px;
  margin-bottom: 24px;
}

/* 目次のラッパー：ここをアニメーションさせる */
.index-box__wrapper {
  max-height: 160px; /* デフォルトの高さ（一部表示） */
  overflow: hidden;
  transition: max-height 0.6s ease-in-out; /* スルスル動く設定 */
}

/* 開いた時の状態 */
.index-box.is-open .index-box__wrapper {
  max-height: 1000px; /* 十分な高さを指定 */
}

.index-box__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.index-box__list li {
  margin-bottom: 8px;
  line-height: 1.5;
}

.index-box__list a {
  color: var(--c-primary);
  text-decoration: underline;
  font-weight: 700;
  margin-bottom: 10px;
  display: inline-block;
}

.index-box__sub-list li{
  list-style-type: circle;
  padding-left: 1rem;
}

.index-box__sub-list li::before{
  content: '●';
}

/* グラデーションの覆い */
.index-box__overlay {
  position: absolute;
  bottom: 80px; /* ボタンの上に配置 */
  left: 0;
  width: 100%;
  height: 100px;
  /* 背景色（#FAF8F3）へのグラデーション */
  background: linear-gradient(to bottom, rgba(250, 248, 243, 0) 0%, rgba(250, 248, 243, 1) 100%);
  pointer-events: none; /* リンククリックを邪魔しない */
  transition: opacity 0.4s;
}

/* 開いた時はグラデーションを消す */
.index-box.is-open .index-box__overlay {
  opacity: 0;
}

/* ボタンのスタイル */
.index-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  background-color: #192356;
  color: #fff;
  border: none;
  margin: 10px auto 0;
  padding: 12px 45px;
  border-radius: 50px;
  font-weight: 700;
  font-size: 18px;
  position: relative;
  z-index: 2;
  transition: background 0.3s;
}

.index-btn::after {
  content: "";
  width: 10px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
  transition: transform 0.3s;
  margin-top: -4px;
}

/* 開いた時のボタンの状態 */
.index-box.is-open .index-btn::after {
  transform: rotate(-135deg);
  margin-top: 4px;
}

/* --- 共通見出し (h2) --- */
.lp-h2 {
  font-size: clamp(21px, 3.5vw, 28px);
  font-weight: 700;
  color: var(--c-text-black);
  background-color: #F1F5FF; /* 薄青の背景 */
  border-left: 6px solid var(--c-primary); /* 紺色の左線 */
  padding: 12px 20px;
  margin-bottom: 24px;
  line-height: 1.4;
}

/* --- リード文 (p) --- */
.lp-lead {
  font-size: var(--fz-p);
  margin-bottom: 32px;
  line-height: 1.6;
}

/* --- セクション共通余白 --- */
.section {
  width: 100%;
  padding-top: clamp(24px, 3.6vw, 40px);
  padding-bottom: clamp(24px, 3.6vw, 40px);
}

.inner {
  max-width: var(--inner-w);
  margin: 0 auto;
  padding: 0 20px !important;
}

/* --- 共通テーブルレイアウト --- */
.resolution-table {
  width: 100%;
  max-width: 670px;
  margin: 0 auto;
  border-top: 1px solid #fff; /* ヘッダー上部の境界線 */
}

.resolution-table__header,
.resolution-table__row {
  display: flex;
  width: 100%; /* 親の幅に追従 */
}

/* 共通：左カラム（要件）の設定 */
.resolution-table__th:first-child,
.resolution-table__td-label {
  flex: 0 0 160px; /* ★幅を160pxで固定。画面が狭くなっても縮まない */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 10px;
  box-sizing: border-box;
}

/* 共通：右カラム（内容）の設定 */
.resolution-table__th:last-child,
.resolution-table__td-content {
  flex: 1; /* ★残りの幅をすべて使う */
  padding: 12px 20px;
  box-sizing: border-box;
}

/* --- 装飾系 --- */
.resolution-table__header {
  background-color: #212D6A;
  color: #fff;
  font-weight: 700;
}

.resolution-table__th {
  font-size: 16px;
  text-align: center;
}

/* 縦の仕切り線（ヘッダー） */
.resolution-table__th:first-child {
  border-right: 1px solid #fff;
}

.resolution-table__row {
  border-bottom: 1px dotted #212D6A;
}

.resolution-table__td-label {
  background-color: #F1F5FF;
  font-weight: 700;
  font-size: 15px;
  text-align: center;
}

.resolution-table__td-content {
  background-color: #fff;
  font-size: 15px;
  line-height: 1.6;
}

/* --- Responsive (768.98px以下) --- */
@media screen and (max-width: 768.98px) {
  .resolution-table {
    max-width: 100%;
  }

  .resolution-table__th:first-child,
  .resolution-table__td-label {
    flex: 0 0 130px;
  }
}

/* --- 共通コンポーネント: ゴールドグラデーション枠 --- */
.c-gold-frame {
  background: linear-gradient(135deg, #D7B300 0%, #FDE981 50%, #D7B300 100%);
  padding: 2px; /* 枠の太さ */
  border-radius: 10px;
  margin-bottom: 30px;
}

.c-gold-frame__inner {
  background-color: var(--c-bg-yellow);
  padding: clamp(16px, 2.1vw, 24px);
  border-radius: 8px;
}

/* --- Points Section --- */
.points-container {
  background-color: var(--c-bg-yellow);
  padding: clamp(24px, 5vw, 40px);
  border-radius: 8px;
}

/* --- ゴールドグラデーション枠 余白なし設定--- */
.u-mb0{
  margin-bottom: 0;
}

.points-item {
  border-bottom: 1px solid #E4D9A5;
  padding-bottom: 20px;
  margin-bottom: 20px;
}

.points-item:last-of-type {
  border-bottom: none;
  margin-bottom: 10px;
  padding-bottom: 0;
}

.points-item__title {
  font-size: clamp(20px, 3vw, 24px);
  color: var(--c-primary);
  font-weight: 700;
  margin-bottom: 10px;
}

.points-note {
  font-size: 14px;
  line-height: 1.6;
  color: #333;
}

.points-footer {
  margin-top: 30px;
  line-height: 1.8;
}

.points-footer-text{
  margin-bottom: 16px;
}

/* マーカー線（太めの黄色） */
.u-marker {
  background: linear-gradient(transparent 0%, #FFFF00 0%);
  font-weight: 700;
}

/* --- Issue (Diagnosis) Section --- */
.diagnosis-container {
  background-color: var(--c-bg-yellow);
  padding: clamp(24px, 5vw, 40px);
  border-radius: 8px;
}

.diagnosis-card {
  margin-bottom: 24px;
}

.diagnosis-card:last-child {
  margin-bottom: 0;
}

.diagnosis-card__head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.diagnosis-card__check {
  width: 100%;
  max-width: 32px;
  height: auto;
}

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

.diagnosis-card__q {
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: 700;
}

.diagnosis-card__body {
  background-color: #fff;
  border: 1px solid #E4D9A5;
  border-radius: 5px;
  padding: 15px 20px;
}

.u-color-accent {
  color: var(--c-accent); /* #E7410A */
  font-weight: 700;
}

.u-font-small{
  font-size: clamp(18px, 1.9vw, 21px);
}

.u-font-medium{
  font-size: clamp(21px, 2.9vw, 28px);
}

.u-font-large{
  font-size: clamp(32px, 4.3vw, 48px);
}

/* --- レスポンス対応 --- */
@media screen and (max-width: 480px) {
  .diagnosis-card__body {
    margin-left: 0;
    margin-top: 10px;
  }
  .diagnosis-card__head {
  align-items: flex-start;
}
.diagnosis-card__check {
  max-width: 32px;
}

}

/* --- issueセクション内：結論エリア --- */
.issue__conclusion {
  padding-top:clamp(40px, 6vw, 64px);
  text-align: center;
  position: relative;
}

.issue__conclusion-title {
  font-size: clamp(22px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 30px;
}

.issue__conclusion-text {
  font-size: var(--fz-p);
  line-height: 1.8;
}

.issue__conclusion-img{
  margin-top: 24px;
}

.issue__conclusion-img img{
  width: clamp(375px, 62vw, 686px);
}

.issue__arrows{
  position: absolute;
  top:0;
  left:48%;
}

.issue__arrow {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.issue__arrows .issue__arrow {/*矢印を配置するベースの設定*/
  position: absolute;
  width: 60px;
  height: 10px;
  opacity: 0;/*スタートは透明*/
  transform: scale(0.3);/*スタートは30%に縮小*/
  animation: arrow-move07 3s ease-out infinite;
}

.issue__arrows .issue__arrowfirst-child {/*1秒ずらしてアニメーション*/
  animation: arrow-move07 3s ease-out 1s infinite;
}

.issue__arrows .issue__arrow:nth-child(2) {/*2秒ずらしてアニメーション*/
  animation: arrow-move07 3s ease-out 2s infinite;
}

.issue__arrows .issue__arrow:before,
.issue__arrows .issue__arrow:after {/*矢印全体の設定*/
  position: absolute;
  content: '';
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50%;
  height: 100%;
  background: var(--c-accent);
  border-radius: 2px;
}
.issue__arrows .issue__arrow:before {/*矢印左の線の位置と傾斜*/
  left: 1px;
  transform: skewY(30deg);
}
.issue__arrows .issue__arrow:after {/*矢印左の線の位置と傾斜*/
  right: 1px;
  transform: skewY(-30deg);
}
@keyframes arrow-move07 {
   25% { opacity: 0.6;}
   43% { transform: translateY(1em); opacity: 0.8;}
   62% { transform: translateY(2em); opacity: 1;}
  100% { transform: translateY(3em) scale(0.5); opacity: 0;}
}

@media screen and (max-width: 480px) {
  .issue__arrows{
  position: absolute;
  top:-20px;
  left:42%;
}
.issue__conclusion-title,
.issue__conclusion-text{
  text-align: left;
}

.issue__conclusion-title br{
  display: none;
}
}

/* --- Resolution Section --- */
.resolution__conclusion-text {
  font-size: var(--fz-p);
  margin-bottom: 16px;
}

/* 事例タイトル */
.case-study-title {
  color: var(--c-primary);
  font-size: clamp(22px, 3.2vw, 36px);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 25px;
  position: relative;
  padding-bottom: 15px;
  border-bottom: 1px solid #E4D9A5;
  position: relative;
}

.case-study-title::after {
    position: absolute;
    top: 100%;
    left: 50px;
    transform: skew(55deg);
    height: 10px;
    width: 15px;
    border-left: 2px solid #E4D9A5;
    background-color: #fffbe7;
    content: "";
}

.case-study-title small {
  font-size: 12px;
  font-weight: normal;
  color: var(--c-text-black);
  display: inline-block;
  /* margin-left: 10px; */
}

@media screen and (max-width: 480px) {
  .case-study-title br{
    display: none;
  }
}

/* 事例カード（青ヘッダー） */
.case-card {
  border-radius: 4px;
  overflow: hidden;
}

/* --- 事例カードのヘッダー（斜めカットデザイン） --- */
.case-card__header {
  display: inline-block; /* 文字量に合わせる */
  position: relative;
  /* 指示いただいた左から右へのグラデーション */
  background: linear-gradient(90deg, #212D6A 0%, #4158D0 100%);
  color: #fff;
  padding: 10px 60px 10px 20px; /* 右側に斜めカット分の余白(60px)を確保 */
  font-weight: 700;
  font-size: clamp(14px, 2vw, 18px);
  line-height: 1.4;

  /* 右側を45度（相当）にカット */
  /* polygon(左上, 右上の手前, 右下, 左下) */
  clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 100%, 0 100%);

  /* 下側のゴールド線との兼ね合いでマージンを調整 */
  margin-bottom: -1px;
}

/* テキストの折り返し制御（必要に応じて） */
.case-card__header-text {
  display: block;
  white-space: nowrap;
  font-size: clamp(21px, 2.5vw, 24px);
}

/* 下側のゴールド線（画像にある細い線） */
.case-card {
  border-radius: 4px;
  overflow: hidden;
}

/* スマホ対応：文字が多い場合に備えて */
@media screen and (max-width: 768.98px) {
  .case-card__header {
    padding-right: 40px;
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 100%, 0 100%);
  }
  .case-card__header-text {
    white-space: normal; /* スマホでは改行を許可 */
  }
}

@media screen and (max-width: 480px) {
    .case-card__header {
    clip-path: none;
    padding-right: 20px;
  }
}

.case-card__content {
  padding: clamp(20px, 2.4vw, 24px);
  background: #fff;
  border-top: 2px solid #D7B300;
}

/* 導入効果エリア */
.case-effect {
  margin-bottom: 16px;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 15px;
}

.case-effect__text{
  margin-bottom: 24px;
}

.case-effect__label {
  color: var(--c-primary);
  font-weight: 700;
  font-size: clamp(21px, 2.5vw, 28px);
}

.u-marker-orange {
  background: linear-gradient(transparent 0%, #FFFF00 0%);
  font-weight: 700;
  color: var(--c-accent);
  font-size: 1.2em;
}

/* 比較コンポーネント */
.case-compare {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.case-compare__item {
  flex: 1;
  background: #fff;
  position: relative;
  padding: 24px;
}

.case-compare__item--before {
  background: #F5F3EE;
}

.case-compare__item--after {
  background: #FFFBE7;
}

/* Before/Afterバッジ */
.case-compare__badge {
  position: absolute;
  top: -10px;
  left: 0;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  z-index: 2;
}

.case-compare__badge--before { background: #666; }
.case-compare__badge--after { background: linear-gradient(135deg, #FFB800 0%, #FF9900 100%); }

/* 画像プレースホルダー */
.case-compare__img-placeholder {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 15px;
  border-radius: 4px;
}

.case-compare__text {
  font-size: 15px;
  line-height: 1.6;
}

/* 中央の矢印 */
.case-compare__arrow {
  align-self: center;
  width: 0;
  height: 0;
  border-top: 24px solid transparent;
  border-bottom: 24px solid transparent;
  border-left: 20px solid var(--c-dark);
}

/* レスポンシブ */
@media screen and (max-width: 768.98px) {
  .case-compare {
    flex-direction: column;
    gap: 8px; }

  .case-compare__arrow {
    transform: rotate(90deg);
    margin: 0 auto;
  }

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

  .case-compare__img-placeholder {
    aspect-ratio: auto;
    height: auto;
    margin-right: -5px;
    margin-left: -5px;
    margin-bottom: 10px;
  }
}

/* --- リチェック訴求 --- */
.about-lecheck{
  padding-top:clamp(40px, 6vw, 64px);
  text-align: center;
  position: relative;
}

/* --- 導入前後比較テーブル (3列版) --- */
.res-table {
  width: 100%;
  margin-top: 50px;
  border-collapse: collapse;
  font-size: 15px;
}

.res-table__head {
  display: flex;
}

.res-table__th {
  flex: 1;
  padding: 15px;
  text-align: center;
  font-weight: 700;
  color: #fff;
}

.res-table__th--blank { flex: 0.6; background: transparent; }
.res-table__th--before { flex: 1; background: #F1F5FF; color: #000000; }
.res-table__th--after { flex: 1; background: var(--c-primary); }

.res-table__row {
  display: flex;
  border-bottom: 1px dotted var(--c-dark);
}

.res-table__row:last-child {
  display: flex;
  border-bottom: 1px dotted var(--c-dark);
}

.res-table__label {
  flex: 0.6;
  padding: 20px;
  background: #F7F8FC;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

.res-table__cell {
  flex: 1;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  font-size: clamp(16px, 1.6vw, 21px);
}

.res-table__cell--accent {
  background: #F1F5FF;
}

.res-table__cap {
  font-size: 16px;
}

   /* ===============================================
       resolution
  =============================================== */

.effect-grid {
  display: flex;
  gap: 20px;
  background: linear-gradient(135deg, #D7B300 0%, #FDE981 50%, #D7B300 100%);
  padding: 2px;
  border-radius: 10px;
  margin-bottom:8px;
}

.effect-card__inner{
  display: flex;
  flex: 1;
  gap: 16px;
  padding: 24px;
  background: #FFFBE7;
  border-radius: 10px;
}
.effect-card {
  flex: 1; background: #fff; border: 1px solid var(--c-border-gold); text-align: center;
  box-shadow: 0px 3px 0px 0px rgba(204, 194, 146, 0.31);
}
.effect-card__title {
  background: var(--g-main); color: #fff; padding: 10px; font-weight: 700;
  border-bottom: 2px solid #D7B300;
}
.effect-card__body {
  padding: 20px;
}

.effect-card__num {
  font-size: clamp(48px, 5.4vw, 60px);
  font-weight: 900;
  color: var(--c-accent);
  line-height: 1;
}

.effect-card__txt {
  color: #000000;
}

.effect-card__num span {
  font-size: 24px;
}
.effect-card__num small {
  font-size: 14px;
  color: #333;
  display: block;
}

.logo-area{
  display: flex;
  flex-direction: column;
}

.logo-grid{
  background: linear-gradient(135deg, #D7B300 0%, #FDE981 50%, #D7B300 100%);
  padding: 2px; /* 枠の太さ */
  border-radius: 10px;
}

.logo-grid__inner {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  align-items: center;
  border-radius: 10px;
  background: #FFFBE7;
  padding: 24px;
}

.logo-grid__item{
  background: #ffffff;
  padding: 5px 10px;
  border: 1px solid #f7f4e3;
}

.logo-grid__item img {
  width: 100%;
  height: auto;
  object-fit: contain;
  max-width: 175px;
  max-height: 175px;
}

.effect__conclusion-title {
  font-size: clamp(24px, 2.9vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  margin: 30px 0;
  text-align: center;
}

.effect__campanyNumber{
  font-size: clamp(32px, 5.8vw, 64px);
}

/* Responsive */
@media screen and (max-width: 768.98px) {
  .case-compare, .effect-grid {
    flex-direction: column;
  }
  .case-compare__arrow {
    transform: rotate(90deg);
    margin: 10px auto;
    border-left-color: var(--c-dark);
  }

  .effect-card__inner{
  display: flex;
  flex-direction:column;
}
}

@media screen and (max-width: 480px) {
  .effect-card__body {
  display: flex;
  align-items: anchor-center;
  justify-content: center;
  gap: 8px;
}

.logo-grid__inner {
  grid-template-columns: repeat(3, 1fr);
  padding: 16px;
}

.res-table__cell {
  padding: 8px;
  display: flex;
  text-align: left;
  font-size: 14px;
  line-height: 1.5;
}

.res-table__cap {
  font-size: 14px;
  line-height:1.5;
}

.res-table__label {
  flex: 0.6;
  padding: 16px 8px;
  display: flex;
  align-items: center;
  /* justify-content: center; */
}

.res-table__th--blank {
  flex: 0.55;
  background: transparent;
}

.effect__conclusion-title{
  text-align: left;
}
}


.reference__note {
  font-size: 0.5em;
  vertical-align: baseline;
  font-weight: normal;
}

.reference__sub-note {
  font-size: 0.8rem;
  margin-bottom: 30px;
}

.reference__description {
  margin-bottom: 40px;
}

.reference__highlight {
  background-color: var(--color-highlight);
  font-weight: bold;
}

/* Case Study Box */
.reference__box {
  background-color: var(--color-bg-light);
  border: 1px solid #f0e6cc;
  border-radius: 8px;
  padding: clamp(20px, 5vw, 40px);
}

.reference__box-header {
  display: flex;
  align-items: center;
  gap: 15px;
  border-bottom: 1px solid #E4D9A5;
  padding-bottom: 20px;
  margin-bottom: 30px;
  position:relative;
}

.reference__box-header::after {
    position: absolute;
    top: 100%;
    left: 50px;
    transform: skew(55deg);
    height: 10px;
    width: 15px;
    border-left: 2px solid #E4D9A5;
    background-color: #fffbe7;
    content: "";
}

.reference__label {
  border: 2px solid var(--c-primary);
  color: var(--c-primary);
  padding: 2px 12px;
  font-size: clamp(18px, 2.5vw, 28px);
  font-weight: bold;
  background: #ffffff;
  text-align: center;
}

.reference__box-title {
  font-size: var(--fs-h3);
  color: var(--c-primary);
  font-weight: bold;
  line-height: 1.4;
}

/* Flex Content */
.reference__content {
  display: flex;
  flex-direction: column-reverse; /* SPデフォルト */
  gap: 30px;
}

.reference__item {
  margin-bottom: 20px;
}

.reference__item-title {
  color: var(--c-primary);
  font-weight: bold;
  margin-bottom: 8px;
  font-size: clamp(16px,1.9vw, 21px);
}

.reference__item-title span {
  width: 24px;
  height: 24px;
  background-color: #ffffff;
  border-radius: 50%;
  text-align: center;
  box-sizing: border-box;
  display: inline-block;
  margin-right: 8px;
  color: var(--c-primary);
  line-height:24px;
  border: 1px solid #1A348B;
}

.reference__image-area {
  text-align: center;
}

.reference__image {
  max-width: 100%;
  height: auto;
}

   /* ===============================================
       メディアクエリ
  =============================================== */

/* Tablet (768.98px以上) */
@media screen and (min-width: 768.98px) {
  .reference__content {
    flex-direction: row; /* 横並びへ */
    align-items: flex-start;
  }

  .reference__text-area {
    flex: 1;
  }

  .reference__image-area {
    flex: 0 0 35%; /* 画像の幅を固定 */
  }
}

/* SP (480px以下) */
@media screen and (max-width: 480px) {
  .reference__box-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-bottom: 8px;
    margin-bottom: 16px;
  }

  .reference__main-title br {
    display: none;
  }
}

/*CTA action*/
.btn-cta_pc,
.btn-cta_sp{
  display: inline-block;
  position: relative;
  transition: all 0.1s;
}

.btn-cta_pc:hover,
.btn-cta_sp:hover{
  opacity: .8;
}

@media screen and (max-width: 480px) {
  .btn-cta_pc,.bnr-cta{display: none;}
  .btn-cta_sp,.bnr-cta-sp{display: block;}
}

@media screen and (min-width: 481px) {
  .btn-cta_pc,.bnr-cta{display: block;}
  .btn-cta_sp,.bnr-cta-sp{display: none;}
}

.link-cta{
  list-style: none;
  padding: 0;
  margin: 16px 0;
  text-align: center;
}

.link-cta a {
  display: inline-flex;
  align-items: center;
  text-align: left;
  font-size: clamp(16px, 1vw, 18px);
  color: #1A348B;
  text-decoration: underline;
  position: relative;
  line-height: 1.5;
  gap: 8px;
}

.link-cta a::before {
  content: "";
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  background: url(../images/icn_arrow.svg) no-repeat center center;
  background-size: contain;
}

.link-cta:hover{
  text-decoration: none;
}

.link-cta:active{
  opacity: 0.8;
}

.bnr-cta:hover,
.bnr-cta-sp:hover{
 opacity: 0.8;
}




   /* ===============================================
       動画
  =============================================== */

/* 動画を包む親要素（位置調整用） */
  .video-container {
    position: relative;
    width: 100%;
    max-width: 700px;
    cursor: pointer;
    margin:0 auto;
    margin-top: clamp(16px,2.1vw, 24px);
  }

  /* 動画本体 */
  video {
    width: 100%;
    display: block;
  }

  /* 音声状態を表示するラベルのデザイン */
  #mute-icon {
    position: absolute;
    top: 80%;
    right: 20px;
    width: 32px;
    height: 32px;
    /* z-index: 2147483647; */
    transform: translate3d(0, 0, 0);
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 4px;
    padding: 8px;
    pointer-events: none; /* ラベルがクリックの邪魔にならないようにする */
  }

@media screen and (max-width: 480px) {
  #mute-icon {
    position: absolute;
    top: 75%;
    right: 15px;
  }
}

@media screen and (max-width: 390px) {
  #mute-icon {
    position: absolute;
    top: 70%;
    right: 15px;
  }
}