@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
*/

/*--------------------------------------
* SWELLの子テーマ用CSS
* ここにカスタマイズCSSを記述してください。
---------------------------------------*/

/*--------------------------------------
* reCAPTCHA 非表示
--------------------------------------*/
.grecaptcha-badge {
  visibility: hidden;
}

/*--------------------------------------
* ボタン内改行禁止
--------------------------------------*/
.my-button-nobr {
  white-space: nowrap;
}

/*--------------------------------------
* ループスライダー
--------------------------------------*/
.loop-slider {
  display: flex;
  overflow: hidden;
  position: relative;
  height: auto;
  margin: 0;
  padding: 0;
}

.loop-slider .swell-block-columns__inner {
  display: flex;
  flex-wrap: nowrap;
  animation: infinity-scroll-left 70s linear infinite;
  width: max-content;
  gap: 20px !important;
  align-items: center;
  transform: translate3d(0, 0, 0);
  /* GPUレンダリングを有効にする */
}

.loop-slider .swell-block-column {
  flex-shrink: 0;
  width: 150px !important;
  /* 固定幅 */
  margin: 0 !important;
  /* 余計な余白を削除 */
  padding: 0 !important;
  /* パディングを削除 */
}

.loop-slider img {
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  /* 縦横比を維持 */
}

@keyframes infinity-scroll-left {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
    /* 全体を1ループでスライド */
  }
}

/* デバイスに応じて速度を変更 */
@media screen and (max-width: 959px) {
  .loop-slider .swell-block-columns__inner {
    animation: infinity-scroll-left 70s linear infinite;
    /* スマホでは70秒で1ループ */
  }
}

/*************************************************************/
/*--------------------------------------
* 数字の装飾
--------------------------------------*/

/* パーセンテージ */
.numberSales {
  font-family: "Montserrat", sans-serif;
  font-style: normal;
  font-weight: 700 !important;
  line-height: 1.2;
}

/* ステップナンバー */
.swell-block-step__number {
  font-family: "Montserrat", sans-serif;
}

/*--------------------------------------
* フローティングバナー（PC右）
--------------------------------------*/
.follow-banner {
  position: fixed;
  top: 40%;
  right: 0;
  transform: translateY(-50%);
  z-index: 20;
}

.follow-banner a {
  display: flex;
  align-items: center;
  gap: 0.5em;
  writing-mode: vertical-rl;
  border: 1px solid;
  border-color: #ffffff;
  color: #fff;
  background-color: var(--color_main);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 1.5em 1em;
  border-radius: 10px 0 0 10px;
  transition: opacity 0.25s;
}

.follow-banner a:hover {
  /* opacity: 0.7; */
  border: 1px solid;
  border-color: var(--color_main);
  color: var(--color_main);
  background-color: #ffffff;
}

.follow-banner .swl-inline-icon::after {
  left: 50%;
  transform: translateX(-50%);
}

/* スマホでは非表示に */
@media screen and (max-width: 599px) {
  .follow-banner {
    display: none;
  }
}

/*--------------------------------------
* フローティングバナー（PC右下配置/SP下部配置）
--------------------------------------*/
.floating-banner {
  display: block;
  position: fixed;
  z-index: 9999;
  bottom: 120px; /* 下から120pxの位置 */
  right: 20px; /* 右から20pxの位置 */
  left: auto; /* 左側の位置は自動 */
  width: 300px; /* 必要に応じて変更可能 */
  max-width: 300px; /* 最大幅を制限する例 */
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); /* 視覚的な効果 */
  background-color: transparent; /* バナーの背景色 */
  padding: 0px; /* 内側の余白 */
  border-radius: 0px; /* 角を丸くする */
  opacity: 1; /* 初期状態で表示 */
  transition: opacity 0.4s ease, transform 0.4s ease; /* ← ここも0.4sに調整 */ /* アニメーション効果 */
}

/* 閉じるボタン */
.floating-banner-close {
  font-weight: bold;
  position: absolute;
  top: -10px; /* バナーの上部からはみ出す位置 */
  right: -10px; /* バナーの右端からはみ出す位置 */
  z-index: 99999;
  width: 30px; /* ボタンの横幅（円形のサイズ） */
  height: 30px; /* ボタンの縦幅（円形のサイズ） */
  padding: 0; /* 余白をなくす */
  border: none; /* 枠線をなくす */
  background-color: #d3d3d3; /* ボタンの背景色 */
  color: #ffffff; /* ボタンの文字色 */
  border-radius: 50%; /* 真円にする */
  cursor: pointer;
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.4); /* ボタンに影を追加 */
  display: flex; /* 中央寄せのためにFlexboxを使用 */
  align-items: center; /* テキストを縦中央に配置 */
  justify-content: center; /* テキストを横中央に配置 */
  font-size: 16px; /* ボタン内の文字サイズ */
}

/* PC表示時の下部空白調整 */
.floating-banner figure {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.floating-banner img {
  display: block;
  width: 100%;
  height: auto;
}

/* JSと連携して任意の場所でバナーを表示・非表示にする */
/* PCのみで非表示アニメーションを適用 */
@media screen and (min-width: 600px) {
  .floating-banner {
    right: 20px;
    left: auto;
    transform: none;
  }

  .floating-banner.hidden {
    opacity: 0;
    transform: translateX(100px) translateY(0); /* ← Y方向には動かさない */
    pointer-events: none;
  }
}

/* スマホ表示でフローティングバナーを横長に変更 */
@media screen and (max-width: 599px) {
  .floating-banner {
    width: 100%; /* 横長にするため、画面幅の80%に設定 */
    max-width: none; /* 最大幅を解除 */
    bottom: 0%; /* 画面下部からの位置調整 */
    left: 50%; /* 中央揃え */
    transform: translateX(-50%); /* 中央揃え */
  }

  .floating-banner-close {
    top: -15px; /* 閉じるボタンを少し上に配置 */
    right: 2px; /* ボタン位置の微調整 */
  }

  /* トップページに上がるボタンを上げる */
  .p-fixBtnWrap {
    bottom: 80px; /* ボタンを上げて、バナーとの干渉を回避 */
  }
}

/*--------------------------------------
* グローバルメニューカスタマイズ
--------------------------------------*/
.c-gnav > .menu-item > a .ttl {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: #003818;
  line-height: 2;
}

/*--------------------------------------
* フッターメニュー崩れ修正
--------------------------------------*/
.l-footer__nav {
  gap: 4em;
  padding: 1em 0 4em;
}

.l-footer__nav a {
  border-right: none;
}

.l-footer__nav li:first-child a {
  border-left: none;
}

.l-footer__nav > li > a {
  font-weight: 700;
  font-size: 14px;
}

.l-footer__nav .sub-menu {
  margin-top: 0.25em;
  display: grid;
  gap: 0.15em;
}

.l-footer__nav .sub-menu > li {
  margin-left: 0.75em;
}

.l-footer__nav .sub-menu > li a {
  padding: 0 0.75em;
  position: relative;
  font-size: 13px;
}

.l-footer__nav .sub-menu > li a::before {
  content: "";
  width: 5px;
  height: 1px;
  background-color: var(--color_footer_text);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

@media screen and (max-width: 767px) {
  .l-footer__nav {
    gap: 0.5em;
    flex-direction: column;
  }

  .l-footer__nav > li:nth-of-type(n + 2) {
    padding-bottom: 0.5em;
  }

  .l-footer__nav > li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  }

  .l-footer__nav > li > a {
    font-size: 13px;
  }

  .l-footer__nav .sub-menu {
    margin-top: 0.2em;
    gap: 0.5em;
  }

  .l-footer__nav .sub-menu > li a {
    font-size: 12px;
  }
}

/* デスクトップ以上だけ全幅化（スマホは無効） */
@media (min-width: 768px) {
  .l-footer__foot .l-container {
    max-width: none;
    padding: 0;
  }
}
/*--------------------------------------
*  メインエリアのカテゴリーバッジの位置調整・丸み
--------------------------------------*/
.l-mainContent__inner .c-postThumb__cat {
  margin: 10px;
  border-radius: 5px;
  padding: 0 10px;
}
@media (max-width: 600px) {
  .l-mainContent__inner .c-postThumb__cat {
    font-size: 0.78rem;
    line-height: 1.15;
    margin: 4px;
    border-radius: 4px;
    padding: 2px 10px;
  }
}
/* スライダーのカテゴリーバッジの位置調整・丸み */
#post_slider .c-postThumb__cat {
  margin: 5px;
  border-radius: 5px;
  padding: 0 8px;
}
@media (max-width: 600px) {
  #post_slider .c-postThumb__cat {
    font-size: 0.66rem;
    line-height: 1.1;
    margin: 4px;
    border-radius: 4px;
    padding: 1px 8px;
  }
}
/* カテゴリー名のフォルダアイコン非表示 */
.c-categoryList::before,
.icon-folder::before,
.widget_categories > ul > .cat-item > a::before,
.wp-block-categories-list > li > a::before,
code.dir_name::before {
  display: none;
}

/*--------------------------------------
* 記事下のカテゴリー、タグの丸み
--------------------------------------*/
.c-categoryList__link {
  background-color: var(--color_main);
  color: #fff;
  border-radius: 5px;
}
.c-tagList__link {
  background: #f7f7f7;
  color: #333;
  border-radius: 5px;
}

/*--------------------------------------
* シェアボタンの丸み
--------------------------------------*/
.-fix.c-shareBtns .c-shareBtns__btn {
  height: 30px;
  padding: 0;
  border-radius: 5px;
}

/*--------------------------------------
* 見出し背景＋下線
--------------------------------------*/
.hbgunderbar {
  font-size: 1.65rem !important;
  background: rgba(123, 134, 198, 0.07);
  border-top: 3px solid #006535;
  border-bottom: 3px solid #006535;
  color: #006535;
  padding: 15px;
  padding-bottom: 16px;
  margin-top: 2.6rem;
  margin-bottom: 1.6rem;
}

/*--------------------------------------
* 下部余白をなしにする
--------------------------------------*/
img {
  vertical-align: bottom;
  margin: 0;
  padding: 0;
}

/*--------------------------------------
* 埋め込みツイートを中央表示させるCSSコード
--------------------------------------*/
.twitter-tweet {
  margin: 0 auto !important;
  box-shadow: 0 0 5px gray;
  border-radius: 6px !important;
}

/*--------------------------------------
* ブロックエディタ画像高さauto
--------------------------------------*/
.wp-block-image img {
  height: auto;
}

