/* ============================================================
   AI事業向け追加スタイル（v2 リズム解体版）
   既存 assets/css/style.css は触らず、追加スタイルだけここに集約。
============================================================ */

/* ---------- カラーパレット ---------- */
:root {
  --ai-green: #6CC24A;
  --ai-red: #E94F4F;
  --ai-pink: #E91E63;
  --ai-orange: #F2994A;
  --ai-blue: #2D9CDB;
  --ai-gray: #8893A3;
  --ai-bg-soft: #F7F9FC;
  --ai-border: #E3E8EF;
  --ai-text: #1E2734;
  --ai-text-mute: #5A6675;
  --ai-text-faint: #97A0AE;
  --ai-shadow: 0 8px 30px rgba(20, 40, 80, 0.08);
  --ai-shadow-lg: 0 24px 60px rgba(20, 40, 80, 0.14);
  --ai-radius: 12px;
}

/* ---------- 共通 placeholder ---------- */
.placeholder {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background:
    repeating-linear-gradient(45deg, #f4f6fa 0, #f4f6fa 12px, #eef1f6 12px, #eef1f6 24px);
  color: var(--ai-text-mute);
  letter-spacing: 0.1em;
  text-align: center;
  overflow: hidden;
}
.placeholder::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px dashed #c4cbd5;
  pointer-events: none;
}
.placeholder__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: #6c7686;
}
.placeholder__caption {
  margin-top: 0.6rem;
  font-size: 1.2rem;
  color: #8b94a4;
}

.--ratio16-9 { aspect-ratio: 16 / 9; }
.--ratio4-3 { aspect-ratio: 4 / 3; }

/* ============================================================
   p-ai__rows / p-ai__row  ── SERVICE: 左右ジグザグ・ステージ
   カードではなく、各サービスが画面の主役になる横長ステージ。
   ・大きな番号を背景に薄く配置
   ・テキストとビジュアルが左右で入れ替わる（--reverse）
   ・余白を大きく取り、雑誌のような読み心地に
============================================================ */
.p-ai__rows {
  margin-top: 6rem;
}

.p-ai__row {
  position: relative;
  padding: 8rem 0;
  border-top: 1px solid var(--ai-border);
}
.p-ai__row:last-child {
  border-bottom: 1px solid var(--ai-border);
}
.p-ai__row.--featured {
  background:
    radial-gradient(ellipse at 20% 0%, rgba(233, 30, 99, 0.06), transparent 60%),
    radial-gradient(ellipse at 100% 100%, rgba(45, 156, 219, 0.05), transparent 60%);
}

.p-ai__row__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 4rem;
  display: grid;
  gap: 6rem;
  align-items: center;
}
@media screen and (min-width: 1200px) {
  .p-ai__row__inner {
    grid-template-columns: 1fr 1fr;
    gap: 8rem;
  }
  .p-ai__row.--reverse .p-ai__row__inner > .p-ai__row__body { order: 2; }
  .p-ai__row.--reverse .p-ai__row__inner > .p-ai__row__art { order: 1; }
}
@media screen and (max-width: 1199px) {
  .p-ai__row {
    padding: 5rem 0;
  }
  .p-ai__row__inner {
    padding: 0 2rem;
    gap: 3rem;
  }
}

/* --- body --- */
.p-ai__row__body { color: var(--ai-text); }
.p-ai__row__meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.6rem;
}
.p-ai__row__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.25em;
  font-weight: 600;
  color: var(--accent);
}
.p-ai__row__badge {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1rem;
  letter-spacing: 0.2em;
  font-weight: 700;
  background: var(--accent);
  color: #fff;
  padding: 0.3em 0.9em;
  border-radius: 999px;
}
.p-ai__row__title {
  font-size: 5.2rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--ai-text);
  letter-spacing: 0.02em;
}
.p-ai__row__title small {
  font-size: 0.45em;
  font-weight: 600;
  color: var(--ai-text-mute);
  margin-left: 0.4em;
}
.p-ai__row__catch {
  margin-top: 1.6rem;
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--accent);
  line-height: 1.5;
}
.p-ai__row__lead {
  margin-top: 1.6rem;
  font-size: 1.5rem;
  line-height: 1.95;
  color: var(--ai-text);
}
.p-ai__row__lead strong {
  color: var(--ai-text);
  font-weight: 700;
  background: linear-gradient(transparent 60%, color-mix(in srgb, var(--accent) 22%, transparent) 60%);
  padding: 0 0.1em;
}

.p-ai__row__bullets {
  list-style: none;
  margin-top: 2.4rem;
  padding: 0;
  display: grid;
  gap: 1rem;
  border-left: 3px solid var(--accent);
  padding-left: 1.6rem;
}
.p-ai__row__bullets li {
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: 1.4rem;
  font-size: 1.35rem;
  line-height: 1.7;
}
.p-ai__row__bullets strong {
  color: var(--accent);
  font-weight: 700;
}

.p-ai__row__foot {
  margin-top: 3rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.6rem 2.4rem;
  padding-top: 2rem;
  border-top: 1px dashed var(--ai-border);
}
.p-ai__row__price {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1;
}
.p-ai__row__price small {
  display: inline-block;
  font-size: 0.5em;
  letter-spacing: 0.15em;
  color: var(--ai-text-mute);
  margin-right: 0.4em;
  font-weight: 600;
}
.p-ai__row__price span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--ai-text-mute);
  margin-left: 0.4em;
}

