/*
Theme Name:   OAWeb Child Theme
Theme URI:    https://barbwire.co.jp/
Description:  Corporate Standard Child Theme
Author:       Barbwire Co., Ltd.
Author URI:   https://barbwire.co.jp/
Template:     corporate-standard-2
Version:      1.1.1
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
*/

/***********************************
NPO法人 光り輝く笑顔の種様 css 　
***********************************/

body {
  font-size: 1.025rem; /* 16.4px 相当 */
  color: #000;
}

/***********************************
ヘッダ
***********************************/
/****ロゴ*****/
.header-contents-upper .site-title img {
  margin-top: 20px;
  width: 340px;
}
/*----- タブレット：900px以下で表示 -----*/
@media screen and (max-width: 900px) {
  .header-contents-upper .site-title img {
    margin-top: 0px;
    width: 400px;
  }
}
/*----- スマホ：767px以下で表示 -----*/
@media screen and (max-width: 767px) {
  .header-contents-upper .site-title img {
    margin: 0px auto;
    width: 90% !important;
  }
}

/*****お問い合わせボタン*****/
.header-controls {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}
.header-buttons .wp-block-button a {
  border: none;
  background: #4bada0 !important;
  color: #fff !important;
  padding: 18px;
  border-radius: 10px;
  width: 240px;
}
.header-buttons .wp-block-button a:hover {
  opacity: 0.8;
  color: #fff !important;
}
/*お問合せボタン位置*/
.controls-wrap.header-controls .wp-block-buttons {
  margin-top: 20px;
  margin-right: 10px;
}

/*----- タブレット：900px以下で表示 -----*/
@media screen and (max-width: 900px) {
  /*お問合せボタン位置*/
  .controls-wrap.header-controls .wp-block-buttons {
    margin-top: 0;
    margin-right: 0 !important;
  }
  .header-buttons,
  .header-buttons .wp-block-button,
  .header-buttons .wp-block-button__link {
    width: 100% !important;
  }
  .header-buttons .wp-block-button__link {
    display: block;
    text-align: center;
  }
}
/*----- スマホ：767px以下で表示 -----*/
@media screen and (max-width: 767px) {
  .controls-wrap {
    margin-top: 0px;
  }
}

/***********************************
グローバルメニュー
***********************************/
/*pc用メニュー*/
.global-menu-pc > li {
  position: relative;
}
.global-menu-pc > li a:hover {
  color: #599946 !important;
}

/*after線 */
.global-menu-pc > li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1px;
  height: 50%;
  background-color: #91d3a0;
}
.global-menu-pc > .menu-item > a {
  padding: 0 8px !important;
  font-size: 16px;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700 !important;
  white-space: nowrap;
}

/*追随メニューの背景 はみ出し修正*/
/* 1000px以上（PC） */
@media screen and (min-width: 1000px) {
  #site-header-fixed {
    background: #fff; /* 追随メニューの背景（白） */
  }
}
/* 1000px未満（スマホ・タブレット） */
@media screen and (max-width: 999px) {
  #site-header-fixed {
    background: none; /* 追随メニューの背景（ナシ） */
  }
}

/*******プルダウンメニュー*******/
/*ナビテキスト*/
#site-header {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700 !important;
  color: #555;
}
.nav-mb-wrap .menu > li {
  padding-left: 20px;
}

/* ---スマホ用メニュー調整--- */
/*オープン*/
.header-mobile-toggle {
  background: #fff;
  border-radius: 5px;
  overflow: hidden; /*角の白いはみ出しカット */
}
#nav-mb-open {
  padding: 1.2rem; /* ハンバーガーボタン余白 */
  border: 2px solid #999;
}
/*クローズ*/
.header-contents .nav-mb-close-wrap {
  /*Xの右寄せ*/
  justify-content: flex-end;
}
.material-symbols-outlined {
  /*Xの太字大きく*/
  font-weight: bold;
  font-size: 30px;
}
#nav-mb-close {
  /*X隙間削除太字大きく*/
  margin-right: 0;
  border: 2px solid #999;
  border-radius: 5px;
  background: #fff;
}

.wp-block-query .wp-block-post-date a {
  display: flex;
  align-items: center;
  gap: 0.25em;
}
.wp-block-query .wp-block-post-date a:before {
  content: "\ebcc";
  font-family: var(--icon-font-family);
  font-size: 1.15rem;
  line-height: 1;
}
.wp-block-query .wp-block-post-date a,
#main-content .entry-meta {
  margin-top: 0;
  color: var(--b-theme-color-1);
  font-weight: bold;
}

/***********************
h1～h4
************************/
h1,
h2,
h3,
h4,
h5,
.header-title p/*投稿詳細タイトル*/ {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700 !important;
}

.header-title p /*投稿詳細タイトル*/ {
  padding-top: 19px;
  letter-spacing: 1.64px; /*デフォルトのh5と同じ*/
}

h1,
.header-title p /*投稿詳細タイトル*/ {
  font-size: clamp(1.75rem, 4vw, 2.1875rem); /* 28px 〜 35px */
  text-shadow: none;
}
h2 {
  font-size: clamp(1.5rem, 3vw, 1.875rem) !important; /* 24px 〜 30px */
}
h3 {
  font-size: clamp(1.25rem, 2.5vw, 1.4375rem) !important; /* 20px 〜 23px */
}
h4 {
  font-size: clamp(1.125rem, 2vw, 1.25rem) !important; /* 18px 〜 20px */
}

