@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* heading */
.wp-block-heading.heading-h2 {
  font-family: Poppins;
  font-style: italic;
  font-weight: 600;
  line-height: 140%; /* 67.2px */
  font-size: 3rem;
}
@media screen and (max-width: 768px) {
  .wp-block-heading.heading-h2 {
    font-size: 2rem;
  }
}
.wp-block-heading.heading-h3 {
  padding-top: 0.5rem;
}

.wp-block-heading.heading-h3::before {
  width: 0;
  height: 0;
}
/* ドロワーメニュー */
.c-widget__title.-spmenu {
  background: #ff6476;
}

/* スクロールボタン */
.c-fixBtn {
  color: #ff6476;
  border: 1px solid #ff6476;
}
/* utility */
.border-bottom-pink {
  border-bottom: 1px solid #ff6476;
}

.background-gradation {
  background: linear-gradient(180deg, #fef5f5 0%, #ffe9ec 100%);
}
.text-align-justify {
  text-align: justify;
}
@media screen and (min-width: 960px) {
  .pc-hidden-960 {
    display: none;
  }
}
/* header */
.l-header__gnav .c-gnav li:hover a::after {
  background: #ff6476 !important;
}
/* MVセクション */
.mv .mv-texts {
  margin-inline: 4.5rem;
  /* max-width: calc(1100 / 1440 * 100vw); */
  max-width: 90rem;
}
@media screen and (max-width: 768px) {
  .mv .mv-texts {
    margin-inline: 2.5rem;
  }
}
.mv .wp-block-paragraph.mv-text-top {
  font-style: normal;
  font-weight: 700;
  line-height: 160%; /* 41.6px */
  letter-spacing: 0.78px;
  font-size: 1.63rem;
}
@media screen and (max-width: 768px) {
  .mv .wp-block-paragraph.mv-text-top {
    font-size: 1rem;
  }
}
.mv .wp-block-heading.mv-text-middle {
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  font-family: Poppins;

  font-style: italic;
  font-weight: 600;
  line-height: 140%; /* 89.6px */
  font-size: 4rem;
}
@media screen and (max-width: 768px) {
  .mv .wp-block-heading.mv-text-middle {
    font-size: 2.5rem;
  }
}
.mv .wp-block-paragraph.mv-text-bottom {
  font-style: normal;
  font-weight: 500;
  line-height: 160%; /* 32px */
  letter-spacing: 0.6px;

  font-size: 1.25rem;
}
@media screen and (max-width: 768px) {
  .mv .wp-block-paragraph.mv-text-bottom {
    font-size: 0.8rem;
  }
}

/* SWELL標準のマスクを、オリジナルのグラデーションで上書きする */
.swell-block-fullWide.has-bg-img.mv::before {
  background: linear-gradient(
    270deg,
    rgba(216, 161, 168, 0.2) 0%,
    rgba(29, 42, 74, 0.5) 51.92%,
    rgba(29, 42, 74, 0.8) 100%
  ) !important;
  opacity: 1 !important; /* SWELL側の不透明度設定に左右されないように固定 */
}

/* 文字がマスクの下に隠れないように前面に出す設定（念のため保持） */
.swell-block-fullWide.mv .swell-block-fullWide__inner {
  position: relative;
  z-index: 2;
}

/* whyセクション */
.why .swell-block-fullWide__inner .wp-block-group.why-description {
  padding: 3.75rem;
  box-shadow: 10px 10px 0 0 #ff9aa6;
}
@media screen and (max-width: 768px) {
  .why .swell-block-fullWide__inner .wp-block-group.why-description {
    padding: 1rem;
  }
}

/* activitiesセクション */
.activities .heading-h4 {
  border-left: none;
}

.activities .wp-block-group.is-stack.activities-card-inner {
  border-radius: 20px;
  border: 2px solid #ff9aa6;
  background: #fff;
  padding: 1.5rem 1rem;
  height: 100%;
}
.activities-cards .wp-block-group .wp-block-image img {
  max-width: 3.125rem;
}

.activities .wp-block-group.activities-bottom {
  border-radius: 20px;
  border: 2px dashed #ff9aa6;
  background: #fff;
  padding: 3rem;
}
@media screen and (max-width: 768px) {
  .activities .wp-block-group.activities-bottom {
    padding: 1rem;
  }
}

.activities .is-style-check_list li:before {
  color: #ff9aa6;
}

.activities-bottom ul li {
  margin-bottom: 0.75rem;
}

/* Pastセクション */
.wp-block-group.past {
  padding-top: 2em !important;
  padding-bottom: 6em !important;
  margin-bottom: 0;
}

/* Pastsliderセクション */
.past-slider .post_content ul {
  padding-left: auto;
}

/* wordsセクション */
.words-card {
  padding: 3.5rem 3.125rem;
  max-width: 62.5rem;
}
.words-img.wp-block-image img {
  box-shadow: 10px 10px 0 0 #ff9aa6;
}

.words-img1.wp-block-image img {
  margin-inline-start: -6.6875rem;
  margin-block-start: -1.75rem;
}
@media screen and (max-width: 1150px) {
  .words-img1.wp-block-image img {
    margin-inline-start: auto;
    margin-block-start: auto;
  }
}

.words-top,
.words-bottom {
  margin-inline: auto;
  max-width: 62.5rem;

  display: flex;
}
.words-top {
  column-gap: 1rem;
  padding-block-start: 3.5rem;
  padding-block-end: 1.875rem;
  padding-inline-end: 3.125rem;
  position: relative;
  /* background: #fff; */
}
.words-bottom {
  /* padding-block-end: 3.5rem; */
  padding-inline-start: 3.125rem;
  justify-content: space-between;

  position: relative;
}
@media screen and (max-width: 1150px) {
  .words-top,
  .words-bottom {
    column-gap: 2rem;
  }
}
.words-top::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: #fff;
  top: 0;
  left: 0;
  z-index: -1;
}
.words-top::after {
  content: "";
  position: absolute;
  /* 位置の指定（例：右上に配置したい場合） */
  top: -1.875rem;
  right: -2.625rem;

  /* 画像のサイズを指定 */
  width: 6.25rem;
  height: 4.6875rem;

  /* ★画像の呼び出し（相対パスで書く） */
  background-image: url("images/words-decoration-icon.png");
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (max-width: 1150px) {
  .words-top::after {
    top: -2rem;
    right: 1rem;
  }
}
.words-bottom::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 80%;
  background: #fff;
  top: 0;
  left: 0;
  z-index: -1;
}
@media screen and (max-width: 1060px) {
  .words-bottom {
    padding-block-end: 3.5rem;
  }
}
@media screen and (max-width: 1060px) {
  .words-bottom::before {
    height: 100%;
  }
}

