@charset "UTF-8";
/* ============================
variables
============================ */
:root {
  /* font */
  --font-main:
    "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", "YuGothic",
    "游ゴシック体", sans-serif;
  --font-en: "Roboto", "Helvetica Neue", helvetica, arial, sans-serif;
  /* font-size */
  --font-size-root-px: 16px;
  /* font-weight */
  --font-weight-regular: 400;
  --font-weight-bold: 700;
  /* line-height */
  --lh-xtight: 1.2;
  --lh-tight: 1.4;
  --lh-middle: 1.6;
  --lh-base: 1.8;
  /* color */
  --c-primary: rgb(33 150 243);
  --c-secondary: rgb(255 152 0);
  --c-third: rgb(255 235 59);
  --c-ltgreen: #64d8cb;
  /* color for RGB */
  --c-primary-rgb: 33, 150, 243;
  --c-secondary-rgb: 255, 152, 0;
  --c-third-rgb: 255, 235, 59;
  /* text-color */
  --c-text-dark: #070f1f;
  --c-text-darkblue: rgb(10 60 102);
  --c-text-light: rgb(97 100 106);
  --c-text-pale: rgb(241 242 243);
  --c-text-alert: #ec392d;
  --c-text-link: rgb(76 76 244);
  --c-text-form-sent: #4c6e47;
  /* background-color */
  --c-bg-blue: rgb(231 245 253);
  --c-bg-gray: rgb(243 244 245);
  --c-bg-lightgray: rgb(243 244 245);
  --c-bg-alert: #ffe9e8;
  --c-bg-form-sent: #ccf3c8;
  /* background-color only RGB */
  --c-bg-gray-rgb: 243, 244, 245;
  /* border-color */
  --c-border-dark: rgb(121 125 133);
  --c-border-light: rgb(228 229 231);
  /* gradient */
  --gr-orange-vertical: linear-gradient(
    180deg,
    var(--c-secondary) 3%,
    rgb(255 187 0) 100%
  );
  --gr-orange-horizontal: linear-gradient(
    90deg,
    var(--c-secondary) 20%,
    rgb(248 182 0) 100%
  );
  --gr-yellow-horizontal: linear-gradient(
    270deg,
    var(--c-third) 0%,
    rgb(255 213 59) 100%
  );
  --gr-blue-gray-horizontal: linear-gradient(
    0deg,
    rgb(248 248 248) 0%,
    var(--c-bg-blue) 98%
  );
  --gr-cta-materials: linear-gradient(90deg, #73fdcb 5.39%, #64d8cb 100%);
  --gr-cta-contact: linear-gradient(90deg, #ffd61f 0%, #ff9800 100%);
  --gr-yellow-line: linear-gradient(
    180deg,
    rgb(255 235 59 / 0%) 74.99%,
    #ffeb3b 75%
  );
  --gr-blue-rightblue-horizontal: linear-gradient(
    90deg,
    rgb(33 150 243) 0%,
    rgb(77 208 225) 100%
  );
  --gr-blue-rightblue-vertical: linear-gradient(
    180deg,
    rgb(33 150 243) 0%,
    rgb(77 208 225) 100%
  );
  --btn-filter-transition: filter 0.18s ease;
  --gr-white-lightblue-horizontal: linear-gradient(
    90deg,
    rgb(23 189 211 / 0%) 0%,
    rgb(33 150 243 / 10%) 100%
  );
  --gr-gray-lightblue-vertical: linear-gradient(
    0deg,
    #f8f8f8 0%,
    #e7f5fd 97.6%
  );
  --gr-gray-lightblue-horizonental: linear-gradient(
    90deg,
    #f1f2f3 0%,
    #e7f5fd 97.6%
  );
  --gr-flow-triangle: linear-gradient(
    220deg,
    rgb(77 208 225) 0%,
    rgb(33 150 243) 100%
  );
  /* shadow */
  --shadow-card-normal: 0 3px 20px 0 rgb(23 23 126 / 10%);
  --shadow-card-small: 0 3px 10px 0 rgb(23 23 126 / 10%);
  --shadow-blue: 3px 6px 28.4px 0 rgb(33 150 243 / 30%);
  /* spacing */
  --space-0_5: 4px;
  --space-1: 8px;
  --space-1_5: 12px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 40px;
  --space-6: 48px;
  --space-7: 56px;
  --space-8: 64px;
  --space-9: 72px;
  --space-10: 80px;
  --space-11: 88px;
  --space-12: 96px;
  --space-13: 104px;
  /* radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-x3: 24px;
  --radius-x10: 80px;
  /* font-size (rem) */
  --font-size-xxs: 0.5625rem; /* 9px */
  --font-size-xs: 0.694rem; /* 11.11px */
  --font-size-sm: 0.875rem; /* 14px */
  --font-size-base: 1rem; /* 16px */
  --font-size-md: 1.2rem; /* 19.2px */
  --font-size-lg: 1.44rem; /* 23.04px */
  --font-size-xl: 1.728rem; /* 27.65px */
  --font-size-xxl: 2.074rem; /* 33.18px */
  --font-size-xxxl: 2.488rem; /* 39.81px */
  --font-size-xxxxl: 2.986rem; /* 47.78px */
  /* transiton */
  --transition-normal: 0.3s;
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  /* z-index */
  --z-header: 2000;
  --z-pc-nav: 3000;
  --z-page-cover: 1500;
  /* height */
  --header-h-pc: 80px;
  --header-h-sp: 60px;
  --header-h: var(--header-h-pc); /* 現在のヘッダー高さ */
  /* frontページ：アンカーリンク時にはみだした装飾分の高さを調整するための指定 */
  --front-overlap-pc: 34px;
  --front-overlap-sp: 18px;
  --front-overlap: 0px; /* デフォは 0px（通常の固定ページ） */
  /* 最終オフセット：animation.js 側では常にこの値を参照している */
  --anchor-offset: calc(var(--header-h) + var(--front-overlap));
}

/* ============================
ユーティリティークラス
============================ */
/* ----- リキャプチャバッジ非表示 ----- */
.grecaptcha-badge { visibility: hidden; }
/* ----- SPでは改行を消す ----- */
.br-pc {
  display: inline;
}

@container site-main (max-width: 640px) {
  .br-pc {
    display: none;
  }
}

/* ----- SPでは改行する ----- */
.br-sp {
  display: none;
}

@container site-main (max-width: 640px) {
  .br-sp {
    display: inline;
  }
}
/* ----- 改行調整 brタグ -----*/
br.pad_br,
br.m_br{
	display: none;
}

@media screen and (max-width: 1023px) {
	br.pad_br {
		display: block;
	}
	br.p_br1023 {
		display: none;
	}		
}
@media screen and (max-width: 767px) {
	br.p_br {
		display: none;
	}	
	br.m_br {
		display: block;
	}
}
.link-external {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.1em;
  margin-right: var(--space-0_5);
}

.link-external::after {
  content: "";
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  background-color: currentcolor;
  -webkit-mask: no-repeat center/contain
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23000' d='M12.6667 9.16667V13.1667C12.6667 13.5203 12.5262 13.8594 12.2761 14.1095C12.0261 14.3595 11.687 14.5 11.3333 14.5H3.33333C2.97971 14.5 2.64057 14.3595 2.39052 14.1095C2.14048 13.8594 2 13.5203 2 13.1667V5.16667C2 4.81304 2.14048 4.47391 2.39052 4.22386C2.64057 3.97381 2.97971 3.83333 3.33333 3.83333H7.33333V5.16667H3.33333V13.1667H11.3333V9.16667H12.6667ZM8.66667 2.5V3.83333H11.724L6.52867 9.02867L7.47133 9.97133L12.6667 4.776V7.83333H14V2.5H8.66667Z'/></svg>");
  mask: no-repeat center/contain
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23000' d='M12.6667 9.16667V13.1667C12.6667 13.5203 12.5262 13.8594 12.2761 14.1095C12.0261 14.3595 11.687 14.5 11.3333 14.5H3.33333C2.97971 14.5 2.64057 14.3595 2.39052 14.1095C2.14048 13.8594 2 13.5203 2 13.1667V5.16667C2 4.81304 2.14048 4.47391 2.39052 4.22386C2.64057 3.97381 2.97971 3.83333 3.33333 3.83333H7.33333V5.16667H3.33333V13.1667H11.3333V9.16667H12.6667ZM8.66667 2.5V3.83333H11.724L6.52867 9.02867L7.47133 9.97133L12.6667 4.776V7.83333H14V2.5H8.66667Z'/></svg>");
  opacity: 0.92;
}

/* ============================
リセット
============================ */
/* v2.0 | 20110126 | License: none (public domain) */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a {
  text-decoration: none;
}

/* ============================
フォント設定
============================ */
html {
  font-family: var(--font-main);
  font-size: var(--font-size-base);
}

body {
  font-weight: var(--font-weight-regular);
  line-height: var(--lh-middle);
}

:lang(en),
body *:lang(en),
body *:lang(en) * {
  font-family: var(--font-en);
}

/* ============================
ベース指定
 * - スクロール挙動（アンカー・固定ヘッダー調整）
 * - body共通タイポグラフィ／カラー
 * - コンテナ（横幅・左右余白）
 * - 行間などの最低限のベース指定
============================ */
/* --------------------------------
 * スクロール挙動
 * - JS の scrollTo / scrollIntoView 用
 * - 固定ヘッダー + front のはみ出し分を考慮してアンカー位置を補正
 * ------------------------------ */
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

/* id付き要素へのアンカーリンク位置を補正
   - var(--anchor-offset) は _variables.scss 側で定義
   - header高さ + frontのはみ出し量 を反映した最終オフセット */
[id] {
  scroll-margin-top: var(--anchor-offset);
}

/* --------------------------------
 * body共通
 * - ベースフォントサイズ・文字色
 * - frontのみ front-overlap を上書き
 * ------------------------------ */
html {
  font-size: var(--font-size-root-px);
  color: var(--c-text-dark);
}

body {
  font-size: var(--font-size-base);
  /* front pageでは、.labelがはみ出している分を調整する */
}

body.home {
  --front-overlap: var(--front-overlap-pc); /* 34px */
}

body:not(.home) {
  --front-overlap: 0px;
}

/* --------------------------------
 * 管理バー表示時の微調整
 * - WordPress admin bar の分だけアンカー位置をさらに補正
 * ------------------------------ */
body.admin-bar {
  --anchor-fudge: 32px;
}

@media (width <= 782px) {
  body.admin-bar {
    --anchor-fudge: 46px;
  }
}

/* --------------------------------
 * ブレイクポイント別のルート値上書き
 * - SP時はヘッダー高さと front overlap をSP用に切り替える
 * ------------------------------ */
/* タブレット・SP 共通 */
@media (width <= 800px) {
  :root {
    --header-h: var(--header-h-sp); /* ヘッダー高さをSP値に */
  }
  body.home {
    --front-overlap: var(--front-overlap-sp); /* 上積みもSP値に */
  }
}

/* --------------------------------
 * コンテナ（横幅・左右余白）
 * ------------------------------ */
.container {
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: calc(1044px + 2 * 16px);
  padding-inline: 16px;
  margin-inline: auto;
}

.container__narrow {
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: calc(688px + 2 * clamp(16px, 3vw, 32px));
  padding-inline: clamp(16px, 3vw, 32px);
  margin-inline: auto;
  padding-block: clamp(var(--space-5), 4.4444444444vw, var(--space-8))
    clamp(var(--space-4), 5.5555555556vw, var(--space-10));
}

/* --------------------------------
 * ベースの行間・コンテナクエリ
 * ------------------------------ */
/* 段落の最低限の行間 */
p {
  line-height: 1.8;
}

/* main領域を container-query 用のコンテナにする */
.site-main {
  container-type: inline-size;
  container-name: site-main;
}

/* ============================
   ヘッダー
   ============================ */
/* ----- 基本レイアウト ----- */
.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: var(--z-header, 2000);
  height: var(--header-h-pc);
  padding-inline: var(--space-2);
  background: rgba(255, 255, 255, 0.9);
}

.branding-logo img {
  width: 270px;
  height: auto;
  display: block;
}

/* ----- PCナビゲーション ----- */
.pc_main-navigation {
  display: grid;
  grid-auto-flow: column;
  gap: var(--space-2);
  align-items: center;
  position: relative;
  height: 100%;
}

.pc_main-navigation .pc-nav {
  position: absolute;
  top: calc(100% + var(--space-1));
  left: 0;
  z-index: var(--z-pc-nav);
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3) var(--space-2);
  background: #fff;
  border-radius: var(--radius-x3);
  box-shadow: var(--shadow-card-normal);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1),
    visibility 0s 0.22s;
}