/****** h1 ******/
/*h1画像 が投稿一覧のキャプション背景出る為*/
.entry-header:has(img) {
  background: none;
  padding: 0;
}

.entry-header,
.page-header/*投稿一覧*/ {
  background: url(assets/img/h1_back.webp) no-repeat center bottom / cover;
  padding: 60px 0 100px 0;
}

/*---- タブレット：1200px以下 ----*/
@media screen and (max-width: 1200px) {
  .entry-header,
  .page-header/*投稿一覧*/ {
    background: url(assets/img/h1_back_sp.webp) no-repeat center bottom / cover;
  }
}

/*---- スマホ：767px以下 ----*/
@media screen and (max-width: 767px) {
  .entry-header {
    height: 11rem !important;
    padding: 40px 0 60px 0;
  }

  .header-title p /*投稿詳細タイトル*/ {
    padding-top: 15px;
  }
}

/****** 投稿ページ一覧用　h1 ****/
/*構造が違うのでpaddingの微調整*/
.page-header {
  padding: 60px 0 94px 0;
}

/*---- スマホ：767px以下 ----*/
@media screen and (max-width: 767px) {
  /*日付挿入後の変更　※高さ変更なければあとでスマホentry-headerと合体*/
  .page-header {
    height: 11rem !important;
    padding: 40px 0 60px 0 !important;
  }
}

/************/
/*文字色*/
.entry-header:has(h1),
.page-header-title,
.header-title p {
  color: #288d74;
  text-align: center;
  text-shadow: none;
}

/* ---スマホ用：1000px以下--- */
/*ヘッダー下隙間　詰め*/
@media (max-width: 1000px) {
  #site-header {
    padding-bottom: 0;
  }
}

/* --- スマホ用：767px以下--- */
@media screen and (max-width: 767px) {
  /*h1ブロックの上隙間なし*/
  #main-content:not(:has(.show-singular-thumbnail)) {
    padding-top: 0rem;
  }
}

/********h2装飾********/
/*.wp-block-heading.has-black-color,*/
h2.wp-block-heading {
  color: #3fa4e7 !important;
}

h2.wp-block-heading:not(:has(> a)):before {
  padding-left: 20%;
}
h2.wp-block-heading:not(:has(> a)):after {
  padding-right: 20%;
}
h2.wp-block-heading:not(:has(> a)):after,
h2.wp-block-heading:not(:has(> a)):before {
  background-color: transparent; /*元の赤線を消す*/
  position: relative;
  top: calc(50% - 4px);
  height: 8px;
  content: "";
  width: 5em;
  display: inline-block;
  flex-grow: 1;
  background-image: url("assets/img/h2_back.png");
  background-repeat: repeat;
}

/* --- スマホ用：767px以下 端まで--- */
@media (max-width: 767px) {
  h2.wp-block-heading:not(:has(> a)):after,
  h2.wp-block-heading:not(:has(> a)):before {
    padding: 0;
    width: auto;
    flex-grow: 1;
  }
}

/********h3装飾********/
h3.wp-block-heading,
h3.entry-title/*投稿一覧*/ {
  color: #27af82;
  position: relative;
  padding-bottom: 0.4em;
  border-bottom: 4px solid #ff76b7;
  display: flex; /* Flexbox化 */
  align-items: center; /* 上下中央揃え */
}

h3.wp-block-heading:after,
.oaweb_h3_underline-split h3:after/*投稿一覧*/ {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 30%;
  border-bottom: 4px solid #3fa4e7;
}

.oaweb_h3_underline-split h3/*投稿一覧*/ {
  margin-bottom: 10px;
}

.oaweb_h3_underline-split a:hover/*投稿一覧のh3ロールオーバー*/,
.archive article .view_detail:before/*詳細はこちらの＞*/ {
  color: #4da8da !important;
  opacity: 0.8;
}

