/* Front Page Styles */

/* FVエリア用の親要素のオーバーフロー設定 */
body.home .l-content,
body.home #main,
body.home .l-container {
  overflow: visible !important;
}

/* single, page, archiveページの背景色設定 */
body.single .l-content,
body.page .l-content,
body.archive .l-content,
body.single #main,
body.page #main,
body.archive #main,
body.single .l-container,
body.page .l-container,
body.archive .l-container {
  background-color: #fff8d8 !important;
}

/* より広範囲の背景色設定 */
body.single,
body.page,
body.archive {
  background-color: #fff8d8 !important;
}

/* Header Floating Overlay */
#header.l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: transparent;
  box-shadow: none; /* Remove shadow if present */
}

/* 固定ヘッダー用のスタイル */
#header.l-header.is-fixed-custom {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  background-color: #fff !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease;
  z-index: 100 !important;
}

/* 固定時のナビゲーション文字色 */
#header.l-header.is-fixed-custom .c-gnav > li > a {
  color: #333 !important;
}

/* Ensure global nav texts are visible on likely dark image */
.c-gnav > li > a {
  color: #fff; /* Default to white for visibility, adjust as needed */
}

/* If SWELL adds a spacer for fixed header, we might need to negate it or it might not appear if header is absolute from start. 
   Usually SWELL adds padding-top to body if header is fixed. 
/* If SWELL adds a spacer for fixed header, we might need to negate it or it might not appear if header is absolute from start.
   Usually SWELL adds padding-top to body if header is fixed.
   If we change it to absolute here, we might need to handle body padding.
   For now, we assume the content starts at top.
*/

/* スマートフォン用メインビジュアル */
.p-topHero-sp {
  display: none; /* デスクトップ・タブレットでは非表示 */
  width: 100vw;
  margin-left: calc(50% - 50vw); /* コンテナからはみ出して画面幅いっぱいに */
  margin-right: calc(50% - 50vw);
  padding: 0;
}

.p-topHero-sp__img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0;
  padding: 0;
}

/* スマートフォン用LINE CTA */
.p-topHero-sp__lineBtnWrap {
  display: none; /* デスクトップでは非表示 */
  position: relative;
  width: 100%;
  padding: 24px 0;
}

.p-topHero-sp__gospelImg {
  position: absolute;
  top: -150px;
  left: 50%;
  transform: translateX(-50%);
  width: 300px;
  height: auto;
  z-index: 10;
  pointer-events: none;
}

.p-topHero-sp__lineBtn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  width: 100%;
  margin: 0 auto;
  padding: 8px;
  background-color: #06c755;
  color: #fff;
  border-radius: 8px;
  box-shadow:
    0 0 15px 0 #fff,
    0 0 8px 0 #fff;
  text-decoration: none;
  transition: all 0.2s ease;
  z-index: 20;
}

.p-topHero-sp__lineBtnLogo {
  width: 50px;
  height: 48px;
  flex: 0 0 auto;
}

.p-topHero-sp__lineBtnLogoImg {
  display: block;
  width: 100%;
  height: 100%;
}

.p-topHero-sp__lineBtnBody {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1;
  text-align: center;
}

.p-topHero-sp__lineBtnPill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 16px;
  background: #fff;
  border-radius: 20px;
  color: #06c755;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  white-space: nowrap;
  width: 100%;
}

.p-topHero-sp__lineBtnMain {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.p-topHero-sp__lineBtnMainText {
  font-weight: 800;
  font-size: 18px;
  line-height: 1;
  color: #fff;
}

.p-topHero-sp__lineBtnArrow {
  width: 12px;
  height: 20px;
  flex: 0 0 auto;
}

.p-topHero-sp__lineBtnArrowImg {
  display: block;
  width: 100%;
  height: 100%;
}

.p-topHero-sp__lineBtn:hover {
  transform: translateY(-2px);
  filter: brightness(1.03);
  box-shadow:
    0 0 20px 0 #fff,
    0 0 12px 0 #fff;
}

.p-topHero-sp__lineBtn:active {
  transform: translateY(0);
  opacity: 0.9;
}

/* タブレット・デスクトップ用メインビジュアル */
.p-topHero {
  position: relative;
  width: 100vw;
  /* max-width: 1920px; */
  height: 100vh;
  left: 50%;
  transform: translateX(-50%);
  overflow: visible;
  margin-bottom: 0;
  margin-top: 0;
  display: flex; /* Center the image if it shrinks horizontally */
  justify-content: center;
  align-items: flex-start; /* Align top (under header) or center? Standard is usually top or center. */
}

.p-topHero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.p-topHero__bgImg {
  width: 100%;
  height: 100%;
  object-fit: fill;
  max-width: 1920px;
	margin: 0 auto;
    display: block;
}

.p-topHero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-topHero__img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100vh;
  object-fit: contain;
  vertical-align: bottom;
}

/* Copy Image Styles */
.p-topHero__copy {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 90%;
  max-width: 770px; /* Max width constraint, adjust as needed */
  text-align: center;
}

.p-topHero__copyImg {
  width: 100%;
  height: auto;
  position: relative;
  z-index: 100;
}

.p-topHero__groupImg {
  position: absolute;
  top: -60px;
  transform: rotate(26deg);
  left: -10px;
  width: 240px;
  height: auto;
  z-index: 0;
}

.p-topHero__guitarImg {
  position: absolute;
  top: 50px;
  right: -260px;
  width: 450px;
  height: auto;
  z-index: 15;
}

.p-topHero__fluteImg {
  position: absolute;
  bottom: -90px;
  right: -210px;
  width: 270px;
  height: auto;
  z-index: 400;
}

.p-topHero__hitoImg {
  position: absolute;
  bottom: -30px;
  left: -190px;
  width: 330px;
  height: auto;
  z-index: 151;
}

.p-topHero__label {
  position: absolute;
  top: 50px;
  right: 0;
  transform: translate(30%, -30%);
  width: 35%;
  max-width: 300px;
  height: auto;
  z-index: 100;
}

/* LINE お問い合わせボタン（FV下部中央） */
.p-topHero__lineBtnWrap {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  z-index: 20;
  width: 100%;
  display: flex;
  justify-content: center;
  pointer-events: none; /* 他要素との干渉を避けるため、ボタンだけ反応させる */
}

.p-topHero__gospelImg {
  position: absolute;
  top: -200px;
  left: 50%;
  transform: translateX(-50%);
  width: 340px;
  height: auto;
  z-index: 25;
  pointer-events: none;
}

.p-topHero__lineBtn {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 8px 24px;
  background-color: #06c755; /* LINEカラー */
  color: #fff;
  border-radius: 8px;
  box-shadow:
    0 0 15px 0 #fff,
    0 0 8px 0 #fff;
  text-decoration: none;
  transition:
    transform 0.2s ease,
    filter 0.2s ease,
    opacity 0.2s ease;
  z-index: 31;
}

.p-topHero__lineBtnLogo {
  position: relative;
  width: 82.885px;
  height: 79px;
  flex: 0 0 auto;
}

.p-topHero__lineBtnLogoImg {
  display: block;
  width: 100%;
  height: 100%;
}

.p-topHero__lineBtnBody {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}

.p-topHero__lineBtnPill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 40px;
  background: #fff;
  border-radius: 104px;
  color: #06c755;
  font-weight: 800;
  font-size: 21px;
  line-height: 1;
  white-space: nowrap;
}