/*--------------------------------------
* シンプルテンプレ
--------------------------------------*/
.simplePage .cps-info-bar,
.simplePage #headmenu,
.simplePage #nav-container {
  display: none;
}

/*--------------------------------------
* ヘッダー
--------------------------------------*/
@media screen and (max-width: 767px) {
  #header {
    margin-bottom: 0px;
  }

  .sp-logo-size img {
    width: 135px !important;
  }
}

/*--------------------------------------
* 葉っぱ見出し
--------------------------------------*/
leaf {
  font-size: 20px !important;
  /*文字のサイズ*/
  position: relative;
  padding: 0.8em;
  color: #fff;
  background: #5e8b6d;
  margin-bottom: 15px;
  border-top: none;
  border-bottom: none;
}

leaf:after {
  position: absolute;
  content: "";
  top: 100%;
  left: 0;
  border: none;
  border-bottom: solid 10px transparent;
  border-right: solid 40px rgba(94, 139, 109, 0.5);
}

/*--------------------------------------
* 見出しもどき（赤背景）
--------------------------------------*/
.redbox {
  font-size: 20px !important;
  /*文字のサイズ*/
  background: #c64335;
  /*背景色*/
  padding: 0.5em 0.7em;
  /*余白*/
  color: #fff;
}

/*--------------------------------------
* 見出しもどき（オレンジ背景）
--------------------------------------*/
.orangebox {
  font-size: 20px !important;
  /*文字のサイズ*/
  background: #deac2e;
  /*背景色*/
  padding: 0.5em 0.7em;
  /*余白*/
  color: #fff;
}

/*--------------------------------------
* 見出しもどき（青背景）
--------------------------------------*/
.bluebox {
  font-size: 20px !important;
  /*文字のサイズ*/
  background: #4072a0;
  /*背景色*/
  padding: 0.5em 0.7em;
  /*余白*/
  color: #fff;
}

/*--------------------------------------
* 実線 ＋ 背景色ボックス
--------------------------------------*/
.nomadBox4 {
  padding: 0.5em;
  margin: 5px 0;
  color: #272727;
  border: solid 2px #272727;
  background: rgba(39, 39, 39, 0.07);
  /*背景色*/
}

.nomadBox4 p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 白ボックス＋かげ
--------------------------------------*/
.shadowBox {
  padding: 0.5em;
  margin: 5px 0;
  color: #272727;
  border: solid 0px #ffffff;
  background: rgba(0, 0, 0, 0);
  /*背景色*/
  box-shadow: 0 0 8px gray;
}

.shadowBox p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 実線 ＋ 背景色（太め紺色）ボックス
--------------------------------------*/
.nomadBox111 {
  padding: 1.5em;
  margin: 5px 0;
  color: #272727;
  border: solid 10px #1b2b58;
  background: rgba(77, 161, 255, 0.07);
  /*背景色*/
}

.nomadBox111 p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 実線 ＋ 背景色（太め白色）ボックス
--------------------------------------*/
.nomadBox1white {
  padding: 1.5em;
  margin: 5px 0;
  color: #ffffff;
  border: solid 10px #ffffff;
  background: rgba(77, 161, 255, 0.07);
  /*背景色*/
}

.nomadBox111 p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 背景色のみボックス（白）
--------------------------------------*/
.nomadBox333 {
  padding: 0.5em;
  margin: 1px 0;
  color: #333333;
  background: rgba(0, 0, 255, 0);
  /*背景色*/
  line-height: 26px;
}

.nomadBox333 p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 背景色のみボックス（白）行間広め
--------------------------------------*/
.nomadBox333-2 {
  padding: 0.5em;
  margin: 5px 0;
  color: #333333;
  background: rgba(0, 0, 255, 0);
  /*背景色*/
  line-height: 36px;
}

.nomadBox333-2 p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 背景色のみボックス（うすい紺）
--------------------------------------*/
.nomadBox3 {
  padding: 1.5em;
  margin: 15px 0;
  color: #272727;
  background: rgba(67, 79, 106, 0.07);
  /*背景色*/
}

.nomadBox3 p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 心のなかで思う吹き出し
--------------------------------------*/
.nomadBox_deco10 {
  position: relative;
  margin: 15px 10px 15px 50px;
  padding: 1.5em;
  color: #272727;
  background: rgba(67, 79, 106, 0.07);
  border-radius: 20px;
  width: auto !important;
}

.nomadBox_deco10:before {
  font-family: "Font Awesome 5 Free";
  content: "\f111";
  font-weight: 600;
  position: absolute;
  font-size: 12px;
  left: -40px;
  bottom: 0;
  color: rgba(67, 79, 106, 0.07);
}

.nomadBox_deco10:after {
  font-family: "Font Awesome 5 Free";
  content: "\f111";
  font-weight: 600;
  position: absolute;
  font-size: 18px;
  left: -23px;
  bottom: 0;
  color: rgba(67, 79, 106, 0.07);
}

.nomadBox_deco10 p {
  padding: 0;
  margin: 0;
}

/*--------------------------------------
* 交差線
--------------------------------------*/
.nomadBox8 {
  position: relative;
  margin: 15px 0;
  padding: 1.5em;
  color: #272727;
  border-top: solid 2px #272727;
  border-bottom: solid 2px #272727;
}

.nomadBox8:before,
.nomadBox8:after {
  content: "";
  position: absolute;
  top: -10px;
  width: 2px;
  height: -webkit-calc(100% + 20px);
  height: calc(100% + 20px);
  background-color: #272727;
}

.nomadBox8:before {
  left: 10px;
}

.nomadBox8:after {
  right: 10px;
}

.nomadBox8 p {
  margin: 0;
  padding: 0;
}

/*--------------------------------------
* 左線リスト
--------------------------------------*/
.nomadList5 {
  padding: 0.7em 1.5em;
  margin: 15px 0;
  color: #272727;
  border-left: solid 4px #272727;
  background: rgba(39, 39, 39, 0.05);
  max-width: 100% !important;
  width: 100% !important;
}

.nomadList5 ul {
  margin: 0;
  padding: 10px 0;
}

/*-----------------------
* カラム分けカスタマイズ
------------------------*/
@media (max-width: 767px) {
  .jin-2column {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
  }
}

@media (min-width: 768px) {
  .jin-2column {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
  }
}

@media (min-width: 1200px) {
  .jin-2column {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
  }
}

.jin-2column .color-button01,
.jin-2column .color-button02 {
  margin-top: 5px;
}

@media (min-width: 768px) {
  .jin-2column .color-button01 a,
  .jin-2column .color-button02 a {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}

@media (max-width: 767px) {
  .jin-2column-left,
  .jin-2column-right {
    width: 49.2%;
    padding: 5px;
    margin-bottom: 5px;
  }
}

@media (min-width: 768px) {
  .jin-2column-left,
  .jin-2column-right {
    width: 49.2%;
    padding: 5px;
    margin-bottom: 5px;
  }
}

@media (min-width: 1200px) {
  .jin-2column-left,
  .jin-2column-right {
    width: 49.2%;
    padding: 10px;
    margin-bottom: 10px;
  }
}

/*--------------------------------------
* セミナー情報リスト
--------------------------------------*/
.seminar-contents {
  font-weight: bold;
}

@media (min-width: 768px) {
  .seminar-contents {
    animation-name: up-fade-animation;
    animation-duration: 0.8s;
    animation-delay: 0.8s;
    animation-fill-mode: forwards;
    opacity: 0;
    position: relative;
    z-index: 4;
    padding: 1.5em 0;
  }

  .home .seminar-contents {
    padding-top: 1em;
  }

  .home .seminar-contents + .home .seminar-contents {
    padding-bottom: 3.5em;
  }

  .home .seminar-contents .seminar-contents {
    padding: 0;
  }
}

.seminar-contents .seminarTitle {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.seminar-contents ul {
  padding-left: 0;
}

#contents .seminar-contents li {
  display: flex;
  align-items: flex-start;
  border-bottom: dotted 1px #ddd;
  padding: 0.7em 0;
  margin-bottom: 0;
}

#contents .seminar-contents li.seminar_none {
  justify-content: center;
  border-bottom: none;
  font-size: 1.07rem;
}

.seminar-contents li a {
  display: flex;
  align-items: flex-start;
  text-decoration: none;
}

.seminar-contents .jin-code-icon-arrow {
  width: 1.5em;
  padding-top: 4px;
}

.seminar-contents time {
  width: 10.5em;
}

.seminar-contents .seminar-item-title {
  flex: 2;
}

.seminar-contents .linethrough {
  text-decoration: line-through;
}

.seminar-contents .manin {
  display: inline-block;
  color: #f00;
  margin-left: 0.5em;
}

.seminar-contents .btnwrap {
  text-align: right;
  margin-top: 1em;
}

@media (max-width: 767px) {
  .seminar-contents {
    animation-name: pickup-animate;
    animation-duration: 0.6s;
    animation-delay: 0.6s;
    animation-fill-mode: forwards;
    opacity: 0;
    z-index: 4;
    padding: 1.5em 0;
  }

  .home .seminar-contents {
    padding: 1.5em 0 0;
  }

  .home .seminar-contents + .seminar-contents {
    padding-bottom: 1.5em;
  }

  .home .seminar-contents .seminar-contents {
    padding: 0;
  }

  .seminar-contents .seminarTitle {
    font-size: 1.1rem;
    margin-bottom: 0.7rem;
  }

  #contents .seminar-contents li,
  .seminar-contents .btnwrap a {
    font-size: 0.85rem;
  }

  .seminar-contents .jin-code-icon-arrow {
    padding-top: 3px;
  }
}

/*--------------------------------------
セミナー情報リストおわり
--------------------------------------*/
/*--------------------------------------
* トップの研修実績
--------------------------------------*/
.post-list-mag-training .post-list-item .post-list-inner .post-list-meta {
  padding-bottom: 0;
}

/*--------------------------------------
* トップの商品一覧
--------------------------------------*/
.post-list-mag
  .post-list-item.post-list-item-page
  .post-list-inner
  .post-list-meta {
  padding-bottom: 0;
}

/*--------------------------------------
* トップの商品一覧おわり
--------------------------------------*/
/*--------------------------------------
* トップの下部テキスト・HTMLウィジェット
--------------------------------------*/
#home-bottom-widget .widget,
#home-top-widget .widget {
  box-shadow: none;
}