/*テキスト前アイコン画像 */
h3.wp-block-heading:before {
  content: "";
  display: inline-block;
  width: 2em;
  height: 2em;
  margin-right: 0.5em; /*文字との間隔*/
  flex-shrink: 0; /* 画像潰れ防止 */
  background-image: url("assets/img/h3_before.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* --- スマホ用：768px以下 --- */
@media (max-width: 768px) {
  h3.wp-block-heading {
    align-items: center; /* 上下中央 */
  }
  h3.wp-block-heading:before {
    width: 2.8em;
    height: 2.8em;
  }
}
/********h4装飾********/
h4.wp-block-heading {
  margin-top: 0 !important;
  margin-bottom: 0;
  border-left: none;
  position: relative;
  display: inline-block;
  height: 36px;
  line-height: 36px;
  padding: 0 1.5rem 0 1rem;
  box-shadow:
    0px -5px #fada4e,
    0px 5px #fada4e;
  border-top: 2px dashed #fff;
  border-bottom: 2px dashed #fff;
  background-color: #fada4e;
  color: #6b650f;
  font-size: 1.2rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.6;
}

h4.wp-block-heading::after {
  position: absolute;
  top: -5px;
  width: 0px;
  height: 0px;
  border-color: transparent #fff;
  border-style: solid;
  content: "";
}

h4.wp-block-heading::after {
  right: 0;
  border-width: 23px 10px 23px 0px;
}

/* --- スマホ用：767px以下 *--- */
@media (max-width: 768px) {
  h4.wp-block-heading {
    margin-top: 1rem !important;
  }
}

/********h5装飾********/
h5.wp-block-heading,
.single-post .entry-content h1/*投稿詳細 記事タイトル*/ {
  border-left: none;
  background: #fff;
  --line-height: 28px;
  position: relative;
  /*margin-top: 3rem;*/
  margin-bottom: 20px;
  padding: 0 0 10px 20px;
  border-bottom: 2px solid #d1d5db;
  color: #f156b6;
  font-weight: bold;
}

h5.wp-block-heading::before,
.single-post .entry-content h1::before/*投稿詳細 記事タイトル*/ {
  content: "";
  position: absolute;
  top: 3px;
  left: 0;
  width: 8px;
  height: var(--line-height);
  background-color: #f156b6;
}

.single-post .entry-content h1/*投稿詳細 記事タイトル*/ {
  font-size: 1.25rem;
}

/***********************
h2間隔調整
************************/
h2.wp-block-heading {
  margin-top: 7rem !important;
  margin-bottom: 2rem !important;
}

/*top 最初のh2に.first-heading追加*/
h2.wp-block-heading.first-heading {
  margin-top: 6rem !important;
}

/* --- タブレット用：1100px以下 *--- */
@media (max-width: 1100px) {
  h2.wp-block-heading {
    margin-top: 5rem !important;
    margin-bottom: 1.5rem !important;
  }
}

/* --- スマホ用：767px以下 *--- */
@media (max-width: 767px) {
  h2.wp-block-heading {
    margin-top: 5rem !important;
    margin-bottom: 1.3rem !important;
  }

  h2.wp-block-heading.first-heading {
    margin-top: 4.5rem !important;
  }
}

/***********************************
共通ボタン
***********************************/
#main-content .oaweb-layout .oaweb-btn,
#main-content .wp-block-button__link {
  margin: 0 auto;
  color: #fff !important;
  background: #4bada0;
  border-radius: 10px;
  position: relative;
  font-size: 18px;
  white-space: nowrap;
  border-right: 5px solid #4bada0; /*矢印と右端の間隔の為*/
}

#main-content .oaweb-layout .oaweb-btn::after,
#main-content .wp-block-button__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  width: 10px;
  height: 10px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  transition: all 0.3s;
}

/* ホバー（ロールオーバー）時の処理 */
#main-content .oaweb-layout .oaweb-btn:hover,
#main-content .wp-block-button__link:hover {
  opacity: 0.8;
  color: #fff !important;
}

#main-content .oaweb-layout .oaweb-btn:hover::after,
#main-content .wp-block-button__link:hover::after {
  right: 10px; /* 矢印の位置を右に動かす */
}

/* ---  スマホ用--- */
@media (max-width: 767px) {
  #main-content .wp-block-buttons > .wp-block-button {
    width: 100%;
  }
}

/*カラム内ボタン右寄せ*/
.wp-block-buttons {
  justify-content: flex-end;
}

/***********************************
カラム gap調整
***********************************/
/*トップ*/
.oaweb-layout.oaweb--media-left .oaweb-item {
  gap: 2.5rem;
}
/* ---  スマホ用：1000px以下 --- */
@media (max-width: 1000px) {
  .oaweb-layout.oaweb--media-left .oaweb-item {
    gap: 1rem;
  }
}

/*下層*/
.is-layout-flex {
  gap: 2.5rem;
}

/* --- スマホ用：1000px以下 --- */
@media (max-width: 1000px) {
  .is-layout-flex {
    gap: 1rem;
  }
}

/***********************
トップ 
************************/
/*******ひな形間隔等 調整******/
/*画像*/
.oaweb-media img {
  border-radius: 10px;
}

/*左右レイアウト 下層共通　画像比率4:3から黄金比へ変更*/
.oaweb--media-left .oaweb-media img {
  aspect-ratio: 1.618 / 1;
}

/*4列画像横並びレイアウト　gap調整　事業内容段落に使用*/
.oaweb-cell-4x2 .oaweb-cells {
  gap: 2rem 2.5rem;
}

.oaweb-cell-4x2 .oaweb-cells .wp-element-caption {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700 !important;
  color: #444;
}

/*4列画像横並びレイアウト　中身上揃え　事業内容段落に使用
　テキスト2行で段差ができる為*/
.oaweb-cells.multi-line {
  align-items: flex-start;
  text-align: center;
}

/* ---スマホ用--- */
@media (max-width: 767px) {
  .oaweb-cell-4x2 .oaweb-cells {
    gap: 1.2rem 0.85rem;
  }
  .wp-block-image figcaption {
    font-size: 12px;
    line-height: 1;
    margin-top: 0.3em;
    margin-bottom: 0.3em;
  }
  .oaweb-cell-4x2 .oaweb-cells .wp-element-caption {
    font-size: 0.8em;
    line-height: 1.5;
  }
  /*テキスト左寄せ*/
  .oaweb-cell-4x2 .text_left_sp {
    text-align: left;
  }
}

/*お知らせ・イベント&
　アート作品ギャラリー段落に使用*/
.staff-blog {
  margin-top: 0;
}
.staff-blog ul li a:hover {
  color: #4da8da !important;
}

