@charset "UTF-8";
/*!
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
*/
/* =========================================================
   SWELL Design Pattern (DP) Base Style
   - SWELLのカスタマイザー（GUI）設定を尊重するハイブリッド設計
   - 投稿ページへの影響を完全に遮断する厳格なスコープ管理
========================================================= */
/* Google Fonts */
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap");
/* -------------------------------------------
 * 1. DP専用 変数定義（CSS Custom Properties）
 * ------------------------------------------- */
:root {
  --dp-font-en: "Roboto", sans-serif;
  --dp-font-num: "Roboto Condensed", sans-serif;
  --dp-font-general: "Inter", sans-serif;
  --dp-space-block-pc: 4rem;
  --dp-space-block-sp: 3rem;
  --dp-space-element-pc: 2.5rem;
  --dp-space-element-sp: 1.5rem;
  --dp-space-inner-pc: 1rem;
  --dp-space-inner-sp: 0.5rem;
  --dp-letter-spacing-heading: 0.125em;
  --dp-letter-spacing-text: 0.087em;
  --dp-line-height-large: 2;
  --dp-line-height-medium: 1.6;
  --dp-line-height-small: 1.4;
  --dp-radius: 4px;
  --dp-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  --dp-color-sub: #eceae6;
  --dp-border-width: 3px;
  --dp-font-size-page-title: 48px;
  --dp-font-size-page-title-sp: 36px;
  --dp-font-size-title-pc: 40px;
  --dp-font-size-title-sp: 32px;
  --dp-font-size-heading-pc: 24px;
  --dp-font-size-heading-sp: 20px;
  --dp-font-size-summary: 18px;
  --dp-font-size-explanation: 14px;
  --dp-font-weight-heading: 500;
}

/* -------------------------------------------
 * 2. 厳格なスコープ管理（DP用テンプレート限定）
 * ------------------------------------------- */
.dp-wrap h2::before, .dp-wrap h2::after,
.dp-wrap h3::before,
.dp-wrap h3::after,
.post_content .dp-wrap h2::before,
.post_content .dp-wrap h2::after,
.post_content .dp-wrap h3::before,
.post_content .dp-wrap h3::after {
  content: none;
}
.dp-wrap h2,
.dp-wrap h3,
.post_content .dp-wrap h2,
.post_content .dp-wrap h3 {
  border: none;
  background: transparent;
  padding: 0;
  margin-top: 0;
}
.dp-wrap .wp-block-image img,
.post_content .dp-wrap .wp-block-image img {
  pointer-events: none;
}
.dp-wrap .wp-block-image:has(a) img,
.post_content .dp-wrap .wp-block-image:has(a) img {
  pointer-events: auto;
}

/*--------------------------------------------------------
 mainタグ
--------------------------------------------------------*/
/* 非表示 レスポンシブデザイン */
.-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .-sp {
    display: block;
    max-width: 480px;
    margin: 0 auto;
  }
}

@media screen and (max-width: 768px) {
  .-pc {
    display: none;
  }
}

/*--------------------------------------------------------
分割セクション デザインパターン
--------------------------------------------------------*/
/*

 ヘッダー (header)

*/
/* --- ヘッダーCTAボタン (.icon-bubble) --- */
.c-gnav li:not(:last-child) {
  margin-right: 8px;
}
.c-gnav li:last-child {
  margin-left: 8px;
}

.c-gnav > .menu-item:last-child,
.c-listMenu > .menu-item:last-child {
  display: flex;
  align-items: center;
}
.c-gnav > .menu-item:last-child a,
.c-listMenu > .menu-item:last-child a {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  height: auto;
  padding: 14px 32px;
  background-color: #06c755;
  color: #fff !important;
  border-radius: var(--dp-radius);
  box-shadow: var(--dp-shadow);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.3s ease;
}
.c-gnav > .menu-item:last-child a:hover,
.c-listMenu > .menu-item:last-child a:hover {
  opacity: 0.9;
}
.c-gnav > .menu-item:last-child a:after,
.c-listMenu > .menu-item:last-child a:after {
  content: none;
}
.c-gnav > .menu-item:last-child a .ttl,
.c-listMenu > .menu-item:last-child a .ttl {
  font-weight: var(--dp-font-weight-heading);
}
.c-gnav > .menu-item:last-child a i,
.c-listMenu > .menu-item:last-child a i {
  margin-right: 4px;
}
@media screen and (max-width: 599px) {
  .c-gnav > .menu-item:last-child a,
  .c-listMenu > .menu-item:last-child a {
    padding: 10px 20px;
    font-size: var(--dp-font-size-explanation);
  }
}

.c-listMenu > .menu-item:last-child {
  margin-top: 16px !important;
}
.c-listMenu > .menu-item:last-child a {
  justify-content: center;
  width: 100%;
}
.c-listMenu > .menu-item:last-child a:before {
  content: none;
}

/* ヘッダーナビゲーション */
/*

 メインビジュアル (hero)

*/
/*--------------------------------------------------------

 hero-lp-01 施工店LP用

 --------------------------------------------------------*/
.p-main_visual .swell-block-fullWide__inner {
  padding: 0;
}

@media screen and (max-width: 768px) {
  .hero-lp-01 .swell-block-fullWide__inner {
    padding: 0;
  }
}

.hero-lp-01 .hero {
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
  padding: 96px 0 32px;
}
@media screen and (max-width: 768px) {
  .hero-lp-01 .hero {
    height: clamp(790px, 216vw, 820px);
    padding-top: 32px;
  }
}

.hero img {
  pointer-events: none;
}

.hero::before {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 100%;
  height: 136px;
  background-color: var(--color_deep04);
}
@media screen and (max-width: 768px) {
  .hero::before {
    height: 160px;
  }
}

.hero::after {
  position: absolute;
  content: "";
  left: 0;
  bottom: 136px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 128px 100vw 0;
  border-color: transparent transparent transparent var(--color_deep04);
}
@media screen and (max-width: 768px) {
  .hero::after {
    bottom: 160px;
    border-width: 80px 100vw 0;
  }
}

.hero .hero-bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}

.hero .hero-bg::before {
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  max-width: 300px;
  width: 100%;
  height: clamp(200px, 20vw, 300px);
  background-image: url("../images/hero/fv_bg_aircondetion.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 160% 0;
  z-index: -1;
}

.hero__container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  padding: 0 16px;
}
@media screen and (max-width: 768px) {
  .hero__container {
    flex-direction: column;
    max-width: 425px;
    margin-bottom: 16px;
    gap: 0;
  }
}

.hero__container > div {
  width: 100%;
}

.hero__content {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0;
  gap: 40px;
}

.hero__content-main {
  position: relative;
  width: 72%;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .hero__content-main {
    max-width: 100%;
    width: 100%;
  }
}

.hero__content-main .hero-title {
  position: relative;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .hero__content-main .hero-title {
    margin-bottom: 8px;
    text-align: left;
  }
}

.hero__content-main .hero-title .title-area {
  position: absolute;
  top: 4px;
  left: 16px;
  color: var(--color_header_text);
  font-size: clamp(16px, 2vw, 24px);
  font-weight: bold;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .hero__content-main .hero-title .title-area {
    position: relative;
    top: 0;
    left: 0;
    font-size: clamp(16px, 2vw, 20px);
  }
}

@media (min-width: 1024px) {
  .hero__content-main .hero-title .title-area {
    font-size: 24px;
  }
}
.hero__content-main .hero-title img {
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 768px) {
  .hero__content-sub {
    position: relative;
    display: flex;
    width: 100%;
  }
}

@media screen and (max-width: 768px) {
  .hero__content-sub .hero-feature {
    position: relative;
    display: flex;
    justify-content: flex-start;
    width: 100%;
    padding: 0;
    z-index: 1;
  }
}

@media screen and (max-width: 768px) {
  .hero .hero__content-sub .hero-model {
    position: absolute;
    top: 0;
    right: -16%;
    max-width: 100%;
    width: 75%;
    margin-top: 0;
    text-align: center;
  }
}

