@charset "UTF-8";
/*!
Theme Name: tnet-v2
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: tnet-v2
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

tnet-v2 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Normalize
--------------------------------------------- */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
	 ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
	 ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
	 ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* Interactive
	 ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
	 ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Box sizing
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* Typography
--------------------------------------------- */
/* ===============================================
   Typography (TimeBurner)
=============================================== */
@font-face {
  font-family: "TimeBurner";
  src: url("../../assets/fonts/TimeBurner-Bold.woff2") format("woff2"), url("../../assets/fonts/TimeBurner-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "TimeBurner";
  src: url("../../assets/fonts/TimeBurner.woff2") format("woff2"), url("../../assets/fonts/TimeBurner.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/* ===============================================
   Typography (Noto Sans JP)
=============================================== */
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: url("../../assets/fonts/NotoSansJP-Regular.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 500;
  src: url("../../assets/fonts/NotoSansJP-Medium.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  src: url("../../assets/fonts/NotoSansJP-Bold.woff2") format("woff2");
  font-display: swap;
}
body,
button,
input,
select,
optgroup,
textarea {
  color: #404040;
  font-family: "Noto Sans JP", 游ゴシック体, YuGothic, "游ゴシック Medium", "Yu Gothic Medium", 游ゴシック, "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "MS Gothic", "ＭＳ ゴシック", Meiryo, メイリオ, sans-serif;
  font-size: 1.6rem;
  line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
}

p {
  margin-top: 0;
  margin-bottom: 1.2rem;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

pre {
  background: #eee;
  font-family: "Courier 10 Pitch", courier, monospace;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}

code,
kbd,
tt,
var {
  font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}

mark,
ins {
  background: #fff9c0;
  text-decoration: none;
}

big {
  font-size: 125%;
}

/* Elements
--------------------------------------------- */
html {
  font-size: 62.5%; /* 16px × 62.5% = 10px */
}

body {
  background: #fff;
}

hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}

ul,
ol {
  margin: 0 0 1.5em 3em;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}

dt {
  font-weight: 700;
}

dd {
  margin: 0 1.5em 1.5em;
}

/* 取引金融機関などの洗練されたリスト */
.p-dot-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 2em;
}
.p-dot-list li {
  position: relative;
  padding-left: 1.2em;
  margin-bottom: 0.8em;
  line-height: 1.6;
  /* ブランドカラーの小さなドットを擬似要素で描画 */
}
.p-dot-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  background-color: #194992;
  border-radius: 50%;
}

/* --------------------------------------------------
  規約・ポリシー用の階層リスト（自動採番）
-------------------------------------------------- */
.p-policy-list {
  list-style: none;
  counter-reset: policy-lv1;
  padding-left: 0;
  margin-bottom: 2em;
  /* ▼ 第1階層： a ) , b ) */
}
.p-policy-list > li {
  position: relative;
  padding-left: 1.8em;
  margin-bottom: 1.5em;
}
.p-policy-list > li::before {
  counter-increment: policy-lv1;
  content: counter(policy-lv1, lower-alpha) " )";
  position: absolute;
  left: 0;
  color: #194992;
  font-weight: bold;
}
.p-policy-list > li {
  /* ▼ 第2階層： 1 ) , 2 ) */
}
.p-policy-list > li ol {
  list-style: none;
  counter-reset: policy-lv2;
  padding-left: 0;
  margin-top: 1em;
}
.p-policy-list > li ol > li {
  position: relative;
  padding-left: 2em;
  margin-bottom: 0.8em;
}
.p-policy-list > li ol > li::before {
  counter-increment: policy-lv2;
  content: counter(policy-lv2) " )";
  position: absolute;
  left: 0;
  color: #194992;
  font-weight: bold;
}
.p-policy-list > li ol > li {
  /* ▼ 第三階層： 丸枠付き数字 */
}
.p-policy-list > li ol > li ol {
  list-style: none;
  counter-reset: policy-lv3;
  padding-left: 0;
  margin-top: 0.5em;
}
.p-policy-list > li ol > li ol > li {
  position: relative;
  padding-left: 1.8em;
  margin-bottom: 0.5em;
}
.p-policy-list > li ol > li ol > li::before {
  counter-increment: policy-lv3;
  content: counter(policy-lv3);
  /* 配置の調整 */
  position: absolute;
  left: 0;
  top: 0.1em;
  /* 丸枠を作るスタイル */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 1.4em;
  height: 1.4em;
  border: 1px solid #194992;
  border-radius: 50%;
  /* 文字のスタイル */
  color: #194992;
  font-size: 0.85em;
  line-height: 1;
}

/* --------------------------------------------------
  採用フロー用：縦型ステップUI
-------------------------------------------------- */
.p-step-flow {
  list-style: none;
  counter-reset: step-counter;
  padding-left: 0;
  margin: 0.5rem 0;
}
.p-step-flow li {
  position: relative;
  padding-left: 3rem; /* 丸アイコンの分の余白 */
  padding-bottom: 2rem; /* 次のステップへの距離 */
  min-height: 3rem;
  font-weight: bold;
  color: #194992; /* ブランドカラー */
  /* ステップ同士を繋ぐ縦線 */
}
.p-step-flow li::after {
  content: "";
  position: absolute;
  top: 2rem; /* 丸アイコンの下からスタート */
  left: 0.95rem; /* 丸アイコンのど真ん中に線を合わせる */
  width: 2px;
  height: calc(100% - 1.5rem);
  background-color: #5C98A4; /* 水色（適宜調整してください） */
}
.p-step-flow li {
  /* 最後の項目は下に縦線を伸ばさない */
}
.p-step-flow li:last-child::after {
  display: none;
}
.p-step-flow li {
  /* 丸アイコンと自動数字 */
}
.p-step-flow li::before {
  counter-increment: step-counter;
  content: counter(step-counter);
  position: absolute;
  top: -0.2rem;
  left: 0;
  width: 2rem;
  height: 2rem;
  background-color: #194992;
  color: #fff;
  border-radius: 50%;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0.9rem;
  z-index: 1;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
  max-width: 100%;
}

img {
  height: auto;
  max-width: 100%;
}

figure {
  margin: 1em 0;
}

table {
  margin: 0 0 1.5em;
  width: 100%;
}

.wp-block-table table {
  margin-bottom: 0;
}

/* 枠線なしのクリーンなテーブル（レスポンシブ対応） */
.p-clean-table {
  border: none !important;
  margin-top: 0;
  margin-bottom: 0;
  width: 100%;
}
.p-clean-table tr:first-child td {
  padding-top: 0;
}
.p-clean-table td, .p-clean-table th {
  border: none !important;
  background: transparent !important;
  vertical-align: top;
}
.p-clean-table {
  /* ▼ スマホ時のレイアウト（縦積み） */
}
@media (max-width: 781px) {
  .p-clean-table, .p-clean-table tbody, .p-clean-table tr, .p-clean-table td, .p-clean-table th {
    display: block;
    width: 100% !important;
  }
  .p-clean-table tr {
    margin-bottom: 1.5em;
  }
  .p-clean-table td {
    padding: 0 !important;
  }
  .p-clean-table td:first-child {
    font-weight: bold;
    margin-bottom: 0.2em;
    color: #194992;
  }
  .p-clean-table td:last-child {
    padding-left: 1em !important;
  }
}
.p-clean-table {
  /* ▼ PC時のレイアウト（横並び ＋ コロン揃え） */
}
@media (min-width: 782px) {
  .p-clean-table {
    table-layout: fixed;
  }
  .p-clean-table td {
    padding: 0.5em 0;
  }
  .p-clean-table td:first-child {
    width: 320px;
    position: relative;
  }
  .p-clean-table td:first-child::after {
    content: "：";
    position: absolute;
    right: 1em;
  }
  .p-clean-table td:last-child {
    padding-left: 1em;
  }
}

/* 項目名が短いテーブル用（アクセスページの住所など） */
@media (min-width: 782px) {
  .p-clean-table.is-short-label td:first-child {
    width: 120px;
  }
}

/* コロンを非表示にするオプションクラス */
@media (min-width: 782px) {
  .p-clean-table.is-no-colon td:first-child::after,
  .p-clean-table.is-no-colon th::after {
    content: none; /* コロンを消去 */
  }
}

/* --------------------------------------------------
  採用情報：入り口カードコンポーネント（カスタムHTML版）
-------------------------------------------------- */
/* <a>タグ自身をカードの大枠にする */
.p-recruit-card {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  padding: 3rem 2rem;
  background-color: #fff;
  text-decoration: none; /* デフォルトのリンク下線を消す */
  -webkit-transition: border-color 0.3s ease, -webkit-transform 0.3s ease;
  transition: border-color 0.3s ease, -webkit-transform 0.3s ease;
  transition: transform 0.3s ease, border-color 0.3s ease;
  transition: transform 0.3s ease, border-color 0.3s ease, -webkit-transform 0.3s ease;
  border-top: 1px solid #194992;
  border-left: 1px solid #194992;
  border-right: 1px solid #5C98A4;
  border-bottom: 1px solid #5C98A4;
  /* ホバー時用のグラデーション背景 */
}
.p-recruit-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, #6c78a5 0%, #7db1bb 100%);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
  z-index: -1;
}
.p-recruit-card {
  /* ▼ ホバー時の変化 */
}
.p-recruit-card:hover {
  -webkit-transform: translateY(-3px);
          transform: translateY(-3px);
  border-color: transparent;
}
.p-recruit-card:hover::before {
  opacity: 1;
}
.p-recruit-card:hover {
  /* ホバー時は中のテキストや矢印をすべて白に */
}
.p-recruit-card:hover .p-recruit-card__title,
.p-recruit-card:hover .p-recruit-card__text,
.p-recruit-card:hover .p-recruit-card__check {
  color: #fff;
}
.p-recruit-card:hover .p-recruit-card__check::after,
.p-recruit-card:hover .p-recruit-card__check::before {
  background-color: #fff;
}
.p-recruit-card {
  /* ▼ 各パーツのスタイル */
}
.p-recruit-card__title {
  color: #5C98A4;
  font-size: 1.6rem;
  text-align: center;
  margin-top: 0;
  margin-bottom: 1.5rem;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.p-recruit-card__text {
  color: #333; /* サイトの基本テキスト色に合わせてください */
  font-size: 0.95rem;
  line-height: 1.6;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 2rem;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.p-recruit-card__check {
  position: relative;
  display: inline-block;
  -ms-flex-item-align: start;
      align-self: flex-start; /* 左寄せをキープ */
  color: #194992;
  font-weight: bold;
  padding-bottom: 0.5rem;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
  /* 下線 */
}
.p-recruit-card__check::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 4rem;
  height: 1px;
  background-color: #194992;
  -webkit-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}
.p-recruit-card__check {
  /* 矢印の先端 */
}
.p-recruit-card__check::before {
  content: "";
  position: absolute;
  bottom: -3px;
  left: 3.8rem;
  width: 8px;
  height: 1px;
  background-color: #194992;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}

/* Links
--------------------------------------------- */
a {
  color: #4169e1;
}
a:visited {
  color: #800080;
}
a:hover, a:focus, a:active {
  color: #191970;
}
a:focus {
  outline: thin dotted;
}
a:hover, a:active {
  outline: 0;
}

/* =========================================
   一覧へ戻るリンク（左向きハーフアロー・スライド版）
========================================= */
.c-link-back a {
  display: inline-block;
  position: relative;
  color: #194992;
  text-decoration: none;
  padding-left: 5.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.4rem;
}
.c-link-back a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1.5px;
  background-color: #194992;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.c-link-back a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 18px;
  height: 1.2px;
  background-color: #194992;
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
  -webkit-transform: rotate(-35deg);
          transform: rotate(-35deg);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.c-link-back a:hover::before {
  -webkit-transform: translateX(-10px);
          transform: translateX(-10px);
}
.c-link-back a:hover::after {
  -webkit-transform: translateX(-10px) rotate(-35deg);
          transform: translateX(-10px) rotate(-35deg);
}

/* Forms
--------------------------------------------- */
button,
input[type=button],
input[type=reset],
input[type=submit] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1;
  padding: 0.6em 1em 0.4em;
}
button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover {
  border-color: #ccc #bbb #aaa;
}
button:active, button:focus,
input[type=button]:active,
input[type=button]:focus,
input[type=reset]:active,
input[type=reset]:focus,
input[type=submit]:active,
input[type=submit]:focus {
  border-color: #aaa #bbb #bbb;
}

.c-btn,
.c-btn:link,
.c-btn:visited {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 180px;
  height: 48px;
  padding: 0 24px;
  border: 1px solid #344688;
  background: transparent;
  color: #344688;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  -webkit-transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.c-btn:hover,
.c-btn:link:hover,
.c-btn:visited:hover {
  background: #344688;
  color: #ffffff;
}
.c-btn:focus-visible,
.c-btn:link:focus-visible,
.c-btn:visited:focus-visible {
  outline: 2px solid #5FA0B5;
  outline-offset: 3px;
}

input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 3px;
}
input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=range]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=time]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=color]:focus,
textarea:focus {
  color: #111;
}