.staff-blog ul li h2 {
  font-size: 20px !important;
  padding-bottom: 0;
  margin-top: 0.5rem;
}
/* ---スマホ用---   */
@media screen and (max-width: 767px) {
  .staff-blog ul {
    margin-bottom: 0px;
  }
  /*h2との間隔調整*/
  .contents-pattern_02 {
    margin: 0px 0 60px 0;
  }
}

/*一覧へのテキストリンク*/
/*右スペース削除*/
.more-link_01 {
  margin-right: 0;
}
.more-link_01 a {
  color: #3fa4e7 !important;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700 !important;
}

/*---------------*/

/*全幅カバー　下層共通*/
.wp-block-cover {
  min-height: auto;
}
.wp-block-cover__background {
  background-color: #f2f7e6 !important;
}
/*カバー上下間隔*/
.wp-block-cover:has(> .wp-block-cover__background) {
  padding-top: 0rem;
  padding-bottom: 6.5rem;
}

/*カバー内のh2*/
.wp-block-cover h2.wp-block-heading {
  margin-top: 5rem !important;
}

/* ---スマホ用---   */
@media screen and (max-width: 767px) {
  .wp-block-cover:has(> .wp-block-cover__background) {
    margin-top: 5rem;
    padding-bottom: 3.5rem;
  }
}

/*寄付バナー・法人紹介の理念画像に使用*/
/*---- スマホ：767px以下 ----*/
@media screen and (max-width: 767px) {
  .img_nospace {
    margin-top: 0;
  }
}

/***********************
テーブル
************************/
.egao_table {
  width: 100%;
  border-collapse: collapse;
}

/*お話会・座談会テーブルのみ使用*/
.egao_table.space_nomargin {
  margin-top: 5px !important;
}

.egao_table td {
  /* 縦線なし（上下の線のみ） */
  border-top: 1px solid #68a8fc;
  border-bottom: 1px solid #68a8fc;
  border-left: none;
  border-right: 0;
  padding: 20px;
  text-align: left;
  vertical-align: middle;
}

.egao_table td:first-child {
  width: 25%;
  font-weight: bold;
  text-align: center;
  position: relative; /* 線を配置する基準 */
  background-color: transparent;
}

/* 垂直線の設定 */
.egao_table td:first-child::after {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  right: 0;
  width: 1px;
  background-color: #68a8fc;
}

.egao_table td {
  width: 75%;
}

/*リンクアイコンの下線消し*/
.egao_table td a {
  border-bottom: none;
}

/* ---スマホ表示 (767px以下) --- */
@media (max-width: 767px) {
  .egao_table {
    border: none;
    border-collapse: separate;
    border-spacing: 0;
    overflow: visible; /*長いテーブルでスクロール表示を消す*/
  }

  .egao_table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
    border: none;
    padding: 15px 10px;
  }

  .egao_table td:first-child {
    display: block;
    width: 100%; /* 横幅を右端まで伸ばす */
    box-sizing: border-box; /* paddingを含めて100%に収める */
    padding: 6px 10px;
    border: none;
    background-color: #ccf0e7;
    font-weight: bold;
    text-align: left;
    position: static;
  }

  /* 擬似要素による縦線のみを非表示にする */
  .egao_table td:first-child::after {
    display: none;
  }

  /*2列目のtd*/
  .egao_table td:nth-child(2) {
    padding-bottom: 30px !important;
  }

  /*最後のtd*/
  .egao_table tr:last-child td:nth-child(2) {
    padding-bottom: 0 !important;
  }
}

/***snsリンク用　テーブル ※トップに使用***/
.egao_table.sns_table td,
.egao_table.sns_table td:first-child {
  background: rgba(255, 255, 255, 0.6);
}
.egao_table.sns_table td:first-child {
  width: 35%;
  text-align: left;
}
.sns_table td span {
  margin-right: 10px;
}
.sns_table td img {
  width: 40px;
}

/* ---スマホ表示 (767px以下) --- */
@media (max-width: 767px) {
  .egao_table.sns_table {
    display: block;
    width: 90%;
    margin: 0 auto;
  }
  .egao_table.sns_table tbody,
  .egao_table.sns_table tr,
  .egao_table.sns_table td {
    display: block;
    width: 100% !important;
    border-radius: 10px;
  }
  .egao_table.sns_table tr {
    display: block;
    margin-bottom: 15px;
    border: 1px solid #68a8fc; /* 1行囲み */
  }
  .egao_table.sns_table td {
    padding: 20px 0;
    text-align: center !important;
  }

  table.egao_table.sns_table td:first-child {
    padding: 10px 0;
    border: none;
    background-color: #dce9fc;
  }

  table.egao_table.sns_table td:first-child {
    padding: 10px 0;
    border: none;
    background-color: #dce9fc;
  }

  /*最後のtd*/
  /* SNSテーブル：最後のtd */
  table.egao_table.sns_table tr:last-child td:nth-child(2) {
    padding-bottom: 30px !important;
  }
}

/***********************
下層ページ 共通
************************/
/*汎用スペース上*/
.space_none {
  margin-top: 0;
}
.space_s {
  margin-top: 15px;
}
.space_s_padding {
  padding-top: 15px;
}

.space_m {
  margin-top: 25px;
}
.space_m_padding {
  padding-top: 25px;
}
.space_l {
  margin-top: 35px;
}
.space_ll {
  margin-top: 45px;
}