@media screen and (max-width: 768px) {
  .hero__content-sub .hero-content-other {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 60%;
    z-index: 1;
  }
}

.hero__content-main .hero-feature > div {
  display: flex;
  gap: 24px;
  margin: 0 auto;
  width: 100%;
}

@media (min-width: 1024px) {
  .hero__content-main .hero-feature {
    gap: 16px;
  }
}
.hero__content-main .hero-feature img {
  height: auto;
  transition: transform 0.3s ease;
}

.hero__content-main .hero-feature img:hover {
  transform: translateY(-5px);
}

.hero .hero-model {
  position: absolute;
  right: 0;
  bottom: 0;
  max-width: 380px;
  width: 36%;
  z-index: -1;
}

@media (min-width: 1024px) {
  .hero .hero-model {
    max-width: 390px;
    width: 35%;
  }
}
.hero .hero-model img {
  max-width: 100%;
  height: auto;
  animation: float 6s ease-in-out infinite;
}

.hero__content-bottom > div {
  position: relative;
  display: flex;
  align-items: center;
  gap: 24px;
  z-index: 1;
}

@media screen and (max-width: 768px) {
  .hero__content-bottom {
    flex-direction: column;
    align-items: center;
  }
}

@media (min-width: 1024px) {
  .hero__content-bottom {
    gap: 40px;
  }
}
.hero-content-price {
  flex: 2;
}

.hero-content-other {
  flex: 1.3;
}

.hero-content-price img,
.hero-content-other img {
  max-width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}

.hero-content-price img:hover,
.hero-content-other img:hover {
  transform: scale(1.02);
}

@keyframes float {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(0);
  }
}
/*--------------------------------------------------------
 背景オブジェクト--------------------------------------------------------*/
.object-content {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  max-width: 1440px;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
}

.object-content .object-circle {
  position: absolute;
  width: 220px;
  height: 220px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 1;
  animation: float 6s ease-in-out infinite;
}

.object-content .object-circle.one {
  top: 80px;
  left: -24px;
  background-image: url("../images/object/img_object_01.svg");
  animation-delay: 0s;
}

.object-content .object-circle.two {
  width: 200px;
  height: 200px;
  bottom: 96px;
  right: -24px;
  background-image: url("../images/object/img_object_02.svg");
  animation-delay: 2s;
}

.object-content .object-circle.three {
  top: 200px;
  left: -24px;
  background-image: url("../images/object/img_object_03.svg");
  animation-delay: 0s;
}

.object-content .object-circle.four {
  width: 200px;
  height: 200px;
  bottom: 0;
  right: -24px;
  background-image: url("../images/object/img_object_04.svg");
  animation-delay: 2s;
}

.object-content .object-circle.five {
  top: 0;
  left: -24px;
  background-image: url("../images/object/img_object_03.svg");
  animation-delay: 0s;
}

.object-content .object-circle.six {
  width: 200px;
  height: 200px;
  top: -80px;
  right: -24px;
  background-image: url("../images/object/img_object_04.svg");
  animation-delay: 2s;
}
@media screen and (max-width: 768px) {
  .object-content .object-circle.six {
    width: 100px;
    height: 100px;
    right: 24px;
  }
}

.object-content .object-circle.woman {
  width: 300px;
  height: 300px;
  bottom: -24px;
  left: -24px;
  background-image: url("../images/trouble/trouble_woman.png");
}
@media screen and (max-width: 768px) {
  .object-content .object-circle.woman {
    max-width: 300px;
    width: 33%;
  }
}

.object-content .object-circle.man {
  width: 300px;
  height: 300px;
  bottom: -24px;
  right: -24px;
  background-image: url("../images/trouble/trouble_man.png");
}
@media screen and (max-width: 768px) {
  .object-content .object-circle.man {
    max-width: 300px;
    width: 33%;
  }
}

/* 背景ストライプ */
.diagonal-border {
  position: absolute;
  content: "";
  background-image: repeating-linear-gradient(45deg, #fff490, #fff490 10px, #ffcc00 10px, #ffcc00 20px);
  z-index: -1;
}

/*--------------------------------------------------------

  テキスト左＋画像右 / SP 縦並び

 --------------------------------------------------------*/
.hero-split .hero-title-group {
  height: 100%;
}
.hero-split .hero-title-group > div {
  display: flex;
  align-items: center;
  height: 100%;
  gap: 32px;
}
@media screen and (max-width: 959px) {
  .hero-split .hero-title-group > div {
    flex-direction: column-reverse;
  }
}
.hero-split .text-block {
  flex: 1;
  position: relative;
}
.hero-split h1,
.hero-split .title-copy {
  margin-bottom: var(--dp-space-element-pc);
}
.hero-split .en-title {
  margin-bottom: var(--dp-space-inner-pc);
  letter-spacing: var(--dp-letter-spacing-text);
}
@media screen and (max-width: 599px) {
  .hero-split .en-title {
    letter-spacing: var(--dp-letter-spacing-text);
    font-size: var(--dp-font-size-explanation);
  }
}
.hero-split h1 {
  margin-bottom: var(--dp-space-element-sp);
  line-height: var(--dp-line-height-small);
  letter-spacing: var(--dp-letter-spacing-heading);
  font-size: var(--dp-font-size-page-title);
  font-weight: var(--dp-font-weight-heading);
  font-feature-settings: "palt";
}
@media screen and (max-width: 959px) {
  .hero-split h1 {
    font-size: var(--dp-font-size-title-pc);
  }
}
@media screen and (max-width: 599px) {
  .hero-split h1 {
    font-size: var(--dp-font-size-title-sp);
  }
}
.hero-split .title-copy {
  letter-spacing: var(--dp-letter-spacing-text);
}
.hero-split .title-copy-main {
  font-size: var(--dp-font-size-summary);
}
.hero-split .wp-block-image.hero-media {
  flex: 0 0 52%;
  margin-bottom: 0;
}
.hero-split .wp-block-image.hero-media img {
  height: 100%;
  aspect-ratio: 7/6;
  object-fit: cover;
  border-radius: var(--dp-radius);
}
@media screen and (max-width: 959px) {
  .hero-split .wp-block-image.hero-media {
    flex: 0 0 100%;
  }
  .hero-split .wp-block-image.hero-media img {
    height: 500px;
    width: 100vw;
  }
}
@media screen and (max-width: 599px) {
  .hero-split .wp-block-image.hero-media img {
    height: 300px;
  }
}
@media screen and (max-width: 959px) {
  .hero-split.hero-split--b .hero-title-group > div {
    gap: 0;
  }
}
@media screen and (max-width: 959px) {
  .hero-split.hero-split--b .text-block {
    max-width: 600px;
    margin-top: -128px;
    margin-left: 32px;
    padding: 48px 32px;
    background-color: var(--color_bg);
    border-radius: var(--dp-radius);
  }
}
@media screen and (max-width: 768px) {
  .hero-split.hero-split--b .text-block {
    max-width: 100%;
    margin-top: -48px;
    border-radius: var(--dp-radius) 0 0 0;
  }
}
@media screen and (max-width: 599px) {
  .hero-split.hero-split--b .text-block {
    margin-top: -32px;
    margin-left: 16px;
    padding: 24px 0 0 24px;
  }
}

/* メインビジュアル */
/*

 イントロダクションセクション (ABOUT / CONCEPTなど)

*/
/*--------------------------------------------------------

 intro-01 左：タイトル+サブタイトル+説明 右：動画 

 --------------------------------------------------------*/
.intro-section {
  height: auto;
  padding-bottom: clamp(40px, 9vw, 160px) !important;
}
@media screen and (max-width: 1024px) {
  .intro-section {
    padding-top: 40px !important;
  }
}
@media screen and (max-width: 599px) {
  .intro-section .dp-section-title p br {
    display: none;
  }
}
.post_content .intro-section h2 {
  margin-top: 24px;
  margin-bottom: 24px !important;
  letter-spacing: clamp(1px, 0.8vw, 3px);
  font-size: clamp(24px, 3vw, 32px);
  font-feature-settings: "palt";
}

.intro-section .l-read {
  margin-bottom: clamp(24px, 3.8vw, 48px) !important;
  letter-spacing: clamp(1px, 0.8vw, 3px);
  font-size: clamp(16px, 1.6vw, 24px);
}
.intro-section .intro-description p {
  margin-bottom: clamp(24px, 3.8vw, 48px) !important;
  line-height: 2.2;
  letter-spacing: clamp(1px, 0.8vw, 3px);
  font-size: clamp(14px, 1.6vw, 18px);
}
@media screen and (max-width: 1024px) {
  .intro-section .intro-description p {
    line-height: 1.6;
  }
  .intro-section .intro-description p:not(.l-read) {
    margin-bottom: clamp(20px, 2vw, 24px) !important;
  }
  .intro-section .intro-description p:not(.l-read) br {
    display: none;
  }
}

/*--------------------------------------------------------
 PC：右側の画像・動画
 --------------------------------------------------------*/
.fade-animation-wrap > div {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 64px;
}
@media screen and (max-width: 1024px) {
  .fade-animation-wrap > div {
    flex-direction: column-reverse;
    gap: 32px;
  }
}
.fade-animation-wrap > div .text-block {
  max-width: 640px;
  width: 50%;
}
@media screen and (max-width: 1024px) {
  .fade-animation-wrap > div .text-block {
    max-width: 100%;
    width: 100%;
  }
}

/* 縦中央寄せ */
.fade-animation-wrap.align-center > div {
  align-items: center;
}

/* ビデオコンテナ */
.fade-video-container {
  position: sticky;
  top: 13%;
  right: 0;
  max-width: 720px;
  width: 50%;
  height: 75vh;
}
@media screen and (max-width: 1024px) {
  .fade-video-container {
    position: relative;
    max-width: 100%;
    width: 100%;
    height: auto;
  }
}
.fade-video-container video {
  --fade-ms: 600ms;
  transition: opacity 0.3 ease;
  will-change: opacity;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  overflow: hidden;
}

/* ビデオアクティブ */
video.is-active {
  opacity: 1;
}

/*--------------------------------------------------------

 intro-02 左：タイトル+サブタイトル+説明 右：画像3枚フェード切り替え

 --------------------------------------------------------*/
.fade-image-container {
  width: 50%;
}

.fade-sticky-inner {
  position: sticky;
  top: 15%; /* 上からの固定位置（必要に応じて調整） */
  width: 100%;
  height: 70vh;
}

.fade-sticky-inner figure {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.8s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fade-sticky-inner figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.fade-sticky-inner figure.active {
  opacity: 1;
}

/* ドットインジケーター */
.fade-dots {
  position: absolute;
  bottom: 16px;
  right: 16px;
  display: flex;
  gap: 6px;
  z-index: 10;
}

.fade-dots span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.2);
  transition: background 0.3s, transform 0.3s;
  display: block;
}