.wp-block-group.words-bottom-images {
  margin-inline-end: -3.75rem;
  /* margin-block-start: -1rem; */
  column-gap: 0.625rem;
}
@media screen and (max-width: 1150px) {
  .wp-block-group.words-bottom-images {
    margin-inline-end: auto;
  }
}

.words-top .wp-block-group.words-top-texts {
  width: 100%;
  max-width: 36.25rem;
}
.words-top .wp-block-group.words-top-texts {
  width: 100%;
  max-width: 36.25rem;
}

/* wordsセクション・SP画面幅 */
.words-sp-texts {
  margin-inline: auto;
  max-width: 37.5rem;
  width: 100%;
}

.words-img-sp {
  margin-inline: auto;
  max-width: 600px;
  column-gap: 1rem;
}

.words .wp-block-group.sp_only {
  padding: 1.875rem;
  background: #fff;
}

/* supportersセクション */
.supporters-tag {
  padding: 4px 20px;
  border-radius: 50px;
  background: #ff6476;
  font-weight: 700;
  line-height: 160%; /* 22.4px */
  letter-spacing: 0.42px;
  width: fit-content;
}

.supporters-block-left {
  width: 100%;
  max-width: 22.75rem;
}

@media screen and (max-width: 960px) {
  .supporters-block-left,
  .supporters-block-right {
    max-width: 100%;
    width: 100% !important;
  }
}
.swell-block-column.supporters-block-left,
.swell-block-column.supporters-block-right {
  margin: 0;
}