.pc_main-navigation .pc-nav > li > a {
  display: block;
  position: relative;
  min-width: 240px;
  padding: var(--space-1) var(--space-8) var(--space-1) var(--space-2);
  background-color: #fff;
  border-radius: 99px;
  color: var(--c-text-dark);
  transition: background-color 0.2s ease;
}

.pc_main-navigation .pc-nav > li > a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18px;
  width: 6px;
  height: 6px;
  border-right: 1px solid currentcolor;
  border-bottom: 1px solid currentcolor;
  transform: translateY(-50%) rotate(-45deg);
  transform-origin: center;
  pointer-events: none;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
}

.pc_main-navigation .pc-nav > li > a:focus-visible {
  outline: 2px solid var(--c-primary);
  outline-offset: 2px;
}

.pc_main-navigation .pc-nav > li > a:hover {
  color: #fff;
  background-color: var(--c-primary);
}

.pc_main-navigation .pc-nav > li > a:hover::after {
  transform: translateY(-50%) rotate(-45deg) translateX(2px);
}

.pc_main-navigation .pc-nav > li > a:active {
  color: #fff;
  filter: brightness(0.95);
}

.pc_main-navigation.toggled .pc-nav {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  transition:
    opacity 0.2s ease,
    transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1),
    visibility 0s;
}