/* ドットインジケーター メインカラー */
.fade-dots {
  --dot-color: var(--color_text);
  position: absolute;
  bottom: -48px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 10;
}
.fade-dots span {
  display: block;
  height: 1px;
  width: 33.3333333333%;
  background: rgba(255, 255, 255, 0.35);
  border-radius: 1px;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.4s ease;
}
.fade-dots span.active {
  width: 40%;
  background: var(--dot-color);
}

/* ========================================
     レスポンシブ対応：SP は通常の縦並び表示
     （スクロール連動は無効化してシンプルに）
  ======================================== */
@media (max-width: 768px) {
  .fade-image-container {
    height: auto; /* スクロール距離をリセット */
  }
  .fade-sticky-inner {
    position: relative;
    top: auto;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .fade-sticky-inner figure {
    position: relative;
    inset: auto;
    opacity: 1;
    height: auto;
  }
  .fade-sticky-inner figure img {
    height: auto;
    object-fit: contain;
  }
  .fade-dots {
    display: none;
  }
}
/* ABOUTページ */
/*

 overview-01 見出し+説明３つ縦並び (OVERVIEWページ)

*/
/*--------------------------------------------------------

 overview-01 タイトル縦向き 見出し+説明３つ縦並び

 --------------------------------------------------------*/
.dp-overview-section {
  position: relative;
  padding-top: 96px !important;
  background-color: transparent;
  transition: background-color 0.6s ease;
  will-change: background-color;
}
@media screen and (max-width: 599px) {
  .dp-overview-section {
    margin-top: -160px;
  }
}
.dp-overview-section.is-active {
  background-color: var(--color_main);
}
.dp-overview-section.is-active * {
  color: white !important;
}
.dp-overview-section > div {
  padding: 0 16px;
}
.dp-overview-section .media-block {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1512px;
  height: 100%;
  pointer-events: none;
}
.dp-overview-section .media-block figure {
  position: absolute;
  margin: 0;
  opacity: 0.2;
  line-height: 0;
}
.dp-overview-section .media-block figure img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media screen and (max-width: 599px) {
  .dp-overview-section .media-block figure img {
    height: 180px;
    object-fit: cover;
  }
}
.dp-overview-section .media-block figure:nth-child(1) {
  top: 0;
  left: 5%;
  width: 460px;
}
@media screen and (max-width: 1024px) {
  .dp-overview-section .media-block figure:nth-child(1) {
    width: 380px;
    left: 0;
  }
}
@media screen and (max-width: 959px) {
  .dp-overview-section .media-block figure:nth-child(1) {
    width: 280px;
    left: 0;
  }
}
@media screen and (max-width: 599px) {
  .dp-overview-section .media-block figure:nth-child(1) {
    width: 130px;
    left: 0;
  }
}
.dp-overview-section .media-block figure:nth-child(2) {
  top: 15%;
  right: 5%;
  width: 530px;
}
@media screen and (max-width: 1024px) {
  .dp-overview-section .media-block figure:nth-child(2) {
    width: 374px;
    top: 15%;
    right: 5%;
  }
}
@media screen and (max-width: 959px) {
  .dp-overview-section .media-block figure:nth-child(2) {
    width: 314px;
    top: 20%;
    right: 5%;
  }
}
@media screen and (max-width: 599px) {
  .dp-overview-section .media-block figure:nth-child(2) {
    width: 180px;
    top: 15%;
    right: 0;
  }
}
.dp-overview-section .media-block figure:nth-child(3) {
  top: 60%;
  right: 0;
  width: 520px;
}
@media screen and (max-width: 1024px) {
  .dp-overview-section .media-block figure:nth-child(3) {
    width: 378px;
    top: 78%;
    right: 12%;
  }
}
@media screen and (max-width: 959px) {
  .dp-overview-section .media-block figure:nth-child(3) {
    width: 318px;
    top: 78%;
    right: 5%;
  }
}
@media screen and (max-width: 599px) {
  .dp-overview-section .media-block figure:nth-child(3) {
    width: 160px;
    top: 55%;
    right: 5%;
  }
}
.dp-overview-section .media-block figure:nth-child(4) {
  top: 35%;
  left: 7%;
  width: 420px;
}
@media screen and (max-width: 1024px) {
  .dp-overview-section .media-block figure:nth-child(4) {
    width: 398px;
    top: 50%;
    left: 7%;
  }
}
@media screen and (max-width: 959px) {
  .dp-overview-section .media-block figure:nth-child(4) {
    width: 328px;
    top: 50%;
    left: 5%;
  }
}
@media screen and (max-width: 599px) {
  .dp-overview-section .media-block figure:nth-child(4) {
    width: 160px;
    top: 35%;
    left: 5%;
  }
}
.dp-overview-section .media-block figure:nth-child(5) {
  bottom: 80px;
  left: 5%;
  width: 480px;
}
@media screen and (max-width: 1024px) {
  .dp-overview-section .media-block figure:nth-child(5) {
    width: 380px;
    left: 0;
  }
}
@media screen and (max-width: 959px) {
  .dp-overview-section .media-block figure:nth-child(5) {
    width: 330px;
  }
}
@media screen and (max-width: 599px) {
  .dp-overview-section .media-block figure:nth-child(5) {
    width: 200px;
  }
}
.dp-overview-section .text-block {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  .dp-overview-section .text-block {
    max-width: 640px;
  }
}
.dp-overview-section .text-block > div {
  display: flex;
  gap: 48px;
}
@media screen and (max-width: 599px) {
  .dp-overview-section .text-block > div {
    flex-direction: column;
  }
}
.dp-overview-section .sticky-heading {
  position: sticky;
  top: 128px;
  align-self: flex-start;
  max-width: 110px;
  width: 100%;
  writing-mode: vertical-rl;
}
@media screen and (max-width: 599px) {
  .dp-overview-section .sticky-heading {
    position: relative;
    top: 0;
    align-self: auto;
    max-width: 100%;
    writing-mode: horizontal-tb;
  }
}
.dp-overview-section .sticky-heading h2 {
  height: max-content;
  margin-right: 16px;
  margin-bottom: 16px;
  line-height: 1;
  text-indent: -3px;
  text-align: left;
  letter-spacing: clamp(2px, 0.2vw, 4px);
  font-size: clamp(32px, 3.5vw, 48px);
}
@media screen and (max-width: 599px) {
  .dp-overview-section .sticky-heading h2 {
    margin-right: 0;
    line-height: 1.2;
  }
  .dp-overview-section .sticky-heading h2 br {
    display: none;
  }
}
.dp-overview-section .sticky-heading .en-title {
  text-align: left;
}
.dp-overview-section .text-content {
  max-width: 570px;
  margin-left: auto;
}
@media screen and (max-width: 599px) {
  .dp-overview-section .text-content {
    max-width: 100%;
    width: 100%;
    margin: 0 auto;
    padding: 0 24px;
  }
}
.dp-overview-section .text-content .content-item {
  margin-bottom: 308px;
}
@media screen and (max-width: 599px) {
  .dp-overview-section .text-content .content-item {
    margin-bottom: 96px;
  }
}
.dp-overview-section .text-content .content-item:last-child {
  margin-bottom: 0;
}
.dp-overview-section .text-content .content-item h3 {
  display: inline-block;
  margin-bottom: 32px;
  padding-bottom: 32px;
  line-height: 1;
  letter-spacing: 8px;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: bold;
}
@media screen and (max-width: 599px) {
  .dp-overview-section .text-content .content-item h3 {
    margin-bottom: 16px;
    padding-bottom: 16px;
    line-height: 1.4;
    letter-spacing: 2px;
  }
}
.dp-overview-section .text-content .content-item h3 .large-font {
  font-size: clamp(36px, 6vw, 64px);
  font-weight: bold;
  font-family: var(--font_num);
}
.dp-overview-section .text-content .content-item p {
  margin: 0;
  line-height: 1.6;
  letter-spacing: clamp(2px, 1vw, 6px);
  font-size: clamp(16px, 2vw, 20px);
}
@media screen and (max-width: 599px) {
  .dp-overview-section .text-content .content-item p {
    letter-spacing: 1px;
  }
  .dp-overview-section .text-content .content-item p br {
    display: none;
  }
}
.dp-overview-section.overview-02 .dp-section-title {
  margin-bottom: 128px;
}
@media screen and (max-width: 599px) {
  .dp-overview-section.overview-02 .dp-section-title {
    margin-bottom: 64px;
  }
}
.dp-overview-section.overview-02 .text-block > div {
  flex-direction: column;
  gap: 24px;
}
.dp-overview-section.overview-02 .text-content {
  max-width: 640px;
  width: 100%;
  margin: 0 auto;
  padding: 0 24px;
}

/* overviewページ */
/*

 カード (card)

*/
/* ===========================================
カードセクション (.dp-card-section)
=========================================== */
.dp-card-section .card-list {
  margin-bottom: var(--dp-space-block-pc);
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list {
    margin-bottom: var(--dp-space-block-sp);
  }
}
.dp-card-section .card-list {
  position: relative;
}
.dp-card-section .card-list::before {
  content: "";
  position: absolute;
  top: 96px;
  left: 50%;
  transform: translateX(-50%);
  width: min(100vw - 32px, 1328px);
  height: calc(100% + 6em + 80px);
  background-color: var(--dp-color-sub);
  border-radius: var(--dp-radius);
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .dp-card-section .card-list::before {
    top: 64px;
    width: 100vw;
    height: calc(100% + 4em + 64px);
    border-radius: 0;
  }
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list::before {
    height: calc(100% + 64px);
  }
}
.dp-card-section .card-list .swell-block-column {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.dp-card-section .card-list .en-copy {
  margin-bottom: -0.5em;
  text-align: center;
  font-size: 0.875rem;
  font-family: var(--dp-font-en);
  z-index: 2;
}
.dp-card-section .card-list .wp-block-image,
.dp-card-section .card-list i {
  position: relative;
  width: 160px;
  height: 160px;
  overflow: hidden;
  margin-bottom: var(--dp-space-inner-pc);
  background-color: var(--color_bg);
  border-radius: 50%;
}
.dp-card-section .card-list .wp-block-image::before,
.dp-card-section .card-list i::before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 72px;
  color: var(--color_text);
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list .wp-block-image,
  .dp-card-section .card-list i {
    width: 112px;
    height: 112px;
    margin-bottom: var(--dp-space-inner-sp);
  }
}
.dp-card-section .card-list .wp-block-image,
.dp-card-section .card-list i {
  z-index: 1;
}
.dp-card-section .card-list .wp-block-image img,
.dp-card-section .card-list i img {
  width: 96px;
  height: 100%;
  object-fit: contain;
}
@media screen and (max-width: 768px) {
  .dp-card-section .card-list .wp-block-image img,
  .dp-card-section .card-list i img {
    width: 64px;
  }
}
.dp-card-section .card-list h3 {
  margin-bottom: calc(var(--dp-space-inner-pc) / 2);
  font-size: var(--dp-font-size-heading-pc);
  font-weight: var(--dp-font-weight-heading);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list h3 {
    margin-bottom: calc(var(--dp-space-inner-sp) / 2);
    font-size: var(--dp-font-size-heading-sp);
  }
}
.dp-card-section .card-list .card-explanation {
  width: 100%;
  text-align: left;
  font-size: var(--dp-font-size-explanation);
}
.dp-card-section .card-list--counter .swell-block-columns__inner {
  counter-reset: card-counter;
}
.dp-card-section .card-list--counter .swell-block-column {
  counter-increment: card-counter;
}
.dp-card-section .card-list--counter .swell-block-column::before {
  content: counter(card-counter, decimal-leading-zero);
}
.dp-card-section .card-list--a::before {
  content: none;
}
.dp-card-section .card-list--a > .swell-block-columns__inner {
  justify-content: center;
}
.dp-card-section .card-list--a .wp-block-image {
  background-color: #fefefe;
}
.dp-card-section .card-list--b::before {
  top: var(--dp-space-block-pc);
  left: var(--dp-space-block-pc);
  transform: none;
  width: calc(100% + (100vw - 100%) / 2);
  height: 100%;
  border-radius: var(--dp-radius) 0 0 var(--dp-radius);
}
@media screen and (max-width: 768px) {
  .dp-card-section .card-list--b::before {
    top: var(--dp-space-inner-pc);
    left: var(--dp-space-inner-pc);
    width: calc(100% + (100vw - 100%) / 2);
    height: 100%;
  }
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list--b .swell-block-columns__inner {
    row-gap: var(--dp-space-element-sp);
  }
}
.dp-card-section .card-list--b .swell-block-column {
  background-color: var(--color_bg);
  box-shadow: var(--dp-shadow);
  border-radius: var(--dp-radius);
  padding: 0 var(--dp-space-element-pc) var(--dp-space-element-pc);
}
.dp-card-section .card-list--b .swell-block-column::before {
  align-self: flex-start;
  margin-bottom: var(--dp-space-element-sp);
  padding-top: var(--dp-space-element-sp);
  border-top: calc(var(--dp-border-width) * 2) solid var(--color_main);
  line-height: 1;
  letter-spacing: 0;
  font-family: var(--dp-font-num);
  font-size: var(--dp-font-size-title-pc);
  font-weight: var(--dp-font-weight-heading);
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list--b .swell-block-column::before {
    margin-bottom: 0;
  }
}
.dp-card-section .card-list--b .swell-block-column > :last-child {
  margin-bottom: 0;
}
.dp-card-section .card-list--b .wp-block-image {
  height: 100%;
  margin-bottom: var(--dp-space-element-pc);
  border-radius: 0;
}
.dp-card-section .card-list--b h3 {
  margin-bottom: var(--dp-space-element-sp);
  font-size: var(--dp-font-size-heading-pc);
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list--b h3 {
    font-size: var(--dp-font-size-heading-sp);
  }
}
.dp-card-section .card-list--c {
  margin-bottom: 0;
}
.dp-card-section .card-list--c::before {
  content: none;
}
.dp-card-section .card-list--c .swell-block-column {
  position: relative;
  background-color: #ffffff;
  border-radius: var(--dp-radius);
  padding: var(--dp-space-element-pc);
  box-shadow: var(--dp-shadow);
  text-align: center;
  z-index: 1;
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list--c .swell-block-column {
    padding: var(--dp-space-element-sp);
  }
}
.dp-card-section .card-list--c .swell-block-column::before {
  content: counter(card-counter, decimal-leading-zero);
  position: absolute;
  top: -0.5em;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color_main);
  border-radius: 50%;
  font-family: var(--dp-font-num);
  font-weight: 300;
  font-size: var(--dp-font-size-title-pc);
  color: #ffffff;
  line-height: 1;
  z-index: 2;
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list--c .swell-block-column::before {
    width: 64px;
    height: 64px;
    font-size: var(--dp-font-size-title-sp);
  }
}
.dp-card-section .card-list--c .swell-block-column .wp-block-image {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  margin: 0 0 1em;
  border-radius: var(--dp-radius);
  overflow: hidden;
  background-color: var(--dp-color-sub);
}
@media screen and (max-width: 599px) {
  .dp-card-section .card-list--c .swell-block-column .wp-block-image {
    aspect-ratio: unset;
  }
}
.dp-card-section .card-list--c .swell-block-column .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dp-card-section .section-lead {
  position: relative;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: var(--dp-space-block-pc) var(--dp-space-element-pc);
  background-color: var(--color_bg);
  border-radius: var(--dp-radius);
  box-shadow: var(--dp-shadow);
  text-align: center;
  z-index: 2;
}
.dp-card-section .section-lead p {
  font-size: var(--dp-font-size-title-pc);
  font-weight: var(--dp-font-weight-heading);
  font-feature-settings: "palt" on;
  line-height: var(--dp-line-height-small);
  letter-spacing: var(--dp-letter-spacing-heading);
  margin: 0;
}
@media screen and (max-width: 768px) {
  .dp-card-section .section-lead p {
    font-size: var(--dp-font-size-title-sp);
  }
}
@media screen and (max-width: 599px) {
  .dp-card-section .section-lead {
    padding: var(--dp-space-element-sp) calc(var(--dp-space-element-sp) / 2);
  }
  .dp-card-section .section-lead p {
    font-size: var(--dp-font-size-heading-sp);
  }
}
.dp-card-section .section-lead::after {
  content: "";
  position: absolute;
  bottom: calc(var(--dp-space-block-pc) * -1);
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: var(--dp-space-block-pc);
  background-color: var(--color_text);
}