#home-bottom-widget .widget_text .textwidget,
#home-top-widget .widget_text {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/*--------------------------------------
* トップの下部テキスト・HTMLウィジェットおわり
--------------------------------------*/
/*--------------------------------------
* スマホ固定フッター
--------------------------------------*/
.footer-menu-sp .menu-item a {
  background-color: #003818;
  /* 背景の色を指定 */
  color: #ffffff;
  /* 文字の色を指定 */
}

/* テーブルのレスポンシブデザイン  */
.tbl-r02 th {
  padding: 2px;
  border-style: hidden;
  vertical-align: baseline;
}

.tbl-r02 td {
  padding: 0px 0px;
  border-style: hidden;
  vertical-align: baseline;
}

@media screen and (max-width: 640px) {
  .last td:last-child {
    border-bottom: none;
    width: 100%;
  }

  .tbl-r02 {
    width: 80%;
  }

  .tbl-r02 th,
  .tbl-r02 td {
    border-bottom: none;
    display: block;
    width: 100%;
  }
}

/*--------------------------------------
* マウスホバー浮き沈んで影
--------------------------------------*/
.hover4 {
  box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.25);
  display: inline-block;
  padding: 0em 0em;
  margin: 0 0 0em;
  cursor: pointer;
  transition: all 0.3s ease 0s;
}

.hover4:hover {
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.25);
  transform: translateY(0.1875em);
}
/* ------------------------------------------------------
* ヘッダーの設定
* ------------------------------------------------------ */
/* ヘッダーの装飾 */
.l-header {
  position: relative;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.l-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.8); /* ←ここで“白フィルター” */
  z-index: -1;
}

/* ヘッダーを固定 */
@media (min-width: 960px) {
  .l-header {
    position: fixed !important;
    background: transparent;
  }

  .p-breadcrumb {
    margin-top: calc(var(--logo_size_pc) + 55px);
  }
}

/* 下層ページのヘッダー幅をトップに合わせる */
.l-header .l-container {
  max-width: 100% !important;
}

/* コンテンツとフッターの間の余白を埋める */
.l-content {
  margin: 0 auto 0em;
}

.w-beforeFooter {
  margin: 0em auto 0em;
  overflow: hidden;
}

/* ヘッダーメニューを非表示 */
/* 追従グローバルメニューの都合でコメントアウト */
/*nav#gnav {
  display: none;
} */ /* ← ここで閉じる */

/* ------------------------------------------------------
* ハンバーガーボタン設定
* ------------------------------------------------------ */
.l-header__menuBtn.sp_ {
  /* display: block !important; */
  /* ハンバーガーボタンを表示→PC非表示 */
  color: #ffffff;
  background-color: #003818;
}

.-series .l-header__inner {
  align-items: center;
  /* ハンバーガーボタンの上下位置調整 */
}

.p-spMenu {
  display: block;
  /* 開閉メニューを有効 */
}

/* サブメニューを常に展開 250708 */
/* .p-spMenu__body .sub-menu {
  display: block !important;
  visibility: visible !important;
} */
 /* SP幅のときだけ、オフキャンバスのサブメニューを常時展開 */
@media (max-width: 959.98px){
  .p-spMenu__body .sub-menu{
    display:block !important;
    visibility:visible !important;
  }
}


/* ------------------------------------------------------
 * 開閉メニューのフルスクリーン設定
 * ------------------------------------------------------ */
.p-spMenu__inner {
  --color_menu_text: #ffffff;
  /* メニューテキストの色 */
  --color_menu_bg: rgba(0 0 0 / 85%);
  /* フルスクリーンメニューの背景色 */
  width: 100vw;
}

.p-spMenu__overlay {
  background: transparent;
}

.-right .p-spMenu__inner {
  -webkit-transform: translateX(0);
  transform: translateX(0);
  opacity: 0;
  transition: opacity 0.45s;
}

[data-spmenu="opened"] .p-spMenu__inner {
  -webkit-transform: translateX(0);
  transform: translateX(0);
  opacity: 1;
}