.p-ai__row__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  background: var(--accent);
  padding: 1.2rem 2.4rem;
  border-radius: 999px;
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, gap .25s ease;
  box-shadow: 0 6px 20px color-mix(in srgb, var(--accent) 30%, transparent);
}
.p-ai__row__cta i {
  font-style: normal;
  transition: transform .25s ease;
}
.p-ai__row__cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px color-mix(in srgb, var(--accent) 40%, transparent);
  gap: 1.4rem;
}
.p-ai__row__cta:hover i {
  transform: translateX(4px);
}

/* accent 色設定 */
.p-ai__row.--green  { --accent: var(--ai-green); }
.p-ai__row.--red    { --accent: var(--ai-red); }
.p-ai__row.--pink   { --accent: var(--ai-pink); }
.p-ai__row.--orange { --accent: var(--ai-orange); }
.p-ai__row.--blue   { --accent: var(--ai-blue); }
.p-ai__row.--gray   { --accent: var(--ai-gray); }

/* --- art (アシメトリな visual area) --- */
.p-ai__row__art {
  position: relative;
  min-height: 36rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-ai__row__art__bigNum {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Josefin Sans', sans-serif;
  font-size: clamp(20rem, 28vw, 36rem);
  font-weight: 700;
  line-height: 0.8;
  -webkit-text-stroke: 2px var(--accent);
          text-stroke: 2px var(--accent);
  -webkit-text-fill-color: transparent;
          color: transparent;
  opacity: 0.5;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  letter-spacing: -0.05em;
}
.p-ai__row__art__keywords {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  max-width: 34rem;
}
.p-ai__row__art__keywords span {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 600;
  padding: 0.7em 1.4em;
  background: #fff;
  border: 1px solid var(--accent);
  color: var(--accent);
  border-radius: 999px;
  transition: transform .3s ease, background .3s ease, color .3s ease;
}
.p-ai__row__art__keywords span:nth-child(2n) {
  transform: translateY(0.6rem);
}
.p-ai__row__art__keywords span:hover {
  background: var(--accent);
  color: #fff;
  transform: translateY(-4px);
}

@media screen and (max-width: 1199px) {
  .p-ai__row__title { font-size: 3.6rem; }
  .p-ai__row__catch { font-size: 1.5rem; }
  .p-ai__row__bullets li {
    grid-template-columns: 9rem 1fr;
    font-size: 1.2rem;
  }
  .p-ai__row__art { min-height: 24rem; }
}

/* ============================================================
   p-ai__bleed  ── AI幹部: フルブリード Hero（独自世界観）
============================================================ */
.p-ai__bleed {
  position: relative;
  margin: 8rem 0 0;
  padding: 10rem 0 8rem;
  color: #fff;
  background: linear-gradient(160deg, #0F1A2E 0%, #14223D 55%, #1B2B4D 100%);
  overflow: hidden;
}
@media screen and (max-width: 1199px) {
  .p-ai__bleed {
    margin: 5rem 0 0;
    padding: 6rem 0 5rem;
  }
}

/* 背景ノイズ・グリッド */
.p-ai__bleed__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.p-ai__bleed__bg__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}
.p-ai__bleed__bg__glow {
  position: absolute;
  top: -10%;
  left: 50%;
  width: 60rem;
  height: 60rem;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(233, 30, 99, 0.35), transparent 60%);
  filter: blur(60px);
}

.p-ai__bleed__inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 4rem;
  display: grid;
  gap: 6rem;
}
@media screen and (max-width: 1199px) {
  .p-ai__bleed__inner {
    padding: 0 2rem;
    gap: 4rem;
  }
}

/* head */
.p-ai__bleed__head {
  text-align: center;
}
.p-ai__bleed__overline {
  display: inline-block;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.35em;
  font-weight: 700;
  color: var(--ai-pink);
  padding: 0.5em 1.4em;
  border: 1px solid color-mix(in srgb, var(--ai-pink) 60%, transparent);
  border-radius: 999px;
}
.p-ai__bleed__title {
  margin-top: 2rem;
  font-size: clamp(5.6rem, 9vw, 9rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
}
.p-ai__bleed__title__accent {
  background: linear-gradient(90deg, var(--ai-pink), #ff7aa7);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}
.p-ai__bleed__catch {
  margin-top: 2rem;
  font-size: 2rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}
@media screen and (max-width: 1199px) {
  .p-ai__bleed__catch { font-size: 1.5rem; }
}

/* main: スクショ + 物語ステップ */
.p-ai__bleed__main {
  display: grid;
  gap: 4rem;
  align-items: start;
}
@media screen and (min-width: 1200px) {
  .p-ai__bleed__main {
    grid-template-columns: 7fr 5fr;
    gap: 6rem;
  }
}

.p-ai__bleed__shot {
  position: relative;
}
.p-ai__bleed__shot__frame {
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(255, 255, 255, 0.1);
  background: #1a2542;
  transform: perspective(1200px) rotateY(-2deg);
  transition: transform .6s ease;
}
.p-ai__bleed__shot:hover .p-ai__bleed__shot__frame {
  transform: perspective(1200px) rotateY(0deg);
}
@media screen and (max-width: 1199px) {
  .p-ai__bleed__shot__frame {
    transform: none;
  }
}
.p-ai__bleed__shot__caption {
  margin-top: 1.4rem;
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
}

/* 物語ステップ（縦組み） */
.p-ai__bleed__story {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  position: relative;
}
/* 縦線 */
.p-ai__bleed__story::before {
  content: "";
  position: absolute;
  left: 2.4rem;
  top: 3rem;
  bottom: 3rem;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(233, 30, 99, 0.4), transparent);
}
.p-ai__bleed__story__step {
  position: relative;
  display: grid;
  grid-template-columns: 6rem 1fr;
  gap: 1.6rem;
  align-items: start;
}
.p-ai__bleed__story__no {
  position: relative;
  width: 4.8rem;
  height: 4.8rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(233, 30, 99, 0.5);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Josefin Sans', sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--ai-pink);
  backdrop-filter: blur(4px);
}
.p-ai__bleed__story__body h4 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
}
.p-ai__bleed__story__body p {
  margin-top: 0.8rem;
  font-size: 1.3rem;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.7);
}