/*定期開催イベントh3に使用*/
.space_xl {
  margin-top: 6rem;
}
/* --- スマホ用：767px以下 *--- */
@media (max-width: 767px) {
  .space_xl {
    margin-top: 5rem;
  }
}

/*汎用スペース下*/
.space_s_under {
  margin-bottom: 15px;
}
.space_m_under {
  margin-bottom: 25px;
}

/*カラム内の画像*/
figure.wp-block-image img {
  border-radius: 10px;
}

/*区切り線*/
.wp-block-separator {
  /*デフォルトの線を消す*/
  margin-top: 40px;
  border: none;
}
hr {
  max-width: 1100px;
  height: 8px;
  background-image: repeating-linear-gradient(45deg, #97e2c4 0, #97e2c4 1px, transparent 0, transparent 50%), repeating-linear-gradient(135deg, #97e2c4 0, #97e2c4 1px, transparent 0, transparent 50%);
  background-size: 8px 8px;
}
/* ---スマホ用--- */
@media screen and (max-width: 1200px) {
  hr {
    max-width: 90%;
  }
}

/*お問い合わせ*/
.contact-area {
  border: none;
  border-radius: 10px !important;
  background: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}

/* ---スマホ表示 (767px以下) --- */
@media (max-width: 767px) {
  .contact-area {
    margin-bottom: 1.5rem !important;
  }
}

.contact-area .wp-block-button a.wp-block-button__link {
  border-radius: 10px !important;
  color: #fff !important;
  width: 300px;
  margin-bottom: 25px;
}

.contact-area .wp-block-button__link {
  background: #62ad4b;
  transition: background 0.3s ease;
}

/* ホバー（ロールオーバー）時の処理 */
.contact-area .wp-block-button__link:hover {
  opacity: 0.8;
  transition: all 0.3s;
}

/*テキスト回り込み画像*/
.wraparound_img {
  max-width: 400px;
}
/* ---スマホ表示 (767px以下) --- */
@media (max-width: 767px) {
  .wraparound_img {
    max-width: 100%;
  }
}

/****左右逆転レイアウト・スマホ****/
@media screen and (max-width: 767px) {
  .reverse-sp {
    flex-direction: column-reverse !important;
  }
}

/****リンクテキスト****/
body:not(.home) .entry-content a:not(.wp-block-button__link) {
  color: #0077b6 !important;
  border-bottom: 1px solid #0077b6;
}

body:not(.home) .entry-content a:not(.wp-block-button__link):visited {
  color: #0077b6;
}

body:not(.home) .entry-content a:not(.wp-block-button__link):hover {
  opacity: 0.8;
}

.egao_table td a {
  border-bottom: none;
}

/****外部リンクテキスト****/
/*画像以外は下線+外部リンクアイコン*/
.entry-content a[target="_blank"]:not(:has(img)) {
  text-decoration: underline !important;
  color: #0077b6 !important;
}

.entry-content a[target="_blank"]:not(:has(img)):hover {
  opacity: 0.8; /* ボタンを少し薄くする */
}

.entry-content a[target="_blank"]:not(:has(img)):after {
  content: "\e89e";
  font-family: var(--icon-font-family);
  position: relative;
  top: 5px;
  margin-left: 3px;
  font-size: 1.1rem;
  display: inline-block;
  margin-top: -0.5rem;
}

/***********************************
法人紹介・ご入会案内
***********************************/
/*囲みステッチリスト*/
.stitch_list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* 最小幅300px*/
  gap: 10px 20px; /* 行間と列間 */
  list-style: none;
  margin: 20px 10px 30px 10px; /* 左右調整 */
  padding: 1em 2em;
  background: #fffde8;
  box-shadow: 0px 0px 0px 10px #fffde8; /* 線の外側 */
  border: dashed 2px #ffb03f; /* 破線 */
  border-radius: 9px;
}

.stitch_list li {
  position: relative;
  line-height: 1.5;
}

ul:not(.menu) li:before {
  background: #ffb03f;
}

/*枠囲み強調*/
span.highlight-gr {
  background-color: #6db873;
  color: #fff;
  /*border: 1px solid #82c08f;*/
  font-weight: bold;
}

/*span.highlight-blue, 他要素が無ければ消して上と合体する*/
span.highlight-gr {
  display: inline-block;
  margin-top: 10px;
  margin-right: 10px;
  margin-bottom: 5px;
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}
/* ---スマホ用--- */
@media screen and (max-width: 767px) {
  span.highlight-gr {
    display: table; /* block から table に変更 */
  }
}

/***********************************
事業内容
***********************************/
/*リスト*/
.nomal_list {
  list-style: none;
  padding: 0 0 0 15px;
}

.nomal_list li {
  font-weight: bold;
  color: #1b9945;
}

.nomal_list li:before {
  background: #34d195;
}

.nomal_list p {
  font-weight: normal !important;
  color: #000;
}

/***********************************
定期開催イベント
***********************************/
h4.wp-block-heading.regular-events {
  margin-top: 20px !important;
  margin-bottom: 10px;
}
/***********************************
スタッフ紹介
***********************************/
/*スタッフ用 h3*/
.staff_table_wrap h3.wp-block-heading {
  color: #1f92a1;
  margin-bottom: 15px;
}