.p-spMenu__inner::before {
  background: var(--color_menu_bg);
  opacity: 1;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

/* ------------------------------------------------------
* フルスクリーンメニュー内の設定
* ------------------------------------------------------ */
.p-spMenu__body {
  display: flex;
  flex-direction: column;
  justify-content: left;
  align-items: center;
  font-size: 24px;
  /* PCのフォントサイズ */
  font-weight: 700;
  color: var(--color_menu_text);
}

@media (max-width: 599px) {
  .p-spMenu__body {
    font-size: 5vw;
    /* スマホのフォントサイズ */
  }
}

/* 開閉メニュー内のタイトルを非表示 */
.c-widget__title.-spmenu {
  display: none;
}

/* メニューリンクの設定 */
.c-spnav a {
  border-bottom: none;
}

.c-gnav .sub-menu a:before,
.c-listMenu a:before {
  content: none;
}

.p-spMenu__inner a {
  /* padding: 1em 1em; */
  padding: 10px 10px 15px 10px; /* ← 修正（末尾セミコロン） */
  text-align: left;
  transition: transform 0.5s;
}

.p-spMenu__inner a:hover {
  color: #003818;
  background-color: #ffffff;
  border-radius: 0%;
  /* box-shadow: 0px 5px 15px 0px rgba(255, 255, 255, 0.35); */
}

/* メニューの旧ホバー効果無効 */
/* .p-spMenu__inner a:hover {
  padding-left: inherit; 
  padding-right: inherit;
  background-color: inherit;
  transform: scale(1.1);
} */

/* 閉じるボタンの設定 */
/* 閉じるボタンの設定 */
.c-iconBtn {
  color: var(--color_menu_text);
}

@media (min-width: 960px) {
  .-right .p-spMenu__closeBtn {
    right: var(--swl-pad_container, 0);
    height: calc(var(--logo_size_pc) + 10px);
    width: calc(var(--logo_size_pc) + 10px); /* 高さと幅を同じにして正方形に */
  }

  .l-header__menuBtn.sp_ {
    color: #ffffff;
    background-color: #003818 !important;
  }
}

/* ------------------------------------------------------
* グローバルメニューLINEボタン角丸解除
* ------------------------------------------------------ */
.headLineBtn {
  --the-btn-radius: 0px;
}

/* ------------------------------------------------------
* ハンバーガーメニュー（PC/SP共通）展開時の表示装飾
* ------------------------------------------------------ */

.p-spMenu__body {
  -webkit-overflow-scrolling: touch;
  height: 100%;
  overflow-y: auto;
  padding: 5vw 10vw;
  position: relative;
}

.p-spMenu__closeBtn {
  position: absolute;
  top: 10px; /* ← 単位(px)を追加 */
  z-index: 1;
}

.p-spMenu__inner {
  --color_menu_text: #ffffff;
  --color_menu_bg: rgba(0 0 0 / 85%);
  width: 100% !important;
  box-sizing: border-box;
}

.c-submenuToggleBtn {
  position: absolute;
  height: 32px;
  line-height: 28px;
  /* transition: background-color .25s;*/
  width: 32px;
  font-size: 28px;
  color: #fff;
  /* background-color: #fff; */
}

.c-submenuToggleBtn:hover {
  color: #fff;
  background-color: #003818;
}

.c-submenuToggleBtn:before {
  content: "\e910";
  display: inline-block;
  font-family: icomoon;
  font-size: 28px !important;
  /*transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  transition: transform 0.25s, -webkit-transform 0.25s; */
}

.c-submenuToggleBtn:after {
  content: "\e910";
  display: inline-block;
  border: 0px solid;
  font-family: icomoon;
  /* font-size: 28px; */
  border: 0px solid;
  transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  transition: transform 0.25s, -webkit-transform 0.25s;
}

.c-plainBtn {
  -webkit-appearance: none;
  -o-appearance: none;
  appearance: none;
  /* color: #003818;
  background-color: #ffffff; */
}

/* 検索に装飾解除 */
.c-iconList__link,
.c-plainBtn,
.u-fz-14,
.hov-flash {
  color: #fff;
  background-color: transparent;
  box-shadow: none;
}

/* メニューのトグルボタン */
.c-submenuToggleBtn,
.c-plainBtn {
  display: inline-block;
  color: #ffffff !important;
  border: 1px solid !important;
  border-color: #ffffff !important;
  background-color: #003818 !important;
}

@media only screen and (min-width: 768px) {
  .c-iconBtn,
  .menuBtn,
  .c-plainBtn {
    display: flex;
    color: #ffffff;
    background-color: #003818;
    box-shadow: none;
    /* height: 40px !important; ← 必要なら具体値を入れてください */
    border-color: #ffffff;
    border: 1px solid;
  }
}

.button,
input,
select,
textarea {
  background-color: #f7f7f7;
  border: 1px solid hsla(0, 35%, 13%, 0.5);
  border-radius: 0;
  color: #333;
  padding: 0.25em 0.5em;
}

@media (min-width: 960px) {
  html[data-spmenu="opened"],
  html[data-spmenu="opened"] body {
    overflow-x: hidden;
  }
}

/* ------------------------------------------------------
* 検索モーダルウィンドウ
* ------------------------------------------------------ */
.c-modal .c-modal__close {
  display: none !important;
}

/* ------------------------------------------------------
* JINのふきだしショートコード
* ------------------------------------------------------ */

/* 吹き出し */
.balloon-box {
  position: relative;
  overflow: hidden;
  padding-bottom: 3px;
}

.balloon-icon {
  position: absolute;
  top: 0;
  overflow: hidden;
  width: 80px;
  height: 80px;
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .balloon-icon {
    width: 60px;
    height: 60px;
  }
}

.balloon-icon.maru {
  border: 2px solid #eee;
  border-radius: 40px;
}

.icon-name {
  position: absolute;
  text-align: center;
  letter-spacing: 0;
  line-height: 0.7rem !important;
  color: #777;
}
@media (max-width: 767px) {
  .icon-name {
    width: 60px;
    top: 62px;
    font-size: 9px;
  }
}
@media (min-width: 768px) {
  .icon-name {
    width: 80px;
    top: 85px;
    font-size: 10px;
  }
}

.balloon-icon img {
  width: 80px;
  height: auto;
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .balloon-icon img {
    width: 60px;
  }
}

.balloon-serif .balloon-content img.star {
  width: 24%;
  padding-bottom: 1px;
  margin-bottom: -3px !important;
}
@media (max-width: 767px) {
  .balloon-serif .balloon-content img.star {
    width: 38%;
    padding-bottom: 2px;
  }
}

.balloon-content p:last-of-type {
  padding-bottom: 0 !important;
}

.balloon-left .balloon-icon {
  left: 0;
}
.balloon-left .icon-name {
  left: 0;
}
.balloon-left .balloon-serif {
  position: relative;
  float: left;
  margin: 0 105px 40px 105px;
  padding: 0;
}
@media (max-width: 767px) {
  .balloon-left .balloon-serif {
    margin: 0 0px 30px 78px;
  }
}
.balloon-left .balloon-serif:before {
  content: "";
  position: absolute;
  left: -7px;
  display: block;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 7px 10px 7px 0;
  z-index: 3;
}
@media (max-width: 767px) {
  .balloon-left .balloon-serif:before {
    top: 13px;
  }
}
@media (min-width: 768px) {
  .balloon-left .balloon-serif:before {
    top: 16px;
  }
}
.balloon-left .balloon-serif:after {
  content: "";
  position: absolute;
  left: -10px;
  display: block;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 8px 10px 8px 0;
  z-index: 2;
}
@media (max-width: 767px) {
  .balloon-left .balloon-serif:after {
    top: 12px;
  }
}
@media (min-width: 768px) {
  .balloon-left .balloon-serif:after {
    top: 15px;
  }
}
.balloon-left .balloon-serif .balloon-content {
  position: relative;
  line-height: 1.5rem;
  border: 2px solid #ccc;
  background: #fff;
  border-radius: 6px;
  font-size: 0.95em;
  z-index: 2;
}
@media (max-width: 767px) {
  .balloon-left .balloon-serif .balloon-content {
    padding: 0.8rem;
  }
}
@media (min-width: 768px) {
  .balloon-left .balloon-serif .balloon-content {
    padding: 1.15rem;
  }
}

.balloon-right .balloon-icon {
  right: 0;
}
.balloon-right .icon-name {
  right: 0;
}
.balloon-right .balloon-serif {
  position: relative;
  float: right;
  margin: 0 105px 40px 105px;
  padding: 0;
}
@media (max-width: 767px) {
  .balloon-right .balloon-serif {
    margin: 0 78px 30px 0px;
  }
}
.balloon-right .balloon-serif:before {
  content: "";
  position: absolute;
  right: -7px;
  display: block;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 7px 0px 7px 10px;
  z-index: 3;
}
@media (max-width: 767px) {
  .balloon-right .balloon-serif:before {
    top: 13px;
  }
}
@media (min-width: 768px) {
  .balloon-right .balloon-serif:before {
    top: 16px;
  }
}
.balloon-right .balloon-serif:after {
  content: "";
  position: absolute;
  right: -10px;
  display: block;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 8px 0px 8px 10px;
  z-index: 2;
}
@media (max-width: 767px) {
  .balloon-right .balloon-serif:after {
    top: 12px;
  }
}
@media (min-width: 768px) {
  .balloon-right .balloon-serif:after {
    top: 15px;
  }
}
.balloon-right .balloon-serif .balloon-content {
  position: relative;
  line-height: 1.5rem;
  border: 2px solid;
  border-radius: 6px;
  font-size: 0.95em;
  z-index: 2;
}
@media (max-width: 767px) {
  .balloon-right .balloon-serif .balloon-content {
    padding: 0.8rem;
  }
}
@media (min-width: 768px) {
  .balloon-right .balloon-serif .balloon-content {
    padding: 1.15rem;
  }
}

.balloon-box ol li {
  position: relative;
  display: block;
  padding: 1px 0px 5px 25px;
  margin-bottom: 0.15em;
}

.balloon-box ol li:after {
  counter-increment: li;
  content: counter(li);
  position: absolute;
  left: 0px;
  top: 1.2em;
  padding: 0 0 0 0px;
  height: 20px;
  width: 20px;
  color: #fff;
  text-align: center;
  font-size: 0.65em;
  border-radius: 11px;
}

.balloon-right.balloon-gray .balloon-serif:after,
.balloon-right.has-ccc-ballon .balloon-serif:after {
  border-color: transparent transparent transparent #ccc;
}
.balloon-right.balloon-gray .balloon-content,
.balloon-right.has-ccc-ballon .balloon-content {
  border-color: #ccc;
}

.balloon-left.balloon-gray .balloon-serif:after,
.balloon-left.has-ccc-ballon .balloon-serif:after {
  border-color: transparent #ccc transparent transparent;
}
.balloon-left.balloon-gray .balloon-content,
.balloon-left.has-ccc-ballon .balloon-content {
  border-color: #ccc;
}

.balloon-right.balloon-bg-gray .balloon-serif:before,
.balloon-right.has-efefef-bgballon .balloon-serif:before {
  border-color: transparent transparent transparent #efefef;
}
.balloon-right.balloon-bg-gray .balloon-content,
.balloon-right.has-efefef-bgballon .balloon-content {
  background: #efefef;
}

.balloon-left.balloon-bg-gray .balloon-serif:before,
.balloon-left.has-efefef-bgballon .balloon-serif:before {
  border-color: transparent #efefef transparent transparent;
}
.balloon-left.balloon-bg-gray .balloon-content,
.balloon-left.has-efefef-bgballon .balloon-content {
  background: #efefef;
}

.balloon-right.balloon-blue .balloon-serif:after,
.balloon-right.has-93-d-2-f-0-ballon .balloon-serif:after {
  border-color: transparent transparent transparent #93d2f0;
}
.balloon-right.balloon-blue .balloon-content,
.balloon-right.has-93-d-2-f-0-ballon .balloon-content {
  border-color: #93d2f0;
}

.balloon-left.balloon-blue .balloon-serif:after,
.balloon-left.has-93-d-2-f-0-ballon .balloon-serif:after {
  border-color: transparent #93d2f0 transparent transparent;
}
.balloon-left.balloon-blue .balloon-content,
.balloon-left.has-93-d-2-f-0-ballon .balloon-content {
  border-color: #93d2f0;
}

.balloon-right.balloon-bg-blue .balloon-serif:before,
.balloon-right.has-e-2-f-6-ff-bgballon .balloon-serif:before {
  border-color: transparent transparent transparent #e2f6ff;
}
.balloon-right.balloon-bg-blue .balloon-content,
.balloon-right.has-e-2-f-6-ff-bgballon .balloon-content {
  background: #e2f6ff;
}

.balloon-left.balloon-bg-blue .balloon-serif:before,
.balloon-left.has-e-2-f-6-ff-bgballon .balloon-serif:before {
  border-color: transparent #e2f6ff transparent transparent;
}
.balloon-left.balloon-bg-blue .balloon-content,
.balloon-left.has-e-2-f-6-ff-bgballon .balloon-content {
  background: #e2f6ff;
}

.balloon-right.balloon-red .balloon-serif:after,
.balloon-right.has-f-48789-ballon .balloon-serif:after {
  border-color: transparent transparent transparent #f48789;
}
.balloon-right.balloon-red .balloon-content,
.balloon-right.has-f-48789-ballon .balloon-content {
  border-color: #f48789;
}

.balloon-left.balloon-red .balloon-serif:after,
.balloon-left.has-f-48789-ballon .balloon-serif:after {
  border-color: transparent #f48789 transparent transparent;
}
.balloon-left.balloon-red .balloon-content,
.balloon-left.has-f-48789-ballon .balloon-content {
  border-color: #f48789;
}

.balloon-right.balloon-bg-red .balloon-serif:before,
.balloon-right.has-ffebeb-bgballon .balloon-serif:before {
  border-color: transparent transparent transparent #ffebeb;
}
.balloon-right.balloon-bg-red .balloon-content,
.balloon-right.has-ffebeb-bgballon .balloon-content {
  background: #ffebeb;
}

.balloon-left.balloon-bg-red .balloon-serif:before,
.balloon-left.has-ffebeb-bgballon .balloon-serif:before {
  border-color: transparent #ffebeb transparent transparent;
}
.balloon-left.balloon-bg-red .balloon-content,
.balloon-left.has-ffebeb-bgballon .balloon-content {
  background: #ffebeb;
}

.balloon-right.balloon-green .balloon-serif:after,
.balloon-right.has-9-ddd-93-ballon .balloon-serif:after {
  border-color: transparent transparent transparent #9ddd93;
}
.balloon-right.balloon-green .balloon-content,
.balloon-right.has-9-ddd-93-ballon .balloon-content {
  border-color: #9ddd93;
}

.balloon-left.balloon-green .balloon-serif:after,
.balloon-left.has-9-ddd-93-ballon .balloon-serif:after {
  border-color: transparent #9ddd93 transparent transparent;
}
.balloon-left.balloon-green .balloon-content,
.balloon-left.has-9-ddd-93-ballon .balloon-content {
  border-color: #9ddd93;
}

.balloon-right.balloon-bg-green .balloon-serif:before,
.balloon-right.has-d-1-f-8-c-2-bgballon .balloon-serif:before {
  border-color: transparent transparent transparent #d1f8c2;
}
.balloon-right.balloon-bg-green .balloon-content,
.balloon-right.has-d-1-f-8-c-2-bgballon .balloon-content {
  background: #d1f8c2;
}

.balloon-left.balloon-bg-green .balloon-serif:before,
.balloon-left.has-d-1-f-8-c-2-bgballon .balloon-serif:before {
  border-color: transparent #d1f8c2 transparent transparent;
}
.balloon-left.balloon-bg-green .balloon-content,
.balloon-left.has-d-1-f-8-c-2-bgballon .balloon-content {
  background: #d1f8c2;
}

.balloon-right.balloon-yellow .balloon-serif:after,
.balloon-right.has-ffd-75-e-ballon .balloon-serif:after {
  border-color: transparent transparent transparent #ffd75e;
}
.balloon-right.balloon-yellow .balloon-content,
.balloon-right.has-ffd-75-e-ballon .balloon-content {
  border-color: #ffd75e;
}

.balloon-left.balloon-yellow .balloon-serif:after,
.balloon-left.has-ffd-75-e-ballon .balloon-serif:after {
  border-color: transparent #ffd75e transparent transparent;
}
.balloon-left.balloon-yellow .balloon-content,
.balloon-left.has-ffd-75-e-ballon .balloon-content {
  border-color: #ffd75e;
}

.balloon-right.balloon-bg-yellow .balloon-serif:before,
.balloon-right.has-fff-8-d-1-bgballon .balloon-serif:before {
  border-color: transparent transparent transparent #fff8d1;
}
.balloon-right.balloon-bg-yellow .balloon-content,
.balloon-right.has-fff-8-d-1-bgballon .balloon-content {
  background: #fff8d1;
}

.balloon-left.balloon-bg-yellow .balloon-serif:before,
.balloon-left.has-fff-8-d-1-bgballon .balloon-serif:before {
  border-color: transparent #fff8d1 transparent transparent;
}
.balloon-left.balloon-bg-yellow .balloon-content,
.balloon-left.has-fff-8-d-1-bgballon .balloon-content {
  background: #fff8d1;
}

.balloon-right.balloon-bg-none .balloon-serif:before,
.balloon-right.has-fff-bgballon .balloon-serif:before {
  border-color: transparent transparent transparent #fff;
}
.balloon-right.balloon-bg-none .balloon-content,
.balloon-right.has-fff-bgballon .balloon-content {
  background: #fff;
}

.balloon-left.balloon-bg-none .balloon-serif:before,
.balloon-left.has-fff-bgballon .balloon-serif:before {
  border-color: transparent #fff transparent transparent;
}
.balloon-left.balloon-bg-none .balloon-content,
.balloon-left.has-fff-bgballon .balloon-content {
  background: #fff;
}

.balloon-left.balloon-none .balloon-serif:after,
.balloon-left.balloon-none .balloon-content,
.balloon-right.balloon-none .balloon-serif:after,
.balloon-right.balloon-none .balloon-content,
.balloon-left.has-fff-ballon .balloon-serif:after,
.balloon-left.has-fff-ballon .balloon-content,
.balloon-right.has-fff-ballon .balloon-serif:after,
.balloon-right.has-fff-ballon .balloon-content {
  border-color: transparent;
}

.balloon-left.balloon-none .balloon-serif:before,
.balloon-left.has-fff-ballon .balloon-serif:before {
  left: -9px;
}

.balloon-right.balloon-none .balloon-serif:before,
.balloon-right.has-fff-ballon .balloon-serif:before {
  right: -9px;
}

/* ------------------------------------------------------
* JINの余白ショートコード
* ------------------------------------------------------ */

/*　余白　*/
.jin-yohaku10,
.jin-yohaku15,
.jin-yohaku20,
.jin-yohaku25,
.jin-yohaku30,
.jin-yohaku35,
.jin-yohaku40,
.jin-yohaku45,
.jin-yohaku50 {
  width: 100%;
}

.jin-yohaku10 {
  height: 10px;
}

.jin-yohaku15 {
  height: 15px;
}

.jin-yohaku20 {
  height: 20px;
}

.jin-yohaku25 {
  height: 25px;
}

.jin-yohaku30 {
  height: 30px;
}

.jin-yohaku35 {
  height: 35px;
}

.jin-yohaku40 {
  height: 40px;
}

.jin-yohaku45 {
  height: 45px;
}

.jin-yohaku50 {
  height: 50px;
}

/* ------------------------------------------------------
* JINのボックスショートコード
* ------------------------------------------------------ */
.concept-box1,
.concept-box2,
.concept-box3,
.concept-box4,
.concept-box5,
.concept-box6 {
  padding: 1.5em;
  margin: 1em 0;
  color: #323232;
  border-left: solid 4px #323232;
  background: rgba(50, 50, 50, 0.07);
}
.concept-box1,
.concept-box2,
.concept-box3,
.concept-box4,
.concept-box5,
.concept-box6 p {
  padding: 0;
  margin: 0;
}

/* ------------------------------------------------------
* 目次の横幅100％に調整
* ------------------------------------------------------ */
#main_content .p-toc {
  width: 100%;
  border-radius: var(--swl-radius--2, 0);
  margin: 0em auto;
  max-width: 100%;
}