.pc_main-navigation.toggled .arrow-icon {
  transform: rotate(180deg);
}

.menu-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-0_5);
  padding: var(--space-1_5) var(--space-2);
  border: none;
  border-radius: 999px;
  background: transparent;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.2s ease-in-out;
}

.menu-toggle:hover {
  background-color: var(--c-bg-gray);
}

.arrow-icon {
  stroke: currentcolor;
}

/* ----- SPナビゲーション（PC時は非表示） ----- */
.sp_main-navigation {
  display: none;
}

/* ----- CTAボタン ----- */
.cta_dl,
.cta_contact {
  display: block;
  padding: var(--space-1_5) var(--space-3);
  border-radius: var(--radius-x3);
  font-size: var(--font-size-sm);
  font-weight: 700;
  transition: var(--btn-filter-transition);
}

/* ----- ページカバー（PCメニュー展開時の背景） ----- */
.page-cover {
  position: fixed;
  inset: 0;
  z-index: var(--z-page-cover);
  background: rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(5px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.22s ease,
    visibility 0s 0.22s;
}

header:has(.pc_main-navigation.toggled) + .page-cover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity 0.2s ease,
    visibility 0s;
}

/* ----- レスポンシブ: タブレット〜SP ----- */
@media (width <= 800px) {
  .site-header {
    height: var(--header-h-sp);
  }
  .branding-logo img {
    width: 168px;
  }
  .pc_main-navigation {
    display: none;
  }
  /* SPナビゲーション */
  .sp_main-navigation {
    display: block;
    position: relative;
  }
  .sp_main-navigation .sp-nav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    padding: calc(var(--header-h-sp) + var(--space-2)) var(--space-2)
      var(--space-2);
    background: var(--c-bg-gray);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    pointer-events: none;
    transition:
      opacity 0.2s ease,
      transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1),
      visibility 0s 0.22s;
  }
  .sp_main-navigation .sp-nav > li {
    border-top: 1px solid var(--c-border-light);
  }
  .sp_main-navigation .sp-nav > li > a {
    display: block;
    padding-block: var(--space-1_5);
    padding-inline: var(--space-1_5);
    font-weight: 500;
    position: relative;
    color: var(--c-text-dark);
  }
  .sp_main-navigation .sp-nav > li > a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 6px;
    height: 6px;
    border-right: 1px solid currentcolor;
    border-bottom: 1px solid currentcolor;
    transform: translateY(-50%) rotate(-45deg);
    transform-origin: center;
    pointer-events: none;
    transition:
      transform 0.2s ease,
      opacity 0.2s ease;
  }
  .sp_main-navigation .sp-nav > li > a:visited {
    color: var(--c-text-dark);
  }
  .sp_main-navigation .sp-nav > li > a:hover {
    color: var(--c-primary);
  }
  .sp_main-navigation .sp-nav > li > a:active {
    color: var(--c-primary);
    filter: brightness(0.95);
  }
  .sp_main-navigation.toggled .sp-nav {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
    transition:
      opacity 0.2s ease,
      transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1),
      visibility 0s;
  }
  .sp-menu-button {
    position: relative;
    z-index: 3;
    font-size: var(--font-size-sm);
  }
  .sp-menu-button .arrow-icon {
    transform: rotate(0deg);
    transition: transform var(--transition-normal) ease;
  }
  .sp-menu-button.is-open .arrow-icon {
    transform: rotate(180deg);
  }
  .cta-wrap {
    display: flex;
    flex-flow: row wrap;
    gap: var(--space-2);
    align-items: stretch;
    justify-content: center;
    margin-top: var(--space-4);
    margin-inline: auto;
  }
}