/* カードリスト */
/*

 メディアブロック (media-block)

*/
/* ===========================================
メディア＋テキストセクション
=========================================== */
.dp-media-text-section .swell-block-fullWide__inner > .sp_only img {
  border-radius: var(--dp-radius);
}
.dp-media-text-section .wp-block-image.sp_only {
  margin-bottom: var(--dp-space-block-sp);
}
.dp-media-text-section .wp-block-image.sp_only:last-child {
  margin-bottom: 0;
}
.dp-media-text-section p,
.dp-media-text-section li,
.dp-media-text-section .wp-block-list {
  letter-spacing: var(--dp-letter-spacing-text);
}
.dp-media-text-section .dp-section-title {
  margin-bottom: var(--dp-space-element-pc);
}
@media screen and (max-width: 599px) {
  .dp-media-text-section .dp-section-title {
    margin-bottom: var(--dp-space-element-sp);
    text-align: center;
  }
}
.dp-media-text-section .dp-section-title h2 {
  margin-bottom: 0;
}
.dp-media-text-section .p-summary {
  line-height: var(--dp-line-height-large);
  margin-bottom: var(--dp-space-element-pc);
}
@media screen and (max-width: 599px) {
  .dp-media-text-section .p-summary {
    margin-bottom: var(--dp-space-element-sp);
  }
}
.dp-media-text-section .card-list-icon-heading-text {
  margin-bottom: var(--dp-space-element-pc);
}
@media screen and (max-width: 599px) {
  .dp-media-text-section .card-list-icon-heading-text {
    margin-bottom: var(--dp-space-element-sp);
  }
}
.dp-media-text-section .card-list-icon-heading-text .swell-block-column {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.dp-media-text-section .card-list-icon-heading-text .wp-block-image {
  margin-bottom: 0.75em;
}
.dp-media-text-section .card-list-icon-heading-text .wp-block-image img {
  width: 3.5em;
  height: 3.5em;
  object-fit: contain;
}
.dp-media-text-section .card-list-icon-heading-text .swell-block-column > p:first-of-type {
  font-size: 1.25em;
  font-weight: var(--dp-font-weight-heading);
  font-family: var(--dp-font-num);
  line-height: var(--dp-line-height-small);
  margin-bottom: 0.25em;
}
.dp-media-text-section .card-list-icon-heading-text .swell-block-column > p:last-of-type {
  font-size: 0.8125rem;
}

/* --- キャプションボックス --- */
.cap_box.caption-sub-color {
  --capbox_color: var(--color_text);
}
.cap_box.caption-sub-color .cap_box_ttl {
  top: 0;
  left: var(--dp-space-element-pc);
  padding: var(--dp-space-inner-pc) calc(var(--dp-space-inner-pc) * 2);
  border-radius: calc(var(--dp-radius) / 2);
}
@media screen and (max-width: 599px) {
  .cap_box.caption-sub-color .cap_box_ttl {
    left: var(--dp-space-element-sp);
    padding: var(--dp-space-inner-pc) calc(var(--dp-space-inner-pc) * 1.25);
  }
}
.cap_box.caption-sub-color .cap_box_ttl span {
  display: block;
  line-height: var(--dp-line-height-medium);
  text-align: left;
  letter-spacing: var(--dp-letter-spacing-text);
  font-size: 1.125rem;
  font-weight: var(--dp-font-weight-heading);
}
@media screen and (max-width: 599px) {
  .cap_box.caption-sub-color .cap_box_ttl span {
    font-size: 1.05rem;
  }
}
.cap_box.caption-sub-color .cap_box_content {
  margin-top: calc(var(--dp-space-element-pc) * -1);
  margin-bottom: 0;
  padding: calc(var(--dp-space-element-pc) * 1.75) var(--dp-space-element-pc) var(--dp-space-element-pc) var(--dp-space-element-pc);
  background-color: var(--color_bg);
  border-radius: var(--dp-radius);
  border-width: 3px;
}
@media screen and (max-width: 599px) {
  .cap_box.caption-sub-color .cap_box_content {
    padding: calc(var(--dp-space-element-pc) * 1.5) var(--dp-space-element-sp) var(--dp-space-element-sp) var(--dp-space-element-sp);
  }
}
.cap_box.caption-sub-color .cap_box_content > p {
  font-weight: var(--dp-font-weight-heading);
  margin-bottom: var(--dp-space-inner-pc);
}
@media screen and (max-width: 599px) {
  .cap_box.caption-sub-color .cap_box_content > p {
    margin-bottom: var(--dp-space-inner-pc);
  }
}
.cap_box.caption-sub-color .p-copy {
  margin-bottom: calc(var(--dp-space-inner-pc) * 1.25);
  line-height: var(--dp-line-height-medium);
  letter-spacing: var(--dp-letter-spacing-text);
  font-size: 1.125rem;
  font-weight: var(--dp-font-weight-heading);
}
@media screen and (max-width: 599px) {
  .cap_box.caption-sub-color .p-copy {
    margin-bottom: var(--dp-space-inner-pc);
    font-size: inherit;
  }
}
.cap_box.caption-sub-color .wp-block-list {
  margin-bottom: 0;
}
.cap_box.caption-sub-color .wp-block-list li {
  margin: 0 0 calc(var(--dp-space-inner-pc) / 2);
}
@media screen and (max-width: 599px) {
  .cap_box.caption-sub-color .wp-block-list li {
    margin: 0 0 calc(var(--dp-space-inner-sp) / 2);
    font-size: 0.875em;
  }
}
.cap_box.caption-sub-color .wp-block-list li:last-child {
  margin-bottom: 0;
}

/* --- メイン2カラム（画像 + テキスト） --- */
.dp-media-text-block {
  gap: 3em;
  align-items: stretch;
}
@media screen and (max-width: 599px) {
  .dp-media-text-block {
    margin-bottom: var(--dp-space-block-sp);
  }
}
.dp-media-text-block .media-block {
  flex: 0 0 50%;
  min-width: 0;
}
.dp-media-text-block .media-block > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  gap: var(--dp-space-element-pc);
}
.dp-media-text-block .media-block .wp-block-image {
  flex: 1;
  min-height: 0;
  margin-bottom: 0;
}
.dp-media-text-block .media-block .wp-block-image img {
  width: 100%;
  height: 100%;
  border-radius: var(--dp-radius);
  object-fit: cover;
}
.dp-media-text-block .text-block {
  flex: 1;
  min-width: 0;
}
@media screen and (max-width: 959px) {
  .dp-media-text-block .text-block {
    max-width: 540px;
    margin: 0 auto;
  }
}