/* ------------------------------------------------------
* タグクラウドの装飾変更
* ------------------------------------------------------ */
.tag-cloud-link {
  background: #f7f7f7;
  border: 1px solid;
  color: #333 !important;
  display: block;
  line-height: 1;
  padding: 6px 8px !important;
  position: relative;
  text-decoration: none;
  border-radius: 5px;
}

/* ------------------------------------------------------
* セミナー情報と満員御礼、スクール情報と終了の調整
* ------------------------------------------------------ */
/* リスト全体のスタイル */
.swell-block-linkList {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* リストアイテム（すべての行に統一適用） */
.swell-block-linkList__item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  border-bottom: 1px solid #ddd;
  padding: 9px 10px;
  min-height: 50px; /* すべての行の高さを統一 */
  width: 100%;
}

/* アイコン・日付・タイトルの配置を完全統一 */
.swell-block-linkList__text-container {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  gap: 10px; /* アイコン、日付、タイトルの間隔を統一 */
}

/* アイコンの位置調整 */
.swell-block-linkList__icon {
  flex-shrink: 0;
  margin-right: 8px;
  min-width: 24px;
  height: 24px;
}

/* 日付のスタイル（左詰め統一） */
.seminar-date {
  font-size: 0.9em;
  color: #666;
  white-space: nowrap;
  min-width: 130px;
  text-align: left;
}

/* 日付の打ち消し線 */
.seminar-date.linethrough {
  text-decoration: line-through;
  color: #999;
}

/* タイトル部分のレイアウト */
.swell-block-linkList__text {
  display: flex;
  align-items: center;
  flex-grow: 1;
  white-space: normal;
  font-size: 1em;
  color: var(--the-link-color, #0073aa); /* SWELL のリンクカラー */
}

/* タイトルの打ち消し線 */
.swell-block-linkList__text strong {
  font-size: 1em;
  white-space: normal;
}

.swell-block-linkList__text strong.linethrough {
  text-decoration: line-through;
  color: #999;
}

/* 「満員御礼！」、「終了しました」のデザイン */
.swell-block-linkList__text .manin {
  background: red;
  color: white;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: bold;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 85px;
  height: 22px;
  text-align: center;
  flex-shrink: 0;
  margin-left: 15px;
  white-space: nowrap;
}

/* 通常のリンクスタイル */
.swell-block-linkList__link {
  display: flex;
  align-items: center;
  width: 100%;
  text-decoration: none;
  color: inherit; /* SWELL のリンクカラーを継承 */
  padding: 0; /* ここでの padding をゼロにして重複を防ぐ */
}

/* 満員御礼/終了のリストアイテム（リンクなし） */
.swell-block-linkList__item.disabled {
  opacity: 0.7;
  pointer-events: none;
  justify-content: flex-start;
}

/* 満員御礼/終了のリンクなしスタイル（通常行とレイアウト統一） */
.swell-block-linkList__text-container.disabled {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.swell-block-linkList.is-style-default .swell-block-linkList__icon {
  color: #38ad3d !important;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
  .swell-block-linkList__text {
    font-size: 0.9em;
  }

  .swell-block-linkList__item {
    padding: 10px 0;
  }

  .swell-block-linkList__text-container {
    flex-wrap: nowrap;
  }

  .swell-block-linkList__text .manin {
    margin-left: 8px;
    flex-grow: 0;
  }

  .swell-block-linkList__text strong {
    white-space: normal;
  }
}

/* ======================================================
CTA（テキストブロック用）
基本：白背景＋枠＆文字＝緑 → Hover：色ベタ＋白文字（左→右スライド）
使い方：段落ブロックに  cta-fill cta-fill--slide  を付与。
色違いは -red / -line、ベタ始まりは -solid を追加。
※親(.cta-fill)でも子(<a>)でもクラスが効くように対応
====================================================== */

/* 親はラッパー：変数だけ（見た目は付けない） */
.cta-fill {
  --cta-w: 260px;
  --cta-h: 48px;
  --cta-radius: 10px;
  --cta-color: #28a745; /* 既定色：緑 */
  --cta-lh: 1.65;
  --cta-py: 1.05em;
  font-size: 1.125em;
}

/* 子リンクを“丸ごと”ボタン化（親にも直接付いているケースもケア） */
.cta-fill a,
a.cta-fill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  width: var(--cta-w);
  height: auto;
  min-height: var(--cta-h);
  box-sizing: border-box;
  padding-inline: 1.2em;
  padding-block: var(--cta-py);
  border: 2px solid var(--cta-color);
  border-radius: var(--cta-radius);

  /* 通常：白／ホバー用カラーは上のレイヤーでアニメーション */
  background: #fff;
  background-image: linear-gradient(var(--cta-color), var(--cta-color));
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 0% 100%;

  color: var(--cta-color);
  text-decoration: none;
  line-height: var(--cta-lh);
  cursor: pointer;
  transition: background-size 0.35s ease, color 0.35s ease,
    border-color 0.35s ease;
  -webkit-background-clip: padding-box;
  background-clip: padding-box;
}

/* 既定リンク色を打ち消し */
.cta-fill a:link,
.cta-fill a:visited,
a.cta-fill:link,
a.cta-fill:visited {
  color: var(--cta-color);
}

/* 子要素の色・行間継承 */
.cta-fill a > *,
a.cta-fill > * {
  color: inherit;
  fill: currentColor;
  line-height: inherit;
}

/* Hover：色が左→右に広がり白文字へ（親/子どちらに付けてもOK） */
.cta-fill.cta-fill--slide a:hover,
a.cta-fill.cta-fill--slide:hover {
  background-size: 100% 100%;
  color: #fff;
}

/* 幅・高さユーティリティ（親でも子でもOK） */
.is-cta-w-100 {
  --cta-w: 100%;
}
.is-cta-w-300 {
  --cta-w: 300px;
}
.is-cta-w-360 {
  --cta-w: 360px;
}

.is-cta-h-40 {
  --cta-h: 40px;
}
.is-cta-h-48 {
  --cta-h: 48px;
}
.is-cta-h-56 {
  --cta-h: 56px;
}
.is-cta-h-60 {
  --cta-h: 60px;
}

.is-cta-comfy {
  --cta-lh: 1.7;
  --cta-py: 1.2em;
}
.is-cta-tight {
  --cta-lh: 1.45;
  --cta-py: 0.8em;
}

/* フォーカスリング */
.cta-fill a:focus-visible,
a.cta-fill:focus-visible {
  outline: 3px solid rgba(40, 167, 69, 0.35);
  outline-offset: 2px;
}

/* 動きを減らす配慮 */
@media (prefers-reduced-motion: reduce) {
  .cta-fill a,
  a.cta-fill {
    transition: none;
  }
}

/* ========= カラーバリエ（親でも子でもOK） ========= */
.cta-fill.-red,
.cta-fill a.-red,
a.cta-fill.-red {
  --cta-color: #b91a2e;
} /* 赤 */
.cta-fill.-line,
.cta-fill a.-line,
a.cta-fill.-line {
  --cta-color: #00b900;
} /* LINE緑 */

/* ===== 逆パターン：初期ベタ → Hoverで白反転 ===== */
.cta-fill.-solid a,
a.cta-fill.-solid {
  background: var(--cta-color);
  background-image: linear-gradient(#fff, #fff);
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 0% 100%;
  color: #fff;
  border-radius: 10px;
}

/* 初期状態の文字色（白） */
.cta-fill.-solid a:link,
.cta-fill.-solid a:visited,
a.cta-fill.-solid:link,
a.cta-fill.-solid:visited {
  color: #fff;
}

/* Hover時は必ず緑文字に（:link/:visited どちらでも上書き） */
.cta-fill.-solid.cta-fill--slide a:hover,
.cta-fill.-solid.cta-fill--slide a:link:hover,
.cta-fill.-solid.cta-fill--slide a:visited:hover,
a.cta-fill.-solid.cta-fill--slide:hover,
a.cta-fill.-solid.cta-fill--slide:link:hover,
a.cta-fill.-solid.cta-fill--slide:visited:hover {
  background-size: 100% 100%;
  color: var(--cta-color);
}

/* スマホ向け：.cta-fill の角丸が効かない問題の対処
   - モバイルで背景や内側要素が角丸からはみ出すケースがあるため
     anchor に overflow:hidden と明示的な border-radius を付与する
   - 内側の要素にも inherit させて確実に丸く見せる */
/* Minimal safe patch from ChatGPT-5: base-level rounding + pseudo-element inheritance */
.cta-fill {
  --cta-radius: 10px;
  position: relative;
  border-radius: var(--cta-radius, 12px);
  overflow: hidden; /* iOS Safari のはみ出し対策 */
}

.cta-fill::before,
.cta-fill::after {
  border-radius: inherit;
}

@media (max-width: 768px) {
  .cta-fill:hover,
  .cta-fill:active {
    border-radius: var(--cta-radius, 12px);
  }
  .cta-fill:hover::before,
  .cta-fill:active::before,
  .cta-fill:hover::after,
  .cta-fill:active::after {
    border-radius: inherit;
  }
}

/* 保険：内部要素（画像など）がはみ出す場合 */
.cta-fill img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: inherit;
  object-fit: cover;
}

/* ======================================================
SWELLのフルワイド背景を指定のグラデーションに
====================================================== */
.bg-swell-grad {
  /* 好みで余白 */
  padding: clamp(24px, 4vw, 72px) 0;
  background-image: linear-gradient(
    0deg,
    rgba(58, 175, 61, 1),
    rgba(27, 97, 26, 1) 0%,
    rgba(3, 38, 0, 1) 70%
  );
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  color: inherit;
}

/* SWELLの内側コンテナが白で塗られる場合の透過対策 */
.bg-swell-grad .l-container,
.bg-swell-grad .c-container,
.bg-swell-grad .swell-block-inner {
  background: transparent !important;
}

/* フルワイドの左右余白が出るテーマ調整（必要なら） */
.alignfull.bg-swell-grad {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* =========================================================
   SLFS all-in-one (PC only, 1200px+)
   - SPメニューをPCで無効化（キルスイッチ）
   - ヘッダー内ブログパーツ（CTA + トリガー）
   - オーバーレイ本体（暗め透過 + スクロール可）
   - パネル（白ベース / 右カード任意）
   - 4カラムNav（親=見出し・子=リンク）
   - ブログパーツ由来のはみ出し矯正 / 背景解除
   ========================================================= */

/* ---------- 1) PCキルスイッチ：SPメニューはPCで無効 ---------- */

/* ---------- 2) ヘッダー内ブログパーツ（CTA + トリガー） ---------- */
@media (min-width: 1200px) {
  .l-header .is-hdr-parts {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .l-header .is-hdr-parts .swell-block-columns__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: nowrap;
  }
  .l-header .is-hdr-parts .swell-block-column {
    width: auto !important;
    flex: 0 0 auto;
  }
  .l-header .is-hdr-parts .swell-block-column:first-child {
    flex: 1 1 auto;
  } /* CTA列は伸縮OK */
  .l-header .is-hdr-parts .wp-block-spacer {
    display: none !important;
  }

  .l-header .is-hdr-parts .hdr-cta .swell-block-button__link {
    height: 44px;
    line-height: 44px;
    padding-inline: 18px;
    border-radius: 28px;
  }

  .l-header .is-hdr-parts .hdr-menuTrigger {
    all: unset;
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: 0.5rem;
    border-radius: 10px;
    background: var(--color_main, #00b900);
    color: #fff;
    cursor: pointer;
    line-height: 1;
    transition: filter 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
    z-index: 20;
  }
  .l-header .is-hdr-parts .hdr-menuTrigger:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
  }
  .l-header .is-hdr-parts .hdr-menuTrigger:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.9);
    outline-offset: 3px;
  }
}