/* 極小画面対応 */
@media (width <= 339px) {
  .cta-wrap {
    flex-flow: column;
    text-align: center;
  }
}

/* アクセシビリティ: 動き抑制ユーザー向け */
@media (prefers-reduced-motion: reduce) {
  .sp_main-navigation .sp-nav {
    transition: none !important;
    transform: none !important;
  }
}

/* ============================
フッター
============================ */
/* ----- フッター ----- */
.site-footer {
  border-top: 1px solid var(--c-border-light);
}

.site-footer-upper {
  padding: var(--space-4) 0;
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: calc(1044px + 2 * 16px);
  padding-inline: 16px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.menu-footer_menu-cta-container {
  margin-top: var(--space-1_5);
}

.footer-nav,
.footer-nav-cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-1_5) var(--space-2);
  padding: 0;
  margin: 0 auto;
}

.footer-nav a,
.footer-nav-cta a {
  font-size: var(--font-size-sm);
  color: var(--c-text-light);
  white-space: nowrap;
  transition: color var(--transition-normal);
}

.footer-nav a:hover,
.footer-nav a:focus-visible,
.footer-nav-cta a:hover,
.footer-nav-cta a:focus-visible {
  color: color-mix(in srgb, var(--c-text-light) 70%, #000 40%);
}

.site-footer-adout {
  font-size: clamp(0.694375rem, 0.9722222222vw, 0.875rem);
  text-align: center;
  color: var(--c-text-light);
}

.footer-logo {
  margin-bottom: var(--space-1);
  text-align: center;
}

.site-footer-copy {
  font-size: var(--font-size-xs);
  color: var(--c-text-light);
  text-align: center;
  padding: var(--space-2);
  text-transform: uppercase;
  border-top: 1px solid var(--c-border-light);
}

/* ----- Topアンカー ----- */
.pagetop {
  position: fixed;
  right: clamp(8px, 2vw, 32px);
  bottom: clamp(8px, 2vw, 32px);
  z-index: 50;
  inline-size: 64px;
  block-size: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.pagetop.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.pagetop:hover {
  opacity: 0.8;
}

.pagetop__icon {
  display: block;
  width: 100%;
  height: auto;
}

@media (width <= 800px) {
  .pagetop {
    inline-size: 44px;
    block-size: 44px;
  }
}

/* ============================
Section Title
============================ */
/* -----共通見出し ----- */
.sec-title-wrapper {
  text-align: center;
  padding-bottom: clamp(var(--space-5), 3.3333333333vw, var(--space-6));
}

.sec-title-wrapper p {
  font-family: var(--font-en);
  font-size: clamp(0.75rem, 1.1111111111vw, 1rem);
  font-weight: bold;
  text-transform: uppercase;
  color: var(--c-primary);
}

.sec-title-wrapper .sec-titl-label {
  font-size: clamp(1.375rem, 2.3041666667vw, 2.07375rem);
  font-weight: bold;
  color: var(--c-text-darkblue);
  text-align: center;
  position: relative;
}

.sec-title-wrapper .sec-titl-label span {
  display: block;
}

.sec-title-wrapper .sec-titl-label small.sec-titl-label__small {
  font-size: clamp(1.2rem, 1.5972222222vw, 1.4375rem);
  display: block;
}

.sec-title-wrapper .title-decoration {
  width: 66px;
  height: 5px;
  margin: var(--space-2) auto 0;
  background-color: var(--c-secondary);
  border-radius: 3px;
  position: relative;
}

.sec-title-wrapper .title-decoration::after {
  content: "";
  position: absolute;
  right: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  background-color: var(--c-secondary);
  border-radius: 50%;
}

.sec-title-wrapper.bg-dark p {
  color: #fff;
}

.sec-title-wrapper.bg-dark .sec-titl-label {
  color: #fff;
}

.sec-title-wrapper.bg-dark .title-decoration {
  background-color: var(--c-third);
}

.sec-title-wrapper.bg-dark .title-decoration::after {
  background-color: var(--c-third);
}

@media (width <= 600px) {
  .sec-title-wrapper .sec-titl-label span {
    display: inline;
  }
}

/* ----- 角丸背景見出し ----- */
.round-line-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(var(--space-2), 1.6666666667vw, var(--space-3));
  width: 100%;
  margin-bottom: clamp(var(--space-2), 5.5555555556vw, var(--space-5));
}

.round-line-heading span {
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.05em;
  font-size: clamp(1rem, 1.9201388889vw, 1.728125rem);
  background-color: var(--c-primary);
  border-radius: 999px;
  padding: var(--space-1) clamp(var(--space-2), 2.7777777778vw, var(--space-5));
  width: min(580px, 70%);
  display: inline-block;
  text-align: center;
}

.round-line-heading::before,
.round-line-heading::after {
  content: "";
  flex: 1;
  height: 2px;
  background-color: var(--c-primary);
  max-width: 300px;
}

.round-line-heading.round-line-heading__orange span {
  background-color: var(--c-secondary);
}

.round-line-heading.round-line-heading__orange::before,
.round-line-heading.round-line-heading__orange::after {
  background-color: var(--c-secondary);
}

@media (width <= 480px) {
  .round-line-heading {
    gap: var(--space-1);
    width: 100%;
  }
}

/* ============================
関連リンク
============================ */
.related-links {
  padding-bottom: clamp(var(--space-5), 5.5555555556vw, var(--space-10));
}

.related-links .related-title {
  font-size: clamp(1.5rem, 2.3041666667vw, 2.07375rem);
  font-weight: bold;
  color: var(--c-text-darkblue);
  text-align: center;
  padding-bottom: clamp(var(--space-2), 2.2222222222vw, var(--space-4));
}

.related-links .arrowz {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  margin-bottom: var(--space-3);
  color: inherit;
  cursor: pointer;
  transition: opacity var(--transition-normal) var(--ease-standard);
}

.related-links .arrowz-img {
  flex: 0 0 clamp(220px, 29.1666666667vw, 420px);
  max-width: 29.1666666667vw;
  min-width: 360px;
  overflow: hidden;
  aspect-ratio: 420/157;
  text-align: center;
  background: url("../img/arrowz-img-bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  display: grid;
  place-items: center;
}

.related-links .arrowz-img img {
  width: 68.5714285714%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-normal) var(--ease-standard);
}

.related-links .arrowz:hover {
  opacity: 0.8;
}

.related-links .arrowz:hover .arrowz-img img {
  transform: scale(1.02);
}

.related-links .arrowz-texts {
  padding: var(--space-2) var(--space-3);
  background: var(--c-bg-blue);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.related-links .arrowz-texts-title {
  font-size: var(--font-size-lg);
  color: var(--c-primary);
  font-weight: bold;
}

.related-links .bpos {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--space-3);
}

.related-links .bpos a {
  max-width: 332px;
  aspect-ratio: 332/125;
  overflow: hidden;
  transition: opacity var(--transition-normal) var(--ease-standard);
}

.related-links .bpos a img {
  width: 100%;
  height: 100%;
  overflow: hidden;
  -o-object-fit: cover;
  object-fit: cover;
  transition: transform var(--transition-normal) var(--ease-standard);
}

.related-links .bpos a:hover {
  opacity: 0.8;
}

.related-links .bpos a:hover img {
  transform: scale(1.02);
}

@media (width <= 640px) {
  .related-links .arrowz {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .related-links .arrowz-img {
    max-width: 100%;
    min-width: auto;
    overflow: hidden;
    aspect-ratio: auto;
  }
  .related-links .arrowz-img img {
    width: 75%;
    height: auto;
  }
  .related-links .bpos {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }
  .related-links .bpos a {
    max-width: 100%;
    overflow: hidden;
  }
  .related-links .bpos a img {
    width: 100%;
    height: 100%;
    overflow: hidden;
    -o-object-fit: cover;
    object-fit: cover;
  }
}

/* ============================
固定ページ　Heroエリア
============================ */
/* ----- デフォルト固定ページ ----- */
.page-hero {
  padding-block: clamp(var(--space-4), 4.4444444444vw, var(--space-8)) 140px;
  position: relative;
  overflow: hidden;
}

.page-hero .page-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.page-hero .page-hero__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: right bottom;
  object-position: right bottom;
}

.page-hero .decorative-en {
  color: color-mix(in srgb, var(--c-text-pale) 60%, transparent);
  text-transform: uppercase;
  font-weight: 700;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
}

.page-hero h1 {
  font-weight: 700;
  color: #fff;
  font-size: clamp(1.44rem, 3.3180555556vw, 2.98625rem);
}

.page-hero .breadcrumb {
  padding-top: clamp(var(--space-3), 2.2222222222vw, var(--space-4));
  color: #fff;
  font-size: clamp(0.694375rem, 0.9256944444vw, 0.833125rem);
}

.page-hero .breadcrumb a:link,
.page-hero .breadcrumb a:visited,
.page-hero .breadcrumb a:focus-visible,
.page-hero .breadcrumb a:hover,
.page-hero .breadcrumb a:active {
  color: #fff;
}

.page-hero .breadcrumb span[aria-current="page"] {
  color: rgba(255, 255, 255, 0.8);
}

/* ----- narrowテンプレートページ用 ----- */
.page-hero.page-hero--narrow {
  position: relative;
  overflow: hidden;
  padding-block: var(--space-6);
}

.page-hero.page-hero--narrow .page-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.page-hero.page-hero--narrow .page-hero__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: right bottom;
  object-position: right bottom;
}

