@charset "UTF-8";

/*--------------------------------------------------------
POSSWEBテーマの主要スタイル

【ブレイクポイント】
PC 1024以上
@media screen and (min-width: 1024px) {

タブレット 1023以下
@media screen and (max-width: 1023px) {

カラム変化ポイント 781以下
@media screen and (max-width: 781px) {

スマホ標準 639以下
@media screen and (max-width: 639px) {

スマホ最小基準（独自の認識） 480以下
@media screen and (max-width: 480px) {

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

/* =======================================
　コンテンツエリア
======================================= */
/*----- タイト幅テンプレート -----*/
/* 1カラムタイト */
.page-template-page-narrow #content-inner {
  max-width: var(--main-max-narrow);
}

/*----- LPテンプレート -----*/
body.wp-singular.page-template.page-template-template.page-template-lp-default #content-inner {
  padding: 0;
  max-width: 100%;
}


/*----- 2カラムテンプレート -----*/
.double-col #content-inner {
  max-width: var(--main-max-wide);
}

.double-col #content-inner main {
  padding-top: 24px;
}

.double-col #content-inner aside {
  margin-top: 8px;
}



/* =======================================
　親テーマのバグ修正
======================================= */
/*----- アーカイブページのページネーション -----*/
.wp-pagenavi a {
  min-width: 36px;
  width: auto;
}


/*----- 検索フォームのデザイン -----*/
/* 入力ボックスのスタイル */
input#wp-block-search__input-1 {
  border: 1px solid var(--color-gray02);
}



/* =======================================
　ヘッダーエリア
======================================= */

/*------- グローバルヘッダー -------*/
/* ヘッダーボタン */
#header-btn {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 16px;
}

#header-btn figure {
  margin: 0;
}

#header-btn a {
  background: transparent;
}

@media screen and (max-width: 1023px) {
  #header-btn {
    display: none;
  }
}


/*----- ロゴ -----*/
@media screen and (max-width: 1023px) {
  .logo img {
    max-width: 140px;
  }
}


/* =======================================
　メインビジュアルエリア
======================================= */
/*----- メインビジュアル画像 -----*/
.page #main-visual img,
.single #main-visual img {
  height: 34vw;
  max-height: 64vh;
}


@media screen and (max-width: 1023px) {

  .page #main-visual img,
  .single #main-visual img {
    height: 60vw;
  }
}



/* =======================================
　フッターエリア
======================================= */
/*----- フッター -----*/
footer {
  margin-bottom: 0;
}

/*----- フッターコンテンツエリア -----*/
footer #global-footer {
  width: 90%;
}

@media screen and (max-width: 1023px) {
  footer #global-footer {
    padding: 24px 16px 0;
  }
}


/* フッターサイトリンクのスタイル */
.footer-sitelink .wp-block-list {
  list-style: none;
  padding-left: 0;
}

.footer-sitelink .wp-block-list li {
  list-style: none;
  line-height: 1.8;
  margin-bottom: 10px;
}


/* 子階層のリストにインデントを付ける */
.footer-sitelink .wp-block-list .wp-block-list {
  padding-left: 10px;
  margin-top: 16px;
}

/* 2階層目の各liの前に水平線を擬似要素で表示 */
.footer-sitelink .wp-block-list .wp-block-list li::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 2px;
  background-color: #ccc;
  vertical-align: middle;
  margin-right: 10px;
}

/* レスポンシブ対応：1023px以下でカラムを上下に並べる */
@media screen and (max-width: 1023px) {
  .footer-contents-col {
    flex-direction: column;
  }

  .footer-contents-col .wp-block-column {
    flex-basis: 100% !important;
  }
}

/* レスポンシブ対応：781px以下でグリッドを2列に */
@media screen and (max-width: 781px) {
  .footer-sitelink.is-layout-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}

/* レスポンシブ対応：639px以下でグリッドを1列に */
@media screen and (max-width: 639px) {
  .footer-sitelink.is-layout-grid {
    grid-template-columns: 1fr;
  }
}



/* =======================================
　見出しスタイル
======================================= */

/*----- h1 -----*/
h1.page-default-title {
  position: relative;
  text-align: center;
  margin-top: 40px;
}

h1.page-default-title::after {
  content: '';
  display: block;
  width: 100px;
  height: 3px;
  margin: 16px auto 0;
  background-color: var(--color-primary);
}


/*----- h2 -----*/
/* 通常見出し */
h2.wp-block-heading {
  position: relative;
  padding: 8px 0 8px 16px;
  background-color: var(--color-gray00);
  border-left: 4px solid var(--color-gray02);
}