/* SPではトリガーを出さない（SWELL標準に委任） */
@media (max-width: 1199px) {
  .l-header .is-hdr-parts .hdr-menuTrigger {
    display: none !important;
  }
}

/* ---------- 3) オーバーレイ本体（暗め透過 + スクロール可） ---------- */
@media (min-width: 1200px) {
  html.slfs-lock,
  body.slfs-lock {
    overflow: hidden;
  }
  .slfs-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
  }
  .slfs--corporate .slfs-overlay__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 15, 20, 0.5);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    opacity: 0;
    transition: opacity 0.25s ease;
  }
  .slfs--corporate .slfs-overlay__panel {
    position: absolute;
    inset: 0;
    display: block;
    height: 100%;
    overflow: auto;
    padding: 6vh 0;
    outline: none;
    opacity: 0;
    transform: translateY(-8px);
    transition: transform 0.25s ease, opacity 0.25s ease;
  }
  .slfs-overlay.is-open {
    pointer-events: auto;
  }
  .slfs-overlay.is-open .slfs-overlay__backdrop {
    opacity: 1;
  }
  .slfs-overlay.is-open .slfs-overlay__panel {
    opacity: 1;
    transform: none;
  }

  /* 管理バー（ログイン時） */
  .admin-bar .slfs-overlay__panel {
    top: 32px;
    height: calc(100% - 32px);
  }
}

/* ---------- 4) パネル（白ベース / 右カード任意） ---------- */
@media (min-width: 1200px) {
  .slfs--corporate .slfs-panel__inner {
    margin: 0 auto;
    width: min(1240px, 86vw);
    color: #162133;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.18);
    padding: 56px;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 40px;
    justify-items: start;
    text-align: left;
  }
  /* 右カード（使うとき：ブログパーツ側のグループに .slfs-card を付与） */
  .slfs-card {
    background: #f4f7fb;
    border: 1px solid #e5ecf5;
    border-radius: 10px;
    padding: 20px 20px 18px;
  }
  .slfs-card h3 {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: #0f2b4d;
  }
  .slfs-card p,
  .slfs-card li {
    color: #42556e;
    font-size: 14px;
    line-height: 1.7;
  }

  /* ヒーロー（任意）：グループに .slfs-hero を付ける */
  .slfs--corporate .slfs-hero {
    grid-column: 1 / -1;
    margin-bottom: 12px;
  }
  .slfs--corporate .slfs-hero h1,
  .slfs--corporate .slfs-hero h2 {
    margin: 0 0 14px;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.15;
    font-size: clamp(28px, 3vw, 40px);
    color: #0f2b4d;
  }
  .slfs--corporate .slfs-hero p {
    color: #5b6c82;
    font-size: 16px;
  }
  .slfs--corporate .slfs-hero .wp-block-buttons {
    gap: 16px;
  }
  .slfs--corporate .slfs-hero .wp-block-button__link {
    height: 48px;
    line-height: 48px;
    padding: 0 22px;
    border-radius: 28px;
    font-weight: 700;
  }
}

/* ---------- 5) 4カラム Nav（親=見出し・子=リンク） ---------- */
@media (min-width: 1200px) {
  .slfs--corporate .slfs-nav {
    grid-column: 1;
    list-style: none;
    margin: 0;
    padding: 8px 0 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(220px, 1fr));
    column-gap: 40px;
    row-gap: 28px;
    align-items: start;
    justify-items: start;
  }
  .slfs--corporate .slfs-nav > li {
    list-style: none;
    margin: 0;
    padding: 0;
    break-inside: avoid;
  }
  .slfs--corporate .slfs-nav > li > a {
    display: inline-block;
    margin: 0 0 6px;
    padding: 0;
    padding-right: 1em;
    color: #176032;
    font-weight: 800;
    font-size: clamp(16px, 1.4vw, 20px);
    line-height: 1.7;
    text-decoration: none;
    position: relative;
  }
  .slfs--corporate .slfs-nav > li > a:hover {
    color: #0b2614;
  }
  .slfs--corporate .slfs-nav .sub-menu {
    display: block;
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
  }
  .slfs--corporate .slfs-nav .sub-menu li {
    margin: 0.25em 0;
    padding: 0;
    list-style: none;
  }
  .slfs--corporate .slfs-nav .sub-menu a {
    display: inline-block;
    color: #21703b;
    font-weight: 600;
    font-size: clamp(14px, 1.05vw, 16px);
    line-height: 1.8;
    text-decoration: none;
    padding: 0;
    margin: 0;
  }
  .slfs--corporate .slfs-nav .sub-menu a:hover {
    color: #0b2614;
  }

  /* 閉じる（中央下） */
  .slfs--corporate .slfs-close {
    grid-column: 1 / -1;
    justify-self: center;
    margin-top: 8px;
    font-size: 14px;
    color: #5c6f88;
    background: #fff;
    border: 1px solid #d8e1ee;
    border-radius: 8px;
    padding: 0.45em 1.2em;
    cursor: pointer;
  }
  .slfs--corporate .slfs-close:hover {
    background: #f6f8fb;
  }
}