select {
  border: 1px solid #ccc;
}

textarea {
  width: 100%;
}

/* WP-Blocks
--------------------------------------------- */
/* --------------------------------------------------
  WordPress標準アウトラインボタンの上書き（青枠）
-------------------------------------------------- */
.wp-block-button.is-style-outline .wp-block-button__link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  min-width: 20rem;
  background-color: #fff;
  color: #194992;
  border: 2px solid #194992;
  border-radius: 0.2rem;
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  /* 外部リンクアイコン */
}
.wp-block-button.is-style-outline .wp-block-button__link[target=_blank]::after {
  position: static !important;
  display: inline-block !important;
}
.wp-block-button.is-style-outline .wp-block-button__link {
  /* ホバー時のアクション（色が反転する） */
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: #194992 !important;
  color: #fff !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover[target=_blank]::after {
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}

/* --------------------------------------------------
  WordPress標準 区切り線（Separator）の上書き
-------------------------------------------------- */
hr.wp-block-separator {
  /* ▼ デフォルトのスタイル（短い青線） */
  max-width: 10rem;
  margin-top: 4rem;
  margin-bottom: 4rem;
  margin-left: auto;
  margin-right: auto;
  border-top: 2px solid #194992;
  border-bottom: none;
  opacity: 1;
  /* ▼ エディタのスタイルで「幅広」が選ばれた時 */
}
hr.wp-block-separator.is-style-wide {
  max-width: 100%;
  /* 幅広の時は少し線を細く・薄くしたい場合はここに追加 */
  /* border-top: 1px solid #ddd; */
}
hr.wp-block-separator {
  /* ▼ エディタの配置設定で「幅広」「全幅」が選ばれた時への対応 */
}
hr.wp-block-separator.alignwide, hr.wp-block-separator.alignfull {
  max-width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
.no-sidebar .site {
  display: grid;
  grid-template-columns: auto;
  grid-template-areas: "header" "main" "footer";
}

.l-inner {
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 40px;
  padding-left: 40px;
}
@media screen and (max-width: 767px) {
  .l-inner {
    padding-right: 20px;
    padding-left: 20px;
  }
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: transparent;
  z-index: 1000;
  -webkit-transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease;
}
.site-header .header-inner {
  max-width: 1000px;
  width: 100%;
  margin: auto;
  padding: 10px 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 40px;
  font-size: 1.5rem;
}
.site-header .header-inner .site-branding {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.site-header .header-inner .site-logo {
  position: relative;
  display: inline-block;
  width: 130px;
}
.site-header .header-inner .site-logo img {
  display: block;
  width: 100%;
  height: auto;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.site-header .header-inner .site-logo .logo-white,
.site-header .header-inner .site-logo .logo-black {
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.site-header .header-inner .site-logo .logo-black {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}
.site-header .header-inner .main-navigation .submenu-toggle {
  display: none;
}
.site-header .header-inner .main-navigation ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 40px;
}
.site-header .header-inner .main-navigation ul > li {
  position: relative;
}
.site-header .header-inner .main-navigation ul > li > a {
  color: #ffffff;
  text-decoration: none;
  display: block;
  padding: 10px 0;
}
.site-header .header-inner .main-navigation ul > li {
  /* 追加：ホバー時にサブメニューを表示 */
}
.site-header .header-inner .main-navigation ul > li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.site-header .header-inner .main-navigation ul .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3px;
  margin-top: 0;
  /* アニメーション用の初期状態（非表示） */
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.site-header .header-inner .main-navigation ul .sub-menu li {
  background-color: rgba(255, 255, 255, 0.8);
  min-width: 150px;
}
.site-header .header-inner .main-navigation ul .sub-menu a {
  width: 100%;
  padding: 10px 20px;
  color: #344688;
}
.site-header .header-inner .menu-toggle {
  display: none;
}
.site-header.is-scrolled {
  background: #fff;
  -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.site-header.is-scrolled .header-inner .site-logo .logo-white {
  opacity: 0;
  pointer-events: none;
}
.site-header.is-scrolled .header-inner .site-logo .logo-black {
  opacity: 1;
  pointer-events: auto;
}
.site-header.is-scrolled .main-navigation ul > li > a {
  color: #344688;
}
.site-header.is-scrolled .main-navigation ul .sub-menu {
  margin-top: 10px;
}
.site-header.is-scrolled .menu-toggle span {
  background: #344688;
}

@media screen and (max-width: 767px) {
  .site-header .header-inner {
    padding: 16px 20px;
    margin-top: 0;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-size: 1.3rem;
  }
  .site-header .header-inner .main-navigation {
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .site-header .header-inner .main-navigation .menu-item-has-children {
    position: relative;
  }
  .site-header .header-inner .main-navigation .submenu-toggle {
    position: absolute;
    top: 27.25px;
    right: 0;
    width: 44px;
    height: 44px;
    padding: 1rem;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    border: none;
    background: transparent;
    color: #344688;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    cursor: pointer;
  }
  .site-header .header-inner .main-navigation .submenu-icon {
    -webkit-transition: -webkit-transform 0.3s ease;
    transition: -webkit-transform 0.3s ease;
    transition: transform 0.3s ease;
    transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  }
  .site-header .header-inner .main-navigation .submenu-toggle.is-open .submenu-icon {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .site-header .header-inner .main-navigation #primary-menu {
    display: none;
  }
  .site-header .header-inner .main-navigation.is-open #primary-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: calc(100dvh - 100%);
    overflow-y: auto;
    padding: 5px 30px 80px;
    background: #ffffff;
    margin: 0;
    z-index: 999;
    gap: 0;
    list-style: none;
  }
  .site-header .header-inner .main-navigation.is-open #primary-menu li {
    border-bottom: 1px solid #344688;
  }
  .site-header .header-inner .main-navigation.is-open #primary-menu .sub-menu {
    display: none;
    position: static;
    width: 100%;
    margin: 0;
    margin-bottom: 12px;
    list-style: none;
    background: transparent;
    -webkit-box-shadow: none;
            box-shadow: none;
    border: none;
    opacity: 1;
    visibility: visible;
    -webkit-transform: none;
            transform: none;
  }
  .site-header .header-inner .main-navigation.is-open #primary-menu .sub-menu li {
    border: none;
    background-color: transparent;
    min-width: 100%;
  }
  .site-header .header-inner .main-navigation.is-open #primary-menu .sub-menu a {
    display: block;
    width: 100%;
    padding: 10px 16px;
    font-weight: 400;
    color: #344688;
  }
  .site-header .header-inner .main-navigation.is-open #primary-menu .menu-item.is-open > .sub-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    width: 100%;
  }
  .site-header .header-inner .main-navigation.is-open a {
    display: block;
    padding: 18px 6px;
    color: #344688;
    font-weight: 700;
    text-decoration: none;
  }
  .site-header .header-inner .menu-toggle {
    position: relative;
    display: block;
    width: 32px;
    height: 24px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 1001;
  }
  .site-header .header-inner .menu-toggle span {
    position: absolute;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #fff;
    -webkit-transform-origin: center;
            transform-origin: center;
    -webkit-transition: opacity 0.3s ease, top 0.3s ease, background-color 0.3s ease, -webkit-transform 0.3s ease;
    transition: opacity 0.3s ease, top 0.3s ease, background-color 0.3s ease, -webkit-transform 0.3s ease;
    transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease, background-color 0.3s ease;
    transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease, background-color 0.3s ease, -webkit-transform 0.3s ease;
  }
  .site-header .header-inner .menu-toggle span:nth-child(1) {
    top: 0;
  }
  .site-header .header-inner .menu-toggle span:nth-child(2) {
    top: 11px;
  }
  .site-header .header-inner .menu-toggle span:nth-child(3) {
    top: 22px;
  }
  .site-header .header-inner .menu-toggle.is-active span:nth-child(1) {
    -webkit-transform: translateY(11px) rotate(45deg);
            transform: translateY(11px) rotate(45deg);
  }
  .site-header .header-inner .menu-toggle.is-active span:nth-child(2) {
    opacity: 0;
  }
  .site-header .header-inner .menu-toggle.is-active span:nth-child(3) {
    -webkit-transform: translateY(-11px) rotate(-45deg);
            transform: translateY(-11px) rotate(-45deg);
  }
  .site-header.is-scrolled .header-inner .menu-toggle span {
    background-color: #344688;
  }
}
/* ハンバーガーメニュー展開時の背景スクロールロック */
body.is-menu-open {
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  /* スマホメニューのリンクに対するスタイル */
  .nav-menu li > a {
    /* ▼ 追記：ローディング中のスタイル */
  }
  .nav-menu li > a.is-loading {
    opacity: 0.5;
    pointer-events: none; /* ダブルタップ（連打）による複数回リクエストを防止 */
  }
  .nav-menu li > a.is-loading::after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-left: 10px;
    border: 2px solid rgba(0, 0, 0, 0.1);
    border-top-color: currentColor; /* 現在のテキスト色に合わせる */
    border-radius: 50%;
    -webkit-animation: menu-spin 0.8s linear infinite;
            animation: menu-spin 0.8s linear infinite;
    vertical-align: middle;
  }
  /* くるくる回るアニメーションの定義 */
  @-webkit-keyframes menu-spin {
    to {
      -webkit-transform: rotate(360deg);
              transform: rotate(360deg);
    }
  }
  @keyframes menu-spin {
    to {
      -webkit-transform: rotate(360deg);
              transform: rotate(360deg);
    }
  }
}
/* ============================================
   WordPress管理バー（Admin Bar）表示時の位置調整
============================================ */
body.admin-bar .site-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }
}