/* スタイル無し（プレーン） */
h2.wp-block-heading.no-style {
  padding: 0;
  background-color: transparent;
  border-left: none;
}


/* スタイル1（中央寄せ＆アクセントアンダーライン） */
h2.wp-block-heading.style1 {
  text-align: center;
  background: transparent;
  border: none;
}

h2.wp-block-heading.style1::after {
  content: '';
  display: block;
  width: 100px;
  height: 3px;
  margin: 16px auto 0;
  background-color: var(--color-primary);
}


/* スタイル2（中央寄せ＆両端ライン） */
.wp-block-group.style2 h2.wp-block-heading.has-text-align-center.no-style {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.wp-block-group.style2 h2.wp-block-heading.has-text-align-center.no-style::before,
.wp-block-group.style2 h2.wp-block-heading.has-text-align-center.no-style::after {
  content: "";
  display: block;
  width: min(8vw, 180px);
  height: 1px;
  background-color: var(--color-bk);
  flex-shrink: 0;
}


/* スタイル3（左端ライン：メインカラー） */
h2.wp-block-heading.style3 {
  position: relative;
  padding: 8px 0 8px 16px;
  background-color: var(--color-gray00);
  border-left: 4px solid var(--color-primary);
}


/*----- h3 -----*/
/* 通常見出し */
h3.wp-block-heading {
  position: relative;
  padding: 8px 8px;
  border-bottom: 3px solid var(--color-gray02);
}

/* スタイル無し（プレーン） */
h3.wp-block-heading.no-style {
  padding: 0;
  border-bottom: none;
}


/* スタイル1（中央寄せ＆アクセントアンダーライン） */
h3.wp-block-heading.style1 {
  text-align: center;
  background: transparent;
  border: none;
}

h3.wp-block-heading.style1::after {
  content: '';
  display: block;
  width: 100px;
  height: 1px;
  margin: 16px auto 0;
  background-color: var(--color-gray00);
}



/* =======================================
　ボタンスタイル
======================================= */
/*----- メインスタイル -----*/
/* 枠無し */
.wp-block-buttons.btn-style-main a.wp-block-button__link.wp-element-button {
  color: var(--color-primary) !important;
  font-weight: 600;
  padding: 0;
  border: none !important;
}

.wp-block-buttons.btn-style-main a.wp-block-button__link.wp-element-button::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url(../../images/common/btn-arrow-main.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin-left: 8px;
  vertical-align: -5px;
}

/* 枠あり */
.wp-block-buttons.frame-btn-main a.wp-block-button__link.wp-element-button.has-text-color {
  color: var(--color-primary) !important;
  border: 1px solid var(--color-primary) !important;
  padding: 6px 24px;
  font-weight: 600;
}

.wp-block-buttons.frame-btn-main a.wp-block-button__link.wp-element-button.has-text-color::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url(../../images/common/btn-arrow-main.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin-left: 8px;
  vertical-align: -5px;
}


/*----- 白スタイル -----*/
/* 枠無し */
.wp-block-buttons.btn-style-wh a.wp-block-button__link.wp-element-button {
  color: var(--color-wh) !important;
  font-weight: 600;
  padding: 0;
  border: none !important;
}

.wp-block-buttons.btn-style-wh a.wp-block-button__link.wp-element-button::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url(../../images/common/btn-arrow-wh.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin-left: 8px;
  vertical-align: -5px;
}


/* 枠あり */
.wp-block-buttons.frame-btn-wh a.wp-block-button__link.wp-element-button.has-text-color {
  color: var(--color-wh) !important;
  border: 1px solid var(--color-wh) !important;
  padding: 6px 24px;
  font-weight: 600;
}

.wp-block-buttons.frame-btn-wh a.wp-block-button__link.wp-element-button.has-text-color::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url(../../images/common/btn-arrow-wh.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin-left: 8px;
  vertical-align: -5px;
}


/*----- 背景色ありボタン -----*/
/* 大きいボタン */
.wp-block-buttons.large-btn-wh a.wp-block-button__link.wp-element-button {
  color: var(--color-wh) !important;
  font-weight: 600;
  padding: 8px 24px;
  border: none !important;
}

.wp-block-buttons.large-btn-wh a.wp-block-button__link.wp-element-button::after {
  content: "";
  display: inline-block;
  width: 32px;
  height: 32px;
  background-image: url(../../images/common/btn-arrow-wh-large.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin-left: 12px;
  vertical-align: -6px;
}


/* 普通サイズボタン */
.wp-block-buttons.btn-style-wh.bg-style a.wp-block-button__link.wp-element-button {
  padding: 8px 16px;
}



/*----- 入会申請フォームボタン -----*/
.wp-block-buttons.join-form-btn {
  display: flex;
  gap: 16px;
}

.wp-block-buttons.join-form-btn .wp-block-button {
  flex: 1;
}

.wp-block-buttons.join-form-btn .wp-block-button__link {
  width: 100%;
  display: block;
  text-align: center;
}

.wp-block-buttons.join-form-btn a.wp-block-button__link {
  position: relative;
}

.wp-block-buttons.join-form-btn a.wp-block-button__link::before {
  content: "";
  display: inline-block;
  width: 40px;
  height: 40px;
  background-image: url(../../images/common/common-form-btn-icon.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin-right: 8px;
  vertical-align: -9px;
}


@media screen and (max-width: 1023px) {
  .wp-block-buttons.join-form-btn {
    flex-direction: column;
  }

  .wp-block-buttons.join-form-btn .wp-block-button {
    display: block !important;
    width: 100%;
  }
}



/* =======================================
　アーカイブページ
======================================= */
.row-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.row-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media screen and (max-width: 781px) {
  .row-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 639px) {
  .row-grid {
    grid-template-columns: 1fr;
  }
}


/* アーカイブ一覧の画像エリアを確実にcoverする（縦長画像でも余白が出ないように） */
/* 画像比率8:5（幅:高さ）を維持 */
article.news .news_pic {
  position: relative;
  overflow: hidden;
  padding-top: 62.5%;
  /* 5/8 = 8:5 */
}

article.news .news_pic a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
}

article.news .news_pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

section.archive ul.archive_list ul>li:last-child {
  border-bottom: none;
}

section.archive .archive_list>li {
  border-bottom: 1px solid var(--color-gray02);
}



/* =======================================
　個別記事ページ
======================================= */
.article_meta {
  gap: 12px;
}

.taxonomy-terms a {
  font-size: 12px;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  line-height: 1;
  padding: 2px 6px;
}

.article .article_meta ul li {
  padding-right: 8px;
  display: flex;
}

.single #content-inner {
  margin-top: 0;
}

.single .double-col #content-inner main {
  padding-top: 0;
}


