/*
 * 色等のデザイントークン(旧テーマから引き継ぎ)。フォントはSWELLのカスタマイザー設定を
 * そのまま使うため、ここでは持たない。
 */
:root{
  --brand-main: #0E63A5;
  --color-black: #1a1a1a;
  --color-gray: #959595;
  --color-mid-gray:#e6e9ed;
  --color-light-gray: #eeeeee;
  --accent-red: #F50057;
  --accent-yellow: #F9A826;
  --accent-green: #00BFA6;
  --color-white:#FFFFFF;
  --transition: all .3s cubic-bezier(0, 1, .64, 1);
}
/* ヘッダーCVボタンの見た目はparts/_button.cssの.c-ctaBtn共通スタイルを参照 */
/* Gutenbergの太字(B)ボタンが出力する <span class="bold"> 用 */
.bold {
  font-weight: 700;
}
/* ページネーションの数字(SWELL標準は#dedede)を少し濃いグレーに */
[class*="page-numbers"] {
  background-color: #cccccc;
  border-radius: 4px;
}
.p-breadcrumb__item .p-breadcrumb__text{
  font-size: 12px;
}
.p-breadcrumb__item [class*=" icon-"]:before, [class^=icon-]:before{
margin-top:3px;
}
.c-categoryList__separation:after, .p-breadcrumb__item:after{
  margin-top:2px;
}
/*
 * メインバナー(ACFオプション o_main_bnr、swell_child_display_banners()で出力)。
 * front-page/home/archive等どこで使っても効くよう共通ファイルに置く。
 */
.p-mainBanner__item {
  display: block;
}
.p-mainBanner__img {
  width: 100%;
  border-radius: 8px;
  transition: opacity .3s ease;
}
.p-mainBanner__img:hover {
  opacity: 0.8;
}
/*
 * SWELL標準はヘッダーメニュー各項目の「概要(オプション)」欄をc-smallNavTitleとして
 * リンク内に表示する。メニュー項目ごとに概要を1つずつ空にするのは手間なので、
 * CSS側で一律非表示にする。
 */
.c-smallNavTitle {
  display: none;
}
/*
 * ヘッダーバー右側のACFリンク(o_header_small_link、parts/header/head_bar.php)。
 * 別窓アイコンは_footer.cssの.l-footer__nav a[target="_blank"]と同じパターン。
 */
/* front-page.cssのグローバルなa:visited(color:黒)の方が詳細度が高く上書きされてしまうため、:visitedも明示する */
.c-headerSmallLink,
.c-headerSmallLink:visited {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  letter-spacing: var(--swl-letter_spacing, .2px);
  color: var(--color-white);
  white-space: nowrap;
}
.c-headerSmallLink[target="_blank"]::after {
  content: "";
  display: inline-flex;
  margin-left: 4px;
  background-position: center;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.914%207.914v5.815h5.815V7.914H7.914zM7.286%206.5a.786.786%200%2000-.786.786v7.071c0%20.434.352.786.786.786h7.071a.786.786%200%2000.786-.786V7.286a.786.786%200%2000-.786-.786H7.286z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16.07%2015.196V9.643h1.43v5.553a2.304%202.304%200%2001-2.304%202.304H9.643v-1.43h5.553a.874.874%200%2000.874-.874z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 18px;
  height: 18px;
  opacity: 0.7;
}
.c-headerSmallLink:hover {
  opacity: 0.7;
  text-decoration: underline;
}
/*
 * ヘッダーのグローバルナビ(.c-gnav)関連。ボタンの見た目はparts/_button.cssを参照。
 */