.supporters .supporters-top .swell-block-columns__inner {
  border-radius: 1.25rem;
  border: 1px dashed #ff9aa6;
  background: linear-gradient(180deg, #fef5f5 0%, #ffe9ec 100%);
  padding: 2.75rem 4.0625rem;
  justify-content: space-between;
  margin-left: auto !important;
}
@media screen and (max-width: 990px) {
  .supporters .supporters-top .swell-block-columns__inner {
    padding: 2.75rem 2.5rem;
  }
}
@media screen and (max-width: 600px) {
  .supporters .supporters-top .swell-block-columns__inner {
    padding: 1rem;
  }
}
.supporters .supporters-bottom .swell-block-columns__inner {
  row-gap: 0;
}
.supporters .supporters-bottom .supporters-table tr {
  border-bottom: 1px dashed #ff9aa6;
}
.supporters .supporters-bottom .supporters-table tr td {
  padding: 0.625rem;
  color: #677495;
  font-size: 0.875rem;
  line-height: 160%; /* 22.4px */
}
.supporters-member {
  padding: 10px;
  border-bottom: 1px dashed #ff9aa6;
}
.supporters .supporters-profile-meta {
  flex-direction: row;
  justify-content: flex-start;
  column-gap: 1rem;
  align-items: center;
}
@media screen and (max-width: 600px) {
  .supporters .supporters-profile-meta {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* FAQセクション */
.faq .faq-items {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  /* padding-inline: 6.25rem; */
}

.faq .faq-items .swell-block-faq__item .faq_q::before {
  background-color: #ff6476;
}
.faq .faq-items .swell-block-faq__item .faq_a::before {
  color: #ff6476;
  box-shadow: 0 0 0 1px #ff6476;
}
.faq .faq-items .swell-block-faq__item .faq_a p {
  text-align: justify;
}
/* CTAセクション */
.cta-title {
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
.cta-text {
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
.cta-sp-button {
  max-width: 16.875rem;
}
/* フッター */
.footer-links-pc {
  column-gap: 1.5rem;
}
.footer-columns .swell-block-columns__inner {
  max-width: 68.75rem;
  margin-inline: auto;
  align-items: center;
}

@media screen and (max-width: 1180px) {
  .footer-columns .swell-block-columns__inner {
    flex-direction: column;
    align-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start;
  }
}
@media screen and (max-width: 1180px) {
  .footer-columns .swell-block-columns__inner .footer-links-pc {
    flex-direction: column;
    align-items: flex-start;
  }
}
.footer-links-pc {
  justify-content: flex-end;
}

.l-footer__inner {
  background: linear-gradient(180deg, #fef5f5 0%, #ffe9ec 100%);
}

.footer-links-pc a,
.footer-links-sp a {
  transition: opacity 0.3s ease;
}
.footer-links-pc a:hover,
.footer-links-sp a:hover {
  opacity: 0.7;
}

/* CTA直前の余白を消す */
#before_footer_widget {
  margin-top: 0 !important;
}
.l-content {
  margin: 0 auto !important;
}

/* フェードインアニメーション */
.animated__fadeIn {
  opacity: 0;
  translate: 0 40px;
  transition:
    opacity 0.6s ease,
    translate 0.6s ease; /* 0.3sだと速すぎる場合があるので調整 */
}

.animated__fadeIn.js-show {
  opacity: 1;
  translate: 0 0;
}

/* 左からスライドイン */
.animated__slideIn--left {
  opacity: 0;
  translate: -100px 0; /* -1000pxは遠すぎるので調整しました */
  transition:
    opacity 0.8s ease,
    translate 0.8s ease;
}

/* FVアニメーション */
/* アニメーションの設定 */
.animation-fv {
  animation-name: animationFv;
  animation-duration: 1.5s;
  animation-timing-function: ease;
  animation-delay: 0.5s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: both;
}

/* アニメーションの動き（キーフレーム）の定義 */
@keyframes animationFv {
  0% {
    opacity: 0;
    /* 真下（100px）の位置からスタート */
    translate: 0 100px;
  }

  100% {
    opacity: 1;
    /* 元の（0）の位置へ移動 */
    translate: 0 0;
  }
}

/* ==================================================
 * メインビジュアル（一番外側の背景画像セクション）のフェードイン
 * ================================================== */

/* 1. クラスを限界まで重ねて「詳細度」を引き上げ、!importantなしで初期状態を透明にする */
div.swell-block-fullWide.has-bg-img.mv.animation-mv-bg {
  opacity: 0;
  visibility: hidden; /* 完全に消えていることを保証 */
}

/* 2. アニメーションを実行し、終了時（100%）の状態をキープする */
div.swell-block-fullWide.has-bg-img.mv.animation-mv-bg {
  animation-name: mvSectionFadeIn;
  animation-duration: 1s; /* 1秒かけてじわっと表示 */
  animation-timing-function: ease;
  animation-delay: 0.5s; /* 読み込みから0.2秒だけ待って開始 */
  animation-fill-mode: forwards; /* 終了時の opacity: 1 を維持 */
}

/* 3. アニメーションの定義 */
@keyframes mvSectionFadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible; /* 最終的にくっきり表示させる */
  }
}