/* ============================================
   スマホ時のWordPress管理バーを強制的に固定する
============================================ */
@media screen and (max-width: 782px) {
  html #wpadminbar {
    position: fixed !important;
  }
}
/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.site-footer {
  position: relative;
  clip-path: inset(0);
  margin-top: 120px;
  margin-bottom: 0;
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  .site-footer {
    margin-top: 80px;
  }
}
.site-footer::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(83, 151, 189, 0.8)), to(rgba(84, 127, 191, 0.8))), url(../img/common/bg-footer.webp);
  background-image: linear-gradient(to right, rgba(83, 151, 189, 0.8) 0%, rgba(84, 127, 191, 0.8) 100%), url(../img/common/bg-footer.webp);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
@media screen and (max-width: 767px) {
  .site-footer::before {
    background-image: -webkit-gradient(linear, left top, right top, from(rgba(83, 151, 189, 0.8)), to(rgba(84, 127, 191, 0.8))), url(../img/common/bg-footer-sp.webp);
    background-image: linear-gradient(to right, rgba(83, 151, 189, 0.8) 0%, rgba(84, 127, 191, 0.8) 100%), url(../img/common/bg-footer-sp.webp);
    background-position: center bottom;
  }
}
.site-footer .footer-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr minmax(200px, 250px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 20px;
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  padding: 4rem;
}
@media screen and (max-width: 767px) {
  .site-footer .footer-inner {
    grid-template-columns: 1fr minmax(100px, 130px);
    gap: 20px;
    padding: 8rem 3rem;
  }
}
.site-footer .footer-inner ul.footer-nav__list {
  list-style: none;
  max-width: 600px;
  width: 100%;
  margin-left: 0;
  margin-bottom: 0;
  padding-left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 30px;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
@media screen and (max-width: 767px) {
  .site-footer .footer-inner ul.footer-nav__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 15px;
  }
}
.site-footer .footer-inner ul.footer-nav__list li > a {
  text-decoration: none;
  color: #ffffff;
  font-size: 1.4rem;
}
.site-footer .footer-inner ul.footer-nav__list li.menu-item-has-children {
  position: relative;
}
.site-footer .footer-inner ul.footer-nav__list li.menu-item-has-children > a {
  display: inline-block;
  padding-right: 2.5em;
}
.site-footer .footer-inner ul.footer-nav__list li.menu-item-has-children .sub-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-top: 10px;
  margin-left: 10px;
  padding-left: 0;
  list-style: none;
}
@media screen and (max-width: 767px) {
  .site-footer .footer-inner ul.footer-nav__list li.menu-item-has-children .sub-menu {
    display: none;
  }
}
.site-footer .footer-inner ul.footer-nav__list li.menu-item-has-children .sub-menu li {
  margin-bottom: 0.5em;
}
.site-footer .footer-inner ul.footer-nav__list li.menu-item-has-children .sub-menu li > a {
  text-decoration: none;
  color: #ffffff;
  font-weight: normal;
}
.site-footer .site-info {
  background-color: rgba(74, 120, 146, 0.85);
}
.site-footer .site-info .copyright {
  color: #ffffff;
  display: block;
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  padding: 1rem 4rem;
}
.site-footer .site-info .copyright p {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .site-footer .site-info .copyright {
    text-align: center;
    padding: 1rem 2rem;
  }
}

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* Navigation
--------------------------------------------- */
.main-navigation {
  display: block;
  width: 100%;
}
.main-navigation ul {
  display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}
.main-navigation ul ul {
  -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
          box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
  float: left;
  position: absolute;
  top: 100%;
  left: -999em;
  z-index: 99999;
}
.main-navigation ul ul ul {
  left: -999em;
  top: 0;
}
.main-navigation ul ul li:hover > ul, .main-navigation ul ul li.focus > ul {
  display: block;
  left: auto;
}
.main-navigation ul ul a {
  width: 200px;
}
.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
  left: auto;
}
.main-navigation li {
  position: relative;
}
.main-navigation a {
  display: block;
  text-decoration: none;
}
/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
  display: block;
}

@media screen and (min-width: 37.5em) {
  .menu-toggle {
    display: none;
  }
  .main-navigation ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
}
.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 50%;
          flex: 1 0 50%;
}
.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  text-align: end;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 50%;
          flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
/*--------------------------------------------------------------
# 投稿ページ / 固定ページ 共通
--------------------------------------------------------------*/
.sticky {
  display: block;
}

body .post,
body .page {
  margin: 0 0 1.5em;
}

.updated:not(.published) {
  display: none;
}