/*ふりがな*/
.staff_table_wrap h3.wp-block-heading span {
  font-size: 1rem;
}
/*---- スマホ：767px以下 ----*/
@media screen and (max-width: 767px) {
  .staff_table_wrap h3.wp-block-heading span {
    font-size: 0.9rem;
  }
}

.staff_table_wrap .wp-block-image {
  margin-top: 0 !important;
}

/*カラム間*/
.staff_space {
  margin-top: 6rem;
}

/*スタッフ紹介テーブル*/
.staff_table_wrap {
  border: none;
  border-radius: 10px !important;
  box-shadow: 0 0 10px rgba(133, 133, 133, 0.2);
  padding: 30px;
}

/*ピンクブルー背景*/
.staff_table_wrap.pink {
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='500' height='350'><defs><linearGradient id='fade' x1='0' y1='0' x2='0' y2='1'><stop offset='40%' stop-color='%23fff' stop-opacity='1'/><stop offset='100%' stop-color='%23fff' stop-opacity='0'/></linearGradient><filter id='w'><feTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='2' seed='9' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='80' result='d'/><feGaussianBlur in='d' stdDeviation='25'/></filter><mask id='mask'><rect width='500' height='350' fill='url(%23fade)'/></mask></defs><g mask='url(%23mask)'><circle cx='120' cy='120' r='140' fill='%237fd3d8' opacity='0.45' filter='url(%23w)'/><circle cx='380' cy='230' r='150' fill='%23f6a6c1' opacity='0.45' filter='url(%23w)'/></g></svg>") no-repeat center / cover;
}

/*グリーンイエロー背景*/
.staff_table_wrap.green {
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='500' height='350'><defs><linearGradient id='fade' x1='0' y1='0' x2='0' y2='1'><stop offset='40%' stop-color='%23fff' stop-opacity='1'/><stop offset='100%' stop-color='%23fff' stop-opacity='0'/></linearGradient><filter id='w'><feTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='2' seed='9' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='80' result='d'/><feGaussianBlur in='d' stdDeviation='25'/></filter><mask id='mask'><rect width='500' height='350' fill='url(%23fade)'/></mask></defs><g mask='url(%23mask)'><circle cx='120' cy='230' r='110' fill='%23f6e07f' opacity='0.45' filter='url(%23w)'/><circle cx='380' cy='120' r='180' fill='%237ed3a6' opacity='0.45' filter='url(%23w)'/></g></svg>") no-repeat center / cover;
}

/* テーブル全体 */
.wp-block-table.staff-table table {
  table-layout: auto;
  border-collapse: separate;
  border-spacing: 5px;
  border: none;
  background-color: transparent;
  width: 100%;
  margin: 0;
}

/* 各セル */
.staff-table td {
  border: none !important;
  background-color: #ffffff;
  padding: 15px;
}

/* 四隅のセルを角丸にする */
.staff-table tr:first-child td:first-child {
  border-top-left-radius: 10px;
}
.staff-table tr:first-child td:last-child {
  border-top-right-radius: 10px;
}
.staff-table tr:last-child td:first-child {
  border-bottom-left-radius: 10px;
}
.staff-table tr:last-child td:last-child {
  border-bottom-right-radius: 10px;
}

/* テーブル全体 ボーダー有
.wp-block-table.staff-table table {
  table-layout: auto;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  border: 3px solid #dbd3ce;
  overflow: hidden;
  width: 100%;
  margin: 0;
}

/* 各セル 
.staff-table td {
  border: none;
  border-bottom: 4px solid #dbd3ce !important;
  border-right: 4px solid #dbd3ce !important;
  padding: 12px;
}


/* 右端・下端の枠線を消す
.staff-table td:last-child {
  border-right: none !important;
}
.staff-table tr:last-child td {
  border-bottom: none !important;
}
*/

/*--colspanを使用する場合の為--*/
/* 1行目（colspan） */
.staff-table td[colspan="2"] {
  width: 100%;
  background-color: #fff;
  font-weight: normal;
  color: inherit;
}

/* 2行目以降の左側（colspanを除外して30%） */
.staff-table tr td:first-child:not([colspan]) {
  width: 30%;
  background-color: #faf4f0;
  color: #6d6763;
  font-weight: bold;
  vertical-align: middle;
}

/* 2行目以降の右側（70%） */
.staff-table tr td:nth-child(2) {
  width: 70%;
  color: #333;
  background-color: #fff;
}

.staff-table tr td span {
  display: block;
  border-bottom: 3px dashed #dbd3ce;
  margin-bottom: -20px;
  font-weight: bold;
  font-size: 20px !important;
}

/* --- スマホ用：1000px以下 --- */
@media screen and (max-width: 1000px) {
  .wp-block-table.staff-table table,
  .staff-table tbody,
  .staff-table tr,
  .staff-table td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }

  .staff-table tr {
    margin-bottom: 10px;
  }

  /* 1つ目のセル（上側）：上の角丸を残し、下の角丸をなくす */
  .staff-table tr td:first-child {
    border-radius: 10px 10px 0 0 !important;
    margin-bottom: 0;
  }

  /* 2つ目のセル（下側）：下の角丸を残し、上の角丸をなくす */
  .staff-table tr td:nth-child(2) {
    border-radius: 0 0 10px 10px !important;
    margin-bottom: 0;
  }
}