/* CTA 群 */
.p-ai__bleed__ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.6rem;
}
.p-ai__bleed__cta {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  min-width: 24rem;
  padding: 1.8rem 3rem;
  border-radius: 999px;
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease;
}
.p-ai__bleed__cta__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1rem;
  letter-spacing: 0.3em;
  font-weight: 700;
  opacity: 0.7;
}
.p-ai__bleed__cta__main {
  margin-top: 0.4rem;
  font-size: 1.6rem;
  font-weight: 700;
}
.p-ai__bleed__cta.--primary {
  background: linear-gradient(135deg, var(--ai-pink), #ff5588);
  color: #fff;
  box-shadow: 0 10px 30px rgba(233, 30, 99, 0.4);
}
.p-ai__bleed__cta.--primary:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(233, 30, 99, 0.55);
}
.p-ai__bleed__cta.--ghost {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.p-ai__bleed__cta.--ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-4px);
}

/* ============================================================
   p-ai__impact  ── 数字: 主役と脇役の構成（カードグリッドではない）
============================================================ */
.p-ai__impact {
  padding-top: 10rem;
  padding-bottom: 10rem;
}
@media screen and (max-width: 1199px) {
  .p-ai__impact {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}

.p-ai__impact__head {
  max-width: 60rem;
  margin-bottom: 6rem;
}
.p-ai__impact__overline {
  display: inline-block;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.4rem;
  letter-spacing: 0.3em;
  font-weight: 700;
  color: var(--ai-blue);
}
.p-ai__impact__title {
  margin-top: 1.6rem;
  font-size: clamp(4rem, 6vw, 6.4rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ai-text);
  letter-spacing: 0.02em;
}
.p-ai__impact__lead {
  margin-top: 1.6rem;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--ai-text-mute);
}
.p-ai__impact__lead small {
  display: block;
  margin-top: 0.6rem;
  font-size: 1.1rem;
  color: var(--ai-text-faint);
}

/* layout: 主役（左大）+ 脇役（右リスト） */
.p-ai__impact__layout {
  display: grid;
  gap: 4rem;
}
@media screen and (min-width: 1200px) {
  .p-ai__impact__layout {
    grid-template-columns: 1.4fr 1fr;
    gap: 6rem;
  }
}

/* 主役 hero */
.p-ai__impact__hero {
  position: relative;
  padding: 6rem 4rem;
  background: linear-gradient(135deg, #fff, #f4f8fd);
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--ai-border);
}
@media screen and (max-width: 1199px) {
  .p-ai__impact__hero {
    padding: 4rem 2.4rem;
  }
}
.p-ai__impact__hero__bg {
  position: absolute;
  right: -4rem;
  bottom: -8rem;
  font-family: 'Josefin Sans', sans-serif;
  font-size: clamp(28rem, 40vw, 48rem);
  font-weight: 700;
  line-height: 0.8;
  color: rgba(45, 156, 219, 0.07);
  pointer-events: none;
  user-select: none;
}
.p-ai__impact__hero__label {
  position: relative;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ai-text-mute);
  letter-spacing: 0.05em;
}
.p-ai__impact__hero__from {
  position: relative;
  margin-top: 2rem;
  font-family: 'Josefin Sans', sans-serif;
  font-size: clamp(3.2rem, 5vw, 4.8rem);
  font-weight: 700;
  color: var(--ai-text-faint);
  text-decoration: line-through;
  line-height: 1;
}
.p-ai__impact__hero__from small {
  font-size: 0.5em;
  margin-left: 0.2em;
}
.p-ai__impact__hero__transition {
  position: relative;
  margin-top: 1rem;
  font-size: 1.6rem;
  color: var(--ai-text-mute);
}
.p-ai__impact__hero__to {
  position: relative;
  margin-top: 0.8rem;
  font-family: 'Josefin Sans', sans-serif;
  font-size: clamp(8rem, 14vw, 14rem);
  font-weight: 700;
  color: var(--ai-blue);
  line-height: 0.9;
  letter-spacing: -0.02em;
}
.p-ai__impact__hero__to small {
  font-size: 0.3em;
  margin-left: 0.1em;
  font-weight: 700;
}
.p-ai__impact__hero__to em {
  font-size: 0.3em;
  font-style: normal;
  margin-left: 0.2em;
  color: var(--ai-text-mute);
  font-weight: 600;
}
.p-ai__impact__hero__note {
  position: relative;
  margin-top: 2.4rem;
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--ai-text-mute);
  max-width: 36rem;
}