/* 幅が足りない時にflexで圧縮されて小さくなる/消えるのを防ぐ */
.c-gnav>.menu-item{
  display: flex;
  align-items: center;
}
.c-gnav>.menu-item>a .ttl{
  font-weight: 700 !important;
  display:inline-block;
}
.c-gnav .sub-menu a:before{
  display:none;
}
.c-gnav .c-ctaBtn{
  margin-left: 20px;
}
/* タブレット横〜1200px幅: ナビの文字を少し詰めてロゴが圧縮されるのを避ける */
@media (min-width: 1024px) and (max-width: 1200px) {
  .c-gnav>.menu-item>a .ttl{
    font-size: 13px;
  }
}
/* さらに幅が無い範囲: CTAボタンがはみ出すので、もう一段階詰める */
@media (max-width: 1023px) {
  .c-gnav>.menu-item>a .ttl{
    font-size: 12px;
  }
}
.p-spMenu__nav .c-ctaBtn.-red{
  margin-top:30px;
}
/* SP幅(767px以下)でだけ要素を非表示にする汎用ユーティリティ */
@media (max-width: 767px) {
  .u-sp-hide {
    display: none !important;
  }
}
/* PC幅(768px以上)でだけ要素を非表示にする汎用ユーティリティ */
@media (min-width: 768px) {
  .u-pc-hide {
    display: none !important;
  }
}
/*
 * CTAボタン共通スタイル(見た目・ホバー演出の使い回し用)。
 * 色は--cta-bg/--cta-color/--cta-overlayで変更する。使う側は
 * このセレクタリストに追記するか、新しい場所では.c-ctaBtnクラスを付けて使う。
 * ヘッダーも含め全ボタンを.c-ctaBtnに統一(旧.cv-btnは廃止)。
 * .c-gnav自体のレイアウトはparts/_header.cssを参照。
 */
.c-gnav .c-ctaBtn > a {
  height: 42px;
  padding:0 16px;
}
/* .c-ctaBtnが<li>に付く場合(ナビメニュー)は、固定heightではなくpaddingで高さを決める。
   これで<li>自体の高さも<a>の内容に合わせて自然に決まり、上下に隙間ができない */
a.c-ctaBtn,
.c-ctaBtn > a {
  width: 100%;
}
a.c-ctaBtn,
.c-ctaBtn > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 48px;
  border-radius: 50px;
  position: relative;
  overflow: hidden;
  transition: var(--transition);
  background-color: var(--cta-bg, var(--color-black));
  color: var(--cta-color, var(--color-white)) !important;
  box-sizing: border-box;
  font-weight: 700;
}
@media (max-width: 767px) {
a.c-ctaBtn,
.c-ctaBtn > a {
    padding: 14px 36px;
    font-size: 16px
}
  }
@media (min-width: 768px) {
a.c-ctaBtn,
.c-ctaBtn > a {
    font-size: 18px
}
  }
/*
 * 矢印アイコン。p-about__link等のSVG(丸背景+シェブロン)と同じ、円+三角の2色構成。
 * 円=--cta-color(文字色)、三角=--cta-bg(ボタン背景色)。文字色は元々背景とコントラストが
 * 効くように決まっているので、色バリエーションが増えても見えなくなる心配が無い。
 */
a.c-ctaBtn::after,
.c-ctaBtn > a::after {
  content: "\25B6";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 8px;
  line-height: 1;
  background-color: var(--cta-color, var(--color-white));
  color: var(--cta-bg, var(--color-black));
  padding-left: 1px;
}
/* ヘッダーナビ内の.c-ctaBtnだけは矢印アイコン無しにする */
.c-gnav .c-ctaBtn > a::after {
  content: none;
}
/*
 * SPナビ内のCTAボタン同士の間隔用(1つ目の下に20px余白ができる)。
 * SWELL標準の.c-listMenu.c-listMenu li{margin:0}(クラス二重指定で詳細度を
 * 上げている)に上書きされるため、こちらも.c-listMenuを含めて詳細度を上げる。
 */
.p-spMenu__nav .c-listMenu li.c-ctaBtn {
  margin-top: 20px;
}
/*
 * SPメニューの.c-ctaBtnは.c-spnav.c-listMenuの中にあり、SWELL標準の
 * border-bottom(.c-spnav a)とホバー時background-color(.c-listMenu a:hover)が
 * 赤いボタンに被って見た目が変わるため打ち消す。ホバー演出も他と違って左から
 * 塗りつぶす::beforeスライドは無しにして、c-arrowBtnと同じ単純なopacity透過にする。
 */