/* ===========================================
カウンター付きメディアブロック（.dp-media-text-block--a）
=========================================== */
.dp-media-text-section--counter {
  counter-reset: media-num;
}

.dp-media-text-block--a {
  position: relative;
  margin-bottom: calc(var(--dp-space-block-pc) * 2);
}
@media screen and (max-width: 768px) {
  .dp-media-text-block--a {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
}
@media screen and (max-width: 599px) {
  .dp-media-text-block--a {
    margin-bottom: var(--dp-space-block-sp);
  }
}
.dp-media-text-block--a::before {
  content: "";
  position: absolute;
  top: var(--dp-space-block-pc);
  left: var(--dp-space-block-pc);
  transform: none;
  width: calc(100% + (100vw - 100%) / 2);
  height: 100%;
  border-radius: var(--dp-radius) 0 0 var(--dp-radius);
  background: color-mix(in srgb, var(--color_main) 10%, white);
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .dp-media-text-block--a::before {
    top: var(--dp-space-element-pc);
    left: 0;
  }
}
@media screen and (max-width: 599px) {
  .dp-media-text-block--a::before {
    top: var(--dp-space-inner-pc);
  }
}
@media screen and (max-width: 768px) {
  .dp-media-text-block--a:has(> .text-block:first-child) {
    flex-direction: column-reverse;
  }
}
.dp-media-text-block--a:has(> .text-block:first-child)::before {
  left: auto;
  right: var(--dp-space-block-pc);
  border-radius: 0 var(--dp-radius) var(--dp-radius) 0;
  width: calc(100% + (100vw - 100%) / 2);
}
@media screen and (max-width: 768px) {
  .dp-media-text-block--a:has(> .text-block:first-child)::before {
    right: 0;
  }
}
.dp-media-text-block--a .media-block {
  min-height: 0;
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .dp-media-text-block--a .media-block {
    flex: none;
    max-width: 540px;
    width: 100%;
    height: 280px;
    overflow: hidden;
    margin: 0 auto;
  }
  .dp-media-text-block--a .media-block .wp-block-image {
    height: 100%;
  }
}
@media screen and (max-width: 599px) {
  .dp-media-text-block--a .media-block {
    width: calc(100% - 40px);
    height: 240px;
    overflow: hidden;
  }
  .dp-media-text-block--a .media-block .wp-block-image {
    height: 100%;
  }
}
.dp-media-text-block--a .media-block img {
  width: 100%;
  height: 100%;
  border-radius: var(--dp-radius);
  object-fit: cover;
}
.dp-media-text-block--a .text-block {
  padding-top: 2.25em;
}
@media screen and (max-width: 768px) {
  .dp-media-text-block--a .text-block {
    margin-top: -4em;
    padding: 2em var(--dp-space-inner-pc) 2em;
  }
}
@media screen and (max-width: 599px) {
  .dp-media-text-block--a .text-block {
    margin-top: -1.5em;
    padding: 0 var(--dp-space-inner-pc) 1.5em;
  }
}
.dp-media-text-block--a h3 {
  position: relative;
  margin-bottom: 1em;
  letter-spacing: var(--dp-letter-spacing-text);
  font-size: clamp(20px, 1.2vw, 24px);
  font-weight: 600;
}
.dp-media-text-block--a h3::before {
  content: counter(media-num, decimal-leading-zero);
  display: block;
  margin-bottom: 0.125em;
  color: var(--color_main);
  line-height: 1;
  font-size: calc(var(--dp-font-size-title-pc) * 1.5);
  font-weight: 300;
  font-family: var(--dp-font-num);
  mix-blend-mode: multiply;
}
.dp-media-text-block--a .-list-flex {
  margin-bottom: 1em;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  justify-content: flex-start;
}
@media screen and (max-width: 599px) {
  .dp-media-text-block--a .-list-flex {
    justify-content: center;
  }
}
.dp-media-text-block--a .-list-flex li {
  list-style: none;
  background-color: var(--color_bg);
  border-radius: var(--dp-radius);
  padding: 0.25em 0.75em;
  font-size: var(--dp-font-size-explanation);
  color: var(--color_text);
}
.dp-media-text-block--a p {
  margin-bottom: 0;
  line-height: var(--dp-line-height-medium);
  letter-spacing: var(--dp-letter-spacing-text);
}

.dp-media-text-block--b {
  justify-content: center;
}
.dp-media-text-block--b .text-block {
  min-width: 480px;
}
@media screen and (max-width: 599px) {
  .dp-media-text-block--b .text-block {
    min-width: 0;
  }
}
.dp-media-text-block--b .dp-section-title {
  justify-content: center;
}
@media screen and (max-width: 599px) {
  .dp-media-text-block--b .p-summary {
    text-align: left;
  }
}
.dp-media-text-block--b .media-block {
  overflow: hidden;
  border-radius: var(--dp-radius);
}
.dp-media-text-block--b .media-block:first-child {
  margin-bottom: auto;
}
.dp-media-text-block--b .media-block:last-child {
  margin-top: auto;
}
.dp-media-text-block--b .media-block img {
  height: 660px;
  object-fit: cover;
}

/* メディアブロック */
/* ストレングス */
/* ===========================================
   ステップ (step) - DP Optimized
=========================================== */
.dp-step-section .step-block {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--dp-space-element-pc) var(--dp-space-element-sp);
  margin-bottom: var(--dp-space-element-pc);
}
@media screen and (max-width: 959px) {
  .dp-step-section .step-block {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 599px) {
  .dp-step-section .step-block {
    grid-template-columns: 1fr;
    gap: 0;
    margin-bottom: var(--dp-space-block-sp);
  }
}
.dp-step-section .swell-block-step__item {
  position: relative;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  padding: 0;
  text-align: center;
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__item {
    align-items: flex-start;
    text-align: left;
    padding: 0 1em var(--dp-space-element-sp) 4em;
  }
}
.dp-step-section .swell-block-step__item::before {
  content: "" !important;
  position: absolute !important;
  top: 1.5em !important;
  left: calc(-50% + 16px) !important;
  width: calc(100% - 56px) !important;
  height: 0 !important;
  border: none !important;
  border-top: 1px solid var(--color_text) !important;
  background: none !important;
  transform: none !important;
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__item::before {
    display: none !important;
  }
}
.dp-step-section .swell-block-step__item:first-child::before {
  display: none !important;
}
@media screen and (max-width: 959px) {
  .dp-step-section .swell-block-step__item:nth-child(3n+1)::before {
    display: none !important;
  }
}
.dp-step-section .swell-block-step__item::after {
  display: none;
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__item::after {
    content: "";
    display: block;
    position: absolute;
    top: 60px;
    left: 24px;
    width: 0;
    height: calc(100% - 72px);
    border-left: 1px solid var(--color_text);
  }
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__item:last-child {
    padding-bottom: 0;
  }
  .dp-step-section .swell-block-step__item:last-child::after {
    display: none;
  }
}
.dp-step-section .swell-block-step__item:not(:last-child) .swell-block-step__number {
  background-color: var(--color_bg) !important;
  color: var(--color_text) !important;
  border: 1px solid var(--color_text) !important;
  font-weight: 500;
}
.dp-step-section .swell-block-step__number {
  position: relative;
  margin-bottom: 1em;
  font-family: var(--dp-font-num);
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__number {
    position: absolute !important;
    top: 0;
    left: 0;
    margin-bottom: 0;
    z-index: 1;
  }
}
.dp-step-section .swell-block-step__number::after {
  font-size: 12px;
}
.dp-step-section .swell-block-step__number .__label {
  font-family: var(--dp-font-en);
}
.dp-step-section .swell-block-step__title {
  display: none !important;
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__body {
    width: 100%;
    margin-left: 0;
  }
}
.dp-step-section .swell-block-step__body .wp-block-image {
  margin-bottom: 1em;
}
.dp-step-section .swell-block-step__body .wp-block-image img {
  width: 7em;
  height: 7em;
  object-fit: contain;
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__body .wp-block-image img {
    width: 100%;
  }
}
.dp-step-section .swell-block-step__body .wp-block-image.icon-sns img {
  padding: 1em;
}
.dp-step-section .swell-block-step__body h3 {
  font-size: var(--dp-font-size-summary);
  font-weight: var(--dp-font-weight-heading);
  margin-bottom: var(--dp-space-inner-pc);
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__body h3 {
    text-align: center;
  }
}
.dp-step-section .swell-block-step__body .card-explanation {
  text-align: center;
  font-size: var(--dp-font-size-explanation);
  line-height: var(--dp-line-height-medium);
}
@media screen and (max-width: 599px) {
  .dp-step-section .swell-block-step__body .card-explanation {
    font-size: inherit;
  }
}

/* ステップ */
/*

 コストテーブル (cost-table)

*/
/* ===========================================
料金セクション (.dp-cost-section)
=========================================== */
.dp-cost-section .swell-block-columns {
  overflow: visible;
  margin-bottom: var(--dp-space-element-pc);
}
@media screen and (max-width: 599px) {
  .dp-cost-section .swell-block-columns {
    margin-bottom: var(--dp-space-element-sp);
  }
}
.dp-cost-section .swell-block-columns__inner {
  overflow: visible;
}
.dp-cost-section .swell-block-column {
  position: relative;
  padding: var(--dp-space-element-pc) var(--dp-space-inner-pc);
  background-color: var(--color_bg);
  border-radius: var(--dp-radius);
  box-shadow: var(--dp-shadow);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .dp-cost-section .swell-block-column:first-child {
    margin-bottom: var(--dp-space-inner-pc);
  }
}
@media screen and (max-width: 599px) {
  .dp-cost-section .swell-block-column.column-accent {
    padding: var(--dp-space-element-pc) var(--dp-space-inner-pc) var(--dp-space-element-sp);
  }
}
.dp-cost-section .swell-block-column:has(.p-accent) {
  border: var(--dp-border-width) solid var(--color_main);
}
@media screen and (max-width: 599px) {
  .dp-cost-section .swell-block-column {
    padding: var(--dp-space-element-sp) var(--dp-space-inner-sp);
  }
}
.dp-cost-section .p-accent {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-block;
  max-width: 200px;
  width: 100%;
  margin: 0;
  padding: calc(var(--dp-space-inner-sp) / 2) var(--dp-space-inner-pc);
  background-color: var(--color_main);
  color: #ffffff;
  border-radius: calc(var(--dp-radius) / 2);
  font-weight: 600;
  white-space: nowrap;
  z-index: 1;
}
.dp-cost-section .en-heding {
  margin-bottom: calc(var(--dp-space-inner-sp) / 2);
  font-size: var(--dp-font-size-explanation);
  font-family: var(--dp-font-en);
}
@media screen and (max-width: 599px) {
  .dp-cost-section .en-heding {
    margin-bottom: 0;
  }
}
.dp-cost-section h3 {
  margin-bottom: var(--dp-space-inner-pc);
  font-size: calc(var(--dp-font-size-heading-pc) * 0.9);
  font-weight: 600;
}
@media screen and (max-width: 599px) {
  .dp-cost-section h3 {
    margin-bottom: var(--dp-space-inner-sp);
    font-size: calc(var(--dp-font-size-heading-sp) * 0.9);
  }
}
.dp-cost-section .p-cost-number {
  line-height: 1;
  font-family: var(--dp-font-num);
  font-weight: var(--dp-font-weight-heading);
}
.dp-cost-section .p-cost-number span {
  font-feature-settings: "palt" on;
}
.dp-cost-section .p-cost-number span:first-child {
  margin-right: 3px;
}
@media screen and (max-width: 599px) {
  .dp-cost-section .p-cost-number {
    margin-bottom: calc(var(--dp-space-inner-sp));
  }
}
.dp-cost-section .p-term {
  display: inline-block;
  max-width: 240px;
  width: 100%;
  margin-bottom: calc(var(--dp-space-element-pc) * 0.6);
  padding: calc(var(--dp-space-inner-sp) / 2) var(--dp-space-inner-pc);
  background-color: var(--color_text);
  color: var(--color_bg);
  border-radius: calc(var(--dp-radius) / 2);
  font-weight: var(--dp-font-weight-heading);
}
@media screen and (max-width: 599px) {
  .dp-cost-section .p-term {
    margin-bottom: calc(var(--dp-space-element-sp) * 0.6);
  }
}
.dp-cost-section .is-style-check_list {
  max-width: 220px;
  width: 100%;
  margin: 0 auto;
  text-align: left;
  line-height: var(--dp-line-height-large);
}
@media screen and (max-width: 599px) {
  .dp-cost-section .is-style-check_list {
    max-width: 300px;
  }
}
.dp-cost-section .is-style-check_list li {
  position: relative;
  margin: 0 0 calc(var(--dp-space-inner-pc) / 2);
}
@media screen and (max-width: 599px) {
  .dp-cost-section .is-style-check_list li {
    margin: 0 0 calc(var(--dp-space-inner-sp) / 2);
  }
}
.dp-cost-section .p-annotation {
  text-align: center;
  font-size: var(--dp-font-size-explanation);
}
@media screen and (max-width: 768px) {
  .dp-cost-section .p-annotation {
    text-align: left;
  }
}

/* コストテーブル */
/*

 FAQ (faq)

*/
.faq-column .swell-block-column {
  box-shadow: var(--dp-shadow);
  border-radius: var(--dp-radius);
  padding: var(--dp-space-element-pc);
}
@media screen and (max-width: 599px) {
  .faq-column .swell-block-column {
    padding: var(--dp-space-element-sp) var(--dp-space-element-sp);
  }
}

/* FAQ */
/*

 CTAブロック (cta-block)

*/
/* ===========================================
CTAセクション (.dp-cta-section)
=========================================== */
.dp-cta-section .dp-container {
  background-color: var(--color_main);
  border-radius: var(--dp-radius);
  padding: var(--dp-space-block-pc) var(--dp-space-inner-pc);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .dp-cta-section .dp-container {
    padding: var(--dp-space-block-sp) var(--dp-space-inner-pc);
  }
}
.dp-cta-section .dp-section-title--a {
  margin-bottom: var(--dp-space-element-pc);
}
@media screen and (max-width: 599px) {
  .dp-cta-section .dp-section-title--a {
    margin-bottom: var(--dp-space-element-sp);
  }
}
.dp-cta-section .dp-section-title--a h2 {
  color: #fff;
  margin-bottom: var(--dp-space-inner-sp);
  font-size: var(--dp-font-size-title-sp);
  font-weight: var(--dp-font-weight-heading);
}
@media screen and (max-width: 599px) {
  .dp-cta-section .dp-section-title--a h2 {
    font-size: var(--dp-font-size-heading-sp);
  }
}
.dp-cta-section .dp-section-title--a p {
  color: #fff;
  font-size: var(--dp-font-size-summary);
}
@media screen and (max-width: 599px) {
  .dp-cta-section .dp-section-title--a p {
    font-size: var(--dp-font-size-explanation);
  }
}

/* CTAブロック */
/*

 バナーリスト (banner-list)

*/
/* -------------------------------------------
 * バナーリスト共通
 * ------------------------------------------- */
.dp-banner-list .c-bannerLink__title span {
  display: inline-block;
  transition: transform 0.3s ease;
  margin-left: 0.5em;
}
.dp-banner-list .c-bannerLink:hover .c-bannerLink__title span {
  transform: translateX(5px);
}
.dp-banner-list .c-bannerLink__text {
  height: auto;
  width: auto;
  text-align: left;
  padding: var(--dp-space-element-pc);
}
@media screen and (max-width: 599px) {
  .dp-banner-list .c-bannerLink__text {
    padding: var(--dp-space-element-sp);
  }
}
.dp-banner-list .c-bannerLink p {
  font-size: var(--dp-font-size-explanation);
}
.dp-banner-list {
  /* バナーリストA テキスト左下 */
}
.dp-banner-list--a .c-bannerLink__text {
  top: auto;
  bottom: 0;
}

/* バナーリスト */
.-type-thumb .p-postList__link,
.p-postList__thumb {
  border-radius: var(--dp-radius);
}

.dp-post-section .c-listMenu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--dp-space-inner-pc);
}
@media screen and (max-width: 599px) {
  .dp-post-section .c-listMenu {
    gap: var(--dp-space-inner-sp);
    justify-content: flex-start;
  }
}
.dp-post-section .c-listMenu li {
  list-style: none;
}
.dp-post-section .c-listMenu a {
  border-bottom: none;
  transition: background-color 0.3s ease;
}
.dp-post-section .c-listMenu a:hover {
  background-color: transparent;
  padding: 0.75em 1em 0.75em 1.75em !important;
}
.dp-post-section .c-listMenu a {
  position: relative;
}
.dp-post-section .c-listMenu a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--color_text);
  opacity: 0.5;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.dp-post-section .c-listMenu a:hover::after {
  opacity: 1;
  transform: translateY(-3px);
}