/* =======================================
　パターン登録ブロックスタイル
======================================= */

/*----- 入会申し込みボタン -----*/
/* 表示／非表示コントロール */
.wp-block-group.hojin .wp-block-buttons.join-form-btn .wp-block-button.kojin-form-btn {
  display: none  !important;
}

.wp-block-group.kojin .wp-block-buttons.join-form-btn .wp-block-button.hojin-form-btn {
  display: none !important;
}


/*----- 段落の装飾（両サイドのライン付き） -----*/

.wp-block-group.both-line-style .wp-block-group__inner-container {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1em;
}

.wp-block-group.both-line-style .wp-block-group__inner-container::before,
.wp-block-group.both-line-style .wp-block-group__inner-container::after {
  content: "";
  flex-shrink: 0;
  width: 40px;
  height: 1px;
}

.wp-block-group.both-line-style .wp-block-group__inner-container::before {
  order: -1;
}

.wp-block-group.both-line-style p {
  padding: 0;
}

/* 黒バージョン */
.wp-block-group.both-line-style.bk .wp-block-group__inner-container::before,
.wp-block-group.both-line-style.bk .wp-block-group__inner-container::after {
  background-color: var(--color-bk);
}

/* 白バージョン */
.wp-block-group.both-line-style.wh .wp-block-group__inner-container::before,
.wp-block-group.both-line-style.wh .wp-block-group__inner-container::after {
  background-color: var(--color-wh);
}



/*-----提供する価値（パターン） -----*/
/* セクション */
.wp-block-snow-monkey-blocks-section.smb-section.benefit-section {
  margin-top: 6vw;
  padding: 6vw 16px 4vw;
}

/* コンテンツ */
.wp-block-group.benefit-grid {
  margin-top: 120px;
}

figure.wp-block-image.benefit-icon {
  margin-top: -120px;
}

@media (max-width: 1023px) {

  /* 価値コンテンツ */
  .wp-block-group.benefit-grid {
    gap: 20px !important;
  }
}


@media screen and (max-width: 781px) {
  .wp-block-group.benefit-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 144px !important;
  }
}




/*----- 入会・活動（パターン） -----*/