/* ---------- 6) ブログパーツの“はみ出し”矯正 / 背景解除 ---------- */
@media (min-width: 1200px) {
  .slfs-panel__inner > * {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .slfs-panel__inner .alignfull,
  .slfs-panel__inner .alignwide,
  .slfs-panel__inner [class*="alignfull"],
  .slfs-panel__inner [class*="alignwide"],
  .slfs-panel__inner .l-container,
  .slfs-panel__inner .c-container,
  .slfs-panel__inner .swell-block-inner {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .slfs-panel__inner .wp-block-columns,
  .slfs-panel__inner .swell-block-columns,
  .slfs-panel__inner [class*="wp-block-group"] {
    max-width: 100% !important;
    overflow: visible !important;
  }

  .slfs-panel__inner img,
  .slfs-panel__inner video,
  .slfs-panel__inner iframe {
    max-width: 100%;
    height: auto;
  }

  /* ブロック背景(グレー帯など)を面では無効化 */
  .slfs-panel__inner .has-background,
  .slfs-panel__inner [style*="background-color"] {
    background: transparent !important;
    padding: 0 !important;
  }

  .slfs-panel__inner h1,
  .slfs-panel__inner h2,
  .slfs-panel__inner h3 {
    margin-top: 0;
  }
  .slfs-panel__inner > *:first-child {
    margin-top: 0;
  }
  .slfs-panel__inner > *:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 1200px) {
  /* まず標準は1カラム（右の余白を消す） */
  .slfs--corporate .slfs-panel__inner {
    grid-template-columns: 1fr; /* ← 1列に */
  }
  /* 面の中に .slfs-card がある時だけ 1fr + 320px の2列に切り替え */
  .slfs--corporate .slfs-panel__inner:has(.slfs-card) {
    grid-template-columns: 1fr 320px;
  }
}

@media (min-width: 1200px) {
  .slfs--corporate .slfs-panel__inner {
    grid-template-columns: 1fr;
  }
  .slfs--corporate .slfs-panel__inner.slfs-has-card {
    grid-template-columns: 1fr 320px;
  }
}
@media (min-width: 1200px) {
  /* 既存の中央下の閉じるは隠す（下のボタンに置き換えるため） */
  .slfs--corporate .slfs-close {
    display: none;
  }

  /* 右上固定の閉じるボタン */
  .slfs--corporate .slfs-closeTop {
    position: fixed;
    top: 20px;
    right: 50px; /* 画面右上（ブラー領域） */
    width: 40px;
    height: 40px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #0f2b4d;
    border: 1px solid rgba(0, 0, 0, 0.12);
    cursor: pointer;
    z-index: 10000; /* オーバーレイ上に */
    transition: filter 0.15s ease, transform 0.15s ease;
  }
  .slfs--corporate .slfs-closeTop:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
  }
  .slfs--corporate .slfs-closeTop svg {
    width: 18px;
    height: 18px;
    display: block;
  }

  /* 管理バー表示時のズレ補正 */
  .admin-bar .slfs--corporate .slfs-closeTop {
    top: 52px;
  } /* 32〜46px程度。環境で微調整可 */

@media (min-width: 1200px) {
  .slfs--corporate .slfs-nav {
    grid-template-columns: repeat(4, minmax(220px, 1fr)) !important;
    justify-items: start !important;
  }
}

@media (min-width: 1200px) {
  /* 右上の閉じる（初期は非表示。Open時だけ出す） */
  .slfs--corporate .slfs-closeTop {
    position: fixed;
    top: 50px;
    right: 50px;
    display: none; /* is-open で表示 */
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #0f2b4d;
    border: 1px solid rgba(0, 0, 0, 0.12);
    cursor: pointer;
    z-index: 10001; /* overlay(9999) より上 */
    align-items: center;
    justify-content: center;
    transition: filter 0.15s ease, transform 0.15s ease;
  }
  .slfs-overlay.is-open .slfs-closeTop {
    display: inline-flex;
  }
  .slfs--corporate .slfs-closeTop:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
  }
  .slfs--corporate .slfs-closeTop svg {
    width: 18px;
    height: 18px;
    display: block;
  }

  /* ログイン中（管理バー）で被らないように */
  .admin-bar .slfs--corporate .slfs-closeTop {
    top: 52px;
  } /* 環境で 46〜52px 目安 */
}

/* 置き換え：メニューのリンクだけに限定（以前の .p-spMenu__inner a を置き換え） */
.c-spnav > li > a {
  padding: 10px 16px;
  text-align: left;
  transition: transform 0.5s;
}

/* 追加：メニュー内ウィジェット（ブログパーツ）は a の装飾をリセット */
.p-spMenu__body .widget a {
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  display: inline; /* 画像リンクは下の figure/img で制御 */
  color: inherit;
}

/* メニュー内のパーツをフル幅に（推奨：.spmenu-parts で囲う） */
.p-spMenu__body .spmenu-parts,
.p-spMenu__body .widget_text .textwidget {
  width: 100%;
}

/* 画像バナーを横幅いっぱい＆余白除去 */
.p-spMenu__body .spmenu-parts .wp-block-image,
.p-spMenu__body .spmenu-parts figure {
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  line-height: 0;
}
.p-spMenu__body .spmenu-parts img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
}

/* メニュー内のボタンブロックを整える（横幅100%＆中央揃え） */
@media (max-width: 767px) {
  .p-spMenu__body .spmenu-parts .wp-block-buttons {
    gap: 10px;
    margin: 8px 0 12px;
  }
  .p-spMenu__body .spmenu-parts .wp-block-button {
    width: 100%;
  }
  .p-spMenu__body .spmenu-parts .wp-block-button__link {
    display: flex;
    align-items: center; /* ← 縦センター */
    justify-content: center; /* ← 横センター */
    width: 100%;
    padding: 14px 16px;
    line-height: 1.3; /* 文字が上ずるのを防ぐ */
    text-align: center;
    white-space: normal; /* 2行になってもOKにしたい場合 */
    border-radius: 999px; /* お好みで */
  }
  /* アイコン＋テキストの間が詰まる時の保険 */
  .p-spMenu__body .spmenu-parts .wp-block-button__link > svg,
  .p-spMenu__body .spmenu-parts .wp-block-button__link > img {
    margin-right: 0.5em;
  }
}

/* ▼ グロナビ（SPメニューの項目）だけにパディングを適用 */
.c-spnav > li > a {
  padding: 10px 16px;
}

/* ▼ メニュー内ウィジェット（ブログパーツ）は a の装飾を初期化 */
.p-spMenu__body .widget a {
  padding: 0;
  background: none;
  border: 0;
  color: inherit;
}