/* 投稿セクション */
/*

 セクションタイトル (section-title)

*/
/* --- 1. section-title--a (H2) --- */
.dp-section-title {
  margin-bottom: var(--dp-space-element-pc);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .dp-section-title {
    justify-content: center;
    margin-bottom: var(--dp-space-element-sp);
  }
}
.dp-section-title h2 {
  color: var(--color_text);
  font-weight: var(--dp-font-weight-heading);
}
.dp-section-title .en-title {
  margin-bottom: var(--dp-space-inner-sp);
  letter-spacing: var(--dp-letter-spacing-text);
  font-family: var(--dp-font-en);
}
@media screen and (max-width: 599px) {
  .dp-section-title .en-title {
    margin-bottom: var(--dp-space-inner-sp);
  }
}
.dp-section-title .p-lead {
  letter-spacing: var(--dp-letter-spacing-text);
  font-size: clamp(18px, 1.2vw, 20px);
}

.dp-section-title--a h2 {
  font-size: var(--dp-font-size-title-pc);
  letter-spacing: var(--dp-letter-spacing-heading);
  margin-bottom: var(--dp-space-inner-pc);
}
@media screen and (max-width: 599px) {
  .dp-section-title--a h2 {
    letter-spacing: var(--dp-letter-spacing-text);
    font-size: calc(var(--dp-font-size-title-sp) * 0.8);
  }
}
.dp-section-title--a h2 span {
  line-height: 1;
}
@media screen and (max-width: 599px) {
  .dp-section-title--a h2 span {
    font-size: var(--dp-font-size-heading-pc) !important;
  }
}