.page-content,
.entry-content,
.entry-summary {
  display: flow-root;
  margin: 0;
  color: #333333;
  font-size: 1.6rem;
  line-height: 1.7;
  /* =========================================
     ▼ 基本見出し（h2〜h6）の余白・文字サイズ設定
  ========================================= */
}
.page-content h2, .page-content h3, .page-content h4, .page-content h5, .page-content h6,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6,
.entry-summary h2,
.entry-summary h3,
.entry-summary h4,
.entry-summary h5,
.entry-summary h6 {
  line-height: 1.4;
  font-weight: bold;
  color: #354A81;
}
.page-content h2:first-child, .page-content h3:first-child, .page-content h4:first-child, .page-content h5:first-child, .page-content h6:first-child,
.entry-content h2:first-child,
.entry-content h3:first-child,
.entry-content h4:first-child,
.entry-content h5:first-child,
.entry-content h6:first-child,
.entry-summary h2:first-child,
.entry-summary h3:first-child,
.entry-summary h4:first-child,
.entry-summary h5:first-child,
.entry-summary h6:first-child {
  margin-top: 0 !important;
}
.page-content h2,
.entry-content h2,
.entry-summary h2 {
  font-size: clamp(2.4rem, 3vw, 2.8rem);
  margin-top: 6.4rem;
  margin-bottom: 2.4rem;
}
.page-content h3,
.entry-content h3,
.entry-summary h3 {
  font-size: clamp(2rem, 2.5vw, 2.4rem);
  margin-top: 5.6rem;
  margin-bottom: 2rem;
}
.page-content h4,
.entry-content h4,
.entry-summary h4 {
  font-size: clamp(1.8rem, 2vw, 2rem);
  margin-top: 4.8rem;
  margin-bottom: 1.6rem;
}
.page-content h5,
.entry-content h5,
.entry-summary h5 {
  font-size: 1.6rem;
  margin-top: 4rem;
  margin-bottom: 1.6rem;
}
.page-content h6,
.entry-content h6,
.entry-summary h6 {
  font-size: 1.4rem;
  margin-top: 3.2rem;
  margin-bottom: 1.6rem;
}
.page-content,
.entry-content,
.entry-summary {
  /* =========================================
     ▼ 既存のリスト・リンク設定（そのまま維持）
  ========================================= */
}
.page-content ul,
.page-content ol,
.entry-content ul,
.entry-content ol,
.entry-summary ul,
.entry-summary ol {
  margin-left: 1rem;
  padding-left: 1rem;
}
.page-content ul li,
.page-content ol li,
.entry-content ul li,
.entry-content ol li,
.entry-summary ul li,
.entry-summary ol li {
  margin-bottom: 0.8rem;
}
.page-content a,
.entry-content a,
.entry-summary a {
  margin-left: 0.4rem;
  margin-right: 0.4rem;
}
.page-content,
.entry-content,
.entry-summary {
  /* 外部リンク */
}
.page-content a[target=_blank],
.entry-content a[target=_blank],
.entry-summary a[target=_blank] {
  word-break: break-all;
}
.page-content a[target=_blank]:not(:has(img))::after,
.entry-content a[target=_blank]:not(:has(img))::after,
.entry-summary a[target=_blank]:not(:has(img))::after {
  content: "";
  display: inline-block;
  width: 1.6rem;
  height: 1.6rem;
  margin-left: 0.3em;
  vertical-align: -1px;
  background-image: url("../img/common/icon/external-link.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.page-content .wp-block-button__link::after,
.entry-content .wp-block-button__link::after,
.entry-summary .wp-block-button__link::after {
  display: none !important;
}

.page-links {
  clear: both;
  margin: 0 0 1.5em;
}

/* =========================================
   PCのみ字下げ（インデント）させるユーティリティ
========================================= */
.u-indent-pc {
  padding-left: 6.4rem;
}
@media screen and (max-width: 767px) {
  .u-indent-pc {
    padding-left: 0;
  }
}

/*--------------------------------------------------------------
# 投稿ページ
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# 固定ページ
--------------------------------------------------------------*/
/* 会社概要 ***************************************/
/* 内側の余白（パディング） */
.p-logo-box {
  padding: 0.8rem 1.5rem !important;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

/* =========================================
   セクション全体を囲むラッパー（全幅背景色用）
========================================= */
.c-section-wrapper {
  background-color: #F0F4F8;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 80px;
  width: 100vw;
  padding-top: 60px;
  padding-bottom: 60px;
}
@media (min-width: 768px) {
  .c-section-wrapper {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
.c-section-wrapper > * {
  max-width: 1000px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 768px) {
  .c-section-wrapper > * {
    padding-left: 40px;
    padding-right: 40px;
  }
}

/* =========================================
   100vwによる横スクロールバー発生を防ぐ
========================================= */
body {
  overflow-x: hidden;
}

/* =========================================
   セクション見出し（共通ベーススタイル）
========================================= */
.c-section-title {
  position: relative;
  font-size: 24px;
  font-weight: bold;
  color: #354A81;
  padding-top: 60px;
  margin-bottom: 40px;
  /* 装飾のグラデーションテキスト（共通スタイル） */
}
.c-section-title::before {
  position: absolute;
  top: 0;
  left: 0;
  font-family: "TimeBurner", sans-serif;
  font-size: 64px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.05em;
  background: -webkit-gradient(linear, left top, right top, from(#354A81), to(#63A1BD));
  background: linear-gradient(to right, #354A81, #63A1BD);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}
.c-section-title {
  /* =========================================
     ▼ ここから個別のあしらい文字（バリエーション）
  ========================================= */
}
.c-section-title.-data::before {
  content: "DATA";
}

/* =========================================
   メディアテキスト（画像とテキストの汎用ブロック）
========================================= */
.c-media-text {
  margin-bottom: 80px;
  /* =========================================
     ▼ 共通のテキストスタイル
  ========================================= */
}
.c-media-text h2, .c-media-text h3 {
  color: #354A81;
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: bold;
  margin-bottom: 16px;
  line-height: 1.4;
}
.c-media-text p {
  font-size: 14px;
  line-height: 1.8;
}
.c-media-text {
  /* =========================================
     ▼ スマホ用：構造をフラットにして順番を入れ替える魔法
  ========================================= */
}
@media (max-width: 767px) {
  .c-media-text {
    /* 1. Gutenbergが吐き出す「すべての不要な枠」を透明化してフラットにする */
  }
  .c-media-text .wp-block-group__inner-container,
  .c-media-text .wp-block-columns,
  .c-media-text .wp-block-column {
    display: contents !important;
  }
  .c-media-text {
    /* 2. 大枠をFlexboxにして、中身を直接並び替えられるようにする */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    /* 3. 希望の順番（order）を割り当てる */
  }
  .c-media-text h2, .c-media-text h3 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    width: 100%; /* display: contentsの副作用を防ぐ */
  }
  .c-media-text p {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    width: 100%;
  }
  .c-media-text figure,
  .c-media-text .wp-block-image {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    margin-bottom: 32px;
    width: 100%;
  }
  .c-media-text .wp-block-buttons,
  .c-media-text .wp-block-button {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
    width: 100%;
  }
}
.c-media-text {
  /* =========================================
     ▼ PC用：左右のレイアウトと反転（-reversed）
  ========================================= */
}
@media (min-width: 768px) {
  .c-media-text {
    margin-bottom: 120px;
    /* 左右を上下中央で揃え、間の余白を確保 */
  }
  .c-media-text .wp-block-columns {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 60px !important;
  }
  .c-media-text {
    /* ボタン上の余白 */
  }
  .c-media-text .wp-block-buttons,
  .c-media-text .wp-block-button {
    margin-top: 40px;
  }
  .c-media-text {
    /* ▼ 反転パターン（画像が左、テキストが右になる「IoT」用） */
  }
  .c-media-text.-reversed .wp-block-columns {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
}

/* =========================================
   コンテンツ内ヒーロー画像（採用情報）
========================================= */
.c-hero-image img {
  width: 100%;
  aspect-ratio: 21/9;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
}
@media (min-width: 768px) {
  .c-hero-image img {
    aspect-ratio: 4/1;
    -o-object-position: center 20%;
       object-position: center 20%;
  }
}

/* =========================================
   社員インタビュー バナーリンク
========================================= */
.c-banner-link {
  position: relative;
  display: block;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 80px;
  text-decoration: none;
}
.c-banner-link__image {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 26/5;
}
@media (max-width: 767px) {
  .c-banner-link__image {
    aspect-ratio: 20/8;
  }
}
.c-banner-link__image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 35% center;
     object-position: 35% center;
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  transition: -webkit-transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}
.c-banner-link__overlay {
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, right top, from(rgba(40, 65, 120, 0.75)), to(rgba(75, 140, 175, 0.65)));
  background: linear-gradient(90deg, rgba(40, 65, 120, 0.75) 0%, rgba(75, 140, 175, 0.65) 100%);
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.c-banner-link__inner {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 30px 40px;
}
@media (max-width: 767px) {
  .c-banner-link__inner {
    padding: 20px;
  }
}
.c-banner-link__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: #fff;
}
.c-banner-link__title .en {
  font-family: "TimeBurner", sans-serif;
  font-size: clamp(24px, 4vw, 44px);
  font-weight: 900;
  letter-spacing: 0.15em;
  line-height: 1.1;
}
.c-banner-link__title .ja {
  font-size: clamp(12px, 1.5vw, 16px);
  font-weight: bold;
  margin-top: 6px;
  letter-spacing: 0.05em;
}
.c-banner-link__action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -ms-flex-item-align: end;
      align-self: flex-end;
  color: #fff;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.c-banner-link__action .text {
  font-size: 1.8rem;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.c-banner-link__action .arrow {
  position: relative;
  display: block;
  width: 140px;
  height: 2px;
  margin-right: -55px;
}
@media (max-width: 767px) {
  .c-banner-link__action .arrow {
    margin-right: -35px;
  }
}
.c-banner-link__action .arrow {
  /* 1. 枠内にある部分（白い水平線） */
}
.c-banner-link__action .arrow::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 15px;
  height: 2px;
  background-color: #fff;
  z-index: 1;
  -webkit-transition: right 0.3s ease;
  transition: right 0.3s ease;
}
.c-banner-link__action .arrow {
  /* 2. 外に飛び出す部分（青緑色の水平線） */
  background-color: #63A1BD;
  /* 3. 矢印の先端（斜めライン） */
}
.c-banner-link__action .arrow::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 38px;
  height: 2px;
  -webkit-transform-origin: right bottom;
          transform-origin: right bottom;
  -webkit-transform: rotate(25deg);
          transform: rotate(25deg);
  background-image: -webkit-gradient(linear, left top, right top, color-stop(50%, #fff), color-stop(50%, #63A1BD));
  background-image: linear-gradient(to right, #fff 50%, #63A1BD 50%);
  background-size: 200% 100%;
  /* ★通常時：画像のフチ（約45%の位置）で色が切り替わるように調整 */
  background-position: 45% 0;
  -webkit-transition: background-position 0.3s ease;
  transition: background-position 0.3s ease;
}
@media (hover: hover) {
  .c-banner-link:hover .c-banner-link__image img {
    -webkit-transform: scale(1.06);
            transform: scale(1.06);
  }
  .c-banner-link:hover .c-banner-link__overlay {
    opacity: 0.85;
  }
  .c-banner-link:hover .c-banner-link__action {
    -webkit-transform: translateX(10px);
            transform: translateX(10px);
  }
  .c-banner-link:hover .arrow::before {
    right: 25px;
  }
  .c-banner-link:hover {
    /* 矢印全体が右に動いた分、斜め線のグラデーションを左にずらして相殺する */
  }
  .c-banner-link:hover .arrow::after {
    background-position: 78% 0;
  }
}

/* =========================================
   ジグザグレイアウト（縦書きモード版）
========================================= */
.c-feature-block {
  position: relative;
  margin-bottom: 80px;
  /* =========================================
     ▼ 英語の装飾テキスト（スマホ用ベース）
  ========================================= */
}
.c-feature-block::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  font-size: 32px;
  font-weight: 900;
  letter-spacing: 0.15em;
  line-height: 1;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg); /* 文字を下から上に読ませるための反転 */
  /* グラデーション */
  color: transparent;
  background: -webkit-gradient(linear, left top, left bottom, from(#354A81), to(#63A1BD));
  background: linear-gradient(to bottom, #354A81, #63A1BD);
  -webkit-background-clip: text;
  background-clip: text;
}
.c-feature-block .wp-block-columns {
  gap: 0;
}
.c-feature-block {
  /* =========================================
     ▼ 画像の自動トリミングと余白（スマホ用）
  ========================================= */
}
.c-feature-block .wp-block-image {
  margin-left: 45px; /* 縦文字の幅 ＋ 余白 */
  margin-bottom: 32px;
}
.c-feature-block .wp-block-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-feature-block {
  /* テキストエリアの余白 */
}
.c-feature-block h2, .c-feature-block h3 {
  margin-bottom: 24px;
  color: #354A81;
  line-height: 1.4;
}
.c-feature-block p {
  margin-bottom: 32px;
  line-height: 1.8;
}
.c-feature-block {
  /* =========================================
     ▼ スマホ用：「交流（-events）」の順番入れ替え
  ========================================= */
}
@media (max-width: 767px) {
  .c-feature-block.-right .wp-block-columns {
    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;
  }
  .c-feature-block.-right .wp-block-image {
    margin-top: 0;
  }
}
.c-feature-block {
  /* =========================================
     ▼ PC表示（768px以上）のレイアウト切り替え
  ========================================= */
}
@media (min-width: 768px) {
  .c-feature-block {
    margin-bottom: 120px;
    /* 左右のバランスを整える */
  }
  .c-feature-block .wp-block-columns {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 60px !important;
  }
  .c-feature-block .wp-block-image {
    margin-left: 0;
    margin-bottom: 0;
  }
  .c-feature-block {
    /* 交流ブロックの順番を横並びに戻す */
  }
  .c-feature-block.-right .wp-block-columns {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .c-feature-block {
    /* ▼ 装飾テキストのPC用配置（上下中央にピタッと固定） */
  }
  .c-feature-block::before {
    font-size: clamp(36px, 3.5vw, 50px);
    top: 0;
    bottom: 0;
    margin: auto 0;
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
  }
  .c-feature-block {
    /* パターン1：画像が左（研修） */
  }
  .c-feature-block.-left {
    padding-left: 90px;
  }
  .c-feature-block.-left::before {
    left: 20px; /* 飛び出さないよう、左端から少し内側に固定 */
  }
  .c-feature-block {
    /* パターン2：画像が右（交流） */
  }
  .c-feature-block.-right {
    padding-right: 90px;
  }
  .c-feature-block.-right::before {
    left: auto;
    right: 20px; /* 飛び出さないよう、右端から少し内側に固定 */
  }
}
.c-feature-block {
  /* =========================================
     文字のバリエーション
  ========================================= */
}
.c-feature-block.-training::before {
  content: "TRAINING";
}
.c-feature-block.-events::before {
  content: "EVENTS";
}

/* =========================================
   募集要項カード（反転・グラデーション仕様）
========================================= */
.c-recruit-card {
  --grad-main: linear-gradient(135deg, #6CB7BB 0%, #5FA0B5 51%, #547FBF 100%);
  --grad-arrow: linear-gradient(to right, #6CB7BB 0%, #5FA0B5 51%, #547FBF 100%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative;
  z-index: 1;
  padding: 40px 30px;
  text-decoration: none;
  height: 100%;
  /* =========================================
     ▼ スマホ用：横幅と「視覚的な中央寄せ」
  ========================================= */
  width: 100%;
  max-width: 250px;
  margin: 0 auto;
  left: 10px;
  /* =========================================
     ▼ PC用：リセット（親カラムのgapに委ねる）
  ========================================= */
}
@media (min-width: 768px) {
  .c-recruit-card {
    max-width: 100%;
    left: 0;
  }
}
.c-recruit-card {
  /* ▼ 1. グラデーションボーダー */
  border: 3px solid transparent;
  background-clip: padding-box, border-box;
  background-origin: padding-box, border-box;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff)), var(--grad-main);
  background-image: linear-gradient(#fff, #fff), var(--grad-main);
  /* ▼ 2. ホバー時の背景塗りつぶし用（通常時は透明） */
}
.c-recruit-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--grad-main);
  opacity: 0;
  z-index: -1;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.c-recruit-card__title {
  font-size: 2.8rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 24px;
  letter-spacing: 0.1em;
  color: transparent !important;
  background-image: var(--grad-main);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-transition: background-image 0.3s ease, color 0.3s ease;
  transition: background-image 0.3s ease, color 0.3s ease;
}
.c-recruit-card__text {
  font-size: 14px;
  line-height: 1.6;
  color: #333333;
  margin-bottom: 40px;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.c-recruit-card__action {
  position: relative;
  display: block;
  margin-top: auto;
  width: 100%;
  -ms-flex-item-align: stretch;
      align-self: stretch;
}
.c-recruit-card__action .text {
  font-size: 16px;
  color: #547FBF;
  font-weight: bold;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.c-recruit-card__action {
  /* 枠を突き破るグラデーション矢印 */
}
.c-recruit-card__action .arrow {
  position: absolute;
  left: 0;
  right: -50px;
  bottom: -4px;
  height: 1.5px;
  background: var(--grad-arrow);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  /* ▼ ホバー時に枠内を白くするための覆い */
}
.c-recruit-card__action .arrow::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 20px;
  bottom: 0;
  background: #fff;
  opacity: 0;
  -webkit-transition: right 0.3s ease, opacity 0.3s ease;
  transition: right 0.3s ease, opacity 0.3s ease;
  z-index: 1;
}
.c-recruit-card__action .arrow {
  /* 矢印の先端 */
}
.c-recruit-card__action .arrow::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 30px;
  height: 1.5px;
  background: #547FBF;
  -webkit-transform-origin: right bottom;
          transform-origin: right bottom;
  -webkit-transform: rotate(25deg);
          transform: rotate(25deg);
}
.c-recruit-card {
  /* =========================================
     ホバー時の心地よいUI/UXアクション
  ========================================= */
}
@media (hover: hover) {
  .c-recruit-card:hover {
    /* 1. 背景がグラデーションで塗りつぶされる */
  }
  .c-recruit-card:hover::before {
    opacity: 1;
  }
  .c-recruit-card:hover {
    /* 2. 文字がすべて白に反転 */
  }
  .c-recruit-card:hover .c-recruit-card__title {
    background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff));
    background-image: linear-gradient(#fff, #fff);
  }
  .c-recruit-card:hover .c-recruit-card__text,
  .c-recruit-card:hover .c-recruit-card__action .text {
    color: #fff;
  }
  .c-recruit-card:hover {
    /* 3. 矢印が右に動く ＆ 枠内だけ白に変わる */
  }
  .c-recruit-card:hover .c-recruit-card__action .arrow {
    -webkit-transform: translateX(10px);
            transform: translateX(10px);
  }
  .c-recruit-card:hover .c-recruit-card__action .arrow::before {
    opacity: 1;
    right: 30px;
  }
}

/* カード間の余白（PC） */
.c-recruit-cards-wrap {
  margin-bottom: 80px;
}
@media (min-width: 768px) {
  .c-recruit-cards-wrap {
    gap: 60px !important;
  }
}
.c-recruit-cards-wrap > .wp-block-column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/* =========================================
   ソリューション事例 カテゴリー見出し
========================================= */
.p-solution-category-title {
  margin-top: 100px;
  margin-bottom: 40px;
  /* 大見出し（BLE, RFIDなど） */
}
.p-solution-category-title h2 {
  font-size: 32px;
  color: #3b5b98;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.2;
  margin-bottom: 8px;
}
.p-solution-category-title {
  /* 小見出し（Bluetoothデバイス連携アプリなど） */
}
.p-solution-category-title p {
  font-size: 14px;
  color: #666666;
  font-weight: bold;
  margin: 0;
}
.p-solution-category-title {
  /* =========================================
     スマホ（767px以下）向けの微調整
  ========================================= */
}
@media (max-width: 767px) {
  .p-solution-category-title {
    margin-top: 64px;
    margin-bottom: 24px;
  }
  .p-solution-category-title h2 {
    font-size: 24px;
    margin-bottom: 4px;
  }
  .p-solution-category-title p {
    font-size: 12px;
  }
}

/*--------------------------------------------------------------
# Page Hero
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Page Hero
--------------------------------------------------------------*/
.page-hero {
  position: relative;
  clip-path: inset(0);
  height: 350px;
  margin-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .page-hero {
    height: 200px;
    margin-bottom: 60px;
  }
}
.page-hero::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(/manage/wp-content/themes/tnet-v2/assets/img/common/bg-header.webp);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .page-hero::before {
    background-position: right 20% top -75px;
  }
}
.page-hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(rgba(84, 127, 191, 0.8)), to(rgba(83, 164, 189, 0.8)));
  background: linear-gradient(to right, rgba(84, 127, 191, 0.8), rgba(83, 164, 189, 0.8));
  z-index: 1;
}
.page-hero__ttl {
  position: relative;
  z-index: 2;
  color: #ffffff;
  margin: 0;
}
.page-hero__ttl-en {
  font-family: "TimeBurner", sans-serif;
  font-weight: bold;
  font-size: 7rem;
  letter-spacing: 0.1em;
  line-height: 1.2;
  display: block;
  overflow-wrap: anywhere;
}
@media screen and (max-width: 767px) {
  .page-hero__ttl-en {
    font-size: clamp(2.4rem, 8vw, 3.6rem);
  }
}
.page-hero__ttl-ja {
  font-size: 2.4rem;
  margin-top: 5px;
  display: block;
}
@media screen and (max-width: 767px) {
  .page-hero__ttl-ja {
    font-size: 1.8rem;
  }
}
.page-hero .l-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  padding-top: 95px;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .page-hero .l-inner {
    padding-top: 45px;
  }
}

/* ===============================================
   Card Grid (汎用カードグリッド)
=============================================== */
.c-card-grid {
  width: 100%;
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
}
.c-card-grid > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.c-card-grid--no-gap {
  gap: 0;
}
.c-card-grid--no-gap > .wp-block-group__inner-container {
  gap: 0;
  background-color: #194992;
}
.c-card-grid--no-gap .wp-block-cover {
  margin-top: 0;
  margin-bottom: 0;
  outline: 1px solid #194992;
  outline-offset: -1px;
}
.c-card-grid {
  /* 4カラム（PC4列 / スマホ2列） */
}
.c-card-grid--col4 > .wp-block-group__inner-container {
  grid-template-columns: repeat(4, 1fr);
  max-width: 680px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .c-card-grid--col4 > .wp-block-group__inner-container {
    grid-template-columns: repeat(2, 1fr);
  }
}
.c-card-grid {
  /* 2カラム（PC2列 / スマホ1〜2列） */
}
.c-card-grid--col2 > .wp-block-group__inner-container {
  grid-template-columns: repeat(2, 1fr);
  max-width: 680px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .c-card-grid--col2 > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
}
.c-card-grid {
  /* ▼ カバーブロック本体のスタイル ▼ */
}
.c-card-grid .wp-block-cover {
  width: 100%;
  aspect-ratio: 4/3;
  min-height: auto;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  background-color: #194992;
}
.c-card-grid .wp-block-cover .wp-block-cover__background {
  display: none !important;
}
.c-card-grid .wp-block-cover img, .c-card-grid .wp-block-cover .wp-block-cover__image-background {
  opacity: 0.45;
  -webkit-transition: opacity 0.4s ease, -webkit-transform 0.4s ease;
  transition: opacity 0.4s ease, -webkit-transform 0.4s ease;
  transition: transform 0.4s ease, opacity 0.4s ease;
  transition: transform 0.4s ease, opacity 0.4s ease, -webkit-transform 0.4s ease;
}
.c-card-grid .wp-block-cover:hover img, .c-card-grid .wp-block-cover:hover .wp-block-cover__image-background, .c-card-grid .wp-block-cover:focus-within img, .c-card-grid .wp-block-cover:focus-within .wp-block-cover__image-background {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  opacity: 0.25;
}
.c-card-grid .wp-block-cover .wp-block-cover__inner-container {
  position: relative !important;
  z-index: 2;
  width: 100%;
}
.c-card-grid .wp-block-cover p,
.c-card-grid .wp-block-cover h2,
.c-card-grid .wp-block-cover h3 {
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  margin: 0;
  position: static !important;
}
.c-card-grid .wp-block-cover p a,
.c-card-grid .wp-block-cover h2 a,
.c-card-grid .wp-block-cover h3 a {
  font-size: 1.8rem;
  color: inherit;
  text-decoration: none;
  outline: none;
}
.c-card-grid .wp-block-cover p a::after,
.c-card-grid .wp-block-cover h2 a::after,
.c-card-grid .wp-block-cover h3 a::after {
  content: "";
  position: absolute;
  top: -1000px;
  right: -1000px;
  bottom: -1000px;
  left: -1000px;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .c-card-grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  }
}

/* =========================================
   カード全体リンク ＆ ホバーエフェクト
========================================= */
.wp-block-cover.c-card-link {
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-cover.c-card-link .wp-block-cover__inner-container {
  position: static !important;
  z-index: 2 !important;
}
.wp-block-cover.c-card-link p {
  position: static !important;
  max-width: 20rem;
  width: 100%;
  margin: auto;
}
.wp-block-cover.c-card-link a {
  text-decoration: none !important;
  color: #ffffff;
}
.wp-block-cover.c-card-link a::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 10 !important;
}
.wp-block-cover.c-card-link a[target=_blank]::after {
  margin-left: 1rem;
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}
.wp-block-cover.c-card-link .wp-block-cover__background {
  background-color: rgba(25, 73, 146, 0.6509803922) !important;
  opacity: 1 !important;
}
.wp-block-cover.c-card-link {
  /* 【スマホ時：1カラム】単純な交互（どの行でも2番目のカラムを水色に） */
}
@media screen and (max-width: 767px) {
  .wp-block-column:nth-child(even) .wp-block-cover.c-card-link .wp-block-cover__background {
    background-color: rgba(54, 145, 174, 0.8) !important;
  }
}
.wp-block-cover.c-card-link {
  /* 【PC時：2カラム】市松模様 */
}
@media screen and (min-width: 768px) {
  .wp-block-cover.c-card-link {
    /* 奇数行（1, 3, 5行目...）の右側（偶数カラム）を水色に */
  }
  .wp-block-columns:nth-child(odd) .wp-block-column:nth-child(even) .wp-block-cover.c-card-link .wp-block-cover__background, .wp-block-columns:nth-child(even) .wp-block-column:nth-child(odd) .wp-block-cover.c-card-link .wp-block-cover__background {
    background-color: rgba(54, 145, 174, 0.8) !important;
  }
}
.wp-block-cover.c-card-link img.wp-block-cover__image-background {
  -webkit-transition: -webkit-transform 0.4s ease !important;
  transition: -webkit-transform 0.4s ease !important;
  transition: transform 0.4s ease !important;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease !important;
}
.wp-block-cover.c-card-link:hover img.wp-block-cover__image-background {
  -webkit-transform: scale(1.1) !important;
          transform: scale(1.1) !important;
}

/* =========================================
   ソリューション事例 カード型スタイル
========================================= */
.p-solution-card {
  background-color: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 32px 24px;
  -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
  /* カラム内で高さを揃え、中の要素を縦並びにする（Figmaのオートレイアウトと同じ仕組み） */
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* WordPressブロック特有の不要な余白をリセット */
}
.p-solution-card > *:first-child {
  margin-top: 0;
}
.p-solution-card > *:last-child {
  margin-bottom: 0;
}
.p-solution-card {
  /* 画像ブロックの調整 */
}
.p-solution-card .wp-block-image {
  margin-bottom: 24px;
  text-align: center;
}
.p-solution-card .wp-block-image img {
  border-radius: 4px;
  max-width: 100%;
  height: auto;
}
.p-solution-card {
  /* 見出し（製品名） */
}
.p-solution-card h3 {
  font-size: 20px;
  color: #3b5b98;
  font-weight: bold;
  margin-bottom: 8px;
}
.p-solution-card {
  /* サブタイトル（段落・小） */
}
.p-solution-card p:nth-of-type(1) {
  font-size: 13px;
  color: #666666;
  margin-bottom: 16px;
  font-weight: bold;
}
.p-solution-card {
  /* 説明文 */
}
.p-solution-card p:nth-of-type(2) {
  font-size: 15px;
  line-height: 1.7;
  color: #444444;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.p-solution-card {
  /* =========================================
     moreリンク（テキスト＋スライド矢印）
  ========================================= */
}
.p-solution-card .p-solution-more {
  margin-top: 24px;
}
.p-solution-card .p-solution-more a {
  position: relative;
  display: inline-block;
  font-size: 14px;
  color: #3b5b98; /* メインカラー */
  font-weight: bold;
  text-decoration: none;
  padding-bottom: 4px;
  padding-right: 25px; /* 矢印のための余白 */
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
  /* ホバー時のアクション（透過＋矢印スライド） */
}
.p-solution-card .p-solution-more a:hover {
  opacity: 0.8;
}
.p-solution-card .p-solution-more a:hover::before {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
}
.p-solution-card .p-solution-more a:hover::after {
  -webkit-transform: translateX(10px) rotate(45deg);
          transform: translateX(10px) rotate(45deg);
}
.p-solution-card .p-solution-more a {
  /* 直線（左から右まで引かれるベースの線） */
}
.p-solution-card .p-solution-more a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
}
.p-solution-card .p-solution-more a {
  /* 矢印の斜め先端部分 */
}
.p-solution-card .p-solution-more a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 9px; /* 先端の長さ */
  height: 1px;
  background-color: currentColor;
  -webkit-transform-origin: right center;
          transform-origin: right center;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg); /* 上向きの角度（右下を支点に持ち上げる） */
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
}
.p-solution-card {
  /* =========================================
     スマホ（767px以下）向けの微調整
  ========================================= */
}
@media (max-width: 767px) {
  .p-solution-card {
    padding: 24px 16px;
  }
  .p-solution-card h3 {
    font-size: 18px;
  }
}

/* =========================================
   1. グラフ全体を囲むラッパー
========================================= */
.c-chart-wrapper {
  position: relative;
  width: 100%;
  max-width: 280px;
  margin: 0 auto 1.5em;
  container-type: inline-size;
}

/* =========================================
   2. グラフ描画エリア（中央配置の基準）
========================================= */
.c-chart-canvas-container {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
}
.c-chart-canvas-container canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

/* =========================================
   3. ドーナツグラフ中央のテキスト配置
========================================= */
.c-chart-inner-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, calc(-50% - 3px));
          transform: translate(-50%, calc(-50% - 3px));
  width: 100%;
  text-align: center;
  pointer-events: none;
  color: #194992;
  line-height: 1.2;
}
.c-chart-inner-text .label {
  display: block;
  font-weight: bold;
  font-size: 14px; /* 古いブラウザ用の保険 */
  /* ▼ 箱の幅の5%のサイズ（どれだけ縮んでも最小10pxは確保） */
  font-size: max(10px, 5cqw);
}
.c-chart-inner-text .number {
  font-weight: bold;
  font-size: 28px;
  /* ▼ 箱の幅の10%のサイズ（どれだけ縮んでも最小16pxは確保） */
  font-size: max(16px, 10cqw);
}
.c-chart-inner-text .unit {
  font-weight: bold;
  font-size: 14px;
  font-size: max(10px, 5cqw);
}