.page-hero.page-hero--narrow .decorative-en {
  color: var(--c-primary);
}

.page-hero.page-hero--narrow h1 {
  color: var(--c-text-dark);
}

.page-hero.page-hero--narrow .breadcrumb {
  color: var(--c-text-dark);
}

.page-hero.page-hero--narrow .breadcrumb a:link,
.page-hero.page-hero--narrow .breadcrumb a:visited,
.page-hero.page-hero--narrow .breadcrumb a:focus-visible,
.page-hero.page-hero--narrow .breadcrumb a:hover,
.page-hero.page-hero--narrow .breadcrumb a:active {
  color: var(--c-text-dark);
}

.page-hero.page-hero--narrow .breadcrumb span[aria-current="page"] {
  color: var(--c-text-light);
}

/* ============================
ページ下部 CTA
============================ */
.sec-cta {
  padding-block: clamp(var(--space-5), 5.5555555556vw, var(--space-10));
}

.sec-cta > .container {
  display: flex;
  flex-direction: column;
  gap: clamp(var(--space-3), 4.4444444444vw, var(--space-6));
}

.cta-contents {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.cta-title {
  font-size: clamp(1.2rem, 2.3041666667vw, 2.07375rem);
  color: var(--c-text-darkblue);
  text-align: center;
  font-weight: bold;
  line-height: 1.6;
}

.cta-title span.mark {
  background: var(--gr-yellow-line);
}

.cta-option {
  display: flex;
  gap: var(--space-3);
  width: 100%;
  flex-direction: row;
}

@media (width <= 800px) {
  .cta-option {
    gap: var(--space-3);
    flex-direction: column;
  }
}

.cta-description {
  font-size: clamp(0.875rem, 1.1111111111vw, 1rem);
}

.cta-option-title {
  font-size: clamp(1.125rem, 1.9201388889vw, 1.728125rem);
  font-weight: bold;
}

.cta-card {
  background: var(--c-bg-gray);
  border-radius: var(--radius-x3);
  padding: var(--space-4) var(--space-3);
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

@media (width <= 800px) {
  .cta-card {
    flex-direction: row;
    gap: var(--space-2);
    align-items: center;
    justify-content: center;
  }
  .cta-contents {
    order: 2;
    text-align: center;
    flex: 1 1 auto;
  }
  .cta-image {
    order: 1;
    width: 200px;
    height: 200px;
    flex: 0 0 1fr;
  }
}

@media (width <= 540px) {
  .cta-card {
    flex-direction: column;
    gap: var(--space-2);
  }
  .cta-contents {
    order: 2;
    text-align: center;
    flex: 1 1 auto;
  }
  .cta-image {
    order: 1;
    width: 160px;
    height: 160px;
    flex: 0 0 1fr;
  }
}

.cta-btn-wrapper {
  text-align: center;
}

.cta-btn {
  align-items: center;
  justify-content: center;
  gap: 0.65em;
  padding: var(--space-2);
  max-width: 360px;
  width: 100%;
  vertical-align: middle;
  font-size: clamp(1rem, 1.6vw, 1.44rem);
  font-weight: bold;
  display: inline-flex;
  border-radius: 999px;
  line-height: 1;
}

.cta-btn svg {
  width: 1.25em;
  height: 1.25em;
  display: block;
  flex: 0 0 auto;
}

.cta-image {
  text-align: center;
  -o-object-fit: cover;
  object-fit: cover;
}

.cta-image img {
  width: 100%;
  max-width: 240px;
  height: auto;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
  margin-inline: auto;
}

/* =========================
   Entry content（本文ラッパー）
   ========================= */
.entry-content h1:not([class]),
.entry-content h2:not([class]) {
  font-size: clamp(1.2rem, 2.7638888889vw, 2.4875rem);
  color: var(--c-text-darkblue);
  font-weight: 700;
  margin-block-end: clamp(var(--space-3), 2.7777777778vw, var(--space-5));
  line-height: 1.5;
}

.entry-content p:not([class]) + p:not([class]) {
  margin-top: 1em;
}

.entry-content ul:not([class]),
.entry-content ol:not([class]) {
  margin-block: 1em;
  list-style-position: inside;
}

.entry-content ul:not([class]) li,
.entry-content ol:not([class]) li {
  padding-inline-start: 1.5em;
  text-indent: -1.5em;
}

.entry-content ul:not([class]) li {
  list-style-type: disc;
}

.entry-content ol:not([class]) li {
  list-style-type: decimal;
}

.entry-content strong:not([class]) {
  font-weight: 700;
}

.entry-content em:not([class]) {
  font-weight: 700;
  color: var(--c-primary);
}

.entry-content blockquote:not([class]) {
  margin-block: var(--space-3);
  padding: var(--space-3);
  border-left: 2px solid var(--c-primary);
}

/* ============================
吹き出しのアニメーション用の指定
============================ */
.js [data-speech-group] li {
  opacity: 0;
  transform: translateY(30px);
}

/* ============================
Section Title
============================ */
/* -----共通見出し ----- */
.other-support {
  background-color: var(--c-bg-blue);
  padding-block: clamp(var(--space-5), 5.5555555556vw, var(--space-10));
  margin-block-end: clamp(var(--space-5), 5.5555555556vw, var(--space-10));
}

.other-support-title {
  font-size: clamp(1.5rem, 2.3041666667vw, 2.07375rem);
  font-weight: bold;
  color: var(--c-text-darkblue);
  text-align: center;
  padding-bottom: clamp(var(--space-1), 1.1111111111vw, var(--space-2));
}