/* 脇役 satellites */
.p-ai__impact__satellites {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.p-ai__impact__satellites li {
  padding: 2.4rem 2rem;
  background: #fff;
  border: 1px solid var(--ai-border);
  border-radius: 12px;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.p-ai__impact__satellites li:hover {
  transform: translateX(-4px);
  border-color: var(--ai-blue);
  box-shadow: var(--ai-shadow);
}
.p-ai__impact__sat__label {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--ai-text-mute);
  letter-spacing: 0.05em;
}
.p-ai__impact__sat__value {
  margin-top: 0.8rem;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 3.2rem;
  font-weight: 700;
  color: var(--ai-blue);
  line-height: 1;
}
.p-ai__impact__sat__value small {
  font-size: 0.4em;
  color: var(--ai-text-mute);
  margin-left: 0.2em;
  font-weight: 600;
}
.p-ai__impact__sat__value strong {
  font-weight: 700;
}
.p-ai__impact__sat__note {
  margin-top: 0.8rem;
  font-size: 1.2rem;
  line-height: 1.7;
  color: var(--ai-text-mute);
}

/* ============================================================
   p-ai__bento  ── WORKS: 不揃いサイズの Bento Grid
============================================================ */
.p-ai__bento {
  list-style: none;
  margin: 4rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.6rem;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 600px) and (max-width: 1199px) {
  .p-ai__bento {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 1200px) {
  .p-ai__bento {
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 18rem;
    gap: 2rem;
  }
  /* A: 大型 2x2 (hero) */
  .p-ai__bento__item.--hero {
    grid-column: span 2;
    grid-row: span 2;
  }
  /* B: 縦長 1x2 (tall) */
  .p-ai__bento__item.--tall {
    grid-column: span 1;
    grid-row: span 2;
  }
  /* E: 横長 2x1 (wide) */
  .p-ai__bento__item.--wide {
    grid-column: span 2;
    grid-row: span 1;
  }
}

.p-ai__bento__item {
  position: relative;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--ai-border);
  display: flex;
  flex-direction: column;
  transition: transform .35s ease, box-shadow .35s ease;
}
.p-ai__bento__item:hover {
  transform: translateY(-4px);
  box-shadow: var(--ai-shadow-lg);
}
.p-ai__bento__shot {
  flex: 1;
  min-height: 18rem;
  background: #f4f6fa;
  position: relative;
}
.p-ai__bento__body {
  padding: 1.4rem 1.6rem 1.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.p-ai__bento__tag {
  align-self: flex-start;
  font-size: 1rem;
  font-weight: 700;
  color: var(--ai-orange);
  background: #fff5e8;
  padding: 0.3em 0.9em;
  border-radius: 999px;
  letter-spacing: 0.05em;
}
.p-ai__bento__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1.45;
}
.p-ai__bento__text {
  font-size: 1.25rem;
  line-height: 1.7;
  color: var(--ai-text-mute);
}

/* hero タイル：内部レイアウトを横並びに */
@media screen and (min-width: 1200px) {
  .p-ai__bento__item.--hero {
    flex-direction: column;
  }
  .p-ai__bento__item.--hero .p-ai__bento__shot {
    flex: 1;
    min-height: 0;
  }
  .p-ai__bento__item.--hero .p-ai__bento__body {
    padding: 2rem 2.4rem 2.4rem;
  }
  .p-ai__bento__item.--hero .p-ai__bento__title {
    font-size: 2rem;
  }
  .p-ai__bento__item.--hero .p-ai__bento__text {
    font-size: 1.35rem;
  }
}

/* ============================================================
   p-ai__timeline  ── 導入の流れ: 縦タイムライン（物語）
============================================================ */
.p-ai__timelineSection {
  padding-top: 10rem;
  padding-bottom: 12rem;
}
@media screen and (max-width: 1199px) {
  .p-ai__timelineSection {
    padding-top: 6rem;
    padding-bottom: 8rem;
  }
}

.p-ai__timeline__head {
  max-width: 60rem;
  margin: 0 auto 6rem;
  text-align: center;
}
.p-ai__timeline__overline {
  display: inline-block;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.4rem;
  letter-spacing: 0.3em;
  font-weight: 700;
  color: var(--ai-green);
}
.p-ai__timeline__title {
  margin-top: 1.6rem;
  font-size: clamp(3.6rem, 5vw, 5.6rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--ai-text);
}
.p-ai__timeline__lead {
  margin-top: 2rem;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--ai-text-mute);
}

.p-ai__timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 84rem;
  margin-inline: auto;
  position: relative;
}
.p-ai__timeline::before {
  content: "";
  position: absolute;
  left: 3rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, transparent, var(--ai-green) 10%, var(--ai-green) 90%, transparent);
  opacity: 0.3;
}
@media screen and (max-width: 1199px) {
  .p-ai__timeline::before {
    left: 2rem;
  }
}

.p-ai__timeline__step {
  position: relative;
  display: grid;
  grid-template-columns: 6rem 1fr;
  gap: 2rem;
  padding: 2.4rem 0;
  transition: transform .3s ease;
}
@media screen and (max-width: 1199px) {
  .p-ai__timeline__step {
    grid-template-columns: 4rem 1fr;
    gap: 1.4rem;
    padding: 1.8rem 0;
  }
}
.p-ai__timeline__step:hover {
  transform: translateX(6px);
}
.p-ai__timeline__marker {
  position: relative;
  width: 6rem;
  height: 6rem;
  background: #fff;
  border: 2px solid var(--ai-green);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Josefin Sans', sans-serif;
  font-weight: 700;
  font-size: 1.8rem;
  color: var(--ai-green);
  box-shadow: 0 4px 16px rgba(108, 194, 74, 0.2);
  z-index: 1;
}
@media screen and (max-width: 1199px) {
  .p-ai__timeline__marker {
    width: 4rem;
    height: 4rem;
    font-size: 1.4rem;
  }
}
.p-ai__timeline__body {
  padding-top: 0.6rem;
}
.p-ai__timeline__when {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.25em;
  font-weight: 700;
  color: var(--ai-green);
}
.p-ai__timeline__title-step {
  margin-top: 0.6rem;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1.4;
}
.p-ai__timeline__text {
  margin-top: 1rem;
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--ai-text-mute);
  max-width: 56rem;
}