/* =========================================
   4. タイポグラフィ特化型の数字（平均年齢用）
========================================= */
.c-number-minimal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 1/1;
  container-type: inline-size;
}
@media screen and (max-width: 767px) {
  .c-number-minimal {
    aspect-ratio: 2/1;
  }
}
.c-number-minimal .number {
  font-weight: 900;
  color: #194992;
  line-height: 1;
  letter-spacing: -0.05em;
  font-size: 64px;
  /* ▼ 箱の幅の22%のサイズ（どれだけ縮んでも最小32pxは確保） */
}
.c-number-minimal .unit {
  position: relative;
  color: #8CBFE6;
  font-weight: bold;
  /* ▼ 位置やサイズも、幅に合わせて可変にする */
  top: max(6px, 5cqw);
  left: max(4px, 3cqw);
  font-size: 18px;
  font-size: max(12px, 6cqw);
}

/* =========================================
   5. グラフ下のキャプション（合計〇〇名）
========================================= */
.c-chart-caption {
  margin-top: 12px;
  text-align: center;
  font-weight: bold;
  color: #888;
}
.c-chart-caption .number {
  margin: 0 4px;
  font-size: 24px;
  color: #666;
}
.c-chart-caption .unit {
  font-size: 14px;
}

/*--------------------------------------------------------------
# Front Page
--------------------------------------------------------------*/
.p-top-content {
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(226, 238, 249, 0.8)), to(rgba(178, 196, 223, 0.8)));
  background: linear-gradient(180deg, rgba(226, 238, 249, 0.8) 0%, rgba(178, 196, 223, 0.8) 100%);
}