.p-topHero__lineBtnMain {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  white-space: nowrap;
}

.p-topHero__lineBtnMainText {
  font-weight: 800;
  font-size: 34px;
  line-height: 1;
  color: #fff;
}

.p-topHero__lineBtnArrow {
  width: 13.414px;
  height: 23px;
  flex: 0 0 auto;
}
.p-topHero__lineBtnArrowImg {
  display: block;
  width: 100%;
  height: 100%;
}

.p-topHero__lineBtn:hover {
  transform: translateY(-2px);
  filter: brightness(1.03);
}

.p-topHero__lineBtn:active {
  transform: translateY(0);
  opacity: 0.9;
}

/* Tablet 調整 - メニューとの被りを回避 */
@media (max-width: 1024px) {
  .p-topHero__copy {
    top: calc(50% + 40px); /* ヘッダー分下にずらす */
  }
  .p-topHero__groupImg {
    width: 150px;
    top: 15px;
    left: 15px;
  }
  .p-topHero__guitarImg {
    width: 150px;
    top: 15px;
    right: 15px;
  }
  .p-topHero__fluteImg {
    width: 150px;
    bottom: 15px;
    right: 15px;
  }
  .p-topHero__hitoImg {
    width: 150px;
    bottom: 15px;
    left: 15px;
  }
  .p-topHero__gospelImg {
    width: 120px;
    top: -40px;
  }
  .p-topHero {
    max-height: none;
    height: 630px;
  }
  .p-topHero__img {
    height: 100vh;
    object-fit: cover;
  }
}

/* SP 調整 */
@media (max-width: 1025px) {
  /* タブレット以下ではメインビジュアルを切り替え */
  .p-topHero {
    display: none;
  }

  .p-topHero-sp {
    display: block;
  }

  .p-topHero-sp__lineBtnWrap {
    display: block;
    padding-bottom: 24px;
  }

  .p-topHero__copy {
    top: calc(50% + 30px); /* スマホでもヘッダー分調整 */
  }

  .p-topHero__groupImg {
    width: 120px;
    top: 10px;
    left: 10px;
  }

  .p-topHero__guitarImg {
    width: 120px;
    top: 10px;
    right: 10px;
  }

  .p-topHero__fluteImg {
    width: 120px;
    bottom: 10px;
    right: 10px;
  }

  .p-topHero__hitoImg {
    width: 120px;
    bottom: 10px;
    left: 10px;
  }

  .p-topHero__gospelImg {
    width: 100px;
    top: -35px;
  }

  .p-topHero__lineBtnWrap {
    bottom: 24px;
    display: none;
  }

  .p-topHero__lineBtn {
    width: calc(100% - 48px);
    max-width: 340px;
    padding: 8px 14px;
    gap: 12px;
  }

  .p-topHero__lineBtnLogo {
    width: 64px;
    height: 62px;
  }
  .p-topHero__lineBtnPill {
    padding: 6px 18px;
    font-size: 14px;
  }
  .p-topHero__lineBtnMainText {
    font-size: 22px;
  }
  .p-topHero__lineBtnMain {
    gap: 10px;
  }
  .p-topHero__lineBtnArrow {
    width: 12px;
    height: 20px;
  }
}

/* セクショントップデコレーション */
.p-section-top {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  display: block;
  line-height: 0;
  margin-bottom: -1px; /* セクション間の隙間をなくす */
}

.p-section-top__img {
  width: 100%;
  height: auto;
  display: block;
}

/* こんな悩みありませんか？セクション */
.p-worries {
  background-color: #fff8d8;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 60px 0;
  margin-bottom: -1px; /* セクション間の隙間をなくす */
}

.p-worries__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

.p-worries__heading {
  text-align: center;
  margin-bottom: 40px;
}

.p-worries__headingImg {
  max-width: 100%;
  height: 70px;
  width: auto;
}

.p-worries__content {
  width: 100%;
}

/* セクションボトムデコレーション */
.p-section-bottom {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  display: block;
  line-height: 0;
  position: relative;
  z-index: 110;
}

.p-section-bottom__img {
  width: 100%;
  height: auto;
  display: block;
}

.p-worries__columns {
  display: flex;
  gap: 40px;
  justify-content: space-between;
  align-items: flex-end;
}

.p-worries__column {
  flex: 1;
  width: 100%;
}

.p-worries__categoryTitle {
  font-size: 24px;
  font-weight: bold;
  color: #d76712;
  margin-bottom: 25px;
  line-height: 1.2;
  font-family: "Noto Sans CJK JP", sans-serif;
}

.p-worries__items {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.p-worries__item {
  background-color: #ffffff;
  border-radius: 16px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-worries__itemText {
  font-size: 15px;
  line-height: 1.7;
  color: #432414;
  margin: 0;
  text-align: left;
  font-family: "Noto Sans CJK JP", "Inter", sans-serif;
}

.p-worries__cloud {
  width: 60px;
  height: auto;
  align-self: center;
  opacity: 0.8;
}

.p-worries__centerCloud {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.p-worries__cloud--center {
  width: 100%;
  margin: 0 20px;
}

.p-worries__personImg {
  text-align: center;
  margin-top: 40px;
}

.p-worries__person {
  width: 100%;
  height: auto;
  max-width: 800px;
}

/* レスポンシブ調整 */
@media (max-width: 768px) {
  .p-worries {
    padding: 40px 0;
  }

  .p-worries__inner {
    padding: 0 16px;
  }

  .p-worries__headingImg {
    max-height: 60px;
  }

  .p-worries__columns {
    flex-direction: column;
    gap: 30px;
  }

  .p-worries__categoryTitle {
    font-size: 24px;
    margin-bottom: 20px;
  }

  .p-worries__itemText {
    font-size: 15px;
    line-height: 1.7;
  }

  .p-worries__item {
    padding: 12px 16px;
  }

  .p-worries__centerCloud {
    display: none; /* モバイルでは中央の雲を非表示 */
  }

  .p-worries__cloud {
    width: 40px;
  }

  .p-worries__personImg {
    margin-top: 30px;
  }
}

/* その悩み、すべてアニマートピカソが解決します！セクション */
.p-solution {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0 0 80px 0;
  overflow: hidden;
  min-height: 600px;
}

.p-solution__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

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

.p-solution__inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
  z-index: 10;
}

.p-solution__decorations {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 5;
}

.p-solution__decoration {
  position: absolute;
  opacity: 0.7;
}

.p-solution__decoration--1 {
  top: 30%;
  left: -150px;
  width: 600px;
  animation: float 6s ease-in-out infinite;
}

.p-solution__decoration--2 {
  top: 60%;
  right: -150px;
  width: 600px;
  animation: float 5s ease-in-out infinite 1s;
}

.p-solution__decoration--3 {
  top: 30%;
  right: -100px;
  width: 600px;
  animation: float 4s ease-in-out infinite 2s;
}

.p-solution__decoration--4 {
  bottom: 20%;
  left: -100px;
  width: 600px;
  animation: float 7s ease-in-out infinite 3s;
}

@keyframes float {
  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-10px) rotate(2deg);
  }
}

.p-solution__content {
  position: relative;
  z-index: 10;
  text-align: center;
}

.p-solution__titleSection {
  margin-bottom: 40px;
  border-radius: 16px;
  padding: 64px 20px 20px;
}