/***********************************
ご寄付のお願い
***********************************/
.dnation_list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  /*border: dashed 3px #ffb03f;  外枠の黄色破線 */
  overflow: hidden; /* はみ出た線をカット */
}

/* 各マスの右と下に線を引く */
.dnation_list > .wp-block-columns {
  border-right: dashed 3px #ffb03f;
  border-bottom: dashed 3px #ffb03f;
  padding: 1.5em 2em;
  box-sizing: border-box;
  background-color: transparent;

  /* 線の太さ(3px)に合わせてネガティブマージンを変更 */
  margin-right: -3px;
  margin-bottom: -3px;
}

/* 画像下部の余白 */
.dnation_list figure {
  margin-bottom: 20px;
}

/* 画像角丸なし */
.dnation_list figure.wp-block-image img {
  border-radius: 0;
}

/* 画像リンク下線なし */
.dnation_list a {
  border-bottom: none !important;
}

/* テキストを中央揃え */
.dnation_list p {
  text-align: center;
  font-size: 0.8rem;
}

/* カラム枠flexの中央揃え */
.dnation_list .wp-block-columns {
  justify-content: center;
}

/* カラム内の要素を縦積みで中央揃え */
.dnation_list .wp-block-column {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* margin-block-start を指定 */
.dnation_list .is-layout-flow > * {
  margin-block-start: 5px;
}

/* ---スマホ用--- */
@media screen and (max-width: 580px) {
  .dnation_list > .wp-block-columns {
    border-right: none;
    padding: 30px;
    box-sizing: border-box;
  }
}

/***********************************
投稿ページ
***********************************/
/*一覧ページの内容スタート位置*/
.entries {
  padding-top: 5rem;
  padding-bottom: 3rem;
}

/*個別ページの内容スタート位置*/
.single-post .entry-content {
  padding-top: 6rem;
}

.single-post .entry-content > .is-layout-flow {
  border-bottom: none;
}

/*投稿タイトル　リンク下線なし*/
.entry h3.entry-title a {
  border-bottom: none !important;
}

/*---- タブレット：767px以下 ----*/
@media screen and (max-width: 767px) {
  .entries {
    padding-top: 3rem;
    padding-bottom: 0rem;
  }

  .single-post .entry-content {
    padding-top: 4rem;
  }
}

/*投稿一覧のカラム間*/
.archive article {
  gap: 2rem;
  padding: 2rem 0;
}

/*画像比率4:3から黄金比へ変更*/
.archive article .entry-header img {
  border-radius: 10px;
  aspect-ratio: 1.618 / 1;
}

/***********************************
プライバシーポリシー
***********************************/
.privacy-wrap h3 {
  padding-top: 30px;
}

ul.notes_01 {
  /*リスト枠囲み*/
  width: 100%;
  margin: 20px auto 30px auto;
  border: solid 2px #a8a7a7;
  border-radius: 10px;
  padding: 20px 20px 20px 45px;
  list-style: none;
}

ul.notes_01 li:before {
  background: #3492d1;
}

/***********************************
サイトマップ
***********************************/
/*スタート位置*/
article.show-singular-thumbnail:has(.oaweb-sitemap) > .entry-content {
  padding-top: 5rem;
}
.oaweb-sitemap {
  max-width: 40%;
}

/* --- スマホ用：767px以下 *--- */
@media (max-width: 767px) {
  article.show-singular-thumbnail:has(.oaweb-sitemap) > .entry-content {
    padding-top: 3rem;
  }
  .oaweb-sitemap {
    max-width: 80%;
  }
}

.oaweb-sitemap__item {
  padding-bottom: 10px;
}

.oaweb-sitemap__item a {
  border-bottom: none !important;
}

.oaweb-sitemap__item a:hover {
  opacity: 0.8;
}

/***********************************
フッダー
***********************************/
/*最終ブロックがカバーで終了する
 ページのカバーに適用*/
.minus_block {
  margin-bottom: -5rem !important;
}

#site-footer {
  margin-top: 5rem !important;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700 !important;
}

.footer-contents-wrap {
  background-color: #fff;
  padding: 4rem 4rem 0;
  border-top: 1px solid #b6b5b5;
}

.footer-contents .footer-navi {
  justify-content: space-evenly;
}

.footer-contents-wrap .site-title {
  margin-bottom: 0 !important;
}

@media screen and (max-width: 767px) {
  .footer-navi {
    text-align: center;
  }
}

/* ---スマホ表示 (767px以下) --- */
@media screen and (max-width: 767px) {
  .footer-contents .site-title-pc img {
    display: block;
    vertical-align: bottom;
  }

  .header-controls {
    line-height: 1.3 !important;
    font-size: 0.92rem !important;
  }
}

#return_top {
  background: #5aca80;
}

#copyright {
  background: #1b9945;
  color: #ffffff;
}

/************************************
お問い合わせ
************************************/
.qr img {
  max-width: 60%;
  display: block;
  margin: 0 auto;
}

/************************************
お問い合わせ
************************************/
/*注意文言*/
.form_txt {
  background: #fff;
  padding: 20px 10px;
  width: 100%;
  max-width: 1000px;
  border: dashed 3px #4bada0;
  border-radius: 10px;
}

/********.form_txtを中に入れている親flexコンテナのみ適用 ********/
.is-layout-flex:has(> .form_txt) {
  justify-content: center;
  margin-bottom: 40px;
}