/* ============================================================
   p-ai__contactCtas  ── フッター CTA グリッド
============================================================ */
.p-ai__contactCtas {
  display: grid;
  gap: 1.6rem;
  margin-top: 3rem;
}
@media screen and (min-width: 768px) {
  .p-ai__contactCtas {
    grid-template-columns: repeat(2, 1fr);
  }
}

.p-ai__contactCta {
  display: block;
  background: #fff;
  border: 1px solid var(--ai-border);
  border-radius: var(--ai-radius);
  padding: 2.4rem 2rem;
  text-decoration: none;
  color: var(--ai-text);
  text-align: left;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.p-ai__contactCta:hover {
  transform: translateY(-4px);
  box-shadow: var(--ai-shadow-lg);
}
.p-ai__contactCta.--primary {
  background: linear-gradient(135deg, #2D9CDB, #1f78b4);
  color: #fff;
  border-color: transparent;
}
.p-ai__contactCta.--accent {
  background: linear-gradient(135deg, #E91E63, #b71550);
  color: #fff;
  border-color: transparent;
}
.p-ai__contactCta__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.25em;
  font-weight: 700;
  opacity: 0.7;
}
.p-ai__contactCta__title {
  margin-top: 0.8rem;
  font-size: 1.8rem;
  font-weight: 700;
}
.p-ai__contactCta__text {
  margin-top: 0.6rem;
  font-size: 1.2rem;
  line-height: 1.7;
  opacity: 0.85;
}

/* ============================================================
   data-anim スクロールイン
============================================================ */
[data-anim="fade-up"] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s ease, transform .9s ease;
}
[data-anim="fade-up"].is-in {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  [data-anim] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .p-ai__row__cta,
  .p-ai__bleed__cta,
  .p-ai__bleed__shot__frame,
  .p-ai__bento__item,
  .p-ai__timeline__step,
  .p-ai__contactCta,
  .p-ai__row__art__keywords span {
    transition: none !important;
  }
}

/* ============================================================
   SERVICE 内 MORE ボタン余白
============================================================ */
.p-ai__serviceCta {
  margin-top: 2.4rem;
}

/* ============================================================
   サブページ共通 (services/*/index.html)
============================================================ */
/* パンくず（ヒーロー内に配置） */
.p-sub__crumbs {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  color: var(--ai-text-mute);
}
.p-sub__crumbs li {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
}
.p-sub__crumbs li + li::before {
  content: "/";
  color: var(--ai-text-faint);
}
.p-sub__crumbs a {
  color: var(--ai-text-mute);
  text-decoration: none;
  transition: color .2s ease;
}
.p-sub__crumbs a:hover {
  color: var(--ai-text);
}