/* =========================================
   MAIN VISUAL
========================================= */
.p-mv {
  position: relative;
  height: 100vh;
  clip-path: inset(0);
}
.p-mv .p-mv__video {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  z-index: 0;
  overflow: hidden;
}
.p-mv .p-mv__video-pc,
.p-mv .p-mv__video-sp {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transform: scale(1.02);
          transform: scale(1.02);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.p-mv .p-mv__video-pc {
  display: block;
}
.p-mv .p-mv__video-sp {
  display: none;
}

.p-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(48, 66, 228, 0.17)), color-stop(50%, rgba(67, 152, 199, 0.48)), to(rgba(96, 206, 221, 0.2588235294)));
  background: linear-gradient(to bottom, rgba(48, 66, 228, 0.17), rgba(67, 152, 199, 0.48) 50%, rgba(96, 206, 221, 0.2588235294) 100%);
}

.p-mv__inner {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  height: 100%;
  margin: 0 auto;
  padding: 0 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-mv__copy {
  max-width: 420px;
  margin-top: 28vh;
}

.p-mv__lead {
  color: #ffffff;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

.p-mv__message {
  -ms-flex-item-align: start;
      align-self: flex-start;
  margin-top: 22vh;
}
.p-mv__message img {
  width: 350px;
  height: auto;
  display: block;
}

@media screen and (max-width: 767px) {
  .p-mv .p-mv__video-pc {
    display: none;
  }
  .p-mv .p-mv__video-sp {
    display: block;
  }
  .p-mv .p-mv__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
  .p-mv .p-mv__message {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 70px;
    -ms-flex-item-align: center;
        align-self: center;
  }
  .p-mv .p-mv__message img {
    width: 70%;
  }
  .p-mv .p-mv__copy {
    width: 100%;
    margin-top: 100px;
  }
  .p-mv .p-mv__lead {
    font-size: 22px;
  }
}
/* =========================================
   COMPANY
========================================= */
.p-about {
  padding: 120px 0;
  background: #ffffff;
}
@media screen and (max-width: 767px) {
  .p-about {
    padding: 80px 0;
  }
}
.p-about .p-about__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 5%;
}
.p-about .p-about__heading {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  font-family: "TimeBurner", sans-serif;
}
.p-about .p-about__heading .p-about__heading-en {
  font-size: 7.2rem;
  font-weight: 300;
  letter-spacing: 0.08em;
  line-height: 1;
  margin: auto;
  background: -webkit-gradient(linear, left top, left bottom, from(#344688), to(#5FA0B5));
  background: linear-gradient(to bottom, #344688 0%, #5FA0B5 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.p-about .p-about__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.p-about .p-about__image {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 35%;
          flex: 0 0 35%;
  aspect-ratio: 4/5;
  overflow: hidden;
  margin: 0;
}
.p-about .p-about__image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.p-about .p-about__title {
  color: #344688;
  font-size: clamp(2rem, 2.5vw, 2.4rem);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.p-about .p-about__text {
  color: #333333;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.04em;
  margin-bottom: 0px;
}

@media screen and (max-width: 767px) {
  .p-about .p-about__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 24px;
  }
  .p-about .p-about__heading {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50px;
            flex: 0 0 50px;
  }
  .p-about .p-about__heading .p-about__heading-en {
    font-size: 5.5rem;
  }
  .p-about .p-about__body {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
  }
  .p-about .p-about__image {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    margin-top: 16px;
  }
  .p-about .p-about__image img {
    width: 100%;
    margin: 0 auto;
  }
  .p-about .p-about__title {
    margin: 0 auto 20px;
  }
  .p-about .p-about__text {
    line-height: 1.6;
  }
}
/* =========================================
   BUSINESS
========================================= */
.p-business {
  padding: 140px 0;
}
.p-business .p-business__inner {
  max-width: 100%;
}
.p-business .p-business__heading {
  margin-bottom: 30px;
  font-family: "TimeBurner", sans-serif;
}
.p-business .p-business__heading .p-business__heading-en {
  display: inline-block;
  font-size: 7.2rem;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.08em;
  margin: 0.2rem 0;
  background: -webkit-gradient(linear, left top, right top, from(#344688), to(#5FA0B5));
  background: linear-gradient(to right, #344688, #5FA0B5);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.p-business .p-business__heading .p-business__heading-ja {
  font-size: 2.4rem;
  color: #344688;
  font-weight: 600;
  letter-spacing: 0.1rem;
  margin-bottom: 0.2rem;
}
.p-business .p-business__body {
  width: 100%;
}
.p-business .p-business__text {
  margin-bottom: 40px;
  color: #333333;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.04em;
}
.p-business .p-business__button {
  margin-top: 16px;
}
.p-business .c-btn {
  min-width: 180px;
}

@media screen and (max-width: 767px) {
  .p-business {
    padding: 80px 0;
  }
  .p-business .p-business__heading {
    margin-bottom: 32px;
  }
  .p-business .p-business__heading .p-business__heading-en {
    font-size: 5.5rem;
  }
  .p-business .p-business__heading .p-business__heading-ja {
    font-size: 2rem;
  }
}
/* =========================================
   NEWS
========================================= */
.p-news {
  position: relative;
  z-index: 0;
  padding: 120px 0;
}
@media screen and (max-width: 1200px) {
  .p-news .l-inner {
    padding-right: calc(10vw + 40px);
  }
}
@media screen and (max-width: 767px) {
  .p-news .l-inner {
    padding-right: calc(10vw + 20px);
  }
}
.p-news::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 90%;
  height: 100%;
  background: #ffffff;
  -webkit-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
          box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .p-news::before {
    width: 94%;
  }
}
@media screen and (max-width: 767px) {
  .p-news {
    padding: 80px 0;
  }
}
.p-news .p-news__inner {
  max-width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 5%;
}
@media screen and (max-width: 767px) {
  .p-news .p-news__inner {
    gap: 20px;
  }
}
.p-news .p-news__heading {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  font-family: "TimeBurner", sans-serif;
}
.p-news .p-news__heading .p-news__heading-en {
  font-size: 7.2rem;
  font-weight: 300;
  letter-spacing: 0.08em;
  line-height: 1;
  margin: auto;
  background: -webkit-gradient(linear, left top, left bottom, from(#344688), to(#5FA0B5));
  background: linear-gradient(to bottom, #344688 0%, #5FA0B5 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
@media screen and (max-width: 767px) {
  .p-news .p-news__heading .p-news__heading-en {
    font-size: 5rem;
  }
}
.p-news .p-news__body {
  width: 100%;
}
.p-news .p-news__body .p-news__heading-ja {
  font-size: 2.4rem;
  color: #344688;
  font-weight: 600;
  letter-spacing: 0.1rem;
  margin-bottom: 0.2rem;
}
.p-news .news-list {
  margin: 40px 0;
  padding: 0;
  list-style: none;
}

/* =========================================
   RECRUITMENT
========================================= */
.p-recruit {
  position: relative;
  padding: 100px 0;
}
.p-recruit .p-recruit__bg {
  position: relative;
  clip-path: inset(0);
  width: 80%;
  max-width: 1200px;
  height: 600px;
  margin-left: auto;
}
.p-recruit .p-recruit__bg::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: url("../img/top/bg-recruit.png") center center/cover no-repeat;
  z-index: -1;
  pointer-events: none;
}
.p-recruit .p-recruit__card {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 90%;
  max-width: 1000px;
  background: #fff;
  padding: 70px;
  -webkit-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
          box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}
.p-recruit .p-recruit__card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 160px;
  height: 12px;
  background: #344688;
}
.p-recruit .p-recruit__inner {
  max-width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3%;
}
.p-recruit .p-recruit__content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.p-recruit .p-recruit__content .p-recruit__text {
  font-size: 1.5rem;
}
.p-recruit .p-recruit__heading {
  margin-bottom: 30px;
  font-family: "TimeBurner", sans-serif;
}
.p-recruit .p-recruit__heading .p-recruit__heading-en {
  display: inline-block;
  font-size: 7.2rem;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.08em;
  margin: 0.2rem 0;
  background: -webkit-gradient(linear, left top, right top, from(#344688), to(#5FA0B5));
  background: linear-gradient(to right, #344688, #5FA0B5);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit__heading .p-recruit__heading-en {
    font-size: 5rem;
  }
}
.p-recruit .p-recruit__heading .p-recruit__heading-ja {
  font-size: 2.4rem;
  color: #344688;
  font-weight: 600;
  letter-spacing: 0.1rem;
  margin-bottom: 0.2rem;
}
.p-recruit .p-recruit__links {
  margin: auto;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 240px;
          flex: 0 0 240px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  list-style: none;
}
.p-recruit .p-recruit__links a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 48px;
}

@media screen and (max-width: 1024px) {
  .p-recruit .p-recruit__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 40px;
  }
  .p-recruit .p-recruit__links {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .p-recruit .p-recruit__links a {
    max-width: 240px;
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .p-recruit .p-recruit__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 40px;
  }
  .p-recruit .p-recruit__card {
    max-width: 550px;
    width: calc(100% - 40px);
    padding: 48px 20px;
  }
  .p-recruit .p-recruit__bg {
    width: 90%;
    height: 680px;
  }
  .p-recruit .p-recruit__content {
    width: 100%;
  }
  .p-recruit .p-recruit__links {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
  }
  .p-recruit .p-recruit__links a {
    width: 180px;
    margin: 0 auto;
  }
  .p-recruit .p-recruit__links {
    gap: 16px;
    padding: 0;
  }
}
/* =========================================
   全セクション共通の上書き設定
========================================= */
.home [class$=__heading-en] {
  font-weight: 700 !important;
}
.home .site-footer {
  margin-top: 0;
}

/* =========================================
   グラデーションボタン (.c-btn-gradient)
========================================= */
.c-btn-gradient {
  /* もし親ラッパー（div）に線がつくテーマだった場合への対策 */
  border: none !important;
  background: transparent !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}
.c-btn-gradient .wp-block-button__link {
  /* ▼ 1. 最重要：擬似要素が背景の裏側に隠れるのを防ぐ魔法のプロパティ ▼ */
  position: relative !important;
  isolation: isolate !important;
  /* ▼ 2. 既存の青い線や背景を【完全に】無効化する ▼ */
  background: transparent !important;
  background-color: transparent !important;
  border: 2px solid transparent !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  outline: none !important;
  text-decoration: none !important;
  overflow: visible !important;
  /* ▼ 3. 文字のグラデーション化 ▼ */
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  background-image: linear-gradient(135deg, #3C7AD7 0%, #5FA0B5 51%, #6CB7BB 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  font-weight: bold;
  -webkit-transition: all 0.3s ease !important;
  transition: all 0.3s ease !important;
  /* ▼ 4. 枠線のグラデーション (::before) ▼ */
}
.c-btn-gradient .wp-block-button__link::before {
  content: "";
  position: absolute;
  inset: -2px !important; /* 透明なボーダー2px分だけ外側に広げる */
  z-index: -1 !important;
  border-radius: inherit;
  /* マスク処理で枠線だけを残す */
  border: 2px solid transparent !important;
  background: linear-gradient(135deg, #3C7AD7 0%, #5FA0B5 51%, #6CB7BB 100%) border-box !important;
  -webkit-mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff)) padding-box, -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff)) !important;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) !important;
  -webkit-mask-composite: destination-out !important;
  mask-composite: exclude !important;
  -webkit-transition: opacity 0.3s ease !important;
  transition: opacity 0.3s ease !important;
  display: block !important;
  opacity: 1 !important;
}
.c-btn-gradient .wp-block-button__link {
  /* ▼ 5. ホバー時の塗りつぶし背景 (::after) ▼ */
}
.c-btn-gradient .wp-block-button__link::after {
  content: "";
  position: absolute;
  inset: -2px !important; /* 枠線と同じサイズまで広げる（四隅の隙間対策） */
  z-index: -2 !important;
  border-radius: inherit;
  background: linear-gradient(135deg, #3C7AD7 0%, #5FA0B5 51%, #6CB7BB 100%) !important;
  -webkit-transition: opacity 0.3s ease !important;
  transition: opacity 0.3s ease !important;
  display: block !important;
  opacity: 0 !important; /* 最初は透明 */
}
.c-btn-gradient .wp-block-button__link {
  /* ▼ 6. ホバー時のアクション ▼ */
}
.c-btn-gradient .wp-block-button__link:hover {
  /* ブラウザのレンダリングバグを防ぐため、グラデーション構造のまま白くする */
  background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#ffffff)) !important;
  background-image: linear-gradient(#ffffff, #ffffff) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  /* 枠線を消して、塗りつぶし背景をフワッと表示 */
}
.c-btn-gradient .wp-block-button__link:hover::before {
  opacity: 0 !important;
}
.c-btn-gradient .wp-block-button__link:hover::after {
  opacity: 1 !important;
}

/*--------------------------------------------------------------
# ニュース一覧・アーカイブ共通レイアウト
--------------------------------------------------------------*/
/* 2カラムレイアウト（PC・スマホ切り替え） */
.l-container--2col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 80px;
  max-width: 1000px;
  width: 100%;
  margin: 0 auto 60px;
  padding-right: 40px;
  padding-left: 40px;
}
@media screen and (max-width: 767px) {
  .l-container--2col {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 50px;
    margin: 30px auto 40px;
    padding-right: 20px;
    padding-left: 20px;
  }
}
.l-container--2col .main-content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.l-container--2col .sidebar {
  width: 250px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .l-container--2col .sidebar {
    width: 100%;
  }
}

/*--------------------------------------------------------------
# 記事リスト (.news-list)
--------------------------------------------------------------*/
/* =========================================
   リスト全体のラッパー (.news-list)
========================================= */
.news-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.news-list {
  /* ▼ 1件目の li (.news-item) 余白削除 ▼ */
}
.news-list .news-item:first-child .post-item {
  padding-top: 0;
}

/* =========================================
   記事アイテム本体 (.post-item)
========================================= */
.post-item {
  display: block;
  padding: 32px 0 48px;
  border-bottom: 1px solid #c7d1e1;
  color: inherit;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .post-item {
    padding: 20px 0 30px;
  }
}
.post-item {
  /* ホバー時の全体アクション */
}
.post-item:hover .post-item__title {
  opacity: 0.8;
}
.post-item:hover .post-item__more::before {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
}
.post-item:hover .post-item__more::after {
  -webkit-transform: translateX(10px) rotate(45deg);
          transform: translateX(10px) rotate(45deg);
}
.post-item {
  /* 上部：メタ情報 */
}
.post-item__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
  margin-bottom: 12px;
}
.post-item__date {
  font-size: 15px;
  color: #3b5b98;
  letter-spacing: 0.05em;
}
.post-item__category {
  background-color: #3b5b98;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 4px 16px;
}
.post-item {
  /* 中央：タイトル */
}
.post-item__title {
  font-size: 18px;
  font-weight: bold;
  color: #3b5b98;
  margin-bottom: 12px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.post-item {
  /* 下部：抜粋文 ＆ more矢印 */
}
.post-item__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 24px;
}
@media (max-width: 767px) {
  .post-item__body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0;
  }
}
.post-item__excerpt {
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.post-item {
  /* more矢印（上向き・スライド版） */
}
.post-item__more {
  position: relative;
  display: inline-block;
  font-size: 15px;
  color: #3b5b98;
  font-weight: bold;
  padding-bottom: 4px;
  padding-right: 25px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media (max-width: 767px) {
  .post-item__more {
    -ms-flex-item-align: end;
        align-self: flex-end;
    margin-top: 4px;
  }
}
.post-item__more::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
}
.post-item__more::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 9px;
  height: 1px;
  background-color: currentColor;
  -webkit-transform-origin: right center;
          transform-origin: right center;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
}

/*--------------------------------------------------------------
# サイドバー (.sidebar)
--------------------------------------------------------------*/
.sidebar-widget {
  margin-bottom: 40px;
}

.sidebar-title {
  margin-top: 0;
  font-size: 18px;
  font-weight: bold;
  color: #3b5b98;
  border-left: 4px solid #3b5b98;
  padding-left: 12px;
  margin-bottom: 20px;
  line-height: 1.2;
}

/* =========================================
   タイルの共通スタイル（使い回し用）
========================================= */
.archive-tiles a, .category-tiles a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 14px 16px;
  border: 1px solid #e0e5ed;
  background-color: #fff;
  color: #333;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.archive-tiles a::after, .category-tiles a::after {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 2px solid #3b5b98;
  border-right: 2px solid #3b5b98;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.archive-tiles a:hover, .category-tiles a:hover {
  background-color: #f8fafc;
  border-color: #3b5b98;
  color: #3b5b98;
}
.archive-tiles a:hover::after, .category-tiles a:hover::after {
  -webkit-transform: translateX(4px) rotate(45deg);
          transform: translateX(4px) rotate(45deg);
}

/* =========================================
   各ウィジェットのレイアウト
========================================= */
.category-tiles {
  list-style: none;
  padding: 0;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 12px;
}
.archive-tiles {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
/* =========================================
   アコーディオン (JS不要)
========================================= */
.archive-accordion {
  margin-top: 12px;
}
.archive-accordion__summary {
  display: block;
  padding: 12px;
  text-align: center;
  background-color: #f8fafc;
  color: #3b5b98;
  font-weight: bold;
  font-size: 13px;
  cursor: pointer;
  border-radius: 4px;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
  list-style: none;
}
.archive-accordion__summary::-webkit-details-marker {
  display: none;
}
.archive-accordion__summary::after {
  content: "＋";
  margin-left: 6px;
}
.archive-accordion__summary:hover {
  opacity: 0.7;
}
.archive-accordion[open] .archive-accordion__summary {
  margin-bottom: 12px;
}
.archive-accordion[open] .archive-accordion__summary::after {
  content: "－";
}

/*--------------------------------------------------------------
# ページネーション
--------------------------------------------------------------*/
.pagination {
  margin-top: 50px;
}
.pagination .nav-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
}
.pagination .nav-links a,
.pagination .nav-links span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-width: 35px;
  height: 35px;
  padding: 0 10px;
  border: 1px solid #ddd;
  text-decoration: none;
  color: #333;
  font-size: 1.2rem;
}
.pagination .nav-links a.current,
.pagination .nav-links span.current {
  background-color: #2b4b7b;
  color: #fff;
  border-color: #2b4b7b;
}
.pagination .nav-links .prev,
.pagination .nav-links .next {
  font-size: 22px;
  line-height: 1;
  padding-bottom: 2px;
}

/*--------------------------------------------------------------
# ニュース詳細
--------------------------------------------------------------*/
.single-post .page-hero__ttl-ja {
  margin: 5px 0 0.67em;
  font-weight: 700;
}

.p-single {
  padding: 0;
}
.p-single .p-single__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 80px;
}
.p-single .p-single__main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.p-single .p-single__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
  margin-bottom: 32px;
}
.p-single .p-single__meta .p-single__date {
  color: #3b5b98;
  font-size: 1.5rem;
  letter-spacing: 0.05em;
}
.p-single .p-single__meta .p-single__category {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 88px;
  height: 32px;
  padding: 4px 16px;
  background: #3b5b98;
  color: #ffffff;
  font-size: 1.2rem;
  font-weight: bold;
}
.p-single .p-single__title {
  margin-bottom: 2rem;
  color: #3b5b98;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-single .p-single__content {
  color: #333333;
  font-size: 1.5rem;
  letter-spacing: 0.04em;
}
.p-single .p-single__content p {
  margin-top: 0;
  margin-bottom: 0.6rem;
}
.p-single .p-single__content h2 {
  margin: 60px 0 24px;
  color: #3b5b98;
  font-size: 2.6rem;
  font-weight: 700;
}
.p-single .p-single__content img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 40px auto;
}
.p-single .p-single__content .wp-block-button__link {
  margin-bottom: 10px;
}
.p-single .p-single__sidebar {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 280px;
          flex: 0 0 280px;
}
.p-single .p-single__sidebar .sidebar {
  margin: 0;
  padding: 0;
}
.p-single .p-single__sidebar ul {
  list-style: none;
  margin: auto;
}
.p-single .p-single__sidebar li {
  padding: 0 0 1rem;
  font-size: 15px;
}
.p-single .p-single__sidebar .recent-posts-list {
  padding: 0;
}
.p-single .p-single__sidebar .recent-posts-list li {
  padding: 16px 0;
  border-bottom: 1px solid #e0e5ed;
}
.p-single .p-single__sidebar .recent-posts-list li:first-child {
  padding-top: 0;
}
.p-single .p-single__sidebar .recent-posts-list a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  text-decoration: none;
  padding: 0 16px;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.p-single .p-single__sidebar .recent-posts-list a:hover {
  opacity: 0.8;
}
.p-single .p-single__sidebar .recent-posts-list a .date {
  margin-bottom: 5px;
  color: #777777;
  font-size: 1.3rem;
}
.p-single .p-single__sidebar .recent-posts-list a .title {
  color: #3b5b98;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.6;
}
.p-single .p-single__sidebar .recent-posts-list .post-item {
  padding: 0 16px;
  border-bottom: none;
}