/* ▼ 必要ならメニューの左右余白だけ微調整（好みで） */
@media (max-width: 767px) {
  .p-spMenu__body {
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* 検索アイコンの色を他と統一 */
.c-iconList__item.-search .c-iconList__link {
  background-color: transparent !important; /* 背景を透明に */
  color: #fff !important; /* アイコン色を白に（必要に応じて変更） */
  border: none !important; /* 枠線がある場合は消す */
}

/* ホバー時の挙動も他と合わせたい場合 */
.c-iconList__item.-search .c-iconList__link:hover {
  opacity: 0.7; /* SNSアイコンと同じ挙動（フェード） */
  background-color: transparent !important;
}


/* ========================================
 * セクションブロック
 * ======================================== */
.sl-section {
	width: 100%;
	height: auto;
	padding: 40px;
	border-radius: 10px;
}

/* モディファイア：白背景 */
.sl-section--white {
	background: #fff;
}

/* モディファイア：濃緑背景 */
.sl-section--darkgreen {
	background: #003d16;
}

/* PCサイズ（1200px以上）用 */
@media (min-width: 1200px) {
	.sl-section--freehand {
		width: 1200px !important;
		left: 0 !important;
	}

	.sl-section--white {
		width: 1200px !important;
	}
}
/* ========================================
 * 見出し装飾（３要素）
 * ======================================== */
.three-point-word {
  position: relative;
  padding: 8px !important;
  background: var(--color_main);
}


/* ==========================================================
 * 通常のグループブロック用：白背景がグラデの上でも出るように
 * ========================================================== */

/* グラデ背景を背面固定（::beforeも含む） */
.bg-swell-grad,
.bg-swell-grad::before {
	position: relative;
	z-index: 0 !important;
}

/* 白背景セクション（グループブロック用） */
.wp-block-group.sl-section--white {
	position: relative;
	z-index: 5; /* グラデより前に */
	background-color: #fff;
	border-radius: 10px;
	padding: 40px 24px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

/* スマホ時の余白微調整 */
@media (max-width: 768px) {
	.wp-block-group.sl-section--white {
		padding: 24px 16px;
	}
}

/* ------------------------------------------------------
  Fullscreen overlay (SLFS) fallback: ensure overlay is hidden by default
  and only shown when JS opens it (class .is-open is added).
  This guards against cases where CSS is not loaded or media queries
  incorrectly allow the markup to be visible on window resize.
------------------------------------------------------ */
.slfs-overlay {
  display: none !important; /* default: hidden */
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.slfs-overlay.is-open {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* keep the panel above other content when open */
.slfs-overlay .slfs-overlay__panel {
  z-index: 99999 !important;
}

/* ==========================================================
 * スマホで sl-section--white が非表示になる現象への包括対策
 * ========================================================== */
@media (max-width: 768px) {
  .wp-block-group.sl-section--white {
    display: block !important;
    position: relative !important;
    z-index: 10 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    padding: 24px 16px !important;
    background-color: #fff !important;
  }
}


/* ===== baseline：SPでは完全に隠す ===== */
.slfs-overlay{ display: none; }              /* ベースを非表示に */

@media (max-width:1199px){
  .slfs-overlay{ display: none !important; } /* 念押し：SPは常に非表示 */
}

/* ===== PCだけ表示（既存のPC用ルールの前でも後でもOK） ===== */
@media (min-width:1200px){
  .slfs-overlay{ display: block; }           /* PCでオーバーレイを有効に */
}

/* =========================================================
   SalesLine MegaMenu
   ========================================================= */
:root{
  --sl-mega-top : 92px;   /* ヘッダー下端 + 余白。環境に合わせて調整 */
  --sl-topnav   : #003818;/* グロナビ基本色 */
  --sl-green    : #196032;/* 見出し/カテゴリの緑 */
  --sl-green-l  : #21703b;/* 個別リンクの緑 */
  --sl-arrow    : 1.85em; /* 「>」アイコンのサイズ */
}

@media (min-width: 960px){

  /* ========== 上部ナビ統一（子あり/なしで高さズレ無し・色統一） ========== */
  nav#gnav .c-gnav > li > a,
  nav#gnav .c-gnav > li > a .ttl,
  nav#gnav .c-gnav > li.menu-item-has-children > a,
  nav#gnav .c-gnav > li.menu-item-has-children > a .ttl{
    color: var(--sl-topnav);
    padding: 8px 12px;                /* hoverでサイズが変わらないよう固定 */
    background: transparent;
    box-shadow: none;
    border-radius: 0;
  }
  nav#gnav .c-gnav > li > a:hover,
  nav#gnav .c-gnav > li > a:focus,
  nav#gnav .c-gnav > li.menu-item-has-children:hover > a,
  nav#gnav .c-gnav > li.menu-item-has-children:focus-within > a{
    color: var(--sl-topnav);
    background: transparent;
    box-shadow: none;
  }
  /* 親/子とも擬似要素の丸や下線は使わない */
  nav#gnav .c-gnav > li > a::before,
  nav#gnav .c-gnav > li > a::after,
  nav#gnav .c-gnav > li.menu-item-has-children > a::before{
    content: none; display: none;
  }

  /* ========== パネル：既存 .sub-menu を中央固定に（初期は非表示） ========== */
  .l-header, .l-header__inner, .l-header__gnav, .c-gnavWrap, nav#gnav, nav#gnav .c-gnav{
    overflow: visible;
  }
  nav#gnav .c-gnav > li.menu-item-has-children{ position: relative; }

  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu{
    position: fixed;
    left: 50vw;                         /* 画面中央 */
    top: var(--sl-mega-top);
    transform: translate(-50%, 6px);

    width: min(1240px, 92vw);
    max-height: calc(100vh - (var(--sl-mega-top) + 40px));
    overflow-y: auto;
    scrollbar-width: none;              /* Firefox 非表示 */
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 24px 80px rgba(0,0,0,.18);
    padding: 22px 28px;

    display: grid;
    grid-template-columns: repeat(4, minmax(220px,1fr));
    column-gap: 28px;
    row-gap: 16px;

    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
    z-index: 10001;
  }
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu::-webkit-scrollbar{ display: none; }

  /* タブ→パネルの“橋渡し帯”（hover切れ防止） */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu::before{
    content: "";
    position: fixed; left: 0; right: 0;
    height: 10px; top: calc(var(--sl-mega-top) - 10px);
    background: transparent; z-index: 10000;
  }

  /* 表示条件：親タブ hover/フォーカス or パネル hover */
  nav#gnav .c-gnav > li.menu-item-has-children:hover > ul.sub-menu,
  nav#gnav .c-gnav > li.menu-item-has-children:focus-within > ul.sub-menu,
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu:hover{
    opacity: 1; visibility: visible; pointer-events: auto;
    transform: translate(-50%, 0);
  }

  /* ========== パネル内：子リンク（カテゴリ見出し） ========== */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li{
    list-style: none; margin: 0; padding: 0; break-inside: avoid;
  }
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a,
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a .ttl{
    margin: 0 0 4px;                   /* 6px → 4px に詰める */
    color: var(--sl-green);
    font-weight: 800;
    text-decoration: none;
    line-height: 1.7;
    background: transparent; box-shadow: none; border: none;
  }
  /* 子の不要な擬似要素はOFF */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a::before,
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a .ttl::before{
    content: none; display: none;
  }

  /* ========== パネル内：実リンク（あなたのDOM：ul.sub-menu > li > a） ========== */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a{
    display: inline-flex; align-items: center;
    gap: .42em;                        /* 矢印と文字の距離 */
    margin: .18em 0;                   /* 行間を控えめに */
    line-height: 1.75;
    color: var(--sl-green-l);
    text-decoration: none;
  }
  /* 緑の「>」SVG（currentColorで自動着色 / サイズは --sl-arrow） */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a::before{
    content: "";
    display: inline-block;
    width: var(--sl-arrow);
    height: var(--sl-arrow);
    flex: 0 0 var(--sl-arrow);
    background: no-repeat center / contain;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M9 7.4 10.4 6l7 6-7 6L9 16.6 14.2 12 9 7.4z'/%3E%3C/svg%3E");
  }

  /* hover：色はそのまま / 下線のみ（テーマの装飾を遮断） */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu a:hover,
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu a:focus{
    color: inherit; text-decoration: underline;
    background: transparent; box-shadow: none; border: none;
  }
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu a:hover *,
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu a:focus *{
    color: inherit;
  }

  /* PCではSWELLの開閉ボタンは不要 */
  nav#gnav .c-submenuToggleBtn{ display: none; }
}

/* ========== SPはSWELL標準のまま（安全のため明示） ========== */
@media (max-width: 959.98px){
  .p-spMenu__body .sub-menu{ display: block; visibility: visible; }
}
/* === MegaMenu 子リンクの「>」矢印だけ色を固定（1.85em） === */
:root { --sl-arrow: 1.85em; }  /* サイズだけここで調整 */

@media (min-width: 960px){
  /* 子リンク本体はそのまま（色は文字用の #21703b を維持） */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a{
    display: inline-flex;
    align-items: center;
    gap: .42em;
    margin: .18em 0;
    line-height: 1.75;
    color: var(--sl-green-l);      /* ← これが文字色（必要なら別途変更） */
    text-decoration: none;
  }

  /* 矢印をマスクで着色（矢印だけ #1f8d3a に固定） */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a::before{
    content: "";
    display: inline-block;
    width: var(--sl-arrow);
    height: var(--sl-arrow);
    flex: 0 0 var(--sl-arrow);
    background-color: #1f8d3a;      /* ← 矢印の色だけ変えたい色に */
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox=%270 0 24 24%27%3E%3Cpath fill=%27%23fff%27 d=%27M9 7.4 10.4 6l7 6-7 6L9 16.6 14.2 12 9 7.4z%27/%3E%3C/svg%3E") no-repeat center/contain;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox=%270 0 24 24%27%3E%3Cpath fill=%27%23fff%27 d=%27M9 7.4 10.4 6l7 6-7 6L9 16.6 14.2 12 9 7.4z%27/%3E%3C/svg%3E") no-repeat center/contain;
  }

  /* 既存の currentColor 矢印を無効化（あれば）――!importantは付けません */
  nav#gnav .c-gnav > li.menu-item-has-children > ul.sub-menu > li > a::before{
    background-image: none;
  }
}

/* =========================================================
   SPのハンバーガーメニュー内だけに横余白を付ける
   ========================================================= */
@media (max-width: 960px) {
  /* ① 付けたクラスに左右パディング */
  .sl-spmenu-pad {
    padding-inline: 16px;   /* 好みで 12px/20px などに調整 */
    box-sizing: border-box;
  }

  /* ② SWELLの alignfull / alignwide をリセットして端貼り付きを防ぐ */
  .sl-spmenu-pad :is(.alignfull, .alignwide) {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  /* ③ ブログパーツ経由で入る場合の全幅系ブロックも保険で抑える */
  .sl-spmenu-pad :is(.wp-block-cover, .wp-block-image, .wp-block-group).alignfull {
    border-radius: 8px;           /* 任意：角丸を付けたい場合 */
    overflow: hidden;
  }
}

/* =========================================================
    検索モーダル内のテキストサイズ・色調整
   ========================================================= */
.p-searchModal__inner .s {
    font-size: 16px;
    color: #666;
}


/* =========================================================
   Zipaddr-JPのマウスホバー時の説明非表示
   ========================================================= */
div#autozip {
  display: none!important;
}


/* =========================================================
   Snow Monkey Forms カスタムスタイル
   ========================================================= */
.snow-monkey-form .smf-item {
  padding: 10px;
  background: #fff;
}
.snow-monkey-form .smf-item .smf-item__col {
  padding: 10px;
}
.snow-monkey-form .smf-item .smf-item__col--label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-weight: 700;
}
.snow-monkey-form .smf-item.-required .smf-item__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5em;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.snow-monkey-form .smf-item.-required .smf-item__label::after {
  content: "必須";
  font-size: 0.9em;
  padding: 6px;
  border-radius: 0px;
  margin-right: 10px;
  background: #b30000;
  color: #fff;
  line-height: 1;
  white-space: nowrap;
}
.snow-monkey-form .smf-item .smf-text-control__control,
.snow-monkey-form .smf-item .smf-textarea-control__control {
  width: 100%;
  padding: 1em;
  background-color: #f7f7f7;
  border-color: #f7f7f7;
  color: #333;
}
.snow-monkey-form .smf-item .smf-control-description {
  margin-top: 0.3em;
  font-weight: bold;
  color: #333;
}
.snow-monkey-form .smf-action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse;
}
.snow-monkey-form .smf-action .smf-button-control {
  margin-left: 0 !important;
}
.snow-monkey-form .smf-action .smf-system-error-content-ready {
  -webkit-box-ordinal-group: 21;
  -ms-flex-order: 20;
  order: 20;
  text-align: center;
}
.snow-monkey-form .smf-action .smf-button-control__control {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 3px;
}
.snow-monkey-form
  .smf-action
  .smf-button-control__control[data-action="confirm"],
.snow-monkey-form
  .smf-action
  .smf-button-control__control[data-action="complete"] {
  padding: 10px 35px;
  background: #38ad3d;
  color: #fff;
  font-size: 1.3em;
  font-weight: 700;
}
.snow-monkey-form
  .smf-action
  .smf-button-control__control[data-action="confirm"]:hover,
.snow-monkey-form
  .smf-action
  .smf-button-control__control[data-action="complete"]:hover {
  background: #003d16;
}
.snow-monkey-form .smf-action .smf-button-control__control[data-action="back"] {
  padding: 0.25em 1em;
  margin-top: 1rem;
  background: #f7f7f7;
  border: 1px solid hsla(0, 0%, 78%, 0.5);
}
.snow-monkey-form
  .smf-action
  .smf-button-control__control[data-action="back"]:hover {
  background: #dedede;
}
.snow-monkey-form .smf-complete-content {
  background: #fff;
}
@media (min-width: 640px) {
  .snow-monkey-form .smf-form.smf-form--simple-table {
    /* border-top: solid 1px #d6d6d6; */
  }
  .snow-monkey-form .smf-item {
    /* border: solid 1px #d6d6d6; */
    border-top-width: 0;
  }
  .snow-monkey-form .smf-item .smf-item__col--label {
    /* padding-left: 15px; */
    /* border-right: solid 1px #d6d6d6; */
  }
}
@media (max-width: 639px) {
  .snow-monkey-form .smf-item .smf-item__col--label {
    padding-top: 15px;
    padding-bottom: 0;
  }
}