.p-sub__hero {
  padding-top: 13rem;
  padding-bottom: 6rem;
}
@media screen and (max-width: 1199px) {
  .p-sub__hero {
    padding-top: 9rem;
  }
}
.p-sub__hero__breadcrumb {
  margin-bottom: 3rem;
}
.p-sub__hero__inner {
  max-width: 90rem;
}
.p-sub__hero__inner.--hasVisual {
  max-width: none;
}
@media screen and (min-width: 1200px) {
  .p-sub__hero__inner.--hasVisual {
    align-items: center;
    display: flex;
    justify-content: space-between;
  }
  .p-sub__hero__body {
    flex-shrink: 0;
    margin: 0 6rem 0 0;
    width: 52rem;
    position: relative;
    z-index: 1;
  }
  .p-sub__hero__visual {
    flex: 1;
  }
  .p-sub__hero__visual img {
    width: calc((100vw - 120rem) / 2 + 58rem);
    min-width: 58rem;
    max-width: none;
  }
}
.p-sub__hero__body {
  min-width: 0;
}
.p-sub__hero__visual {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.p-sub__hero__visual img {
  max-width: 100%;
  height: auto;
  width: 100%;
}
@media screen and (max-width: 1199px) {
  .p-sub__hero__inner.--hasVisual {
    display: block;
  }
  .p-sub__hero__visual {
    max-width: 42rem;
    margin: 3rem auto 0;
    justify-content: center;
  }
}
.p-sub__hero__overline {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.4rem;
  letter-spacing: 0.35em;
  font-weight: 700;
  color: var(--ai-text-mute);
}
.p-sub__hero__title {
  margin-top: 2rem;
  font-size: clamp(4.8rem, 8vw, 8rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ai-text);
  letter-spacing: 0.02em;
  position: relative;
  display: inline-block;
}
.p-sub__hero__title::after {
  content: "";
  display: block;
  width: 6rem;
  height: 6px;
  margin-top: 2rem;
  border-radius: 3px;
  background: var(--ai-text);
}
.p-sub__hero__title.--green::after  { background: var(--ai-green); }
.p-sub__hero__title.--red::after    { background: var(--ai-red); }
.p-sub__hero__title.--pink::after   { background: var(--ai-pink); }
.p-sub__hero__title.--orange::after { background: var(--ai-orange); }
.p-sub__hero__title.--blue::after   { background: var(--ai-blue); }

.p-sub__hero__lead {
  margin-top: 3rem;
  font-size: clamp(1.8rem, 2.4vw, 2.4rem);
  font-weight: 600;
  line-height: 1.6;
  color: var(--ai-text);
}
.p-sub__hero__desc {
  margin-top: 2rem;
  font-size: 1.5rem;
  line-height: 2;
  color: var(--ai-text-mute);
  max-width: 70rem;
}

.p-sub__body {
  padding-top: 4rem;
  padding-bottom: 10rem;
}

.p-sub__placeholder {
  background:
    repeating-linear-gradient(45deg, #f4f6fa 0, #f4f6fa 12px, #eef1f6 12px, #eef1f6 24px);
  border: 1px dashed #c4cbd5;
  border-radius: 16px;
  padding: 6rem 4rem;
  text-align: center;
}
@media screen and (max-width: 1199px) {
  .p-sub__placeholder {
    padding: 4rem 2rem;
  }
}
.p-sub__placeholder__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  font-weight: 700;
  color: var(--ai-text-faint);
}
.p-sub__placeholder__title {
  margin-top: 1.4rem;
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--ai-text);
}
.p-sub__placeholder__text {
  margin-top: 1.6rem;
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--ai-text-mute);
}
.p-sub__placeholder__ctas {
  display: grid;
  gap: 1.6rem;
  margin-top: 4rem;
  max-width: 72rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-sub__placeholder__ctas {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ============================================================
   SERVICE 1番目の項目: 元 CSS の margin-top: -10rem が
   現レイアウト（大見出し下）で被るため正の値に上書き
============================================================ */
@media screen and (min-width: 1200px) {
  .p-top__service__item:nth-child(1) {
    margin-top: 6rem;
    align-items: center;
  }
}

/* ============================================================
   SERVICE 見出し・対応範囲・MORE ボタン調整
   - タイトルを少し縮小（「WEB制作・システム開発」を 1 行に収める）
   - 対応範囲（dt/dd）の行間を広げる
   - MORE ボタン上に余白を追加
============================================================ */
@media screen and (min-width: 1200px) {
  .p-top__service__item__contents__title {
    font-size: 4rem;
    letter-spacing: -0.01em;
  }
}

.p-top__service__item__contents__case {
  line-height: 2;
}
.p-top__service__item__contents__case dd {
  line-height: 2;
}
@media screen and (min-width: 1200px) {
  .p-top__service__item__contents__case dd {
    line-height: 2.2;
  }
}

.p-ai__serviceCta {
  margin-top: 4.8rem;
}
@media screen and (max-width: 1199px) {
  .p-ai__serviceCta {
    margin-top: 3.2rem;
  }
}

/* 対応範囲: dt と dd の間隔を詰める */
.p-top__service__item__contents__case dd:not(:first-child) {
  margin-top: 0.4rem;
}
@media screen and (max-width: 1199px) {
  .p-top__service__item__contents__case dd:not(:first-child) {
    margin-top: 0.2rem;
  }
}

/* ============================================================
   p-ai__subList — SERVICE 親カード内の子サービス ミニカード
============================================================ */
.p-ai__subList {
  list-style: none;
  padding: 0;
  margin: 2.4rem 0 0;
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(2, 1fr);
}
@media screen and (min-width: 1200px) {
  .p-ai__subList {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
}
.p-ai__subList li a {
  display: block;
  padding: 1.2rem 1.4rem;
  background: var(--ai-bg-soft);
  border: 1px solid var(--ai-border);
  border-radius: 8px;
  text-decoration: none;
  color: var(--ai-text);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
  height: 100%;
}
.p-ai__subList li a:hover {
  transform: translateY(-3px);
  background: #fff;
  border-color: var(--ai-text);
  box-shadow: var(--ai-shadow);
}
.p-ai__subList__name {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1.4;
}
.p-ai__subList__lead {
  display: block;
  margin-top: 0.4rem;
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--ai-text-mute);
}

/* ============================================================
   c-defaultNav ドロップダウン（PC ヘッダー専用）
============================================================ */
.c-defaultNav__list__item.--hasDropdown {
  position: relative;
}
.c-defaultNav__dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  left: auto;
  transform: translateY(-8px);
  min-width: 56rem;
  max-width: calc(100vw - 4rem);
  padding: 2rem 0 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
  z-index: 100;
}
.c-defaultNav__list__item.--hasDropdown:hover .c-defaultNav__dropdown,
.c-defaultNav__list__item.--hasDropdown:focus-within .c-defaultNav__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.c-defaultNav__dropdown__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
  padding: 2.4rem 2.8rem;
  background: #fff;
  border: 1px solid var(--ai-border);
  border-radius: 12px;
  box-shadow: var(--ai-shadow-lg);
}
.c-defaultNav__dropdown__group__title {
  font-family: 'Josefin Sans', 'Noto Sans JP', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.15em;
  font-weight: 700;
  color: var(--ai-text-mute);
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--ai-border);
  margin-bottom: 1rem;
}
.c-defaultNav__dropdown__group ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.c-defaultNav__dropdown__group ul a {
  display: block;
  padding: 0.5rem 0.6rem;
  font-size: 1.3rem;
  color: var(--ai-text);
  text-decoration: none;
  border-radius: 4px;
  transition: background .2s ease, color .2s ease;
}
.c-defaultNav__dropdown__group ul a:hover {
  background: var(--ai-bg-soft);
  color: var(--ai-text);
}
@media screen and (max-width: 1199px) {
  .c-defaultNav__dropdown {
    display: none;
  }
}