@media screen and (max-width: 767px) {
  .p-single .p-single__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 60px;
  }
  .p-single .p-single__main {
    width: 100%;
  }
  .p-single .p-single__sidebar {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
  }
  .p-single .p-single__sidebar ul {
    padding-left: 0;
  }
  .p-single .p-single__sidebar .recent-posts-list a .post-item__more {
    display: none;
  }
  .p-single .p-single__title {
    font-size: 2.4rem;
  }
  .p-single .p-single__meta {
    gap: 12px;
    margin-bottom: 24px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .p-single .p-single__meta .p-single__category {
    min-width: 74px;
    height: 28px;
    padding: 0 12px;
  }
  .p-single .p-single__date {
    font-size: 1.4rem;
  }
}
/* ============================================
   404ページ (.p-error-404)
============================================ */
.p-error-404 {
  text-align: center;
}
.p-error-404__message {
  display: inline-block;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-error-404__message {
    text-align: left;
  }
}
.p-error-404__message p {
  margin-bottom: 1.5em;
  line-height: 1.8;
}
.p-error-404__message p:last-of-type {
  margin-bottom: 3em;
}
.p-error-404__button {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.p-error-404__button .c-btn-gradient {
  min-width: 240px;
}
.p-error-404__button .c-btn-gradient a {
  display: block;
  width: 100%;
}

/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}
.widget select {
  max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}