.p-spMenu__nav .c-ctaBtn > a {
  border-bottom: none;
}
.p-spMenu__nav .c-ctaBtn > a::before {
  content: none;
}
.p-spMenu__nav .c-ctaBtn > a:hover {
  background-color: var(--cta-bg, var(--color-black));
  opacity: 0.7;
}
/* SWELL標準のSPメニューのホバー背景色(灰色)は不要なので打ち消す */
.c-listMenu a:hover {
  background-color: transparent;
}
a.c-ctaBtn::before,
.c-ctaBtn > a::before {
  content: "";
  transition: var(--transition);
  background-color: var(--cta-overlay, hsla(0,0%,100%,.1));
  width: 30%;
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  transform: none;
  pointer-events: none;
}
a.c-ctaBtn:hover::before,
.c-ctaBtn > a:hover::before {
  width: 100%;
  opacity: 1;
}
/* 色違いパターン(クラスを付けるだけで色変更、styleを書く必要は無い) */
.c-ctaBtn.-white {
  --cta-bg: var(--color-white);
  --cta-color: var(--color-black);
  --cta-overlay: rgba(0, 0, 0, 0.1);
}
.c-ctaBtn.-red {
  /* 「カラー設定」ページのCTAボタン背景色。未入力ならこのデフォルト赤のまま。
     文字色は視認性のため白固定(2026-08-28) */
  --cta-bg: var(--design-cta-button-bg, #b73737);
  --cta-color: var(--color-white);
  --cta-overlay: rgba(255, 255, 255, 0.2);
}
/*
 * SWELL標準のボタンブロック(is-style-btn_normal、本文中は編集者がブロックエディタで
 * 追加するのでc-ctaBtnを強制しない)。色・アイコンはSWELLのままにしつつ、ホバーの
 * 動き(box-shadowで浮く演出)だけc-arrowBtnと同じ単純なopacity透過に揃える。
 */
.is-style-btn_normal .swell-block-button__link {
  transition: var(--transition);
}
.is-style-btn_normal .swell-block-button__link:hover {
  box-shadow: none;
  opacity: 0.7;
}
/*
 * 「＞」矢印(border技法)。color: currentColorで文字色に自動追従するので、
 * 背景/文字色が呼び出し側ごとに違う(p-about__link、c-arrowBtn等)ボタンでも共通で使い回せる。
 */
.c-arrowBtn__arrow {
  display: inline-block;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-top: 2.5px solid currentColor;
  border-right: 2.5px solid currentColor;
  transform: rotate(45deg);
  margin-right: -2px;
  margin-top: 2px;
}
/*
 * 「もっと見る」系ボタン共通(p-news-link a、p-categorySection__more a)。
 * カテゴリごとの色に関わらず黒で統一。
 */
.c-arrowBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0 8px;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  transition: var(--transition);
  background-color: var(--design-button-bg);
  color: var(--design-button-text);
  opacity: 1;
}
/* a:visitedの黒文字指定(front-page.css)より詳細度を上げて維持 */
.c-arrowBtn:visited {
    color: var(--design-button-text);
  }
.c-arrowBtn:hover {
    opacity: 0.7;
  }
/*
 * SWELL独自の「カラム」ブロック(.swell-block-column、標準のwp-block-columnではない)内で
 * is-style-crease(折り返しメモ風ボックス)を使うと、カラム自体の高さは揃っても中の
 * ボックスは自身のコンテンツ分の高さしかない。flex-direction:columnにして
 * is-style-creaseをflex:1で伸ばし、カラムの高さいっぱいに揃える。
 */