/* セクション */
.wp-block-snow-monkey-blocks-section.smb-section.guide-section.toppage {
  position: relative;
  padding-bottom: 4vw;
  margin-bottom: 40px;
}

.wp-block-snow-monkey-blocks-section.smb-section.guide-section.toppage::before {
  content: "";
  position: absolute;
  top: -8vw;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../../images/common/guide-msk.webp);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}


/* タイトル部 */
.wp-block-group.fixed-contents.guide-title p.font-accent.title-accent {
  font-size: max(8vw, 48px) !important;
  font-weight: 600;
  line-height: 1;
}


/* メニュー部 */
.wp-block-group.gap16.menu-title {
  border-bottom: 1px solid #FFF;
  padding-bottom: 24px;
}


@media (max-width: 1023px) {

  /* コンテンツ（カラム） */
  .wp-block-columns.join-guide-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 4vw;
  }

  /* タイトル部 */
  figure.wp-block-image.guide-title-icon {
    width: 160px;
    margin-top: 24px;
    margin-left: 40px;
  }

  /* コンテンツ部（グリッド） */
  .wp-block-group.guide-contents-grid {
    gap: 40px !important;
    padding: 24px;
  }
}


@media screen and (max-width: 781px) {

  /* コンテンツ部 */
  .wp-block-group.guide-contents-grid {
    display: flex;
    flex-direction: column;
    gap: 40px !important;
  }

  .wp-block-image.is-style-rounded.guide-image {
    max-width: 300px;
    margin: 0 auto;
  }

  .wp-block-buttons.btn-style-wh.bg-style.guide-btn {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}

@media screen and (max-width: 399px) {
  figure.wp-block-image.guide-title-icon {
    width: 110px;
  }
}



/*----- LP:IRセミナーお問い合わせエリア（パターン） -----*/
/* セクション */
.wp-block-snow-monkey-blocks-section.smb-section.smb-section--fit.ir-contact-section {
  padding: 3vw 16px 21vw;
}

.wp-block-snow-monkey-blocks-section.smb-section.ir-contact-section .smb-section__fixed-background {
  background: url(../../images/lp-ir-seminar/lp-contact-model.webp) no-repeat right bottom,
    url(../../images/lp-ir-seminar/lp-contact-bg.webp) no-repeat center top,
    var(--color-primary);
  background-size: contain;
}

/* ロゴ */
figure.wp-block-image.lp-contact-logo {
  width: 16vw;
}



@media (max-width: 1023px) {

  /* セクション */
  .wp-block-snow-monkey-blocks-section.smb-section.ir-contact-section .smb-section__fixed-background {
    background-position: right bottom, center bottom;
    background-color: var(--color-gray00);
  }

  /* タイトル部 */
  .wp-block-group.lp-contact-title-group {
    margin-top: 16vw;
  }

  /* ご利用料金 */
  .wp-block-group.lp-fee-content-group-wrap {
    gap: 48px !important;
  }

  .wp-block-group.ir-seminar-fee-group {
    flex-direction: column;
    align-items: center;
  }

  .wp-block-snow-monkey-blocks-box.smb-box.lp-fee-tag-box {
    width: 100% !important;
  }

  .wp-block-group.lp-fee-content-group {
    width: 100% !important;
    align-items: center;
  }

  .wp-block-group.lp-fee-content-group p {
    text-align: center;
  }
}

@media (max-width: 781px) {

  /* セクション */
  .wp-block-snow-monkey-blocks-section.smb-section.smb-section--fit.ir-contact-section {
    padding: 3vw 16px 40vw;
  }

  .wp-block-snow-monkey-blocks-section.smb-section.ir-contact-section .smb-section__fixed-background {
    background-size: 38vw, contain, contain;
    background-position: center bottom;
  }

  .wp-block-group.lp-contact-title-group {
    margin-top: 0;
  }

  figure.wp-block-image.lp-contact-logo {
    width: 40vw;
  }

  .wp-block-buttons.join-form-btn a.wp-block-button__link {
    font-size: 24px !important;
  }
}


@media (max-width: 639px) {

  .wp-block-snow-monkey-blocks-section.smb-section.ir-contact-section {
    padding-bottom: 60vw !important;
  }

  .wp-block-snow-monkey-blocks-section.smb-section.ir-contact-section .smb-section__fixed-background {
    background-size: 56vw, contain, contain;
  }
}


@media (max-width: 399px) {

  .wp-block-snow-monkey-blocks-section.smb-section.ir-contact-section {
    padding-bottom: 80vw !important;
  }

  .wp-block-snow-monkey-blocks-section.smb-section.ir-contact-section .smb-section__fixed-background {
    background-size: 76vw, contain, contain;
  }

  .wp-block-group.lp-contact-title-group {
    margin-top: 48px;
  }

  p.lp-contact-lead-text {
    font-size: 18px !important;
  }


  .wp-block-buttons.join-form-btn a.wp-block-button__link {
    font-size: 16px !important;
  }

  .wp-block-buttons.join-form-btn a.wp-block-button__link::before {
    width: 32px;
    height: 32px;
  }

  p.lp-contact-point {
    font-size: 12px;
  }
}



/* =======================================
　入会の流れ（パターン）
======================================= */

@media (max-width: 399px) {
  p.join-flow-text {
    font-size: 22px !important;
  }
}





/* =======================================
　BB Pressスタイル
======================================= */
/*----- フォーラム枠 -----*/
#bbpress-forums {
  padding: 40px 16px;
}