.wp-caption img[class*=wp-image-] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

.wp-caption-text {
  text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
  display: block;
}

/* Maps
--------------------------------------------- */
/* --------------------------------------------------
  Googleマップ（iframe）のレスポンシブ対応
-------------------------------------------------- */
.p-gmap-container {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9のアスペクト比。正方形に近づけたい場合は 75% (4:3) などに変更 */
  margin-bottom: 2em;
  overflow: hidden;
}
.p-gmap-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  border: none;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/
/* Jetpack infinite scroll
--------------------------------------------- */
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}

/* FluentForms
--------------------------------------------- */
/* 個人情報スクロールエリアのデザイン */
.privacy-scroll-wrapper {
  height: 250px;
  overflow-y: auto;
  background-color: #f2f2f2;
  padding: 20px;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
  margin-bottom: 20px;
}
.privacy-scroll-wrapper h3, .privacy-scroll-wrapper h5 {
  margin-top: 0;
}

/* =========================================
   Fluent Forms: スマホ時のラジオボタン・チェックボックスはみ出し修正
========================================= */
@media screen and (max-width: 767px) {
  .frm-fluent-form {
    /* --- 1.「ボタン風スタイル」 --- */
  }
  .frm-fluent-form .ff-el-form-check {
    width: 100% !important;
    -webkit-box-sizing: border-box !important;
            box-sizing: border-box !important;
  }
  .frm-fluent-form .ff-el-form-check-label {
    width: 100% !important;
    height: auto !important;
    min-height: 48px !important;
    display: block !important;
    text-align: center !important;
    -webkit-box-sizing: border-box !important;
            box-sizing: border-box !important;
  }
  .frm-fluent-form .ff-el-form-check-label span:not(:has([data-name=agreement])) {
    display: inline-block !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: break-all !important;
    line-height: 1.4 !important;
    width: 100% !important;
    padding: 12px 10px !important;
  }
  .frm-fluent-form {
    /* --- 2. 「チェックボックス」の場合のみ適用する上書きスタイル（がたつき解消） --- */
    /* 選択肢ごとの縦の隙間 */
  }
  .frm-fluent-form .ff-el-form-check:has(input[type=checkbox]) {
    margin-bottom: 8px !important;
  }
  .frm-fluent-form {
    /* 横並び＆左寄せに */
  }
  .frm-fluent-form .ff-el-form-check-label:has(input[type=checkbox]) {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-align: start !important;
        -ms-flex-align: start !important;
            align-items: flex-start !important;
    text-align: left !important;
    min-height: auto !important;
  }
  .frm-fluent-form {
    /* チェックボックス本体の位置合わせ */
  }
  .frm-fluent-form .ff-el-form-check-label input[type=checkbox] {
    -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    margin-top: 15px !important;
  }
  .frm-fluent-form {
    /* チェックボックスの右側のテキスト */
  }
  .frm-fluent-form .ff-el-form-check-label input[type=checkbox] + span {
    display: block !important;
    padding: 8px 0 8px 10px !important;
    text-align: left !important;
  }
}
.frm-fluent-form .ff-btn-submit {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  min-width: 20rem;
  background-color: #fff !important;
  color: #194992 !important;
  border: 2px solid #194992;
  border-radius: 0.2rem;
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.frm-fluent-form .ff-btn-submit:hover {
  background-color: #194992 !important;
  color: #fff !important;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
.br-pc {
  display: block;
}
@media screen and (max-width: 767px) {
  .br-pc {
    display: none;
  }
}

.br-sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .br-sp {
    display: block;
  }
}

.u-ib {
  display: inline-block;
}

/* Accessibility
--------------------------------------------- */
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
          box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
  /*rtl:ignore*/
  float: left;
  /*rtl:ignore*/
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}

.alignright {
  /*rtl:ignore*/
  float: right;
  /*rtl:ignore*/
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

/* Spacing
--------------------------------------------- */
/*--------------------------------------------------------------
# ユーティリティ: 余白 (Spacing)
--------------------------------------------------------------*/
.mb-0 {
  margin-bottom: 0 !important;
}

.mb-10 {
  margin-bottom: 1rem !important;
}

.mb-20 {
  margin-bottom: 2rem !important;
}

.mb-30 {
  margin-bottom: 3rem !important;
}

.mb-40 {
  margin-bottom: 4rem !important;
}

.mb-50 {
  margin-bottom: 5rem !important;
}

.mb-60 {
  margin-bottom: 6rem !important;
}

.mb-70 {
  margin-bottom: 7rem !important;
}

.mb-80 {
  margin-bottom: 8rem !important;
}

.mb-90 {
  margin-bottom: 9rem !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-10 {
  margin-top: 1rem !important;
}

.mt-20 {
  margin-top: 2rem !important;
}

.mt-30 {
  margin-top: 3rem !important;
}

.mt-40 {
  margin-top: 4rem !important;
}

.mt-50 {
  margin-top: 5rem !important;
}

.mt-60 {
  margin-top: 6rem !important;
}

.mt-70 {
  margin-top: 7rem !important;
}

.mt-80 {
  margin-top: 8rem !important;
}

.mt-90 {
  margin-top: 9rem !important;
}

.mb-sm {
  margin-bottom: 1em !important;
}

.mb-lg {
  margin-bottom: 4em !important;
}

/* スマホ時（縦積み時）のみ、カラム間の余白を0にする */
@media (max-width: 781px) {
  .u-sp-gap-0 {
    gap: 0 !important;
  }
  /* WPの仕様上、子要素のカラムにmargin-bottomが付与されるケースへの対策 */
  .u-sp-gap-0 > .wp-block-column {
    margin-bottom: 0 !important;
  }
}