/* ============================================================
   サブページ内 アンカーセクション (services/*/index.html)
============================================================ */
.p-sub__anchor {
  scroll-margin-top: 8rem;
}
.p-sub__section {
  padding-top: 8rem;
  padding-bottom: 4rem;
  border-top: 1px solid var(--ai-border);
  scroll-margin-top: 8rem;
}
.p-sub__section:first-of-type {
  border-top: 0;
  padding-top: 0;
}
.p-sub__section__head {
  display: flex;
  align-items: baseline;
  gap: 1.6rem;
  margin-bottom: 1.6rem;
  flex-wrap: wrap;
}
.p-sub__section__no {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.4rem;
  letter-spacing: 0.25em;
  font-weight: 700;
  color: var(--ai-text-faint);
}
.p-sub__section__title {
  font-size: clamp(2.6rem, 3.6vw, 3.6rem);
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1.3;
}
.p-sub__section__catch {
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--ai-text-mute);
  margin-bottom: 2rem;
}
.p-sub__section__text {
  font-size: 1.4rem;
  line-height: 2;
  color: var(--ai-text);
  max-width: 76rem;
}
.p-sub__section__text strong {
  font-weight: 700;
}
.p-sub__section__plans {
  margin-top: 3.2rem;
  display: grid;
  gap: 2rem;
}
@media screen and (min-width: 768px) {
  .p-sub__section__plans {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-sub__plan {
  padding: 2rem 2rem 2.4rem;
  border: 1px solid var(--ai-border);
  border-radius: 12px;
  background: var(--ai-bg-soft);
}
.p-sub__plan__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: var(--ai-text-mute);
}
.p-sub__plan__title {
  margin-top: 0.6rem;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--ai-text);
}
.p-sub__plan__text {
  margin-top: 0.8rem;
  font-size: 1.3rem;
  line-height: 1.85;
  color: var(--ai-text);
}

/* ============================================================
   サブページ プロダクト行（タイトル独立全幅 + 下に2カラム）
============================================================ */
.p-sub__rows {
  display: flex;
  flex-direction: column;
  gap: 7rem;
  margin-top: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-sub__rows {
    gap: 10rem;
  }
}

.p-sub__row {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  scroll-margin-top: 9rem;
  --accent: var(--ai-text);
}
@media screen and (min-width: 1024px) {
  .p-sub__row {
    gap: 3.2rem;
  }
}

/* カードごとのアクセントカラー */
.p-sub__row.--green   { --accent: var(--ai-green); }
.p-sub__row.--red     { --accent: var(--ai-red); }
.p-sub__row.--blue    { --accent: var(--ai-blue); }
.p-sub__row.--orange  { --accent: var(--ai-orange); }
.p-sub__row.--pink    { --accent: var(--ai-pink); }

/* タイトル: 全幅独立、左に色付き縦線 */
.p-sub__row__heading {
  width: 100%;
}
.p-sub__row__title {
  margin: 0;
  padding-left: 2rem;
  border-left: 6px solid var(--accent);
  font-size: clamp(2.4rem, 3.4vw, 3.6rem);
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1.35;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 767px) {
  .p-sub__row__title {
    padding-left: 1.4rem;
    border-left-width: 5px;
  }
}

/* メイン: 左テキスト + 右画像 の2カラム */
.p-sub__row__main {
  display: grid;
  gap: 2.4rem;
}
@media screen and (min-width: 1024px) {
  .p-sub__row__main {
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: start;
  }
}

.p-sub__row__media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background:
    linear-gradient(135deg, #f4f6fa 0%, #eef1f6 100%);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-sub__row__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-sub__row__media__placeholder {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.4em;
  font-weight: 700;
  color: var(--ai-text-faint);
}

.p-sub__row__body {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.p-sub__row__catch {
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--ai-text-mute);
  line-height: 1.6;
  margin: 0;
}
.p-sub__row__text {
  font-size: 1.4rem;
  line-height: 2;
  color: var(--ai-text);
  margin: 0;
}
.p-sub__row__text strong {
  font-weight: 700;
}