/* 共通CSS */
#bbpress-forums fieldset.bbp-form input[type=password],
#bbpress-forums fieldset.bbp-form input[type=text],
#bbpress-forums fieldset.bbp-form select {
  min-height: 28px;
  height: auto;
  padding: 5px;
}


/*----- 作成済みトピック -----*/
/* トピックタイトル */
a.bbp-topic-permalink {
  font-size: 24px;
  font-weight: 500;
}


/*----- トピック作成 -----*/
/* 新規トピックを作成 */
fieldset.bbp-form {
  font-size: 16px;
  color: var(--color-gray04);
  font-weight: 500;
}

/* トピックタイトル */
input#bbp_topic_title {
  border: 1px solid var(--color-gray04);
  font-size: 24px;
}

input#bbp_topic_tags {
  border: 1px solid var(--color-gray04);
}

select#bbp_stick_topic_select,
select#bbp_topic_status_select {
  border: 1px solid var(--color-gray04);
}

/* トピック作成ボタン */
button#bbp_topic_submit {
  background: var(--color-primary);
  color: #FFF;
  padding: 8px 16px 12px;
  border-radius: 4px;
  font-size: 24px;
  line-height: 1;
}


/*----- 購読ボタン -----*/
/* 購読ボタン */
span#subscription-toggle {
  margin-top: -24px;
}

a.subscription-toggle {
  background: var(--color-primary);
  color: #FFF;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 20px;
}



/* =======================================
　WP-Membersスタイル
======================================= */

/*----- ログインメッセージ -----*/
#wpmem_restricted_msg {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* 登録完了しましたメッセージ */
.wpmem_msg {
  margin: 0 auto;
}

/*----- ログインフォーム -----*/
#wpmem_login,
#wpmem_reg {
  margin: 0 auto;
}

#wpmem_login input.buttons,
div#wpmem_reg input.buttons {
  background: var(--color-primary);
  color: #FFF;
  padding: 12px 16px 12px;
  border-radius: 4px;
  font-size: 18px;
  line-height: 1;
}


/*----- リンク -----*/
/* ログインリンク */
a#wpmem_loginout_link {
  color: var(--color-primary);
  text-decoration: underline;
}

/* パスワードをリセット */
#wpmem_login .link-text a {
  color: var(--color-primary);
  text-decoration: underline;
}


/* =======================================
　コアブロック調整
======================================= */
/*----- アコーディオンブロック -----*/
/* タイトルのホバー時：アンダーライン・見た目の変化を無効化（反応なし） */
.wp-block-accordion .wp-block-accordion-heading__toggle:hover,
.wp-block-accordion .wp-block-accordion-heading__toggle:focus,
.wp-block-accordion .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title,
.wp-block-accordion .wp-block-accordion-heading__toggle:focus .wp-block-accordion-heading__toggle-title {
  text-decoration: none;
  color: inherit;
  background-color: transparent;
  border-bottom-color: transparent;
}

.wp-block-accordion-item.is-layout-flow.wp-block-accordion-item-is-layout-flow {
  margin-bottom: 16px;
}

/* 質問タイトル */
.wp-block-accordion .wp-block-accordion-heading__toggle-title::before {
  content: "Q:";
  margin-right: 8px;
}

/* 展開する回答エリア */
.wp-block-accordion .wp-block-accordion-panel {
  padding: 40px 24px 40px 40px;
}

.wp-block-accordion .wp-block-accordion-panel::before {
  content: "A:";
  position: absolute;
  margin-left: -32px;
  font-size: 18px;
  margin-top: -2px;
  font-weight: 600;
  color: var(--color-primary);
}