.swell-block-column {
  display: flex;
  flex-direction: column;
}
.swell-block-column .is-style-crease {
  flex: 1;
  box-sizing: border-box;
}
/*
 * 見出しは上固定のまま、本文の文字量差はボタンの位置(下揃え)で吸収する。
 * inner-containerを高さ100%のflex columnにし、ボタンだけmargin-top:autoで下へ押し出す。
 */
.swell-block-column .is-style-crease .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.swell-block-column .is-style-crease .swell-block-button {
  margin-top: auto;
}
/*
 * 固定ページのタイトルエリア(.c-pageTitle・.l-topTitleArea)専用スタイル。
 * 実際にSWELLがこのクラスを出力するのは固定ページ(page.php)のみなので、page.cssだけが
 * このファイルをimportする(2026-08-31、front-page/home/single-post等には元々出力されない
 * 無駄なコードだったため分離した)。
 */
/*
 * 「カラー設定」ページの固定ページタイトル用背景色・文字色。SWELL標準の
 * 「コンテンツヘッダー」設定(背景画像用オーバーレイ)とは別に、単色で管理する(2026-08-31)。
 * text-shadow(縁取り)だけは元々の見出しグループ(design-shared)のまま。
 */
.c-pageTitle{
    color: var(--design-page-title-text, var(--color-black));
    font-size: clamp(20px, 3vw, 34px);
    text-align: center;
    text-shadow: var(--design-shared-text-shadow-title);}
.l-topTitleArea {
      min-height: 120px;
      background-color: var(--design-page-title-bg, transparent);
  }
@media (min-width: 768px) {
.l-topTitleArea {
    min-height: 200px
  }
  }
/*
 * 背景画像・アイキャッチが未設定の固定ページはSWELL標準のNO IMAGE画像(no_img.png)が
 * フォールバック表示され、「固定ページタイトル」の背景色を隠してしまうため非表示にする。
 * ファイルは102バイトと極小で読み込み自体のコストは無視できるので、これだけで十分(2026-08-31)。
 */
.l-topTitleArea__img[src$="no_img.png"] {
  display: none;
}
/*
 * フッター(footer.php)は全ページ共通のため、ここも全ページで読み込まれる想定
 * (style.css から @import される)。
 */
.c-widget.widget_media_image img{
  width: 100%;
  max-width: 180px !important;
height: auto;
}
.w-beforeFooter{
  background: var(--color-black);
  padding:0px; 
}
.l-footer__widgetArea{
  background: var(--color-black);
  padding: 40px 0;
}
@media(min-width: 768px){
  .l-footer__widgetArea{
    padding: 60px 0;
  }
}
.c-widget__title.-footer{
  margin-bottom: 16px;
  padding-top:0;
}
/*
 * .w-footer__box(SWELL標準)は.l-container(標準コンテナ、他の要素と同じpadding)の中で
 * さらに独自にpadding:1emを持っており、両端の余白が二重になって他要素とズレる。
 * 両端のボックスだけpaddingを外して.l-containerの余白に揃える。
 */
.w-footer__box:first-child{
  padding-left: 0;
}
.w-footer__box:last-child{
  padding-right: 0;
}
/*
 * ウィジェットの自動採番ID(#nav_menu-2等)は作り直すたびに変わるため使わない。
 * ウィジェット種別の共通クラス(.widget_nav_menu)で指定する。
 * ボックスごとに分けたい場合は parts/footer/foot_widget.php で付与している
 * -footer_box1/-footer_box2/-footer_box3 クラスを使う。
 */