.p-sub__row__plans {
  margin-top: 0.8rem;
  display: grid;
  gap: 1.2rem;
}
@media screen and (min-width: 1400px) {
  .p-sub__row__plans {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 3ブロック（お悩み / 未来 / 提供内容） */
.p-sub__row__blocks {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.p-sub__row__block {
  padding: 1.8rem 2rem 2rem;
  border-radius: 12px;
  border: 1px solid var(--ai-border);
  background: #fff;
}
.p-sub__row__block.--problem {
  background: #fdf5f0;
  border-color: #f0dac8;
}
.p-sub__row__block.--future {
  background: #eef7f1;
  border-color: #c9e3d3;
}
.p-sub__row__block.--features {
  background: var(--ai-bg-soft);
  border-color: var(--ai-border);
}
.p-sub__row__block__title {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1.5;
  margin: 0 0 1rem;
}
.p-sub__row__block__title__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  font-family: 'Josefin Sans', sans-serif;
  flex-shrink: 0;
}
.p-sub__row__block.--problem .p-sub__row__block__title__icon {
  background: #e57a4a;
}
.p-sub__row__block.--future .p-sub__row__block__title__icon {
  background: #4caf80;
}
.p-sub__row__block.--features .p-sub__row__block__title__icon {
  background: var(--ai-text);
}
.p-sub__row__block__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.p-sub__row__block__list li {
  position: relative;
  padding-left: 1.8rem;
  font-size: 1.35rem;
  line-height: 1.7;
  color: var(--ai-text);
}
.p-sub__row__block__list li::before {
  position: absolute;
  left: 0;
  font-weight: 700;
}
.p-sub__row__block.--problem .p-sub__row__block__list li::before {
  content: "✕";
  color: #e57a4a;
  top: 0.1rem;
  font-size: 1.2rem;
}
.p-sub__row__block.--future .p-sub__row__block__list li::before {
  content: "✓";
  color: #4caf80;
  top: 0.1rem;
  font-size: 1.3rem;
}
.p-sub__row__block.--features .p-sub__row__block__list li::before {
  content: "▸";
  color: var(--ai-text-mute);
  top: 0.1rem;
}
.p-sub__row__block__list li strong {
  font-weight: 700;
}

/* ビジュアル列: 画像 + 料金 を縦に重ねるラッパ */
.p-sub__row__visual {
  display: flex;
  flex-direction: column;
  gap: 2.8rem;
}

/* 料金: 枠なし・自然な体裁 */
.p-sub__row__price {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
}
.p-sub__row__price__title {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
  margin: 0 0 1.4rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--ai-border);
  font-family: 'Josefin Sans', 'Noto Sans JP', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  font-weight: 700;
  color: var(--ai-text-mute);
}
.p-sub__row__price__title__icon {
  display: inline-block;
  width: auto;
  height: auto;
  background: transparent;
  color: var(--accent);
  border-radius: 0;
  font-size: 1.5rem;
  font-weight: 700;
  font-family: 'Josefin Sans', sans-serif;
  letter-spacing: 0;
  flex-shrink: 0;
}
.p-sub__row__price__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.p-sub__row__price__list li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.4rem 1.2rem;
  padding: 0.9rem 0;
  font-size: 1.35rem;
  line-height: 1.6;
  color: var(--ai-text);
  border-bottom: 1px dashed var(--ai-border);
}
.p-sub__row__price__list li:last-child {
  border-bottom: 0;
}
.p-sub__row__price__list li strong {
  font-weight: 700;
  color: var(--accent);
  font-size: 1.5rem;
  white-space: nowrap;
  text-align: right;
  line-height: 1.5;
}
.p-sub__row__price__note {
  margin: 1.2rem 0 0;
  font-size: 1.2rem;
  line-height: 1.7;
  color: var(--ai-text-mute);
}

/* 過去案件の例ブロック */
.p-sub__row__cases {
  margin: 0;
}
.p-sub__row__cases__title {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
  margin: 0 0 1.4rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--ai-border);
  font-family: 'Josefin Sans', 'Noto Sans JP', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  font-weight: 700;
  color: var(--ai-text-mute);
}
.p-sub__row__cases__title__icon {
  display: inline-block;
  color: var(--accent);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0;
}
.p-sub__row__cases__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.p-sub__row__cases__item {
  padding: 1rem 0;
  border-bottom: 1px dashed var(--ai-border);
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.p-sub__row__cases__item:last-child {
  border-bottom: 0;
}
.p-sub__row__cases__item__title {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--ai-text);
  line-height: 1.5;
}
.p-sub__row__cases__item__meta {
  font-size: 1.2rem;
  color: var(--ai-text-mute);
  line-height: 1.5;
}
.p-sub__row__cases__item__meta strong {
  color: var(--accent);
  font-weight: 700;
}

/* CTA: 問い合わせ誘導 */
.p-sub__row__cta {
  margin-top: 0.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
}
.p-sub__row__cta__button {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1.4rem 2.4rem;
  background: var(--accent);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: 999px;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.p-sub__row__cta__button:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(20, 40, 80, 0.18);
  opacity: 0.95;
}
.p-sub__row__cta__button::after {
  content: "→";
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1.6rem;
  line-height: 1;
}
.p-sub__row__cta__button.--ghost {
  background: transparent;
  color: var(--ai-text);
  border: 1px solid var(--ai-border);
}
.p-sub__row__cta__button.--ghost::after {
  color: var(--ai-text-mute);
}
.p-sub__row__cta__button.--ghost:hover {
  background: var(--ai-bg-soft);
  border-color: var(--accent);
}
.p-sub__row__plan {
  padding: 1.4rem 1.6rem;
  background: var(--ai-bg-soft);
  border: 1px solid var(--ai-border);
  border-radius: 10px;
}
.p-sub__row__plan__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 1rem;
  letter-spacing: 0.25em;
  font-weight: 700;
  color: var(--ai-text-mute);
}
.p-sub__row__plan__title {
  margin-top: 0.4rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ai-text);
}
.p-sub__row__plan__text {
  margin-top: 0.6rem;
  font-size: 1.25rem;
  line-height: 1.8;
  color: var(--ai-text);
}

/* 親ページ TOC（ジャンプリンク） */
.p-sub__toc {
  margin-top: 3rem;
  padding: 2rem 2.4rem;
  background: var(--ai-bg-soft);
  border-radius: 10px;
}
.p-sub__toc__title {
  font-family: 'Josefin Sans', 'Noto Sans JP', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: var(--ai-text-mute);
}
.p-sub__toc__list {
  list-style: none;
  padding: 0;
  margin: 1.2rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.p-sub__toc__list a {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  background: #fff;
  border: 1px solid var(--ai-border);
  border-radius: 999px;
  font-size: 1.3rem;
  color: var(--ai-text);
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease;
}
.p-sub__toc__list a:hover {
  background: var(--ai-text);
  color: #fff;
  border-color: var(--ai-text);
}