@media screen and (max-width: 599px) {
  .dp-section-title--number h2 span {
    font-size: var(--dp-font-size-title-pc) !important;
  }
  .title-copy-main-24 {
    font-size: 20px !important;
  }
}
/* --- 2. section-title--b (H2) --- */
.dp-section-title--b .en-title {
  line-height: 1.4;
  font-weight: 300;
  font-size: calc(var(--dp-font-size-title-pc) * 1.5);
}
@media screen and (max-width: 599px) {
  .dp-section-title--b .en-title {
    font-size: calc(var(--dp-font-size-title-sp) * 1.25);
  }
}
.dp-section-title--b h2 {
  font-weight: 400;
}

/* セクションタイトル */
/*

 リスト (list)


*/
/* 横並び ハッシュタグ */
.-list-flex.list-hashtag {
  justify-content: center;
  padding-left: 0 !important;
  gap: 1em 3em;
}
@media screen and (max-width: 599px) {
  .-list-flex.list-hashtag {
    flex-direction: column;
    gap: 1em;
  }
}
.-list-flex.list-hashtag li {
  list-style: none;
  font-size: 1.125rem;
}
@media screen and (max-width: 599px) {
  .-list-flex.list-hashtag li {
    font-size: inherit;
  }
}
.-list-flex.list-hashtag li::before {
  content: "＃";
  left: 0;
}

/* リスト */
/*

 ボタン (button)

*/
/* ボタン共通 */
.dp-button {
  margin-bottom: 0;
}
.dp-button .swell-block-button__link {
  min-width: 300px;
  font-size: var(--dp-font-size-summary);
  font-weight: var(--dp-font-weight-heading);
}
@media screen and (max-width: 599px) {
  .dp-button .swell-block-button__link {
    width: 100%;
  }
}

/* 角丸レクタングルボタン */
.button-rectangle .swell-block-button__link {
  border-radius: var(--dp-radius);
}

/* 大きめボタン */
.button-large .swell-block-button__link {
  padding: var(--dp-space-element-sp) var(--dp-space-element-pc);
  font-size: var(--dp-font-size-heading-pc);
  font-weight: var(--dp-font-weight-heading);
}
@media screen and (max-width: 599px) {
  .button-large .swell-block-button__link {
    padding: var(--dp-space-element-sp) var(--dp-space-inner-pc);
    font-size: var(--dp-font-size-summary);
    font-weight: 600;
  }
}

/* 背景白抜きボタン */
.button-white .swell-block-button__link {
  background-color: var(--color_bg);
  color: var(--color_main) !important;
}

/* ボタン */