.w-footer__box .widget_nav_menu a{
    color: var(--color-white);
  font-size: 14px;
  border-bottom:none;
  padding:8px 0 8px 16px;
  width:fit-content;
}
.w-footer__box .widget_nav_menu a:hover{
  opacity:0.8;
  padding: 8px 0 8px 16px;
}
/* フッターウィジェットナビの外部リンク(target="_blank")に別窓アイコンを付ける。l-footer__navと同じアイコン */
.w-footer__box .widget_nav_menu a[target="_blank"] {
  display: inline-flex;
  align-items: center;
}
.w-footer__box .widget_nav_menu a[target="_blank"]::after {
  content: "";
  display: inline-flex;
  margin-left: 4px;
  background-position: center;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.914%207.914v5.815h5.815V7.914H7.914zM7.286%206.5a.786.786%200%2000-.786.786v7.071c0%20.434.352.786.786.786h7.071a.786.786%200%2000.786-.786V7.286a.786.786%200%2000-.786-.786H7.286z%22%20fill%3D%22%23fff%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16.07%2015.196V9.643h1.43v5.553a2.304%202.304%200%2001-2.304%202.304H9.643v-1.43h5.553a.874.874%200%2000.874-.874z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 18px;
  height: 18px;
  opacity: 0.6;
}
.w-beforeFooter{
  margin-top: 0;
}
.blank,
.copyright{
  color:var(--color-black);
}
.l-footer__nav a {
  color: var(--color-black);
}
/*
 * l-footer__nav(利用規約・運営会社など)の外部リンク(target="_blank")に
 * 別窓アイコンを付ける。site-list-componentで使っているのと同じアイコン・演出(ホバーで反転)。
 */
.l-footer__nav a[target="_blank"] {
  display: inline-flex;
  align-items: center;
}
.l-footer__nav a[target="_blank"]::after {
  content: "";
  display: inline-flex;
  margin-left: 4px;
  background-position: center;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7.914%207.914v5.815h5.815V7.914H7.914zM7.286%206.5a.786.786%200%2000-.786.786v7.071c0%20.434.352.786.786.786h7.071a.786.786%200%2000.786-.786V7.286a.786.786%200%2000-.786-.786H7.286z%22%20fill%3D%22%23000%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M16.07%2015.196V9.643h1.43v5.553a2.304%202.304%200%2001-2.304%202.304H9.643v-1.43h5.553a.874.874%200%2000.874-.874z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 18px;
  height: 18px;
  opacity: 0.6;
}
/* フッター直前のCTA(ACFオプション group_63d49e4121044、全ページ共通) */
.p-footerCta {
  background: var(--design-cta-bg);
  color: var(--design-cta-text);
  width: 100%;
  margin: 0 auto;
  padding: 40px 16px;
  text-align: center;
}
@media (min-width: 768px) {
.p-footerCta {
      padding: 80px 16px
}  
    }
.p-footerCta__inner {
  max-width: 980px;
  margin: 0 auto;
}
@media (min-width: 768px) {
.p-footerCta__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 40px;
    text-align: left
}
  }
.p-footerCta__title {
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.4;
  position: relative;
  padding-bottom: 16px;
  margin-bottom: 30px;
  text-shadow: var(--design-shared-text-shadow-title);
}
@media (min-width: 768px) {
.p-footerCta__title {
    grid-column: 1 / -1;
    text-align: center;
      margin-bottom: 40px
}
  }
.p-footerCta__title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2em;
  height: 2px;
  background: var(--design-cta-text);
}
.p-footerCta__title br{
  display:inline;
}
@media (min-width: 768px) {
.p-footerCta__title br{
    display:none
}
  }
.p-footerCta__desc {
  font-size: 14px;
  text-shadow: var(--design-shared-text-shadow-desc);
  font-weight:700;
  line-height: 1.8;
}
@media (min-width: 768px) {
.p-footerCta__desc {
    font-size: 16px;
    grid-column: 1
}
  }
.p-footerCta__btns {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
}
@media (min-width: 768px) {
.p-footerCta__btns {
    grid-column: 2;
    margin-top: 0;
    gap: 24px;
    max-width: 400px
}
  }
/* Pマーク(pmark.js側で画像挿入は処理済み。本番にも無かったサイズ調整だけこちらで追加) */
.pmark-inner img {
  width: 80px;
  height: 80px;
  -o-object-fit: contain;
  object-fit: contain;
  display: block;
}