.p-solution__titleMain {
  font-size: 74px;
  font-weight: bold;
  color: #432414;
  margin: 0 0 10px 0;
  font-family: "Noto Sans CJK JP", sans-serif;
  line-height: 1.2;
}

.p-solution__titleSub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

.p-solution__titleText {
  font-size: 57px;
  font-weight: bold;
  color: #432414;
  font-family: "Noto Sans CJK JP", sans-serif;
  line-height: 1;
}

.p-solution__titleEmphasis {
  font-size: 57px;
  font-weight: bold;
  color: #432414;
}

.p-solution__logo {
  height: 80px;
  width: auto;
}

.p-solution__mainSection {
  position: relative;
  margin-top: 40px;
}

.p-solution__imageSection {
  margin-bottom: 30px;
}

.p-solution__mainImage {
  max-width: 100%;
  height: auto;
  width: 600px;
}

.p-solution__descriptionBox {
  background-color: #ffffff;
  border-radius: 8px;
  padding: 20px;
  margin: 0 auto;
  max-width: 1000px;
  text-align: left;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.p-solution__description {
  font-size: 20px;
  color: #432414;
  margin: 0 0 15px 0;
  line-height: 1;
  font-weight: bold;
  font-family: "Noto Sans CJK JP", sans-serif;
}

.p-solution__description:last-child {
  margin-bottom: 0;
}

.p-solution__highlight {
  color: #d76712;
}

/* レスポンシブ調整 */
@media (max-width: 768px) {
  .p-solution {
    padding: 0px 0 60px;
  }

  .p-solution__titleMain {
    font-size: 48px;
  }

  .p-solution__titleText,
  .p-solution__titleEmphasis {
    font-size: 36px;
  }

  .p-solution__logo {
    height: 60px;
  }

  .p-solution__titleSub {
    flex-direction: column;
    gap: 10px;
  }

  .p-solution__mainImage {
    width: 400px;
  }

  .p-solution__description {
    font-size: 15px;
    line-height: 1.7;
  }

  .p-solution__decoration--1,
  .p-solution__decoration--2,
  .p-solution__decoration--3,
  .p-solution__decoration--4 {
    width: 80px;
  }
}

/* 3つの特徴セクション */
.p-features {
  padding: 64px 16px;
  background: #f5cd1e;
  position: relative;
}

.p-features__inner {
  max-width: var(--article_size);
  margin: 0 auto;
}

.p-features__titleArea {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 24px;
}

.p-features__decorations {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.p-features__decoration {
  position: absolute;
  width: 372px;
  height: 85.513px;
}

.p-features__decoration--left {
  left: 0;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-features__decoration--right {
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-features__titleImg {
  position: relative;
  z-index: 10;
  height: auto;
  max-width: 100%;
}

.p-features__cards {
  display: flex;
  gap: 40px;
  align-items: stretch;
}

.p-features__card {
  flex: 1;
  background: white;
  border-radius: 16px;
  overflow: visible;
  position: relative;
}

.p-features__cardImage {
  position: relative;
  height: 268px;
  overflow: visible;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.p-features__cardBg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-features__cardOverlay {
  position: absolute;
  right: -50px;
  top: 48.5px;
  width: 90%;
  height: 251px;
  object-fit: cover;
}

.p-features__cardNumber {
  position: absolute;
  left: -8px;
  top: -24px;
  z-index: 10;
}

.p-features__pointIcon {
  width: 80px;
  height: 80px;
  display: block;
}

.p-features__cardContent {
  padding: 16px;
  position: relative;
}

.p-features__cardTitle {
  color: #d76712;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-weight: bold;
  font-size: 24px;
  line-height: 1.4;
  margin: 0 0 15px 0;
}

.p-features__cardText {
  color: #432414;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
  text-align: justify;
}

/* レスポンシブデザイン */
@media (max-width: 1025px) {
  .p-features__cards {
    flex-direction: column;
    gap: 24px;
  }
  .p-features__cardOverlay {
    width: 60%;
    right: 0;
  }

  .p-features__cardTitle {
    font-size: 28px;
  }

  .p-features__cardText {
    font-size: 18px;
  }
}

@media (max-width: 768px) {
  .p-features {
    padding: 48px 16px;
  }

  .p-features__cardTitle {
    font-size: 24px;
  }

  .p-features__cardText {
    font-size: 16px;
  }

  .p-features__cardImage {
    height: 220px;
  }
}

/* アニマートピカソの想いセクション */
.p-about {
  position: relative;
  background: #fff8d8;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.p-about__content {
  padding: 64px 0;
}

.p-about__inner {
  max-width: var(--article_size);
  margin: 0 auto;
  padding: 0 16px;
  width: 100%;
}

.p-about__titleSection {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 40px;
  position: relative;
}

.p-about__titleDecorations {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.p-about__titleDecoration {
  position: absolute;
  width: 50%;
  height: 85.513px;
}

.p-about__titleDecoration--left {
  left: 0;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-about__titleDecoration--right {
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-about__titleImg {
  position: relative;
  z-index: 10;
  max-width: 100%;
  height: 170px;
  width: auto;
}

.p-about__desktopLayout {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}

.p-about__mobileLayout {
  display: none;
}

.p-about__profileSection {
  flex-shrink: 0;
  width: 355px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-end;
}

.p-about__profileImage {
  width: 100%;
  height: 453px;
  border-radius: 15px;
  overflow: hidden;
  position: relative;
}

.p-about__photo {
  object-fit: cover;
  width: 100%;
}

.p-about__profileText {
  width: 294px;
  text-align: right;
}

.p-about__organization {
  color: #432414;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
}

.p-about__name {
  color: #432414;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  margin: 0;
}

.p-about__messageSection {
  flex: 1;
  min-width: 0;
}

.p-about__messageTitle {
  margin-bottom: 15px;
}

.p-about__messageHeading {
  color: #d76712;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 31px;
  font-weight: bold;
  line-height: 1.5;
  margin: 0;
  letter-spacing: 0;
}

.p-about__messageContent {
}

.p-about__messageText {
  color: #432414;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  margin: 0 0 16px 0;
  text-align: justify;
}

.p-about__messageText:last-child {
  margin-bottom: 0;
}

/* レスポンシブデザイン */
@media (max-width: 1025px) {
  .p-about__desktopLayout {
    display: none;
  }
  .p-about__titleSection {
    margin-bottom: 16px;
  }
  .p-about__mobileLayout {
    display: block;
  }

  .p-about__content {
    padding: 24px 0;
  }

  .p-about__mobileMessage {
    margin-bottom: 31px;
  }

  .p-about__messageHeading {
    font-size: 24px;
    line-height: normal;
    letter-spacing: 0;
    margin-bottom: 15px;
  }

  .p-about__mobileProfile {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-end;
  }

  .p-about__profileImage {
    width: 100%;
  }

  .p-about__organization,
  .p-about__name {
    font-size: 15px;
  }
}

/* お客様の声セクション */
.p-testimonials {
  padding: 60px 16px;
  background: #f5cd1e;
  max-width: var(--article_size);
  margin: 0 auto;
}

.p-testimonials__inner {
  max-width: 1424px;
  margin: 0 auto;
  padding: 0;
}

.p-testimonials__titleArea {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 48px;
}

.p-testimonials__decorations {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.p-testimonials__decoration {
  position: absolute;
  width: 372px;
  height: 85.513px;
}

.p-testimonials__decoration--left {
  left: 0;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-testimonials__decoration--right {
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-testimonials__titleImg {
  position: relative;
  z-index: 10;
  height: 170px;
  max-width: 100%;
  width: auto;
}

.p-testimonials__items {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.p-testimonials__item {
  display: block;
}

.p-testimonials__block {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.p-testimonials__single {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}

.p-testimonials__single--reverse {
  flex-direction: row-reverse;
}

.p-testimonials__image {
  flex-shrink: 0;
  width: 50%;
  height: 400px;
  border-radius: 8px;
  overflow: hidden;
}

.p-testimonials__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-testimonials__content {
  flex: 1;
  display: flex;
  gap: 22px;
  align-items: flex-start;
  min-width: 0;
}

.p-testimonials__avatar {
  flex-shrink: 0;
  width: 95px;
  height: 95px;
  position: relative;
}

.p-testimonials__avatarImg {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-testimonials__card {
  flex: 1;
  background: white;
  border-radius: 8px;
  position: relative;
  min-width: 0;
}

.p-testimonials__card::before {
  content: "";
  position: absolute;
  left: -16px;
  top: 47px; /* アバター(95px)の中央に合わせる */
  width: 0;
  height: 0;
  border-top: 18px solid transparent;
  border-bottom: 18px solid transparent;
  border-right: 16px solid white;
}

.p-testimonials__single--reverse .p-testimonials__card::before {
  left: -16px;
  right: auto;
  top: 47px; /* アバター(95px)の中央に合わせる */
  border-right: 16px solid white;
  border-left: none;
}

.p-testimonials__cardInner {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.p-testimonials__cardHeader {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-testimonials__customerInfo {
  display: flex;
  gap: 8px;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 18px;
  line-height: 1.7;
  color: #432414;
}

.p-testimonials__cardTitle {
  color: #d76712;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-weight: bold;
  font-size: 22px;
  line-height: 1.4;
  margin: 0;
}

.p-testimonials__divider {
  height: 1px;
  background: #ddd;
  margin: 8px 0;
}

.p-testimonials__cardText {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-testimonials__text {
  color: #432414;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
  text-align: justify;
}

/* レスポンシブデザイン */
@media (max-width: 1025px) {
  .p-testimonials {
    padding: 48px 16px;
  }

  .p-testimonials__block {
    gap: 28px;
  }

  .p-testimonials__single,
  .p-testimonials__single--reverse {
    flex-direction: column;
    gap: 21px;
  }

  .p-testimonials__image {
    width: 100%;
    height: 282px;
    order: 1;
  }

  .p-testimonials__content {
    flex-direction: row;
    align-items: flex-start;
    gap: 22px;
    order: 2;
  }

  .p-testimonials__avatar {
    width: 74px;
    height: 74px;
    flex-shrink: 0;
    margin-bottom: 0;
  }

  .p-testimonials__card {
    position: relative;
    flex: 1;
  }

  .p-testimonials__card::before {
    content: "";
    position: absolute;
    left: -16px;
    top: 47px;
    width: 0;
    height: 0;
    border-top: 18px solid transparent;
    border-bottom: 18px solid transparent;
    border-right: 16px solid white;
  }

  .p-testimonials__single--reverse .p-testimonials__card::before {
    left: -16px;
    right: auto;
    top: 47px;
    border-left: none;
    border-right: 16px solid white;
  }

  .p-testimonials__customerInfo {
    font-size: 16px;
    line-height: 1.7;
  }

  .p-testimonials__cardTitle {
    font-size: 21px;
    line-height: 1.5;
  }

  .p-testimonials__text {
    font-size: 15px;
    line-height: 1.7;
  }

  .p-testimonials__decoration {
    width: 280px;
    height: 64px;
  }

  .p-testimonials__decoration--left {
    transform: translateY(-50%) rotate(180deg) scaleY(-100%) scale(0.75);
  }

  .p-testimonials__decoration--right {
    transform: translateY(-50%) rotate(180deg) scaleY(-100%) scale(0.75);
  }

  .p-testimonials__titleImg {
    height: 180px;
    max-width: 570px;
  }
}

@media (max-width: 768px) {
  .p-testimonials {
    padding: 40px 16px;
  }

  .p-testimonials__customerInfo {
    font-size: 15px;
    flex-direction: column;
    gap: 4px;
  }

  .p-testimonials__cardTitle {
    font-size: 21px;
  }

  .p-testimonials__text {
    font-size: 15px;
    line-height: 1.7;
  }

  .p-testimonials__decoration {
    width: 200px;
    height: 46px;
  }

  .p-testimonials__decoration--left {
    transform: translateY(-50%) rotate(180deg) scaleY(-100%) scale(0.55);
  }

  .p-testimonials__decoration--right {
    transform: translateY(-50%) rotate(180deg) scaleY(-100%) scale(0.55);
  }

  .p-testimonials__titleImg {
    height: 100px;
    max-width: 450px;
  }
}

/* アーティスト紹介セクション start */
.p-artistIntro {
  background: #fff8d8;
  padding: 64px 0;
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.p-artistIntro__container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ナビゲーションボタンをコンテナレベルに配置 */
.p-artistIntro__navButton {
  position: absolute;
  top: 70%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  background: rgba(215, 103, 18, 0.9);
  border: none;
  border-radius: 50%;
  color: white;
  font-size: 24px;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(67, 36, 20, 0.2);
}

.p-artistIntro__navButton:hover {
  background: #d76712;
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 6px 16px rgba(67, 36, 20, 0.3);
}

.p-artistIntro__navButton:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: translateY(-50%) scale(0.9);
}

.p-artistIntro__navButton--prev {
  left: 20px;
}

.p-artistIntro__navButton--next {
  right: 20px;
}

.p-artistIntro__head {
  position: relative;
  text-align: center;
  margin-bottom: 20px;
}

.p-artistIntro__decorations {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  pointer-events: none;
}

.p-artistIntro__decoration {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}

.p-artistIntro__decoration--left {
  left: 0;
  transform: translateY(-50%) translateX(-100px);
}

.p-artistIntro__decoration--right {
  right: 0;
  transform: translateY(-50%) translateX(100px);
  height: 85.513px;
  width: 372px;
  flex-shrink: 0;
}

.p-artistIntro__decoration--right {
  transform: rotate(180deg) scaleY(-100%);
}

.p-artistIntro__titleImg {
  position: relative;
  z-index: 2;
  max-width: 100%;
  height: 120px;
  width: auto;
}

.p-artistIntro__subtitle {
  font-size: 15px;
  font-weight: 400;
  color: #432414;
  font-family: "Noto Sans CJK JP", sans-serif;
  line-height: 1.7;
  text-align: center;
  margin: 0 0 40px 0;
  width: 100%;
}

.p-artistIntro__scrollContainer {
  width: 100%;
  height: auto;
  overflow-x: auto;
  overflow-y: visible;
  background: #fff8d8;
  position: relative;
  scroll-behavior: smooth;
  padding-bottom: 20px;
}

/* スクロールバーを非表示 */
.p-artistIntro__scrollContainer::-webkit-scrollbar {
  display: none;
}

.p-artistIntro__scrollContainer {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.p-artistIntro__artists {
  display: flex;
  gap: 16px;
  align-items: stretch;
  position: relative;
  left: 100px;
  padding: 20px 0;
  transition: transform 0.4s ease;
}

.p-artistIntro__artistCard {
  flex: 0 0 448px;
  background: white;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(67, 36, 20, 0.1);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  height: auto;
}

.p-artistIntro__artistCard:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(67, 36, 20, 0.15);
}

.p-artistIntro__artistImage {
  width: 100%;
  height: 268px;
  border-radius: 16px 16px 0 0;
  overflow: hidden;
  flex-shrink: 0;
}

.p-artistIntro__image {
  width: 100%;
  height: 137.57%;
  object-fit: cover;
  object-position: center top;
}

.p-artistIntro__artistInfo {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  flex: 1;
}

.p-artistIntro__badgeAndName {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.p-artistIntro__badge {
  background: #d76712;
  color: white;
  padding: 8px 16px;
  border-radius: 120px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.02em;
  align-self: flex-start;
  font-family: "Inter", "Noto Sans JP", sans-serif;
}

.p-artistIntro__artistName {
  font-size: 24px;
  font-weight: bold;
  color: #d76712;
  margin: 0;
  font-family: "Noto Sans CJK JP", sans-serif;
  line-height: 1.4;
  min-width: 100%;
  width: min-content;
}

.p-artistIntro__artistDescription {
  font-size: 15px;
  line-height: 1.7;
  color: #432414;
  margin: 0;
  font-family: "Noto Sans CJK JP", sans-serif;
  text-align: justify;
  width: 100%;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* タブレット用スタイル */
@media screen and (max-width: 1025px) and (min-width: 768px) {
  .p-artistIntro {
    padding: 48px 0;
  }

  .p-artistIntro__head {
    gap: 24px;
  }

  .p-artistIntro__decoration {
    height: 60px;
    width: 280px;
  }

  .p-artistIntro__titleWrapper {
    height: 100px;
    width: 480px;
  }

  .p-artistIntro__subtitle {
    font-size: 15px;
    line-height: 1.7;
  }

  .p-artistIntro__scrollContainer {
    height: auto;
    overflow-y: visible;
  }

  .p-artistIntro__artists {
    left: 60px;
  }

  .p-artistIntro__artistCard {
    flex: 0 0 360px;
  }

  .p-artistIntro__artistImage {
    height: 220px;
  }

  .p-artistIntro__artistInfo {
    padding: 16px;
  }

  .p-artistIntro__badge {
    font-size: 14px;
  }

  .p-artistIntro__artistName {
    font-size: 22px;
  }

  .p-artistIntro__artistDescription {
    font-size: 15px;
    line-height: 1.7;
  }

  .p-artistIntro__navButton {
    width: 50px;
    height: 50px;
    font-size: 20px;
  }

  .p-artistIntro__navButton--prev {
    left: 15px;
  }

  .p-artistIntro__navButton--next {
    right: 15px;
  }
}

/* スマートフォン用スタイル */
@media screen and (max-width: 768px) {
  .p-artistIntro {
    padding: 40px 0;
    /* スマホでは画面幅いっぱいに表示 */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  .p-artistIntro__container {
    padding: 0;
    max-width: none;
    width: 100%;
  }

  .p-artistIntro__head {
    flex-direction: column;
    gap: 16px;
    padding: 0 16px;
    margin: 0;
  }

  .p-artistIntro__decoration {
    height: 40px;
    width: 200px;
  }

  .p-artistIntro__titleWrapper {
    height: 80px;
    width: 320px;
  }

  .p-artistIntro__subtitle {
    font-size: 15px;
    line-height: 1.7;
    padding: 0 24px;
    margin: 0;
  }

  .p-artistIntro__scrollContainer {
    height: auto;
    overflow-y: visible;
    padding: 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  .p-artistIntro__artists {
    left: 0px;
    gap: 12px;
    justify-content: flex-start;
    padding-left: 0px;
    padding-right: 0px;
  }

  .p-artistIntro__artistCard {
    flex: 0 0 280px;
  }

  .p-artistIntro__artistCard:first-child {
    margin-left: 16px;
  }

  .p-artistIntro__artistCard:last-child {
    margin-right: 16px;
  }

  .p-artistIntro__artistImage {
    height: 180px;
  }

  .p-artistIntro__artistInfo {
    padding: 12px;
    gap: 8px;
  }

  .p-artistIntro__badge {
    font-size: 12px;
    padding: 6px 12px;
  }

  .p-artistIntro__artistName {
    font-size: 18px;
  }

  .p-artistIntro__artistDescription {
    font-size: 15px;
    line-height: 1.7;
  }

  /* スマートフォンでもナビゲーションボタンを表示 */
  .p-artistIntro__navButton {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }

  .p-artistIntro__navButton--prev {
    left: 10px;
  }

  .p-artistIntro__navButton--next {
    right: 10px;
  }
}
/* アーティスト紹介セクション end */

/* 実績紹介セクション */
.p-achievements {
  background: #f5cd1e;
  padding: 64px 0;
  position: relative;
}

.p-achievements__container {
  max-width: 1424px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  gap: 70px;
  align-items: center;
}

.p-achievements__head {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 40px;
  text-align: center;
}

.p-achievements__decorations {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  pointer-events: none;
}

.p-achievements__decoration {
  position: absolute;
  width: 50%;
  height: 85.513px;
}

.p-achievements__decoration--left {
  left: -200px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-achievements__decoration--right {
  right: -200px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

/* キラキラ装飾を追加 */
.p-achievements__sparkles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 3;
}

.p-achievements__sparkle {
  position: absolute;
  width: 16px;
  height: 16px;
  opacity: 0.8;
}

.p-achievements__sparkle--1 {
  top: 20%;
  left: 15%;
  animation: sparkle 3s ease-in-out infinite;
}

.p-achievements__sparkle--2 {
  top: 70%;
  right: 20%;
  animation: sparkle 2.5s ease-in-out infinite 0.8s;
}

.p-achievements__sparkle--3 {
  bottom: 25%;
  left: 25%;
  animation: sparkle 4s ease-in-out infinite 1.5s;
}

.p-achievements__sparkle--4 {
  top: 35%;
  right: 10%;
  animation: sparkle 3.5s ease-in-out infinite 2s;
}

@keyframes sparkle {
  0%,
  100% {
    opacity: 0;
    transform: scale(0.5) rotate(0deg);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.2) rotate(180deg);
  }
}

.p-achievements__titleImg {
  position: relative;
  z-index: 2;
  max-width: 100%;
  height: 120px;
  width: auto;
}

.p-achievements__content {
  width: 100%;
}

/* ブログパーツのスタイル調整 */
.p-achievements__content .c-postList {
  display: flex;
  gap: 23px;
  margin-bottom: 40px;
}

.p-achievements__content .c-postList__item {
  flex: 1;
  background: white;
  border-radius: 11px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(67, 36, 20, 0.1);
}

.p-achievements__content .c-postList__thumb {
  width: 100%;
  height: 256px;
  background: #d9d9d9;
  border-radius: 11px 11px 0 0;
}

.p-achievements__content .c-postList__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-achievements__content .c-postList__content {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.p-achievements__content .c-postList__title {
  font-size: 21px;
  font-weight: bold;
  color: #d76712;
  line-height: 1.4;
  font-family: "Noto Sans CJK JP", sans-serif;
  margin: 0;
}

.p-achievements__content .c-postList__date {
  font-size: 15px;
  color: #432414;
  line-height: 1.4;
  font-family: "Noto Sans CJK JP", sans-serif;
  margin: 0;
}

.p-achievements__content .c-moreBtn {
  background: #d76712;
  color: white;
  padding: 16px 48px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 21px;
  font-weight: bold;
  font-family: "Noto Sans CJK JP", sans-serif;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  transition: background 0.3s ease;
  margin: 0 auto;
  width: 313px;
  justify-content: center;
}

.p-achievements__content .c-moreBtn:hover {
  background: #c55a0f;
}

.p-achievements__content .c-moreBtn::after {
  content: "▶";
  font-size: 12px;
  transform: rotate(0deg);
}

/* レスポンシブデザイン */
@media (max-width: 1025px) {
  .p-achievements {
    padding: 48px 0;
  }

  .p-achievements__container {
    gap: 50px;
    padding: 0 16px;
  }

  .p-achievements__decoration--left {
    left: -200px;
    top: 50%;
    transform: translateY(-50%) rotate(180deg) scaleY(-100%);
  }

  .p-achievements__decoration--right {
    right: -200px;
    top: 50%;
    transform: translateY(-50%) rotate(180deg) scaleY(-100%);
  }

  .p-achievements__sparkle--1,
  .p-achievements__sparkle--2,
  .p-achievements__sparkle--3,
  .p-achievements__sparkle--4 {
    display: none;
  }

  .p-achievements__content .c-postList {
    flex-direction: column;
    gap: 16px;
  }

  .p-achievements__content .c-postList__thumb {
    height: 200px;
  }

  .p-achievements__content .c-postList__title {
    font-size: 18px;
  }

  .p-achievements__content .c-moreBtn {
    width: 280px;
    padding: 14px 40px;
    font-size: 18px;
  }
}

@media (max-width: 768px) {
  .p-achievements {
    padding: 40px 0;
  }

  .p-achievements__container {
    gap: 40px;
  }

  .p-achievements__decoration--left {
    left: 0;
    top: 50%;
    transform: translateY(-50%) rotate(180deg) scaleY(-100%);
  }

  .p-achievements__decoration--right {
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(180deg) scaleY(-100%);
  }

  .p-achievements__sparkle--1,
  .p-achievements__sparkle--2,
  .p-achievements__sparkle--3,
  .p-achievements__sparkle--4 {
    display: none;
  }

  .p-achievements__content .c-postList__thumb {
    height: 180px;
  }

  .p-achievements__content .c-postList__title {
    font-size: 16px;
  }

  .p-achievements__content .c-postList__date {
    font-size: 14px;
  }

  .p-achievements__content .c-moreBtn {
    width: 250px;
    padding: 12px 32px;
    font-size: 16px;
  }
}
/* 実績紹介セクション end */

/* 応援企業セクション */
.p-sponsors {
  background: #fff8d8;
  padding: 24px 0;
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.p-sponsors__container {
  max-width: var(--article_size);
  margin: 0 auto;
  padding: 0 16px;
  width: 100%;
}

.p-sponsors__content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.p-sponsors__titleArea {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 40px;
  margin-top: 40px;
}

.p-sponsors__decorations {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.p-sponsors__decoration {
  position: absolute;
  width: 50%;
  height: 85.513px;
}

.p-sponsors__decoration--left {
  left: -200px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

.p-sponsors__decoration--right {
  right: -200px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg) scaleY(-100%);
}

/* キラキラ装飾を追加 */
.p-sponsors__sparkles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 3;
}

.p-sponsors__sparkle {
  position: absolute;
  width: 14px;
  height: 14px;
  opacity: 0.7;
}

.p-sponsors__sparkle--1 {
  top: 15%;
  left: 10%;
  animation: sparkle 2.8s ease-in-out infinite;
}

.p-sponsors__sparkle--2 {
  top: 75%;
  right: 15%;
  animation: sparkle 3.2s ease-in-out infinite 1.2s;
}

.p-sponsors__sparkle--3 {
  bottom: 20%;
  left: 30%;
  animation: sparkle 3.8s ease-in-out infinite 0.5s;
}

.p-sponsors__sparkle--4 {
  top: 40%;
  right: 8%;
  animation: sparkle 2.5s ease-in-out infinite 1.8s;
}

.p-sponsors__titleImg {
  position: relative;
  z-index: 2;
  max-width: 100%;
  height: 120px;
  width: auto;
}

.p-sponsors__description {
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #432414;
  text-align: center;
  margin: 0;
  margin-bottom: 40px;
  flex: 1;
}

.p-sponsors__logoGrid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  position: relative;
  transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}

.p-sponsors__logoGrid:not(.is-expanded) {
  max-height: calc(80px * 2 + 12px * 1); /* 2行分の高さ */
}

.p-sponsors__logoGrid:not(.is-expanded).has-more-than-8::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(
    to bottom,
    rgba(255, 248, 216, 0) 0%,
    rgba(255, 248, 216, 0.7) 50%,
    rgba(255, 248, 216, 1) 100%
  );
  pointer-events: none;
  transition: opacity 0.4s ease;
  opacity: 1;
}

.p-sponsors__logoGrid:not(.is-expanded):not(.has-more-than-8)::after {
  display: none;
}

.p-sponsors__logoGrid.is-expanded {
  max-height: 1000px; /* 十分に大きな値 */
}

.p-sponsors__logoGrid.is-expanded::after {
  opacity: 0;
}

.p-sponsors__logoItem {
  height: 80px;
  background: white;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(67, 36, 20, 0.1);
  transition: all 0.3s ease;
  transform: translateY(0);
  opacity: 1;
  padding: 12px;
  overflow: hidden;
}

.p-sponsors__logoItem:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(67, 36, 20, 0.15);
}

/* 3行目以降のロゴアイテムのアニメーション */
.p-sponsors__logoItem:nth-child(n + 9) {
  transition:
    opacity 0.5s ease,
    transform 0.5s ease;
}

.p-sponsors__logoGrid:not(.is-expanded) .p-sponsors__logoItem:nth-child(n + 9) {
  /* デバッグ用：一時的にコメントアウト */
  /* opacity: 0;
  transform: translateY(10px); */
  opacity: 1; /* デバッグ用：強制表示 */
  transform: translateY(0);
}

.p-sponsors__logoGrid.is-expanded .p-sponsors__logoItem:nth-child(n + 9) {
  opacity: 1;
  transform: translateY(0);
}

/* 順次表示アニメーション */
.p-sponsors__logoGrid.is-expanded .p-sponsors__logoItem:nth-child(9) {
  transition-delay: 0.1s;
}
.p-sponsors__logoGrid.is-expanded .p-sponsors__logoItem:nth-child(10) {
  transition-delay: 0.2s;
}
.p-sponsors__logoGrid.is-expanded .p-sponsors__logoItem:nth-child(11) {
  transition-delay: 0.3s;
}
.p-sponsors__logoGrid.is-expanded .p-sponsors__logoItem:nth-child(12) {
  transition-delay: 0.4s;
}
.p-sponsors__logoGrid.is-expanded .p-sponsors__logoItem:nth-child(n + 13) {
  transition-delay: 0.5s;
}

.p-sponsors__logo {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
  display: block;
}

.p-sponsors__logoItem a {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.p-sponsors__logoItem a:hover {
  opacity: 0.8;
  transition: opacity 0.2s ease;
}

.p-sponsors__moreButton {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  padding: 8px 16px;
  background: transparent;
  border: none;
  border-radius: 0;
  margin: 24px auto 0;
  transition: all 0.2s ease;
  position: relative;
}

.p-sponsors__moreButton:hover {
  opacity: 0.7;
}

.p-sponsors__moreText {
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #432414;
  line-height: 1.7;
  transition: all 0.2s ease;
}

.p-sponsors__moreIcon {
  font-size: 18px;
  color: #432414;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-block;
  font-weight: 300;
  line-height: 1;
}

.p-sponsors__moreButton.is-expanded .p-sponsors__moreIcon {
  transform: rotate(180deg);
}

/* レスポンシブデザイン */
@media (max-width: 768px) {
  .p-sponsors__container {
    padding: 0 16px;
  }

  .p-sponsors__titleArea {
    height: 60px;
  }

  .p-sponsors__decoration--left {
    left: 0;
    top: 50%;
    transform: translateY(-50%) rotate(180deg) scaleY(-100%);
    width: 40%;
  }

  .p-sponsors__decoration--right {
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(180deg) scaleY(-100%);
    width: 40%;
  }

  .p-sponsors__sparkle--1,
  .p-sponsors__sparkle--2,
  .p-sponsors__sparkle--3,
  .p-sponsors__sparkle--4 {
    display: none;
  }

  .p-sponsors__description {
    font-size: 15px;
  }

  .p-sponsors__logoGrid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .p-sponsors__logoGrid:not(.is-expanded) {
    max-height: calc(
      80px * 2.5 + 8px * 2
    ); /* スマートフォンでは2.5行分で途中からフェード */
  }

  .p-sponsors__logoItem {
    height: 80px;
    padding: 8px;
  }

  .p-sponsors__logoGrid:not(.is-expanded).has-more-than-8::after {
    height: 80px; /* スマートフォンでは大きめのグラデーション */
    background: linear-gradient(
      to bottom,
      rgba(255, 248, 216, 0) 0%,
      rgba(255, 248, 216, 0.3) 30%,
      rgba(255, 248, 216, 0.8) 70%,
      rgba(255, 248, 216, 1) 100%
    );
  }

  .p-sponsors__logoGrid.is-expanded {
    max-height: 800px; /* スマートフォン用の最大高さ */
  }

  .p-sponsors__moreText {
    font-size: 14px;
  }

  .p-sponsors__moreButton {
    padding: 6px 12px;
  }

  .p-sponsors__moreIcon {
    font-size: 16px;
  }
}
/* 応援企業セクション end */

/* =====================================
   ご利用の流れセクション
   ===================================== */

.p-usageFlow {
  padding: 64px 16px;
  background-color: transparent;
  position: relative;
	   max-width: var(--article_size);
	margin:0 auto;
}

/* タイトル中央配置 */
.p-section__title--center {
  text-align: center;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-section__title--center img {
  display: block;
  margin: 0 auto;
  z-index: 90;
  position: relative;
}

/* タイトル装飾要素 */
.p-section__title--decorated {
  position: relative;
}

.p-section__decoration {
  position: absolute;
  z-index: 1;
}

.p-section__decoration--topLeft {
  width: 240px;
  right: 70px;
}

.p-section__decoration--bottomRight {
  width: 240px;
  left: 70px;
  transform: rotate(180deg) scaleY(-1);
}

.p-section__decoration img {
  height: auto;
}

/* モバイルでの装飾調整 */
@media (max-width: 767px) {
  .p-section__decoration--topLeft,
  .p-section__decoration--bottomRight {
    display: none;
  }
}

.p-usageFlow__steps {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  max-width: 1006px;
  margin: 0 auto;
}

.p-usageFlow__step {
  width: 100%;
}

.p-usageFlow__stepCard {
  background-color: #ffffff;
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 36px;
  box-shadow: 0 4px 16px rgba(67, 36, 20, 0.08);
}

.p-usageFlow__stepImage {
  width: 375px;
  height: 278px;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
  overflow: hidden;
  flex-shrink: 0;
}

.p-usageFlow__stepImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  aspect-ratio: 16 / 9;
}

.p-usageFlow__stepContent {
  flex: 1;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.p-usageFlow__stepHeader {
  display: flex;
  align-items: end;
  gap: 2px;
}

.p-usageFlow__stepLabel {
  font-family: "Futura", sans-serif;
  font-size: 21px;
  font-weight: bold;
  color: #432414;
  line-height: 1;
}

.p-usageFlow__stepNumber {
  font-family: "Futura", sans-serif;
  font-size: 48.886px;
  font-weight: bold;
  color: #432414;
  line-height: 1;
  height: 44px;
  width: 34px;
}

.p-usageFlow__stepDivider {
  height: 1px;
  background-color: #432414;
  width: 100%;
}

.p-usageFlow__stepInfo {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-usageFlow__stepTitle {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 30.151px;
  font-weight: bold;
  color: #d76712;
  line-height: 1;
  margin: 0;
}

.p-usageFlow__stepDescription {
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: #432414;
  line-height: 1.7;
  margin: 0;
}

.p-usageFlow__arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 51px;
}

.p-usageFlow__arrowImg {
  width: 60px;
  height: 35px;
}

/* タブレット対応 */
@media (max-width: 1024px) {
  .p-usageFlow {
    padding: 50px 16px;
  }

  .p-usageFlow__stepCard {
    gap: 24px;
  }

  .p-usageFlow__stepImage {
    width: 320px;
    height: 240px;
  }

  .p-usageFlow__stepTitle {
    font-size: 26px;
  }

  .p-usageFlow__stepDescription {
    font-size: 18px;
  }
}
.p-section__body {
  margin: 40px 0;
}
/* スマートフォン対応 */
@media (max-width: 767px) {
  .p-usageFlow {
    padding: 40px 16px;
  }

  .p-usageFlow__steps {
    max-width: 408px;
    margin: 0 auto;
    gap: 22px;
  }

  .p-usageFlow__stepCard {
    flex-direction: column;
    gap: 0;
    text-align: left;
    padding: 16px;
    max-width: 408px;
  }

  .p-usageFlow__stepImage {
    width: 100%;
    height: 215px;
    border-radius: 0;
    order: 2; /* 画像をタイトルの後に配置 */
    margin: 8px 0;
  }

  .p-usageFlow__stepContent {
    padding: 0;
    order: 1; /* コンテンツを上に */
  }

  .p-usageFlow__stepHeader {
    justify-content: flex-start;
  }

  .p-usageFlow__stepLabel {
    font-size: 21px;
  }

  .p-usageFlow__stepNumber {
    font-size: 48.886px;
    width: 34px;
    height: 44px;
  }

  .p-usageFlow__stepTitle {
    font-size: 21px;
    text-align: left;
    font-weight: bold;
    margin-bottom: 8px;
  }

  .p-usageFlow__stepDescription {
    font-size: 16px;
    text-align: left;
    order: 3; /* 説明文を最後に */
    margin-top: 8px;
  }

  .p-usageFlow__stepInfo {
    display: flex;
    flex-direction: column;
  }

  .p-usageFlow__arrow {
    height: 30px;
  }

  .p-usageFlow__arrowImg {
    width: 51.5px;
    height: 29.511px;
  }
}

/* =====================================
   ご利用の流れセクション end
   ===================================== */

/* =====================================
   お問い合わせセクション
   ===================================== */

.p-contact {
  padding: 64px 0;
  background-color: #fff8d8;
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}

/* お問い合わせセクションの装飾 */
.p-contact .p-section__decoration--topLeft {
  position: absolute;
  top: -30px;
  left: -80px;
  z-index: 1;
}

.p-contact .p-section__decoration--bottomRight {
  position: absolute;
  bottom: -30px;
  right: -80px;
  transform: rotate(180deg) scaleY(-1);
  z-index: 1;
}

.p-contact .p-section__decoration img {
  width: 131px;
  height: auto;
}

.p-contact__content {
  display: flex;
  flex-direction: column;
  gap: 42px;
  max-width: 650px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.p-contact__description {
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: #432414;
  line-height: 1.7;
  text-align: center;
  margin: 0;
}

.p-contact__form {
  width: 100%;
}

/* Contact Form 7 カスタムスタイル */
.p-contact__form-fields {
  display: flex;
  flex-direction: column;
  gap: 42px;
  margin-bottom: 48px;
}

.p-contact__field {
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.p-contact__label {
  display: flex;
  gap: 8px;
  align-items: center;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: bold;
  color: #432414;
  line-height: 1.7;
  margin: 0;
}

.p-contact__required {
  background-color: #d42e2e;
  color: white;
  font-size: 12.5px;
  font-weight: bold;
  padding: 4px 8px;
  border-radius: 4px;
  line-height: 1.7;
  margin-left: 8px;
}

/* フォーム入力フィールド */
.p-contact__form input[type="text"],
.p-contact__form input[type="tel"],
.p-contact__form input[type="email"],
.p-contact__form textarea {
  background-color: #ffffff;
  border: none;
  border-radius: 8px;
  padding: 8px 16px;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #432414;
  line-height: 1.7;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
}

.p-contact__form input::placeholder,
.p-contact__form textarea::placeholder {
  color: #888888;
}

.p-contact__form textarea {
  height: 270px;
  resize: vertical;
  padding-top: 8px;
  align-items: flex-start;
}

/* プライバシーポリシー同意エリア */
.p-contact__privacy {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
  margin-bottom: 48px;
}

.p-contact__privacy-text {
  background-color: #f8f8f8;
  padding: 16px;
  border-radius: 8px;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #432414;
  line-height: 1.7;
  text-align: justify;
  width: 100%;
  box-sizing: border-box;
}

.p-contact__privacy-text a {
  color: #432414;
  text-decoration: underline;
}

.p-contact__privacy-checkbox {
  display: flex;
  gap: 18px;
  align-items: center;
}

.p-contact__privacy-checkbox input[type="checkbox"] {
  width: 31px;
  height: 31px;
  border: 3px solid #d76712;
  border-radius: 4px;
  background-color: #ffffff;
  accent-color: #d76712;
  margin: 0;
  flex-shrink: 0;
  vertical-align: top;
}

.p-contact__privacy-checkbox label {
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #432414;
  line-height: 1.7;
  margin: 0;
}

/* 送信ボタンエリア */
.p-contact__submit-area {
  display: flex;
  justify-content: center;
}
.p-contact__submit-area p {
  width: 100%;
}
/* 送信ボタン */
.p-contact__form input[type="submit"] {
  background-color: #d76712;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 16px 48px;
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  cursor: pointer;
  width: 100%;
  max-width: 430px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  transition: background-color 0.3s ease;
  position: relative;
  margin: 0 auto;
}

.p-contact__form input[type="submit"]:before {
  content: "";
  width: 23px;
  height: 19px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M23.4 8.6L15.4 0.6C15 0.2 14.4 0.2 14 0.6C13.6 1 13.6 1.6 14 2L20.6 8.6H1C0.4 8.6 0 9 0 9.6S0.4 10.6 1 10.6H20.6L14 17.2C13.6 17.6 13.6 18.2 14 18.6C14.2 18.8 14.6 18.8 14.8 18.8S15.4 18.8 15.6 18.6L23.6 10.6C24 10.2 24 9.6 23.6 9.2L23.4 8.6Z' fill='white'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-right: 8px;
}

.p-contact__form input[type="submit"]:after {
  content: "";
  width: 10px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 10 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.2 15.4L8.8 7.8L1.2 0.2' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 8px;
}

.p-contact__form input[type="submit"]:hover {
  background-color: #b85a0f;
}

/* モバイル対応 */
@media (max-width: 767px) {
  .p-contact {
    padding: 50px 0;
  }

  .p-contact .p-section__decoration--topLeft,
  .p-contact .p-section__decoration--bottomRight {
    display: none;
  }

  .p-contact__content {
    gap: 30px;
    padding: 0 20px;
  }

  .p-contact__description {
    font-size: 16px;
    text-align: left;
  }

  .p-contact__form-fields {
    gap: 30px;
  }

  .p-contact__label {
    font-size: 16px;
  }

  .p-contact__form input[type="text"],
  .p-contact__form input[type="tel"],
  .p-contact__form input[type="email"],
  .p-contact__form textarea {
    font-size: 16px;
  }

  .p-contact__privacy-text {
    font-size: 16px;
  }

  .p-contact__privacy-checkbox label {
    font-size: 16px;
  }

  .p-contact__form input[type="submit"] {
    font-size: 16px;
    width: 100%;
  }
}

/* =====================================
   お問い合わせセクション end
   ===================================== */

/* フロントページでのみl-contentのmargin-bottomを0に */
.home .l-content {
  margin-bottom: 0 !important;
}

#header.l-header.is-fixed-custom {
  background-color: transparent !important;
  box-shadow: none !important;
}

.c-gnav > .menu-item > a:after {
  bottom: 18px;
}

/* =====================================
   スクロール追従LINE CTA
   ===================================== */
.scroll-line-cta {
  position: fixed;
  bottom: -100px; /* 初期位置を下に隠す */
  right: 20px;
  z-index: 9999;
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* 弾むような動き */
  opacity: 0;
  visibility: hidden;
}

.scroll-line-cta.show {
  bottom: 100px;
  opacity: 1;
  visibility: visible;
  animation: bounceIn 0.8s ease-out;
}

.scroll-line-cta.hide {
  bottom: -100px;
  opacity: 0;
  visibility: hidden;
}

.scroll-line-cta__button {
  display: block;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  text-decoration: none;
  padding: 0;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
}

.scroll-line-cta__button:hover {
  transform: scale(1.1) translateY(-3px);
}

.scroll-line-cta__button:active {
  transform: scale(1.05) translateY(-1px);
}

.scroll-line-cta__icon {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@keyframes bounceIn {
  0% {
    transform: translateY(100px) scale(0.3);
    opacity: 0;
  }
  50% {
    transform: translateY(-10px) scale(1.05);
    opacity: 0.8;
  }
  70% {
    transform: translateY(5px) scale(0.95);
    opacity: 1;
  }
  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}

/* モバイル調整 */
@media (max-width: 767px) {
  .scroll-line-cta {
    right: 0px;
    bottom: 90px !important;
  }

  .scroll-line-cta__button {
    width: 120px;
    height: 120px;
  }
}

.widget_media_image a img {
  width: 100%;
}