/*******フォーム全体の幅 *******/
.cf7 {
  max-width: 1000px;
  margin: 50px auto 0 auto;
  padding: 0 20px; /* スマホ時の左右余白 */
}

.cf7__list {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .cf7 {
    padding: 0;
  }
}

/******* 項目間の余白設定（CF7自動挿入タグによるズレ防止）*******/
.cf7__list dt,
.cf7__list dd {
  margin-top: 30px;
  padding-bottom: 30px;
  border-bottom: 1px solid #bcbcbc;
}

/******* 最初の項目だけ上の余白を削除 *******/
.cf7__list dt:first-of-type,
.cf7__list dt:first-of-type + dd {
  margin-top: 0;
}

.cf7__list dt {
  width: 35%;
  padding-top: 15px;
  clear: both; /* 回り込みズレを防止 */
}

.cf7__list dd {
  width: 65%;
  margin-left: 0;
}

/* CF7が自動生成するspanの挙動を調整 */
.wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  box-sizing: border-box; /* ← 追加 */
}

/* 必須・任意ラベル */
.cf7__required,
.cf7__optional {
  margin-right: 15px;
  padding: 6px 14px;
  color: #fff;
  font-size: 12px;
  vertical-align: 1px;
  display: inline-block; /* 崩れ防止 */
  border-radius: 8px;
}

.cf7__required {
  background: #be1d1d;
}

.cf7__optional {
  background: #878d8e;
}

/* input・textarea */
.cf7__list dd input[type="text"],
.cf7__list dd input[type="tel"],
.cf7__list dd input[type="email"],
.cf7__list dd textarea {
  width: 100%;
  padding: 15px 20px;
  background: #ffffff;
  border: none;
  border: 1px solid #7a7a7a;
  box-sizing: border-box;
}

/* ドロップダウンメニュー */
.cf7__select {
  position: relative;
}

.cf7__select:before {
  position: absolute;
  top: 50%;
  right: 20px;
  z-index: 10;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 8px solid #000;
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  pointer-events: none;
  content: "";
}

.cf7__select select {
  width: 100%;
  padding: 19px 20px;
  background: #f4f4f4;
  color: #a5a5a5;
  border: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* チェックボックス・ラジオボタン共通 */
.cf7__list dd .wpcf7-checkbox,
.cf7__list dd .wpcf7-radio {
  display: block;
  padding: 15px 0 10px;
}

.cf7__list dd .wpcf7-list-item {
  display: block;
  margin: 0;
}

.cf7__list dd .wpcf7-list-item:nth-child(n + 2) {
  margin-top: 18px;
}

.cf7__list dd .wpcf7-list-item label {
  cursor: pointer;
}

input[type="checkbox"],
input[type="radio"] {
  position: relative;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  border: 1px solid #bcbcbc;
  vertical-align: -3px;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* チェックボックス */
input[type="checkbox"]:checked {
  border: 1px solid #000;
  background: #000;
}

input[type="checkbox"]:checked:before {
  position: absolute;
  top: 2px;
  left: 5px;
  transform: rotate(50deg);
  width: 6px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: "";
}

/* ラジオボタン */
input[type="radio"] {
  border-radius: 50%;
}

input[type="radio"]:checked:before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #000;
  content: "";
}

/* プレースホルダーの色 */
::placeholder {
  color: #a5a5a5;
  opacity: 1;
}

/* 送信ボタンエリア */
.cf7__button {
  text-align: center;
  margin-top: 1.25rem;
}

input[type="submit"] {
  width: 260px;
  height: 60px;
  background: var(--b-theme-color-1);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: opacity 0.6s;
}

input[type="submit"]:disabled {
  background: #90a1b9;
}

input[type="submit"]:not(:disabled):hover {
  opacity: 0.6;
}

/* ローダー */
.wpcf7-spinner {
  vertical-align: middle;
}

/**入力内容に問題があります。確認して再度お試しください。の中央寄せ**/
.wpcf7 .response-wrap {
  text-align: center;
  margin: 2em auto;
}

.wpcf7 .wpcf7-turnstile {
  margin: 2rem 0;
}

.wpcf7 .wpcf7-turnstile > div > div {
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

/*送信ボタン上の空間削除*/
form .wpcf7-submit {
  margin: 0rem auto 0;
}

/***********スマートフォン用設定************/
@media screen and (max-width: 767px) {
  .cf7__list dt {
    width: 100%;
    margin-bottom: 10px;
    padding-top: 0;
    border-bottom: none;
    padding-bottom: 0;
  }

  .cf7__list dd {
    width: 100%;
    margin-top: 0; /*** dtとの間隔を詰め ***/
    margin-bottom: 20px; /*** 次の項目との間隔 ***/
  }

  .cf7__list dt:nth-of-type(n + 2),
  .cf7__list dd:nth-of-type(n + 2) {
    margin-top: 0;
  }

  .cf7__list dd .wpcf7-checkbox,
  .cf7__list dd .wpcf7-radio {
    padding: 10px 0 0;
  }

  input[type="submit"] {
    width: 180px;
    height: 56px;
  }
}

.row-acceptance {
  text-align: center;
  padding: 1em;
  background: var(--b-theme-color-1-pale);
}

.row-acceptance a {
  text-decoration: underline;
}

.row-acceptance strong {
  font-size: 1.2em;
}
