* {
  margin: 0;
  padding: 0;
  min-height: 0;
  min-width: 0;
  box-sizing: border-box
}

html, body, div, article, section, aside, header, footer, hgroup, nav, h1, h2, h3, ul, li, a, p, small, img {
  border: none;
  display: block
}

html {
  width: 100%;
  height: 100%;
  font-size: clamp(14px, calc(12.8px + 0.375vw), 16px);
  position: static;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%
}



/* 1200px→1920px で 16px→20px に滑らかに */
@media (min-width: 1200px){
  html { font-size: clamp(16px, calc(4px + 0.8333vw), 20px); }
}

/* 入力ズーム対策（iOS） */
input, select, textarea { font-size: 16px; }



.poppins-thin {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: normal;
}

.poppins-extralight {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: normal;
}

.poppins-light {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.poppins-regular {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.poppins-bold {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.poppins-extrabold {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: normal;
}

.poppins-black {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.poppins-thin-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: italic;
}

.poppins-extralight-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: italic;
}

.poppins-light-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: italic;
}

.poppins-regular-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.poppins-medium-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.poppins-semibold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: italic;
}

.poppins-bold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: italic;
}

.poppins-extrabold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: italic;
}

.poppins-black-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: italic;
}


.zen-kaku-gothic-new-regular {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.zen-kaku-gothic-new-medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.zen-kaku-gothic-new-bold {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}


.bold{
	font-weight: 600!important;
}


body {
  height: 100%;
  width: 100%;
  position: relative;
  color: #000000;
  font-family: "BIZ UDPGothic", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  line-height: 2.1;
letter-spacing: 0.07em;
  font-style: normal;
}


body::before {
  visibility: hidden;
  opacity: 0;
  position: absolute
}


@media screen and (max-width: calc(576px - 0.2px)) {
  body::before {
    content: "sm"
  }
}

@media screen and (min-width: 768px)and (max-width: calc(992px - 0.2px)) {
  body::before {
    content: "lg"
  }
}

@media screen and (min-width: 1200px) {
  body::before {
    content: "xl"
  }
}

a {
  zoom: 1;
  outline: 0;
  color: #009DE0;
  text-decoration: none
}

li a{
    display: block;
    height: 100%;
    width: 100%
}

img {
width: auto;
  outline: 0;
  border: 0;
  border-style: none
}

@media screen and (max-width: calc(992px - 0.2px)) {
  img {
    max-width: 100%;
    height: auto;
    -o-object-fit: cover;
    object-fit: cover
  }
}

ul, li {
  list-style: none;
  list-style-image: none
}

dl, ol, ul {
  margin-bottom: 0
}

label {
  display: inline-block;
  vertical-align: middle
}

ul, li, a, small {
  display: block
}

iframe {
  border: 0
}

.hide {
  display: none !important
}

.show-block {
  display: block !important
}

.show-inline {
  display: inline !important
}

.show-inline-block {
  display: inline-block !important
}

.show-flex {
  display: flex !important
}

.text-left {
  text-align: left !important
}

.text-center {
  text-align: center !important
}

.text-right {
  text-align: right !important
}


@media screen and (max-width: 575.8px) {
  .xs-none {
    display: none !important
  }
    .xs-block {
    display: block !important
  }
}

    .msd-block {
    display: none !important
  }

@media screen and (max-width: 767.8px) {
  .msd-none {
    display: none !important
  }
    .msd-block {
    display: flex !important
  }
}



@media screen and (min-width: 576px) {
  .sm-hide {
    display: none !important
  }
  .sm-show-block {
    display: block !important
  }
  .sm-show-inline {
    display: inline !important
  }
  .sm-show-inline-block {
    display: inline-block !important
  }
  .sm-show-flex {
    display: flex !important
  }
  .sm-text-left {
    text-align: left !important
  }
  .sm-text-center {
    text-align: center !important
  }
  .sm-text-right {
    text-align: right !important
  }
}

@media screen and (min-width: 768px) {
  .md-hide {
    display: none !important
  }
  .md-show-block {
    display: block !important
  }
  .md-show-inline {
    display: inline !important
  }
  .md-show-inline-block {
    display: inline-block !important
  }
  .md-show-flex {
    display: flex !important
  }
  .md-text-left {
    text-align: left !important
  }
  .md-text-center {
    text-align: center !important
  }
  .md-text-right {
    text-align: right !important
  }
}

@media screen and (min-width: 992px) {
  .lg-hide {
    display: none !important
  }
  .lg-show-block {
    display: block !important
  }
  .lg-show-inline {
    display: inline !important
  }
  .lg-show-inline-block {
    display: inline-block !important
  }
  .lg-show-flex {
    display: flex !important
  }
  .lg-text-left {
    text-align: left !important
  }
  .lg-text-center {
    text-align: center !important
  }
  .lg-text-right {
    text-align: right !important
  }
}

iframe {
  max-width: 100%
}











/* =========================
   HERO（英：大 → 日：h1小）
   - 1440px時の高さ：440px（= 25.375rem @ root≒17.333px）
   - ブレイクポイントは SP(≤575.8px) のみ
   ========================= */

/* コンポーネントスコープ変数（.c-hero 内で完結） */
.c-hero{
  --hero-h: 13.5rem;     /* これが高さの基準（root連動で滑らかに拡縮） */
    --hero-maxw: 88rem;
    --pad-x: 2rem;
    --pad-y: 0.3rem 2rem;
  --overlay-from: rgba(0,0,0,.50);
  --overlay-to:   rgba(0,0,0,.35);

  position: relative;
  isolation: isolate;
  color: #fff;
  min-height: var(--hero-h);
  overflow: hidden;
}

/* 背景レイヤー */
.c-hero__bg,
.c-hero__bg picture,
.c-hero__bg img{
  position: absolute; inset: 0; width: 100%; height: 100%;
}
.c-hero__bg{ z-index: -2; }
.c-hero__bg img{ object-fit: cover; object-position: center; }

/* オーバーレイ（必要なければ削除可） */
.c-hero__overlay{
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, var(--overlay-from), var(--overlay-to));
}

/* コンテンツ配置 */
.c-hero__inner{
  max-width: min(var(--hero-maxw), 100%);
  margin-inline: auto;
  padding: var(--pad-y) var(--pad-x);
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 0.2rem;
}

/* タイポ（英：上・大 / 日：下・小）*/


.c-hero__inner.non-fv__ptn .c-hero__ja {
    color: #000;
    font-size: 3.875rem;
    letter-spacing: 0.08em;
    line-height: 1.47;
}

.section__inner .c-hero__ja {
    color: #000;
    font-size: 3rem;
    letter-spacing: 0.08em;
    line-height: 1.47;
	    margin-top: 0.5rem;
}

.c-hero__inner.non-fv__ptn .c-hero__jp::before{
    background: #009DFF;
}

.c-hero__inner.non-fv__ptn .c-hero__jp{
	color: #000000;
}

.c-hero__overlay.bg-white {
    background: #ffffff;
	position: relative;
}

.c-hero__en{
margin: 0;
    letter-spacing: .07em;
    line-height: 1.4;
    font-size: 1rem;
	color: #009DFF;
}




/* 位置バリエーション */
.c-hero--center .c-hero__inner{ align-items: center; text-align: center; }
.c-hero--right  .c-hero__inner{ align-items: flex-end; text-align: right; }

/* 背景の注目位置（必要に応じて） */
.c-hero--object-top    .c-hero__bg img{ object-position: center top; }
.c-hero--object-bottom .c-hero__bg img{ object-position: center bottom; }
.c-hero--object-left   .c-hero__bg img{ object-position: left center; }
.c-hero--object-right  .c-hero__bg img{ object-position: right center; }

/* オーバーレイ強度の切替（変数だけ上書き） */
.c-hero--dim-weak  { --overlay-from: rgba(0,0,0,.25); --overlay-to: rgba(0,0,0,.15); }
.c-hero--dim-strong{ --overlay-from: rgba(0,0,0,.60); --overlay-to: rgba(0,0,0,.60); }

/* ===== SP（≤575.8px）でだけ最小限に微調整 ===== */
@media (max-width: 575.8px){
  .c-hero{
    --hero-h: 10rem;   /* 例：SPで浅く（root=14pxなら≒280px） */
    --pad-x: 1rem;
    /*--pad-y: 1.75rem;*/
  }
  .c-hero__en{ font-size: 1.2rem; }
  .c-hero__jp{ font-size: 1rem; }
  .c-hero__inner.non-fv__ptn .c-hero__ja {
    font-size: 3rem;
}
}




/* =========================================
   Breadcrumb（右寄せ／各liの先頭以外の左に横線）
   ========================================= */
.breadcrumb{
  --pad-x: 2rem;                         /* インナー左右余白 */
  --pad-y: 8rem;
  --text: #D9D9D9;
  --link: #000000;
  --link-hover: #009DFF;
  --current: #D9D9D9;
  --line: #D1D5DB;                        /* 線の色 */
  --line-h: 1px;                          /* 線の太さ */
  --line-w:3.125rem;     /* 線の長さ（SP短め〜PC長め） */

  color: var(--text);
  font-size: .875rem;                     /* rootの流体設定に追従 */
  line-height: 1.6;
}

.breadcrumb__inner{
  max-width: min(var(--maxw, var(--hero-maxw, 88rem)), 100%);
  margin-inline: auto;
  padding: var(--pad-y) var(--pad-x);
  display: flex;
  justify-content: flex-end;              /* 右寄せ */
  align-items: center;
  gap: .75rem;                            /* 項目間の間隔（線右側の余白もここで） */
  flex-wrap: wrap;
      padding-bottom: 3.5rem;
}

/* 直下の li を横並びに（ulが無くてもOK） */
.breadcrumb__inner > li{
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  color: inherit;
  font-weight: 400;
}

/* 先頭以外の li の「左に」横線を出す */
.breadcrumb__inner > li + li{
  gap: .75rem;                            /* 線とテキストの間隔 */
  position: relative;
}
.breadcrumb__inner > li + li::before{
  content: "";
  display: block;
  width: var(--line-w);
  height: var(--line-h);
  background: var(--line);
  flex: 0 0 auto;                         /* 幅を固定して縮ませない */
}

/* リンク */
.breadcrumb a{ font-weight: 400;color: var(--link); text-decoration: none; }
.breadcrumb a:hover{ color: var(--link-hover); }
.breadcrumb a:focus-visible{ outline: 2px solid currentColor; outline-offset: 2px; border-radius: 2px; }

/* 現在地 */
.breadcrumb .current,
.breadcrumb .current-item,
.breadcrumb [aria-current="page"]{
  color: var(--current);
  pointer-events: none;
}

/* 中間要素は省略（先頭・末尾はフル表示） */
.breadcrumb__inner > li:not(:first-child):not(:last-child){
  max-width: 18ch;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* SP（≤575.8px）は1行維持したい場合のオプション */
@media (max-width: 575.8px){
  .breadcrumb{ font-size: .8125rem; }
  .breadcrumb__inner{
    padding-inline: 1rem;
    flex-wrap: wrap;
	overflow: hidden;
    gap: .5rem;
  }
  /* SPでは線を少し短くするなら上書きOK */
  /* .breadcrumb{ --line-w: 72px; } */
}


.overflow-hiddeen {
    overflow: hidden;
}


/* ===========================
   Section inner（共通内枠）
   既定: --hero-maxw:88rem / --pad-x:2rem
   =========================== */
.section{
  /* セクションごとに上書き可能なデフォルト */
  --hero-maxw: 88rem;
  --pad-x: 2rem;
  --section-py: clamp(2.5rem, 4vw, 4rem); /* 上下余白の目安（任意） */
  padding-block: var(--section-py);
}

.section__inner{
  /* max幅は 100% を超えないように制御 */
  max-width: min(var(--maxw, var(--hero-maxw, 88rem)), 100%);
  margin-inline: auto;
  padding-inline: var(--pad-x, 2rem);
  width: 100%;
}

/* 使い分け用のバリエーション（必要時だけ付与） */
.section__inner--narrow { --maxw: 64rem; }   /* 少し狭め */
.section__inner--wide   { --maxw: 96rem; }   /* 少し広め */
.section__inner--fluid  { --maxw: 100%; }    /* 端まで(=フル幅) */

/* SP（≤575.8px）は左右パディングだけ少し詰める */
@media (max-width: 575.8px){
  .section__inner,.section.base-level__lower .section__inner{ padding-inline: 1rem; }
}







/* =========================================================
   Trusted Infrastructure 画像3枚＋テキスト
   - 他セクションに影響しないよう .trusted-infra で名前空間化
   - 内側幅は共通トークン --hero-maxw / --pad-x を使用
   - 1440px 時：W500×H581（左）/ W325×H184（右上）/ W566×H386（右下）
     ※ gap は 横32px / 縦11px（184 + 11 + 386 = 581）
   ========================================================= */

.trusted-infra {
  /* カラー（テーマ変数があればそちらが優先） */
  --c-text: var(--c-text-main, #000000);
  --c-muted: var(--c-text-muted, #000000);
  --c-accent:#009DFF;
  --c-ph-bg: #009DFF;

  /* 共通レイアウト */
  --gap-x: 2rem;        /* 横の間隔 = 32px @16px */
  --gap-y: 0.6875rem;   /* 縦の間隔 = 11px @16px */
  --radius: .625rem;
}

.trusted-infra .section__inner{
  max-width: var(--hero-maxw, 88rem);
  padding-inline: var(--pad-x, 2rem);
  margin-inline: auto;
}

/* ===== 画像群 ===== */
.trusted-infra__media{
  display: grid;
  column-gap: var(--gap-x);
  row-gap: var(--gap-y);
  align-items: start;
}

/* 共通スタイル */
.trusted-infra__ph{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--c-ph-bg);
}
.trusted-infra__ph img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* ---------- PC（>=1200px） */
@media (min-width: 1200px){
  /* 3 カラム固定（rem=16px として実寸になるよう設計） */
  /* 左 500px / 中 209px / 右 325px で、右下は中+右+32px = 566px */
  .trusted-infra__media{
    grid-template-columns: 31.25rem 13.0625rem 19.3125rem;
  }

  .trusted-infra__ph--lg{  /* 左：500×（184 + 11 + 386）= 581 */
    grid-column: 1;               /* 左カラム */
    grid-row: 1 / span 2;         /* 2行ぶち抜き */
    inline-size: 31.25rem;        /* 500px */
    /* 高さは右上・右下の値と row-gap から自動的に 581px になる */
  }

  .trusted-infra__ph--sm{         /* 右上：325×184 */
        grid-column: 4;
        grid-row: 1;
        inline-size: 20.3125rem;
        block-size: 11.5rem;
  }

  .trusted-infra__ph--md{         /* 右下：566×386（中+右を跨ぐ） */
        grid-column: 2 / span 2;
        grid-row: 2;
        inline-size: 35.375rem;
        block-size: 23.125rem;
  }
}

/* ---------- Tablet（<1200〜>=576）: 最小限の再配置 */
@media (max-width: 1199.98px) and (min-width: 575.81px){
  .trusted-infra__media{
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .trusted-infra__ph--lg{ grid-column: 1 / span 5; grid-row: 1 / span 2; aspect-ratio: 1 / 1; }
  .trusted-infra__ph--sm{ grid-column: 6 / -1;  grid-row: 1;            aspect-ratio: 325 / 184; }
  .trusted-infra__ph--md{ grid-column: 6 / -1;  grid-row: 2;            aspect-ratio: 566 / 386; }
}

/* ---------- SP（<=575.8px）: 縦積み */
@media (max-width: 575.8px){
  .trusted-infra__media{ grid-template-columns: 1fr; }
  .trusted-infra__ph--lg,
  .trusted-infra__ph--sm,
  .trusted-infra__ph--md{
    grid-column: 1;
    grid-row: auto;
    inline-size: 100%;
    block-size: auto;
  }
  .trusted-infra__ph--lg{ aspect-ratio: 1 / 1; }
  .trusted-infra__ph--sm{ aspect-ratio: 325 / 184; }
  .trusted-infra__ph--md{ aspect-ratio: 566 / 386; }
}

/* ===== テキスト ===== */
.trusted-infra__content{
  margin-top: clamp(1.5rem, 1.2rem + 1vw, 2.5rem);
  color: var(--c-text);
    max-width: 50.625rem;
    margin-left: auto;
}

.lower-generic-sub__title-en,.lower-generic-sub__title-ja{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .875rem; 
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--c-muted);
  margin-bottom: .5rem;
}
.lower-generic-sub__title-en::before,.lower-generic-sub__title-ja::before{
  content: "";
  inline-size: .5rem;      /* 8px @16px（1440px時の指定を満たす） */
  block-size: .5rem;
  border-radius: 50%;
  background:#009DFF;
}

.lower-generic-main__title-ja{
  margin: 0 0 1.5rem;
    font-weight: 700;
    line-height: 1.51;
    font-size: clamp(2.25rem, 1.2rem + .75vw, 1.875rem);
    letter-spacing: 0.09em;
}
.lower-generic-main__title-ja .is-accent{ color:#009DFF; }

.lower-generic__lead{
  font-size: clamp(.9375rem, .9rem + .25vw, 1rem); /* 15px〜16px */
  line-height: 2.3;
}
.lower-generic__lead p{ margin: 0 0 .9em; }

.section.base-level__lower.base-strength {
    padding-top: 2.3rem;
}




/* ============ Strength heading ============ */
/* section__inner に上ライン */
.base-strength .section__inner{
  max-width: var(--hero-maxw, 88rem);
  padding-inline: var(--pad-x, 2rem);
  margin-inline: auto;
  position: relative;
}


.lower-strength-head{
position: relative;
    padding-top: 1.8rem;
    border-top: 1px solid #D9D9D9;
}


/* 見出し本体：1440px時に 80px（= 5rem） */
.lower-secondary-title{
  margin: 0;
  line-height: 1.1;
  letter-spacing: .05em;
  /* 小さめ端末では縮小、最大は 5rem でロック */
  font-size: clamp(2.25rem, 2.2rem + 3.5vw, 5rem);
}
/* グラデーション（指定色に更新） */
.lower-secondary-title > span{
  background: linear-gradient(90deg, #009DFF 0%, #00007E 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
          color: transparent;
}


.lower-strength__content {
    margin-top: 3rem;
}






/* ============ Strength Cards ============ */


.strength-item{
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  row-gap: 1.5rem;
  margin-block: clamp(2.5rem, 1.5rem + 1.5vw, 4rem);
}

.strength-card__content {
    margin-top: 3rem;
}

/* 画像：比率は 720×460 → 36:23 */
.strength-item__ph{
  position: relative;
  border-radius: .75rem;
  overflow: hidden;
  width: min(50vw, 60rem);      /* 1440px時=720px。最大でも大きすぎないように上限 */
  aspect-ratio: 36 / 23;        /* 1440時=460px 高さ */
}
.strength-item__ph img{
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 画面端に吸着（左右） */
.edge-right{ margin-right: calc(50% - 50vw); }
.edge-left { margin-left:  calc(100% - 50vw); }

/* テキスト側 */
.strength-item__body{
  /*max-width: 36rem;*/
}



/* ------- PC(>=576px) で2カラム化＆交互配置 ------- */
@media (min-width: 575.9px){
  .strength-item{
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(2rem, 3vw, 3rem);
    align-items: center;
  }
  .is-img-right .strength-item__body{ order: 1; }
    .is-img-right .r-look-for__body{ order: 1; }
  .is-img-right .strength-item__ph  { order: 2; }

  .is-img-left  .strength-item__ph  { order: 1; }
  .is-img-left  .strength-item__body{ order: 2; justify-self: end; }
    .is-img-left  .r-look-for__body{ order: 2; justify-self: end; }

}

/* ------- SP(<=575.8px) ------- */
@media (max-width: 575.8px){
  .strength-item__ph{
    width: 100%;
    margin: 0;               /* edge マージン無効（親幅いっぱい） */
    border-radius: .5rem;
  }
  .edge-right, .edge-left{
    margin: 0;
  }
}


/* =========================================================
   CTA Button（黒→青）
   - テキストは 1 行分の高さだけ可視
   - hover で 1 行分だけ上へスライド（下の文言が入る）
   - 右矢印は少し右へ、縦の仕切り線あり
   ========================================================= */

/* ボタン本体 */
.c-btn{
  /* 調整用トークン */
  --btn-h: 4rem;                 /* ボタン全体の高さ */
  --px: 1.25rem;                 /* 左パディング */
  --arrow-w: 3.75rem;            /* 右アイコン領域 */
  --radius: .3125rem;
  --bg: #000000;                    /* 通常背景 */
  --bg-hover: #009DFF;           /* ホバー背景 */
  --fg: #fff;                    /* 文字色 */
  --ease: cubic-bezier(.22,.8,.28,.99);
  --lines: 2;                    /* スタックの行数（2固定） */

  position: relative;
  display: inline-flex;
  align-items: center;           /* ラベルの自然高をボタン中央に */
  gap: 1rem;
  height: var(--btn-h);
  padding: 0 calc(var(--arrow-w)) 0 var(--px);
  border-radius: var(--radius);
  background: var(--bg);
  color: var(--fg);
  font-weight: 700;
  text-decoration: none;
  overflow: hidden;
  transition:
    background-color .3s var(--ease),
    color .3s var(--ease),
    box-shadow .2s var(--ease);
}
.c-btn:hover,
.c-btn:focus-visible{
  background: var(--bg-hover);
  color: var(--fg);
  outline: 0;
}
.c-btn:active{ transform: translateY(1px); }

.c-btn.btn-reverse .c-btn__arrow {
	    inset: 0 auto 0 0;
}

.c-btn.btn-reverse .c-btn__arrow::before {
    right: 0;
	left: auto;
}


.c-btn.btn-reverse .c-btn__label {
    margin-right: 0;
    margin-left: 6rem;
}

.c-btn.btn-reverse:hover .c-btn__arrow svg, .c-btn.btn-reverse:focus-visible .c-btn__arrow svg {
    transform: translateX(-.25rem);
}


/* ラベル：1行分だけ可視に（行高でクリップ） */
.c-btn__label{
  display: block;
  overflow: hidden;
  /* 1行のline-heightを定義し、それを高さに採用 */
  --line-h: 1.2;
  line-height: var(--line-h);
  height: calc(1em * var(--line-h));  /* ← これで“1行分だけ”見せる */
      letter-spacing: 0.08em;
	  margin-right: 2rem;
}

/* 2行を縦スタック。スライドはスタック高の 1/2（=1行分） */
.c-btn__stack{
  display: flex;
  flex-direction: column;
  will-change: transform;
  transition: transform .55s var(--ease);
}
.c-btn__line{
  display: block;
  white-space: nowrap;           /* 折り返し防止：1行の高さを維持 */
}

.c-btn:hover .c-btn__stack,
.c-btn:focus-visible .c-btn__stack{
  transform: translateY(calc(-100% / var(--lines)));
}

/* 右矢印＋縦の区切り線 */
.c-btn__arrow{
  position: absolute;
  inset: 0 0 0 auto;
  width: var(--arrow-w);
  display: grid;
  place-items: center;
}
.c-btn__arrow::before{
  content: "";
  position: absolute;
  left: 0; top: 0%;
  width: 1px; height: 100%;
  background: rgba(255,255,255,.5);
}
.c-btn__arrow svg{
  width: 1rem; height: 1rem;
  fill: currentColor; stroke: currentColor; stroke-width: 2;
  transition: transform .35s var(--ease);
}
.c-btn:hover .c-btn__arrow svg,
.c-btn:focus-visible .c-btn__arrow svg{
  transform: translateX(.25rem);
}

/* バリエーション（任意） */
.c-btn--sm{ --btn-h: 2.5rem; --px: 1rem;  --arrow-w: 2.5rem; font-size: .9375rem; }
.c-btn--lg{ --btn-h: 3.5rem; --px: 1.5rem; --arrow-w: 3rem;  font-size: 1.0625rem; }
.c-btn--block{ display: flex; width: 100%; justify-content: space-between; }

/* 無効状態 */
.c-btn[aria-disabled="true"], .c-btn:disabled{
  pointer-events: none;
  opacity: .5;
}






.flex__btn.our-strength {
    display: flex;
    justify-content: center;
    gap: 3.3rem;
	margin-top: 3.7rem;
}




.section.base-level__lower.base-strength.our-strengths_value {
    padding-top: 3.9rem;
}





/* =========================================================
   Strength gallery（画像とタイトル高さ統一版）
   ========================================================= */
.strength-gallery{
  --gap: 1.5rem;
margin-top: 3.4rem;
  /* 1440px基準の画像サイズ（430x266） */
  --img-w-lg: 26.875rem; /* 430px */
  --img-radius: .3125rem; /* 5px */
}

/* レイアウト */
.sg{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--gap);
}

@media (min-width: 567.8px){ /* ≒768px */
  .sg{ grid-template-columns: repeat(2, 1fr); }
}

/* 1440px付近では “幅430px” を基準に3カラム。
   それ未満では自動で2/1カラムへ落ちる */
@media (min-width: 64rem){ /* ≒1024px〜 */
  .sg{
    grid-template-columns: repeat(3, 1fr);
    justify-content: space-between; /* 残り幅を均等に配分 */
  }
}

/* 各カード（高さを揃えるため縦Flex） */
.sg__item{
  display: flex;
  flex-direction: column;
}

/* 画像コンテナ：アスペクト固定 430:266、角丸5px、下辺統一 */
.sg__ph{
  position: relative;
  aspect-ratio: 430 / 266;
  width: 100%;
  border-radius: var(--img-radius);
  overflow: hidden;
  background: #eef2f6;
}
.sg__ph picture,
.sg__ph img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* メタ部（番号・タイトル・本文） */
.sg__meta{
    margin-top: .9rem;
    display: grid;
    row-gap: 0.5rem;
    grid-template-rows: auto auto 1fr;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* 番号 */
.sg__num{
  font-size: .875rem;
  line-height: 1;
  color: #009DFF;
}

/* タイトル：2行分の高さを確保して行揃え＆あふれ省略 */
.sg__ttl{
  margin: 0;
  font-weight: 700;
  color: #0F172A;
  letter-spacing: .09em;
  line-height: 1.5;
  font-size: clamp(1.5rem, 1rem + 0.35vw, 1.5rem); /* 1440pxで約20px */
}

.sg__txt{
  margin: 0;
    font-weight: 400;
	    margin-top: 0.6rem;
}











/* ================= Service page ================= */
.p-service {
  --gap:4.4rem;
  --ph-min: 18rem;           /* 288px */
  --ph-max: 41.875rem;       /* 670px(= 1440想定の上限) */
  --c-line: #D9D9D9;
  --c-txt:#000000;
  --c-key:#009DFF;
}



/* 固定ヘッダー分の着地補正 */
.p-service [id^="svc"]{ scroll-margin-top: var(--header-h); }

/**********************************************************
 * Service 下層ページ専用 CSS（タブナビ＋サービスブロック）
 **********************************************************/

/* ========================
   タブナビ（Grid版）
   - SP: 2列 / >=768px: 3列 / >=1200px: 4列
   - gapはremベース
   ======================== */
.p-service .services-nav__list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  list-style: none;
  padding: 0.5rem 0;
  margin: 0;
  justify-content: center; /* グリッド全体を中央寄せ */
}
@media (min-width: 768px){
  .p-service .services-nav__list{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
    .p-service .services-nav__btn .chev {
    grid-column: 10;
}
}
@media (min-width: 865px){
  .p-service .services-nav__list{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .p-service .services-nav__btn .chev {
    grid-column: 18;
}
}
@media (min-width: 1270px){
  .p-service .services-nav__list{
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
    .p-service.p-company .services-nav__list{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.p-service .services-nav__item{ /* 余白のためのラッパー */
  min-width: 12rem; /* つぶれ防止（必要に応じて調整可） */
}

.p-service .services-nav__btn{
  --btn-h: 3.8125rem;         /* 約61px */
  --btn-pad-x: 1rem;          /* ボタン左右パディング */
  display: grid;
  grid-template-columns: auto minmax(0, max-content) auto; /* [icon][text][chev] */
  align-items: center;
  column-gap: 0.5rem;
  height: var(--btn-h);
  padding-inline: var(--btn-pad-x);
  border: 1px solid var(--c-line);
  border-radius: 0.5rem;
  color: var(--c-txt);
  background: #fff;
  text-decoration: none;
  line-height: 1;
  box-shadow: var(--shadow);
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}

.p-service .services-nav__btn:hover,
.p-service .services-nav__btn:focus-visible{
  border-color: color-mix(in srgb, var(--c-key) 40%, #fff);
  background: color-mix(in srgb, var(--c-key) 12%, #fff);
  outline: none;
}

.p-service .services-nav__btn[aria-current="true"],
.p-service .services-nav__btn.is-active{
  color: #fff;
  background: linear-gradient(90deg, var(--c-key) 0%, var(--c-key-2) 100%);
  border-color: transparent;
}

/* ボタン内部の要素 */
.p-service .services-nav__btn .ico{
  width: 20px; height: 20px; flex: 0 0 auto;
  grid-column: 1;
}
.p-service .services-nav__btn .txt{
  grid-column: 2;
  font-weight: 700;
  white-space: nowrap;
  /* 1440px で 13px になる（端は任意調整可） */
  font-size: clamp(12px, calc(5.8px + 0.5vw), 14px);
}

/* chev：ボタン高いっぱいの縦線＋矢印 */
.p-service .services-nav__btn .chev{
    grid-column: 15;
  align-self: stretch;            /* 行高＝ボタン高にフィット */
  display: inline-flex;
  align-items: center;
  padding-left: 0.875rem;         /* 縦線→矢印の距離 */
  margin-left: 0.5rem;

  /* 左端に縦線（幅1px・高さ100%で常にボタン高いっぱい） */
  background: linear-gradient(var(--c-line), var(--c-line))
              left center / 1px 100% no-repeat;
}

.p-service.p-company .services-nav__btn .chev{
	    padding-left: 1rem;
}

.p-service.p-company .services-nav__btn .txt {
    width: 40rem;
}

.p-service .services-nav__btn[aria-current="true"] .chev,
.p-service .services-nav__btn.is-active .chev{
  background: linear-gradient(rgba(255,255,255,.45), rgba(255,255,255,.45))
              left center / 1px 100% no-repeat;
}

.p-service .services-nav__btn .ico--chev{
  width: 1rem; height: 1rem;
  transition: transform .25s ease;
}
.p-service .services-nav__btn:hover .ico--chev,
.p-service .services-nav__btn:focus-visible .ico--chev{
  transform: translateY(.25rem);
}

/* マークアイコン（必要箇所で使用） */
.ico--mark{
  background: #009DFF0D;
  width: 2.25rem; height: 2.25rem;
  padding: 0.3rem;
  border-radius: 100px;
  display: flex; align-items: center; justify-content: center;
  position: relative; left: -0.25rem;
}
.ico--mark svg{ width: 1.5rem; }

/* SP 微調整（max-width: 575.8px） */
@media (max-width: 575.8px){
  .p-service .services-nav__item{ min-width: unset; }
  .p-service .services-nav__btn{
    column-gap: 0.8rem;
	        padding-right: 0;
  }
  .p-service.p-company .services-nav__btn .chev {
    padding-left: 0.65rem;
}
  .p-service .services-nav__list{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
  .p-service .services-nav__btn .chev{
    padding-left: 0.5rem;
    margin-left: 0.375rem;
    background: linear-gradient(var(--c-line), var(--c-line))
                left center / 1px 100% no-repeat;
  }
  .ico--mark{
    width: 2.5rem; height: 2rem; padding: 0.5rem;
  }
  .p-service .services-nav__btn .ico{
    width: 2.5rem; height: 2rem; padding: 0.5rem;
  }
  .p-service .services-nav__btn .ico--chev {
    position: relative;
    left: -0.25rem;
}
.p-service .services-nav__btn .chev {
    grid-column: 19;
}
}


/* base: 1カラム（sp～tab） */
.p-service .svc-block__grid{
  display:grid; row-gap: clamp(16px,3.6vw,24px);
}

/* md以上で2カラム化（>=992px） */
@media (min-width: 767.8px){
  .p-service .svc-block__grid{
    grid-template-columns: minmax(0, clamp(var(--ph-min), 40vw, var(--ph-max))) 1fr;
    column-gap: var(--gap);
    align-items:start;
  }
}

/* 画像 */
.p-service .svc-block__ph{
  border-radius: 0.3125rem; overflow:hidden; 
}
.p-service .svc-block__ph picture,
.p-service .svc-block__ph img{
  display:block; width:100%; height:auto;
  aspect-ratio: 670 / 460;  /* 比率固定 */
  object-fit: cover; border-radius: 0.3125rem;
}

/* テキスト面 */
.p-service .svc-block__pane{ display:grid; gap: clamp(14px,2.2vw,24px); }


/* 対応業務チップ */
.p-service .svc-block__tags-pane{
    background: #009DFF0D;
    border-radius: 0.625rem;
    padding: 1rem 1.7rem 1.25rem;
}
.p-service .svc-block__tags-pane .title{
    font-weight: 700;
    margin-bottom: 0.2rem;
    color: #009DFF;
}
.p-service .svc-block__tags{
  --cols: 2; /* sp既定 */
  display:grid; grid-template-columns: repeat(var(--cols), minmax(0,1fr));
  gap: 0.5rem; margin:0; padding:0; list-style:none;
  font-size:0.875rem;
}
/* tab以上で2列、xl以上で3列 */
@media (min-width: 768px){ .p-service .svc-block__tags{ --cols: 2; } }
@media (min-width: 1440px){ .p-service .svc-block__tags{ --cols: 3; } }

.p-service .svc-block__tags li{
  position:relative; padding-left:1rem;
}
.p-service .svc-block__tags li::before{
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 40%;
    width: 0.25rem;
    height: 0.25rem;
    border-radius: 50%;
    background: var(--c-key);
}

.p-service .services__item {
    margin-bottom: 5.4rem;
}


.svc-block__btn.p-service {
    width: max-content;
}


.section.base-level__lower.p-service.common-tabs {
    padding-top: 0;
}


.section.base-level__lower.p-service.p-company {
    padding-top: 3.7rem;
	    padding-bottom: 1.8rem;
}





/*Company*/

.company-content__inner {
    max-width: 73rem;
    margin: 0 auto;
    margin-top: 2.8rem;
}


.ceo {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    font-weight: 700;
    line-height: 1.51;
    font-size: clamp(1.5rem, 1.2rem + .75vw, 1.5rem);
    letter-spacing: 0.11em;
    margin-top: 2.1rem;
    align-items: baseline;
}

.ceo .sml {
    font-size: 1rem;
}




/* =========================================================
   Company Outline 専用パーツ
   - 1440px時：dt 16px / dd 14px
   - ボーダー #D9D9D9
   - SPは縦積み、PCは2カラム
   ========================================================= */
.c-corpInfo{
  --corp-line: #D9D9D9;
  --label-min: 9rem;      /* SP最小の見出し幅 */
  --label-pc: 16rem;      /* PC時の見出し幅（画像に合わせて固定） */
  border-top: 1px solid var(--corp-line);
  margin: 0;
  padding: 0;
}

/* 1行（row）をグリッド化：左=見出し、右=詳細 */
.c-corpInfo__row{
  display: grid;
  grid-template-columns: minmax(var(--label-min), 1fr) 2fr;
  gap: 1rem;
        padding-block: 1.5rem;
        padding-inline: 1.2rem;
  border-bottom: 1px solid var(--corp-line);
}

/* PCで左カラムを固定幅にして整列 */
@media (min-width: 768px){
  .c-corpInfo__row{
    grid-template-columns: var(--label-pc) 1fr;
  }
}

/* 見出し(dt) */
.c-corpInfo__label{
  margin: 0;
  font-weight: 700;
  line-height: 1.6;
  /* 1440pxで16pxになるように調整（最小15 / 最大17）*/
  font-size: clamp(15px, calc(8.8px + 0.5vw), 17px);
  word-break: keep-all;
}

/* 詳細(dd) */
.c-corpInfo__data{
  margin: 0;
  line-height: 1.9;
  /* 1440pxで14px（最小13 / 最大16）*/
  font-size: clamp(13px, calc(6.8px + 0.5vw), 16px);
  overflow-wrap: anywhere;
}

/* SPでの改行強制用（必要行のみ <br class="c-corpInfo__br"> を入れる） */
@media (min-width: 576px){
  .c-corpInfo__br{ display: none; }
}

/* dd内の段落やリストの間隔 */
.c-corpInfo__data > * + *{ margin-top: .5rem; }
.c-corpInfo__data ul{
  margin: .25rem 0 0 1.1em;
  padding: 0;
}
.c-corpInfo__data li{ margin-top: .25rem; }

/* より狭い端末での読みやすさ強化 */
@media (max-width: 375px){
  .c-corpInfo__row{ gap: .75rem; padding-block: .875rem; }
}





/* slider */

    .slide-media,
    .thumb-media {
      position: relative;
      overflow: hidden;
    }

    .slide-media img,
    .thumb-media img {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .splide {
      z-index: 0;
    }

    /* 前へ / 次へボタン */
    .splide__arrow--prev,
    .splide__arrow--next {
      display: grid;
      place-content: center;
      width: 6.4rem;
      height: 6.4rem;
      cursor: pointer;
      border-radius: 50%;
    }

    .splide__arrow--prev::after,
    .splide__arrow--next::after {
      width: 1.2rem;
      height: 1.2rem;
      content: "";
      border: solid var(--color-gray);
      border-width: 3px 3px 0 0;
    }



    .splide__arrow:disabled {
      pointer-events: none;
      opacity: 0;
    }



    .splide__pagination {
      font-size: 0;
    }


    .splide-wrapper {
      position: relative;
    }

    .splide__arrow>svg {
      display: none;
    }


    .workstyle-slide {
      overflow: hidden;
	  margin-top: 5.2rem;
    }

    .workstyle-slide .splide__track {
      overflow: visible;
    }


    .workstyle-slide .splide__slide {
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
    }

    .workstyle-slide .slide {
      overflow: hidden;
      border-radius: 10px;
    }

    .workstyle-slide .slide-media {
      padding-top: 100%;
    }

    .workstyle-slide .slide-media img {
      height: 18.75rem;
	  border-radius: 0.625rem;
    }

    .workstyle-slide .slide-content {
      padding: 3.2rem;
    }

    .workstyle-slide .slide-date {
      font-size: 1.2rem;
      line-height: 1;
      display: block;
      color: var(--color-theme);
    }

    .workstyle-slide .slide-title {
      line-height: 1.6;
      display: -webkit-box;
      overflow: hidden;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      height: 3.2em;
      margin-top: 1.6rem;
    }

	.top-slide {
      overflow: hidden;
	  margin-top: 9.2rem;
    }

    .top-slide .splide__track {
      overflow: visible;
    }


    .top-slide .splide__slide {
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
	  margin-right: 0!important;
    }

    .top-slide .slide {
      overflow: hidden;
      border-radius:0;
    }

    .top-slide .slide-media {
      padding-top: 100%;
    }

    .top-slide .slide-media img {
      height: 18.75rem;
	  border-radius: 0rem;
    }

    .top-slide .slide-content {
      padding: 3.2rem;
    }

    .top-slide .slide-date {
      font-size: 1.2rem;
      line-height: 1;
      display: block;
      color: var(--color-theme);
    }

    .top-slide .slide-title {
      line-height: 1.6;
      display: -webkit-box;
      overflow: hidden;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      height: 3.2em;
      margin-top: 1.6rem;
    }


    @media only screen and (max-width: 1024px) {
      html {
        -webkit-text-size-adjust: 100%;
      }
    }




	/* ===== Company History (part only) ===== */
.c-history__list{
  --blue: #00007E;           /* 年ピル色 & 線色 */
  --line: #00007E;           /* 破線色 */
  --pill-h:clamp(20px, 3.2vw, 29px);
  --pill-pad-x: clamp(12px, 2.2vw, 20px);
  --gap-col: clamp(12px, 2vw, 24px);
  --gap-row: clamp(12px, 2vw, 20px);

  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  row-gap: var(--gap-row);

  /* 基本フォント（SP≒14px） */
  font-size: 0.875rem;
  line-height: 1.9;
}
/* 1440px時＝約15px */
@media (min-width: 1200px){
  .c-history__list{ font-size: 0.9375rem; }
}

/* 3カラム：年 / 月 / 詳細 */
.c-history__item{
    position: relative;
    display: grid;
    grid-template-columns: max-content max-content 1fr;
    column-gap: var(--gap-col);
align-items: baseline;
    padding-block: 0;
}



/* 年（コンテナ）。ここから下に破線を伸ばす */
.c-history__year{
  position: relative;
  align-self: stretch;           /* liの高さに合わせる */
  display: grid;
  align-content: start;          /* 上詰め */
  min-width: 0;
}
/* 年ピル本体 */
.c-history__year-label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--pill-h);
  padding-inline: var(--pill-pad-x);
  background: var(--blue);
  color: #fff;
  font-weight: 700;
  letter-spacing: .03em;
  border-radius: 999px;
  white-space: nowrap;
  line-height: 1;
}

/* 破線（年の真下から li の下端まで） */
.c-history__year::after{
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 30%;
    height: 110%;
    border-left: 1px dotted var(--line);
}
.c-history__item:last-child .c-history__year::after{ display:none; }

/* 月・本文 */
.c-history__month{
  font-weight: 700;
  white-space: nowrap;
  line-height: var(--pill-h);
  width: 4rem;
}
.c-history__text{
  margin: 0;
      padding-bottom: 1.3rem;
}

/* ------- SP（～575.8px）：2カラムへ（年／内容） ------- */
@media (max-width: 575.8px){
  .c-history__item{
    grid-template-columns: max-content 1fr;
    row-gap: .25rem;
  }
  .c-history__month{
    line-height: 1.7;
    margin-bottom: .125rem;
  }
  .c-history__text{
    grid-column: 2 / -1;
  }
  .c-history__year::after {
	content: none;
}
.c-history__item {
        align-items: center;
        border-bottom: 1px solid #D9D9D9;
        padding-bottom: 1rem;
        margin-bottom: 1rem;
}

.c-history__text {
    padding-bottom: 0.5rem;
}

}









/* ============ Policy Section ============ */
.c-policy{
  --c-key: #009DFF;
  --c-navy: #00007E;
  --bg-3c: #EAF5FF;

  color: var(--c-txt);
}


/* キャッチ */
.c-policy__catch{
    font-weight: 700;
    line-height: 2;
    font-size: clamp(1.125rem, 0.95rem + 0.8vw, 1.625rem);
    margin: 0 0 1.6rem;
    letter-spacing: 0.09em;
}

/* KV */
.c-policy__kv{
    border-radius: .5rem;
    overflow: hidden;
    aspect-ratio: 1310 / 393;
}
.c-policy__kv img{ width: 100%; height: 100%; object-fit: cover; display: block; }

/* グリッド：768pxから2カラム */
.c-policy__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(20px, 4vw, 32px);
      margin-top: 4.3rem;
}
@media (min-width: 768px){
  .c-policy__grid{
    grid-template-columns: minmax(180px, 260px) 1fr;
    align-items: start;
    column-gap: clamp(24px, 4vw, 48px);
  }
}

/* 左側リード */
.c-policy__lead{  }
.c-policy__title{
    margin: 0;
    font-size: clamp(1.875rem, 1.2rem + .75vw, 1.875rem);
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.8;
}
.c-policy__subtitle{
  margin: 0;
  font-size: clamp(.8125rem, .78rem + .2vw, .9375rem);
}

/* 右側リスト */
.c-policy__list{
  display: grid;
  gap: clamp(28px, 4.5vw, 40px);
}

/* 各項目 */
.c-policy-item__num{
  color: var(--c-key);
  font-size: clamp(.75rem, .7rem + .3vw, .875rem);
}
.c-policy-item__heading{
    margin: 0 0 .8rem;
    font-size: clamp(1.5rem, .95rem + .5vw, 1.5rem);
    line-height: 1.6;
    font-weight: 700;
	letter-spacing: 0.09em;
}
.c-policy-item__text{
  margin: 0;
}

/* 3C ボックス */
.c-policy-3c{
  margin-top: clamp(12px, 2.5vw, 16px);
  background: #009DFF0D;
  border-radius: .625rem;
  padding: clamp(12px, 2.5vw, 16px) clamp(16px, 3vw, 20px);
}
.c-policy-3c__list{
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  row-gap: .5rem;
}
.c-policy-3c__item{
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: .75rem;
  align-items: center;
  position: relative;
  padding-left: 1rem;     /* 青い小丸のスペース */
}
.c-policy-3c__item::before{
    content: '';
    position: absolute;
    left: .25rem;
    top: 50%;
    width: .25rem;
    height: .25rem;
    background: var(--c-key);
    border-radius: 50%;
    transform: translateY(-50%);
}
.c-policy__lead {
    margin-top: -0.3rem;
}
.c-policy-3c__term{
  font-weight: 700;
  white-space: nowrap;
  font-size: clamp(.875rem, .84rem + .3vw, 1rem);
      width: 10rem;
}
.c-policy-3c__desc{
  font-size: clamp(.8125rem, .78rem + .3vw, .9375rem);
  line-height: 1.8;
}

/* 余白微調整（SP） */
@media (max-width: 575.8px){
  .c-policy__catch{ margin-bottom: .75rem; }
  .c-policy-3c__item{ grid-template-columns: 1fr; }
  .c-policy-3c__item::before {
    top: 20%;
}
}












/* ====== header base ====== */
.site-header{
  --inner-max: 89rem;
  --pad-x: 0rem;
  --c-txt: #fff;
  position: fixed; inset: 0 0 auto 0; z-index: 1000;
  color: var(--c-txt);
  transition: background .28s ease, color .28s ease, box-shadow .28s ease;
  background: transparent;
  border-bottom: 1px solid #D9D9D9;
}

.site-header__inner{
  height: 100%;
  width: min(var(--inner-max), calc(100% - var(--pad-x) * 2));
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 1rem;
}

.site-header__logo{     
	display: inline-grid;
	position: relative;
    align-items: center;
	padding-top: 0.75rem;
    padding-bottom: 0.75rem;
	    position: relative;
    z-index: 99;
}

.site-header.is-open

.site-header__bar {
    border-bottom: 1px solid #D9D9D9;
	    position: relative;
    z-index: 99;
}

.site-header__logo::after{     
    content: "";
    position: absolute;
    width: 1px;
    height: 100%;
    background-color: #D9D9D9;
    display: block;
    left: 100%;
    right: 0%;
    margin-left: 1rem;
}

.site-header.is-scrolled .site-header__logo::after{
	content: none;
}

.logo__img{ height:4.125rem; width: auto; display:block; transition: opacity .25s ease; }
.logo__img--dark{ position:absolute;opacity:0;}

/* gnav (PC) */
.gnav{     justify-self: flex-end; }
.gnav__list{ display:flex; gap: 1.6rem; list-style:none; margin:0; padding:0; }
.gnav__link{
  position: relative;
  display:inline-block;
  padding: .25rem 0;
  color: currentColor;
    font-weight: 700;
    letter-spacing: .05em;
    transition: opacity .2s ease;
    font-size: 0.9375rem;
}



@media (max-width: 1100.8px) {
.gnav__list {
    gap: 1rem;
}
.site-header__actions {
    margin-left: 0rem;
}
.site-header__inner {
    gap: 0rem;
}
}


.gnav__link:hover{ opacity:.75; }
.gnav__item.current-menu-item > .gnav__link,
.gnav__link[aria-current="page"]{
  /* カレント下線 */
  --uline: #009DFF;
}
.gnav__item.current-menu-item > .gnav__link::after,
.gnav__link[aria-current="page"]::after{
     content: "";
    position: absolute;
    left: 50%;
    right: 50%;
    bottom: -3px;
    height: 0.375rem;
    width: 0.375rem;
    border-radius: 100px; background: var(--uline);
}

/* ヘッダー右のボタン */
.hd-btn{
  --h: 40px;
  display:inline-flex; align-items:center; gap:.5rem;
  height:var(--h); padding:0 1rem;
  border-radius: 5.3125rem; line-height:1; font-weight:700;
  color:#fff; text-decoration:none;
  transition: transform .15s ease, filter .2s ease;
  white-space: nowrap;
      font-size: 0.875rem;
}
.hd-btn:hover{ filter: brightness(1.05); }
.hd-btn .ico{ width:1rem; height:1rem; flex:0 0 auto; }
.hd-btn--orange{ background: linear-gradient(180deg, #FF6100 0%, #FF9351 100%);
 }
.hd-btn--blue{ background: linear-gradient(180deg, #009DFF 0%, #4BBAFF 100%);
 }

 .hd-btn.hd-btn--blue {
    width: 9rem;
    display: flex;
    justify-content: center;
}


.site-header__actions{ display:flex; align-items:center; gap:.75rem;    margin-left: 1rem; }

/* ハンバーガー（SP表示のみ） */
.hamburger{
  display:none; width:44px; height:44px;
  place-items:center; border-radius:.352rem;
  border:1px solid rgba(255,255,255,.35); background:#FDFDFD;
  -webkit-tap-highlight-color: transparent;
  transition: background .25s, border-color .25s;
}
.hamburger__bar,
.hamburger__bar::before,
.hamburger__bar::after{
  content:""; display:block; width:18px; height:1px; background:currentColor;
  position:relative; transition: transform .25s ease, opacity .25s ease;
}
.hamburger__bar::before{ position:absolute; top:-3px; }
.hamburger__bar::after{ position:absolute; top:3px; }

/* スクロール後の見た目 */
.site-header.is-scrolled{
  --c-txt: #000;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.site-header.is-scrolled .logo__img--light{ opacity:0; }
.site-header.is-scrolled .logo__img--dark{ opacity:1; }

/* ====== Drawer (SP) ====== */
.drawer{
  position: fixed; inset:0; pointer-events:none;
  opacity:0; visibility:hidden; transition: opacity .28s ease, visibility .28s ease;
}
.drawer__bg{
  position:absolute; inset:0; background:#FDFDFDE5;
}
.drawer__panel{
  position:absolute; inset:0; display:grid; grid-template-rows:auto 1fr;
  padding: calc(var(--h) + 12px) 1.25rem 2rem;
  color:#000000;
  transform: translateY(8px); transition: transform .28s ease;
      padding: 2rem;
    padding-top: 8rem;
}
span.hamburger__bar {
    background: transparent;
}
.drawer__close{
  position:absolute;     top: 1.4rem;
    right: 2rem; width:40px; height:40px; border:0; background:#fff; border-radius:.352rem;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}
.drawer__x,
.drawer__x::before{
  content:""; position:absolute; inset:0; margin:auto; width:18px;     height: 1px;
    background: #000000;
    transform: rotate(25deg);
}
.drawer__x::before{ transform: rotate(-45deg); }

.drawer__nav{ align-self:start; }
.drawer__list{ list-style:none; margin:0; padding:0; display:grid; gap:1.75rem; }
.drawer__list a{
  display:flex; align-items:center; gap:.75rem;
  color:#000; text-decoration:none; font-weight:700; font-size:1rem;
}
.drawer__list .dot{ width:.45rem; height:.45rem; border-radius:999px; background:#009DFF; }
.drawer__cta{ margin-top:2.25rem; display:grid; gap:1rem; }

.site-header.is-open .drawer{
  pointer-events:auto; opacity:1; visibility:visible;
}
.site-header.is-open .drawer__panel{ transform:none; }

/* 開いたら文字色 & ロゴを濃色に */
.site-header.is-open{ --c-txt:#000; }
.site-header.is-open .logo__img--light{ opacity:0; }
.site-header.is-open .logo__img--dark{ opacity:1; }

/* ====== レスポンシブ ====== */
/* SP: ～575.8px */
@media (max-width: 1023.8px){
  .gnav, .site-header__actions{ display:none; }
  .site-header__inner{ grid-template-columns:auto 1fr auto; }
  .hamburger{ display:grid;        margin-left: auto; }
  .site-header{ --pad-x: 1rem; }
  .hd-btn{         --h: 48px;
        font-size: 1rem;
        display: flex;
        justify-content: center; }
		.hd-btn .ico {
    width: 1.25rem;
    height: 1.25rem;
}
.hd-btn.hd-btn--blue {
    width: 100%;
}

}

/* タブレット～：ハンバーガー隠す */
@media (min-width: 1023.9px){
  .hamburger{ display:none; }
}

/* アニメ抑制 */
@media (prefers-reduced-motion: reduce){
  .site-header, .drawer, .drawer__panel, .hamburger__bar{ transition:none !important; }
}

/* ====== 状態：ハンバーガーが×になる演出 ====== */
.site-header.is-open .hamburger{ background:#fff; }
.site-header.is-open .hamburger__bar{ transform: rotate(45deg); }
.site-header.is-open .hamburger__bar::before{ transform: rotate(90deg); top:0; }
.site-header.is-open .hamburger__bar::after{ opacity:1;top: 0px; }




/* 内側幅は既存ポリシー（--hero-maxw / --pad-x）を利用 */
.c-footer {
  --c-text: #ffffff;
  --c-link: #ffffff;
  --c-link-hover: #ffffffde;
  --c-line: #D9D9D94D;
  background:#00007E;
      overflow: hidden;
  color:var(--c-text);
  font-size: clamp(.875rem, .83rem + .2vw, .9375rem); /* 14→15px ぐらい */
      border-radius: 3.125rem 3.125rem 0 0;
	      margin-top: 1rem;
		  position: relative;
}


.f-sns-groupe {
    display: flex;
    gap: 1rem;

    margin-top: 1rem;
align-items: center;
}

.f-sns-groupe .right {
    display: flex
;
    gap: 1rem;
}

.f-sns-groupe .right a:first-of-type{
    border-right: 1px solid #ffffff;
    padding-right: 1rem;
}

.f-sns-groupe .right a{
    line-height: 1;
}

/* ========== upper ========== */
.c-footer__upper{
  display:grid;
  grid-template-columns: minmax(140px, 1fr) 1fr;
  gap: clamp(24px, 5vw, 72px);
  padding-block: clamp(24px, 5vw, 40px);
  align-items:start;
}
.c-footer__logo img{ display:block; width: clamp(140px, 16vw, 224px); height:auto; }
.c-footer__name{ font-weight:700; margin: .75rem 0 .5rem; }
.c-footer__addr{ font-style:normal; line-height:1.9; }
.c-footer__tel{
  display:inline-flex; align-items:center; gap:.4rem;
  color:inherit; text-decoration:none;
}
.c-footer__tel .ico{ width:1rem; height:1rem; }

/* nav */
.c-footer-nav__list{
  list-style:none; margin:0; padding:0;
  display:grid;
  grid-template-columns: repeat(2, minmax(160px, 1fr));
  gap: 1rem 3rem; /* row / column */
}
.c-footer-nav__list a{
  color:var(--c-link);
  text-decoration:none;
  font-weight:400;
  letter-spacing:.06em;
  transition: color .2s ease, opacity .2s ease;
}
.c-footer-nav__list a:hover{ color:var(--c-link-hover); }
.c-footer-nav__ext .ico-ext{ width:1rem; height:1rem; margin-left:.35rem; vertical-align:-.15em; }

/* ========== lower ========== */
.c-footer__lower{
  border-top:1px solid var(--c-line);
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding-block: clamp(16px, 3.2vw, 20px);
  font-size:.875rem;
}
.c-footer__privacy{
  color:inherit; text-decoration:none;
}
.c-footer__privacy:hover{ color:#000; }

/* 右端にくっつける */
.c-footer-nav{
  justify-self: end;       /* グリッド上で右端へ */
  width: max-content;      /* コンテンツ幅に縮めて余白を作らない */
  margin-top: 2rem;
}

.c-ft__banner .flex {
    display: flex;
    align-items: center;
    gap: 2rem;
    position: absolute;
    top: 50%;
    left: 50%;
    -ms-transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    margin: 0;
    padding: 0;
}

img.f-banner {
    position: relative;
    width: 100%;
    height: 100%;
    aspect-ratio: 670 / 247;
}

.c-ft__banner .section__inner {
    position: relative;
}

/* SPでは通常レイアウトに戻す */
@media (max-width: 575.8px){
  .c-footer-nav{ justify-self: stretch; width:auto; }
}

/* ========== responsive ========== */
/* SP ~575.8px：縦並び＋中央寄せ */
@media (max-width: 575.8px){
  .c-footer__upper{ grid-template-columns: 1fr; gap: 24px; }
  .c-footer__brand{ text-align:left; }
  .c-footer-nav__list{ grid-template-columns: 1fr 1fr; gap: .75rem 1.25rem; }
  .c-footer__lower{
    flex-direction:column;
    align-items:flex-start;
    gap:.5rem;
  }
}

/* タブレット ~ 991px：カラム幅を少しタイトに */
@media (min-width: 576px) and (max-width: 991px){
  .c-footer-nav__list{ gap: .9rem 2rem; }
}












/* ========== NEWS アーカイブ（single-news 内だけ有効に） ========== */
.archive-news .news-archive{
  --c-key: #009DFF;
  --c-key-2: #00007E;
  --c-line: #D9D9D9;
  --c-text: #000000;
  --c-mute: #6B7280;
  --radius: .5rem;
  --gap: 1.25rem;         /* 20px */
  --gap-lg: 4rem;         /* 32px */
    --thumb-w: 14.0965rem;
     --thumb-ratio: 113: 70;
  color: var(--c-text);
}

.archive-news .news-archive{
  display:grid;
  grid-template-columns: 16rem 1fr;
  gap: var(--gap-lg);
}

/* ====== 左：カテゴリ ====== */
.archive-news .news-archive__cats-ttl{
    font-size: clamp(1rem, .75rem + .2vw, 1rem);
    letter-spacing: .08em;
    color: #000000;
    margin: .25rem 0 1.2rem;
	position: relative;
}

.archive-news .news-archive__cats-ttl::before {
    content: "";
    display: inline-block;
    width: .5rem;
    height: .5rem;
    min-width: .5rem;
    min-height: .5rem;
    margin-right: .5rem;
    border-radius: 50%;
    background: #009DFF;
    vertical-align: .1em;
}

.archive-news .news-cat-list{
  display:flex;
  flex-direction:column;
gap: 1.1rem;
  list-style:none;
  margin:0; padding:0;
}

.archive-news .news-cat-list__btn{
  display:block;
  width:100%;
  text-align: center;
  text-decoration:none;
  border:1px solid var(--c-line);
  border-radius:20rem;
  padding:.5rem .875rem;
  font-weight:500;
  font-size: clamp(.8125rem, .78rem + .2vw, .875rem); /* 13→14px */
  color: var(--c-text);
  background:#fff;
  transition: border-color .2s, background .2s, color .2s, box-shadow .2s;
}
.archive-news .news-cat-list__btn:hover{
  border-color: color-mix(in srgb, var(--c-key) 35%, #fff);
  background: color-mix(in srgb, var(--c-key) 10%, #fff);
  box-shadow: 0 1px 0 rgba(0,0,0,.04);
}
.archive-news .news-cat-list__btn.is-current,
.archive-news .news-cat-list__btn[aria-current="page"]{
  color:#fff;
  border-color: transparent;
    background: #009DFF;
}

/* ====== 右：記事リスト ====== */
.archive-news .news-archive__list{
  display:grid;
  gap: 1.5rem;
}

.archive-news .news-card{
  border-bottom:1px solid var(--c-line);
  border-radius: var(--radius);
  background:#fff;
  overflow:hidden;
}

.archive-news .news-card__link{
  display:grid;
  grid-template-columns: var(--thumb-w) 1fr;
  gap: var(--gap);
  align-items:stretch;
  padding: .875rem .875rem;
  text-decoration:none;
  color: inherit;
}

.archive-news .news-card__thumb{
  aspect-ratio: var(--thumb-ratio);
  border-radius: .3125rem;
  overflow:hidden;
      min-width: 14.125rem;
}
.archive-news .news-card__thumb img{
  width:100%; height:auto; object-fit:cover; display:block;
}

.archive-news .news-card__meta{ display:flex; flex-direction:column; gap:.4rem; }

.archive-news .news-card__head{
  display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
  line-height:1;
}
.archive-news .news-card__date{
  font-size: clamp(.8125rem,.78rem + .2vw,.875rem);
    color: #009DFF;
}
.archive-news .news-card__badge{
  font-size: clamp(.75rem,.72rem + .15vw,.8125rem);
  color:#000000;
  background: #ffffff;
    border: 1px solid #D9D9D9;
    border-radius: 999px;
    padding: .25rem 0.8rem;
    line-height: 1;
    font-weight: 400;
}

.archive-news .news-card__title{
    font-size: clamp(1.25rem, .9rem + .25vw, 1.125rem);
    font-weight: 400;
    letter-spacing: 0.1em;
	    line-height: 1.7;
}
.archive-news .news-card__excerpt{
  font-size: clamp(.8125rem,.78rem + .2vw,.875rem);
  line-height:1.7;
    font-weight: 400;
}

/* ページネーション（WP-PageNavi が吐き出す要素を軽く整える） */
.archive-news .news-archive__pager{
  margin-top: .5rem;
  display:flex; justify-content:center;
}
.archive-news .wp-pagenavi{
  display:flex; gap:.5rem; align-items:center;
}
.archive-news .wp-pagenavi a,
.archive-news .wp-pagenavi span{
  min-width:2rem; height:2rem; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--c-line);
  border-radius:.375rem; padding:0 .5rem;
  background:#fff; color:var(--c-text); text-decoration:none;
  font-size: .875rem;
}
.archive-news .wp-pagenavi .current{
  background: linear-gradient(90deg, var(--c-key) 0%, var(--c-key-2) 100%);
  color:#fff; border-color: transparent;
}
.archive-news .wp-pagenavi a:hover{ border-color: var(--c-key); }

/* ====== レスポンシブ ====== */
@media (max-width: 992px){
  .archive-news .news-archive{
    grid-template-columns: 100%;
  }
  .archive-news .news-archive__cats{
    order:-1;
  }
  /* カテゴリを横スクロールのチップに */
  .archive-news .news-cat-list{
    flex-direction:row;
    gap:.5rem;
    overflow:auto;
    padding-bottom:.25rem;
    -webkit-overflow-scrolling: touch;
  }
  .archive-news .news-cat-list__btn{ white-space:nowrap; 
min-width: 7rem;
    padding: 0.2rem 0.2rem;}
}

@media (max-width: 575.8px){
  .archive-news .news-card__link{
    grid-template-columns: 1fr;
	    padding: 1.5rem 0rem 2rem;
  }
  .archive-news .news-card__thumb{ }
}








/* ===========================
   NEWS Single 本文（完成イメージ準拠）
   =========================== */
.news-single__content{ color:#000; }

/* 日付/カテゴリ/タイトル/アイキャッチ ─ そのまま利用可 */
.news-single__head{ margin-bottom: 2.5rem; }
.news-single__meta{
  display:flex; gap:.75rem; align-items:center; flex-wrap:wrap;
  font-size: clamp(.8125rem, .78rem + .2vw, .875rem); /* 1440px=14px */
  letter-spacing:.08em;
}
.news-single__badge{
  display:inline-block; padding:.2rem .6rem; border-radius:999px;
  background:#EEF6FF; color:#0A5FBF; border:1px solid #D7E9FF;
  line-height:1; font-weight:700;
}
.news-single__title{
  margin-top:.75rem;
  font-weight:700;
  font-size: clamp(1.375rem, 1.2rem + .8vw, 1.75rem); /* 1440px≒28px */
  line-height:1.4; letter-spacing:.08em;
}
.news-single__eyecatch{ margin:1.5rem 0 2.5rem; }
.news-single__eyecatch img{
  display:block; width:100%; height:auto; border-radius:.3125rem; /* 5px */
}

/* ===========================
   Rich Text（記事本文）
   =========================== */
/* アクセント色（必要なら h3 だけ黒に変更可能） */
.c-rte{
  --accent: #009DFF;         /* h2/h3用の基本アクセント */
  --accent-h3: var(--accent);/* h3専用。黒にするなら #000 に上書き */
  font-weight:400;
  font-size: clamp(.9375rem, .9rem + .25vw, 1rem); /* 1440px=16px */
  line-height:1.77;
  letter-spacing:.15em;
}
.c-rte p{ margin:1.25rem 0; color:#000; }

/* === h2：上に水平バー（完成イメージ） === */
.c-rte h2{
  position:relative;
  margin:3rem 0 1.25rem;
  padding-left:0; /* 旧 left border の影響を消す */
  font-weight:700;
  font-size:2rem;        /* 1440px=32px */
  line-height:1.4;
  letter-spacing:.1em;
}
.c-rte h2::before{
  content:"";
  display:block;
  width: clamp(28px, 2.5vw, 40px);
  height:.25rem;         /* 4px */
  background: var(--accent);
  border-radius:.25rem;
  margin-bottom:.75rem;
}

.c-rte .wp-caption-text {
    margin: 0.8rem 0 0;
    color: #AEAEAE;
    font-size: 0.75rem;
}

article.news-single__body.c-rte {
    overflow: hidden;
}

.c-hero__ja.single-news {
    font-size: 2.5rem;
    color: #000000;
    letter-spacing: 0.1em;
    line-height: 1.6;
}

/* === h3：左の縦バー（完成イメージ） === */
/* ※ 黒にしたい場合は .c-rte{ --accent-h3:#000; } をどこかで上書き */
.c-rte h3{
  margin:2.5rem 0 1rem;
  padding-left:.75rem;
  border-left:.1875rem solid #000000; /* 3px */
  font-weight:700;
  font-size:1.5rem;      /* 1440px=24px */
  line-height:1.4;
  letter-spacing:.1em;
}

/* 画像 / 図版 */
.c-rte img{ max-width:100%; height:auto; border-radius:.3125rem; }
.c-rte figure{ margin:1.5rem 0; }
.c-rte figcaption{
  margin-top:.5rem;
  font-size:.8125rem; color:#9aa0a6; letter-spacing:.08em; text-align:center;
}

/* リスト */
.c-rte ul, .c-rte ol{ margin:1rem 0 1.25rem; padding-left:1.25rem; }
.c-rte li{ margin:.4rem 0; }

/* 引用 */
.c-rte blockquote{
  margin:1.5rem 0; padding:1rem 1rem 1rem 1.2rem;
  border-left:.25rem solid var(--accent); background:#F7FBFF;
}
.c-rte blockquote p{ margin:.6rem 0; }

/* 表（横スクロール耐性は不要なら省略可） */
.c-rte table{ width:100%; border-collapse:collapse; font-size:.9375rem; }
.c-rte th, .c-rte td{
  border:1px solid #D9D9D9; padding:.75rem .9rem; vertical-align:top;
}
.c-rte thead th{ background:#FBFBFB; }

/* 水平線 */
.c-rte hr{ border:none; border-top:1px solid #E6E6E6; margin:2rem 0; }

/* 位置クラス（WP既定） */
.c-rte .alignleft{  float:left;  margin:.25rem 1rem 1rem 0;  max-width:50%; }
.c-rte .alignright{ float:right; margin:.25rem 0 1rem 1rem;  max-width:50%; }
.c-rte .aligncenter{ display:block; margin-inline:auto; }

/* 前後ナビ */
.news-single__foot{ margin-top:3rem; }
.news-single__pn{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem;
}
.news-single__prev a, .news-single__next a{
  display:inline-flex; align-items:center; gap:.5rem;
  text-decoration:none; color:#000;
  padding:.5rem .75rem; border-radius:.5rem; transition:background .25s;
}
.news-single__prev a:hover, .news-single__next a:hover{ background:#F5F7FA; }
.news-single__back{
  display:inline-block; padding:.6rem 1rem; border-radius:.5rem;
  border:1px solid #D9D9D9; background:#fff; color:#000; text-decoration:none;
  font-size:.9375rem; letter-spacing:.05em;
}

/* SP 調整 */
@media (max-width:575.8px){
  .news-single__pn{ grid-template-columns:1fr; gap:.75rem; }
  .news-single__back{ text-align:center; }
  .c-rte .alignleft, .c-rte .alignright{ float:none; margin:.5rem auto; max-width:100%; }
  .c-hero__ja.single-news {
    font-size: 1.5rem;
}
.c-hero__inner {
    padding: 0rem 1rem 1rem;
}
}








/************************************
** Contact form 7 CSSカスタマイズ
************************************/
/* 入力欄全体の設定 */
input[type="text"],input[type="password"],input[type="datetime"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],
input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],select,textarea {
    display: block;
    width: 100%;
    height: 45px;
    margin-bottom: 0;
    padding: 0 12px;
    border: 0;
    border-radius: 3px;
    box-shadow: none;
	background-color: #ffffff;
    color: #000000;
    font-size: 1rem;
    vertical-align: middle;
    line-height: 45px;
    transition: background-color 0.24s 
ease-in-out;
}

::placeholder {
  color:  #D9D9D9!important;
}

.c-privacy label {
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: center;
}

a.link-underline {
    display: inline-block;
	text-decoration: underline;
}

a.link-underline:hover{
	text-decoration: none;
	opacity: 0.8;
}

/* テキストエリアの設定 */
table.CF7_table textarea {
    resize: vertical;
    max-width: 100%;
    min-height: 300px;
    line-height: 1.5em;
    padding: 0.5em;
    overflow: auto;
}
/* 入力欄とテキストエリア共通 */
.CF7_table input, .CF7_table select, .CF7_table textarea {
	border: 1px solid #D9D9D9;
}
/* table */
table.CF7_table {
width: 100%;
    margin: 0 auto;
    border: none !important;
    max-width: 62.5rem;
}
table.CF7_table tr {
	border-top: 1px solid #e5e5e5;
}

.contact-catche {
    max-width: 62.5rem;
    margin: 0 auto;
    margin-bottom: 3rem;
}

/* 背景を削除 */
table.CF7_table tr,
table.CF7_table th,
table.CF7_table td {
	padding: 0.75rem 0.75rem;
	background: none !important;
	border: none !important;
}

table.CF7_table th {
  width: 30%;
    font-size: 1rem;
    vertical-align: baseline;
    text-align: left;
	    font-weight: 400;
}

.single .entry-content table.CF7_table,
.page .entry-content table.CF7_table {
	display: table;
}
.CF7_table ::placeholder {
	color: #797979;
}

/*「必須」文字*/
.CF7_req{
    font-size: 0.75rem;
    padding: 0px 8px;
    background: #009DFF;
    color: #fff;
    border-radius: 3px;
    margin-right: 1em;
    float: right;
    margin-top: 0.25rem;
}

/*「任意」文字*/
.CF7_unreq{
	font-size: .9em;
	padding: 4px 7px;
	background: #bdbdbd;
	color: #fff;
	border-radius: 3px;
	margin-right:1em;
}

/* レスポンシブ */
@media screen and (max-width: 768px){
	table.CF7_table{
        width: 100%;
        padding: 0;
	}
	.CF7_table tr, .CF7_table td, .CF7_table th{
        display: block;
        width: 100% !important;
        line-height: 2.5em;
	}
	.CF7_table th{
	    background-color: #F6F8F8;
	}
	table.CF7_table tr, table.CF7_table th, table.CF7_table td {
    padding:0;
}
table.CF7_table th {
    margin-bottom: 0.5rem;
}
table.CF7_table tr {
    margin-bottom: 1rem;
}
.CF7_req {
    padding: 4px 8px;
    float: none;
    margin-top: 0;
    margin-left: 0.5rem;
}
}

/* 「送信する」ボタン */
.wpcf7 input.wpcf7-submit {
	background-color: #4c6d70;
	border: 2px solid #4c6d70;
	color:#fff;
	font-size:1.2em;
	font-weight: bold;
	margin: 0 auto;
	padding: 15px 30px;
	transition: all 0.5s 0s ease;
}
.wpcf7 input.wpcf7-submit:hover {
  background: #fff;
	color: #4c6d70;
}
.CF7_btn{
    text-align: center;
    margin: 1.5rem 0;
}

.c-privacy {
    display: flex
;
    justify-content: center;
}

.CF7_btn button.wpcf7-form-control.wpcf7-submit.has-spinner.c-btn {
    font-size: 1.125rem;
}

.wpcf7-spinner{
	width:0;
	margin:0;
	position: absolute!important;
}

button {
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
}

/* ************************************
  ************************************ */








.base-level__lower__intro {
    padding-top: 8rem;
    padding-bottom: 3rem;
}

.base-level__lower__intro .text {
    text-align: center;
    line-height: 2.2;
    letter-spacing: 0.15em;
    font-size: 1rem;
    font-weight: 400;
}

.base-level__lower__inner {
    max-width: 73.75rem;
    margin: 0 auto;
}


  /* Members トークン */
.members{ --m-key:#009DFF; --m-key-2:#00007E; --m-line:#D9D9D9;
  --m-card-r:.75rem; --m-img-r:.5rem; --m-gap:clamp(7rem,.5rem + 1.5vw,3rem); }

/* 本体（PC=3col） */
.members .members-feature{
  display:grid; grid-template-columns:minmax(0,24.5rem) 1fr auto;
  gap:var(--m-gap); align-items:center;color:#000000;
  text-decoration:none;
      border-bottom: 1px solid #D9D9D9;
    padding-bottom: 2.8rem;
    margin-bottom: 3.1rem;
}
@media (max-width:991.98px){ .members .members-feature{ grid-template-columns:minmax(0,16rem) 1fr; } }
@media (max-width:575.8px){ .members .members-feature{ grid-template-columns:1fr; }

.base-level__lower__intro {
    padding-top: 0rem;
    padding-bottom: 3rem;
}

.base-level__lower__intro .text {
    text-align: left;
}

}

/* 画像：ホバーでズーム（カード全体に反応） */
.members .members-feature__img{ margin:0; border-radius:var(--m-img-r); overflow:hidden; aspect-ratio:392/501; }
.members .members-feature__img img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1); transition:transform .45s ease; }
.members .members-feature:hover .members-feature__img img{ transform:scale(1.04); }
@media (prefers-reduced-motion:reduce){ .members .members-feature__img img{ transition:none; transform:none; } }

/* 本文 */
.members .members-feature__body{ align-self:center; }
.members .members-feature__dept{     display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .75rem;
    color: #000000;
    font-size: clamp(.75rem, .8rem + .2vw, 0.875rem); }
.members .members-feature__dot{ width:.5rem; height:.5rem; border-radius:50%; background:var(--m-key); }
.members .members-feature__title{ margin:0 0 3.2rem; font-weight:700; letter-spacing:.04em; line-height:1.47;
  font-size: clamp(2.143rem, 2.053rem + 0.219vw, 2.25rem); }
.members .members-feature__meta{ margin:0;font-size:1rem; }
.members .members-feature__meta strong {
    font-size: clamp(1.429rem, 1.368rem + 0.146vw, 1.5rem);
    letter-spacing: 0.08em;
}

/* CTA配置（右列） */
.members .members-feature__cta{ justify-self:end; align-self:center; }
@media (max-width:991.98px){ .members .members-feature__cta{ grid-column:1 / -1; margin-top:-9.25rem; justify-self:end; } 

.members {
    --m-gap: clamp(1rem, .5rem + 1.5vw, 3rem);
}


}
@media (max-width:575.8px){ .members .members-feature__cta{ margin-top:-9rem; } 

.members .members-feature__title {
    margin: 0 0 2rem;
}
}

/* ── 汎用アイコンボタン（テキストなし） ── */
.s-btn{
  --btn-h:3.125rem; --btn-bg:#00007E; --btn-fg:#fff; --btn-key:#00007E;
  display:inline-grid; place-items:center;
  min-width:5rem; height:var(--btn-h); padding-inline:1.25rem;
  background:var(--btn-bg); color:var(--btn-fg); border:1px solid transparent;
  border-radius:999px; position:relative; user-select:none;
  transition:background .25s,color .25s,border-color .25s,transform .02s;
}
.s-btn svg{ display:block; transition:transform .25s ease; }

/* アイコン専用バリアント */
.s-btn--icon{ /* そのまま使用。必要ならサイズだけ上書き可 */ }

/* 全体ホバーで発火する反転＆矢印スライド */
.members .members-feature:hover .s-btn.s-btn--invert{
  background:#fff; color:var(--btn-key); border-color:var(--btn-key);
}
.members .members-feature:hover .s-btn svg{
  transform: translateX(.2rem);
}





/* ===== 戻るボタン（アイコン＋テキスト） ===== */
.s-backlink{
  --back-gap: .75rem;
  display:inline-grid;
  grid-auto-flow:column;
  align-items:center;
  gap: var(--back-gap);
  color:#000;
  text-decoration:none;
}

.nextlink-tp.center-white .s-backlink{
color:#ffffff;
}


.backlink-tp {
    display: flex;
    justify-content: center;
    margin-top: 4rem;
}

/* テキストの下線（左→右に伸びる） */
.s-backlink__text{
  position:relative;
  line-height:1.2;
      letter-spacing: 0.07em;
}
.s-backlink__text::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-.15em;
  height:1px;
  background: #00007E;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .28s ease;
}

.nextlink-tp.center-white .s-backlink__text::after{
background:#ffffff;
}

.s-backlink:hover .s-backlink__text::after{
  transform: scaleX(1);
}

.s-backlink:hover .s-btn{
  background:#fff;
  color: var(--btn-key);         /* 矢印も色反転 */
  border-color: var(--btn-key);  /* 白抜き用の枠 */
}

/* ついでにホバー時の矢印をすこしだけスライド（任意） */
.s-backlink:hover .s-btn svg{ transform: translateX(-.15rem); } /* 戻るなので左へ */

.s-backlink.next:hover .s-btn svg{ transform: translateX(.15rem); } /* 戻るなので左へ */




/* ===== requirements（募集要項） ===== */
.requirements{ --req-blue:#009DFF; --req-line:#D9D9D9; }

/* コンテナ（dl全体） */
.reqs{
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--req-line);
}

/* 1行＝2カラム（PC）／縦積み（SP） */
.reqs__row{
  display: grid;
  grid-template-columns: 14rem 1fr;        /* 左=見出し/右=説明 */
  gap: 1.25rem;
  align-items: start;
    padding: 1.5rem 1.3rem;
  border-bottom: 1px solid var(--req-line);
}
@media (max-width: 575.8px){
  .reqs__row{ grid-template-columns: 1fr; gap: .5rem; }
}

.reqs__term{
  margin: 0;
  color: var(--req-blue);
  font-weight: 700;
  /* 1440pxで16px、SPで少し小さめ。必要なら max を16pxで固定可 */
  font-size: clamp(0.875rem, 0.9375rem + 0.069vw, 1rem);
  line-height: 1.8;
    letter-spacing: 0.05em;
}
.reqs__desc{
  margin: 0;
  color: #000000;
  letter-spacing: 0.05em;
  /* 1440pxで14px、SPで少し小さめ。maxを14pxでロック */
  font-size: clamp(0.8125rem, 0.84375rem + 0.035vw, 0.875rem);
  line-height: 1.9;
}

/* 改行・段落の見やすさ */
.reqs__desc br{ content: ""; }






/* =========================================================
   w-training （働く環境：研修）
   - PC: 2カラム / SP: 1カラム
   - タイトルは 1440pxで32px (=2rem)
   - テキストブロックの高さをカード間で揃える
   ========================================================= */
.w-training{
  --wt-blue:#009DFF;
  --wt-line:#E5E7EB;
  --wt-card-r:.625rem;   /* 12px */
  --wt-img-r:.625rem;    /* 12px */
  --wt-gap:clamp(1rem, .5rem + 2vw, 2rem);
  padding-block: clamp(1.5rem, 1rem + 2vw, 3rem);
}

/* グリッド：高さ揃え用に stretch */
.w-training__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.25rem, 1rem + 2vw, 2.25rem);
  align-items: stretch;
      margin-top: 3rem;
}
@media (max-width:575.8px){
  .w-training__grid{ grid-template-columns: 1fr; }
}

/* カード：画像(行1) / 本文(行2=自動で伸縮) */
.w-training__card{
  display:grid;
  grid-template-rows: auto 1fr;         /* 本文を伸ばして整列 */
}

/* 写真 */
.w-training__ph{
  margin:0;
  overflow:hidden;
  border-radius: var(--wt-img-r);
  aspect-ratio: 80 / 49;               /* 参考比率。不要なら削除可 */
}
.w-training__ph img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}

/* 本文：アイブロウ / タイトル / テキスト(1frで残りを占有) */
.w-training__body{
  display:grid;
  grid-template-rows: auto auto 1fr;
    padding: 1.8rem 1.2rem;
}

/* アイブロウ（青ドット＋英語） */
.w-training__eyebrow{
  display:flex; align-items:center; gap:.5rem;
  margin:0 0 .25rem;
  color:#000000;
    font-size: clamp(.75rem, .8rem + .2vw, 0.875rem);
}
.w-training__dot{
  width:.5rem; height:.5rem; border-radius:50%;
  background:var(--wt-blue);
}

/* タイトル：1440pxで32px（=2rem）到達、SPはやや縮小 */
.w-training__title{
  margin:0 0 1rem;
  font-weight:700;
  letter-spacing:.09em;
  line-height:1.5;
  font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem);  /* 32px @1440px */
}

/* 説明テキスト：各カードで高さを揃える（1fr） */
.w-training__text{
    margin: 0;
    align-self: start;
    line-height: 2.1;
    color: #000000;
    letter-spacing: 0.07em;
}

/* 罫線など追加したい場合（任意）
.w-training__card{ border:1px solid var(--wt-line); border-radius:var(--wt-card-r); padding:1rem; }
*/



.fst-text {
    font-weight: 400;
    margin-top: 2.2rem;
}








/* ================== w-benefits ================== */
.w-benefits{
  --wb-blue:#009DFF;
  --wb-ink:#000000;
  --wb-muted:#000000;
  --wb-gap: clamp(1rem, .5rem + 2vw, 2rem);
  --wb-radius: .75rem;             /* 12px */
  padding-block: clamp(1.5rem, 1rem + 2vw, 3rem);
}

/* グリッド：PC=3col / TB=2col / SP=1col。高さ揃え */
.w-benefits__grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: clamp(1.25rem, 1rem + 2vw, 2.25rem);
  align-items: stretch;             /* 子カードの高さを揃える */
}

.w-benefits .section__inner {
    display: grid;
    grid-template-columns: 0.3fr 1fr;
    gap: 1rem;
}

@media (max-width: 991.98px){
  .w-benefits__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); 
}
	.w-benefits .section__inner{
	    grid-template-columns: 1fr;
    gap: 2rem;
}
}
@media (max-width: 575.8px){
  .w-benefits__grid{ grid-template-columns: 1fr; }
}

/* カード：アイコン／タイトル／本文（本文を1frで均等化） */
.w-benefits__item{
  display:grid;
  grid-template-rows: auto auto 1fr; /* 最後のテキストが伸びて高さ均一化 */
  gap: .5rem;
}

/* アイコン（SVG） */
.w-benefits__icon{
    width: 8.75rem;
    height: 8.75rem;
    color: var(--wb-blue);
    background: #F2FAFF;
    border-radius: 12rem;
    margin: 0 auto;
    padding: 2.5rem;
}
.w-benefits__icon svg{ width:100%; height:100%; display:block; }

/* タイトル：1440pxで24px (=1.5rem) */
.w-benefits__title{
  margin: 1.25rem 0 .25rem;
  color: var(--wb-ink);
    text-align: center;
    letter-spacing: .08em;
    line-height: 1.47;
  font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); /* 32→24px系と整合 */
}

figure.w-benefits__icon.ptn02 {
    padding: 2rem;
}




/* 本文：1440pxで16px (=1rem)、行末は自然改行 */
.w-benefits__text{
    margin: 0;
    color: var(--wb-muted);
    line-height: 2.1;
    font-size: clamp(.9375rem, .9rem + .2vw, 1rem);
    align-self: start;
    text-align: left;
}

/* カード下に余白が欲しければ（任意）
.w-benefits__item{ padding-bottom: .25rem; }
*/







/* ===================== w-data ===================== */
.w-data{
  --wd-key:#009DFF;
  --wd-ink:#000000;
  --wd-ink-muted:#009DFF;
  --wd-card:#F2FAFF;          /* 薄い青背景 */
  --wd-radius:.625rem;         /* 12px */
}

/* グリッド（高さ揃え） */
.w-data__grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: clamp(1rem, .75rem + 1.5vw, 2rem);
  align-items: stretch;
  margin-top: 5.2rem;
}
@media (max-width:991.98px){ .w-data__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:575.8px){ .w-data__grid{ grid-template-columns: 1fr; } }

/* カード本体：3行構成で中央行を1frに */
.w-data__item{
  background: var(--wd-card);
  border-radius: var(--wd-radius);
  padding: clamp(2rem, .9rem + 1vw, 1.5rem);
  display:grid;
  grid-template-rows: auto 1fr;  /* タイトル / 内容(伸びる) */
}

/* タイトル（24px@1440） */
.w-data__title{
  margin: 0 0 1.2rem;
  text-align: center;
  color: var(--wd-ink);
    letter-spacing: 0.08em;
  line-height: 1.47;
  font-size:clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); /* 1440px=1.5rem=24px */
}

/* 中央行：アイコン＋数値（ベースライン揃え） */
.w-data__row{
  display:grid;
  grid-template-columns: auto 1fr;
  align-items: center;
      margin: 0 auto;
  gap: clamp(.75rem, .6rem + .6vw, 1.25rem);
}

/* アイコン（SVG） */
.w-data__icon{
  width: clamp(2.25rem, 1.8rem + 1.5vw, 3rem);
  height: clamp(2.25rem, 1.8rem + 1.5vw, 3rem);
  color: #0b1c7e;             /* 濃い藍 */
  margin: 0;
}
.w-data__icon svg{ width:100%; height:100%; display:block; }

/* 数値（64px@1440=4rem）＋単位/接頭語は小さめでベースライン揃え */
.w-data__value{
  margin: 0;
  display:flex; align-items: baseline; gap:.25rem; flex-wrap:wrap;
  color: var(--wd-ink);
}

figure.w-data__icon.ptn02 {
    width: clamp(5.25rem, 2.8rem + 1.5vw, 5rem);
    height: clamp(5.25rem, 2.8rem + 1.5vw, 5rem);
}

.w-data__num{

  line-height: 1;
  color: var(--wd-key);
  font-size: clamp(2.25rem, 2.6rem + 1.7vw, 4rem);  /* 1440px=64px */
}
.w-data__sep{                /* 6:4 の “:” 用 */

  color: var(--wd-key);
  font-size: clamp(2.25rem, 2.6rem + 1.7vw, 4rem);
  line-height: 1.1;
}
.w-data__prefix, .w-data__unit{
  color: var(--wd-ink-muted);
  font-size: clamp(1.5rem, 1.5rem + .25vw, 1rem); /* 14–16px帯 */
  line-height: 1.2;
}

/* 角の見た目（任意：絵に近づけるなら） */
/* .w-data__item{ box-shadow: 0 0 0 1px rgba(0,0,0,.02) inset; } */





/* ================= w-faw（FAQ） ================= */
.w-faw{
  --faw-blue:#009DFF;
  --faw-ink:#000000;
  --faw-muted:#000000;
  --faw-qbg:#009DFF;     /* Qアイコン背景（お好みで） */
  --faw-abg:#F2FAFF;     /* Aアイコン背景 */
  --faw-line:#D9D9D9;
  padding-block: clamp(1.25rem, 1rem + 1vw, 2rem);
}

.w-faw__list{ margin:0; padding:0; }
.w-faw__item{
  display:grid;
  grid-template-columns: 1fr;  /* 1列（Qの下にA） */
  gap:1.5rem;
  padding-block: 2rem;
  border-bottom: 1px solid var(--faw-line);
}

/* Q（見出し：16px@1440） */
.w-faw__q{
  margin:0; display:flex; align-items:center; gap:1rem;
  color:var(--faw-ink);
  font-weight:700;
  line-height:1.7;
}
.w-faw__qtext{
font-size: clamp(.9375rem, .9rem + .2vw, 1rem);
}

/* A（詳細：14px@1440） */
.w-faw__a{
  margin:0; display:flex; align-items:center; gap:1rem;
}
.w-faw__atext{
  margin:0; color:var(--faw-ink);
  line-height:1.9;
    font-size: clamp(.75rem, .8rem + .2vw, 0.875rem);
}

/* アイコン（テキスト表示：14px@1440） */
.w-faw__icon{
  display:inline-grid; place-items:center;
  width: 2.5rem; height: 2.5rem;               /* 32px相当の円 */
  border-radius:50%;
  line-height:1;
  /* 1440pxで14px */    
  font-size: clamp(.75rem, .8rem + .2vw, 0.875rem);
}
.w-faw__icon--q{ background:var(--faw-qbg); color:#fff; }
.w-faw__icon--a{ background:var(--faw-abg); color:var(--faw-blue); }

/* 余白・レスポンシブ微調整 */
@media (max-width:575.8px){
  .w-faw__item{ gap:.5rem; }
  .w-faw__icon{ width:1.875rem; height:1.875rem; }
}


dl.w-faw__list {
    margin-top: 0.8rem;
}







/* ================= r-message ================= */
.r-message{
--rm-gap: 4.5rem;
  --rm-radius: .75rem;           /* 12px */
}

/* PC：3カラム（左画像｜本文｜右画像3枚） */
.r-message__grid{
  display:grid;
      overflow: hidden;
  grid-template-columns:minmax(0,23.125rem) 1fr minmax(0,24.963rem);
  gap: var(--rm-gap);
  align-items:start;
  grid-template-areas: "left body aside";
}

/* 各ブロックにエリアを割り当て（HTMLはそのまま） */
.r-message__ph--left{ grid-area: left; }    /* 左の大画像 */
.r-message__body    { grid-area: body; }    /* 真ん中の文章 */
.r-message__aside   { grid-area: aside; }   /* 右の3枚 */

.r-message__ph.ph--right01 {
    aspect-ratio: 459 / 137;
    border-radius: 0;
    position: relative;
    left: -41%;
    margin-bottom: -4.3rem;
    top: -175%;
}


/* 画像（角丸＋比率） */
.r-message__ph{
  margin:0; overflow:hidden; border-radius: var(--rm-radius);
  aspect-ratio: 4 / 3;                      /* デフォ比率 */
}
.r-message__ph--left{       max-height: 49rem;  aspect-ratio: 370 / 460; } /* 左だけ横長気味 */
.r-message__ph img{ width:100%; height:100%; object-fit:cover; display:block; }

/* 右：画像3枚を縦に */
.r-message__aside{
  display:grid;
  gap: clamp(.75rem, .5rem + 1vw, 1rem);
    margin-top: 6rem;
}
.r-message__ph.ph--right02 {
    aspect-ratio: 238 / 263;
    max-width: 14.875rem;
    position: relative;
    left: 1.5rem;
}

.r-message__ph.ph--right03 {
    aspect-ratio: 287 / 349;
    max-width: 17.9378rem;
    margin-left: auto;
    position: relative;
    top: -5.5rem;
    z-index: -1;
}

/* 本文エリア（中央） */
.r-message__body{     margin-top: 3.5rem; display:grid; gap: clamp(.75rem, .5rem + .6vw, 1.25rem); }

/* 見出し：1440px=42px(=2.625rem) */
.r-message__title{
    margin: 0;
    line-height: 1.5;
    letter-spacing: .08em;
  /* SPではやや小さく、1440pxで42pxに到達 */
  font-size: clamp(1.75rem, 1rem + 1.806vw, 2.625rem);
}

.r-message__text {
    margin-top: 1.3rem;
}

/* 本文：1440px=16px(=1rem) */
.r-message__text p{
  margin: 0 0 1rem 0;
  line-height: 2.2;
  letter-spacing: 0.1em;
  font-size: clamp(0.875rem, 0.9rem + 0.2vw, 1rem);
  color:#000000;
}
.r-message__text p:last-child{ margin-bottom:0; }

/* 署名 */
.r-message__sign{
  margin:1.2rem 0 0;
  font-size: clamp(.9375rem, .9rem + .2vw, 1rem);
    text-align: right;
    letter-spacing: 0.11em;
    font-weight: 700;
}
.r-message__sign strong{     font-weight: 700;
    line-height: 1.51;
    font-size: clamp(1.5rem, 1.2rem + .75vw, 1.5rem);
    letter-spacing: 0.11em; }



/* ===== 1319.98px 以下：左と右を上段、真ん中は下段フル幅 ===== */
@media (max-width: 1319.98px){
  .r-message__grid{
    grid-template-columns: 1fr 1fr;         /* 2カラム */
    grid-template-areas:
      "left  aside"
      "body  body";
	          gap: 1rem;
  }
  .r-message__ph.ph--right01 {
    border-radius: 0;
    position: relative;
    left: 0%;
    margin-bottom: 0rem;
    top: 0;
}
.r-message__ph--left {
        min-width: 25rem;
        height: auto;
        max-height: 34rem;
		        aspect-ratio: auto;
}
.r-message__body {
    margin-top: -13rem;
        padding-inline: var(--pad-x, 2rem);
		        width: 93%;
}
.r-message__aside {
    margin-top: 6rem;
    min-width: 30rem;
	        display: block;
}
.r-message__ph.ph--right03 {
    aspect-ratio: 4 / 4;
}
}

@media (max-width: 767.8px){
    .r-message__body {
        margin-top: -19rem;
        padding-inline: 1rem;
        width: 68%;
    }
}

/* ===== 575.8px 以下：左 → 右 → 真ん中 の縦積み ===== */
@media (max-width: 575.8px){
  .r-message__grid{
    grid-template-columns: 1fr 1fr;         /* 2カラム */
    grid-template-areas:
      "left  aside"
      "body  body";
  }
  .r-message__ph.ph--right02 {
    max-width: 10.875rem;
    position: relative;
    left: 1.5rem;
    margin-left: auto;
}

    .r-message__body {
        margin-top: -12rem;
        padding-inline: 1rem;
        width: 100%;
    }

.r-message__ph.ph--right03 {
    max-width: 13.9378rem;
    margin-left: auto;
    position: relative;
    top: -5.5rem;
    z-index: -1;
}
    .r-message__ph--left {
        min-width: 13.5rem;
        height: auto;
        max-height: 34rem;
    }
	    .r-message__aside {
        min-width: 10rem;
		        margin-top: 4rem;
    }

	    .r-message__grid {
        gap: 1rem;
    }

}





/* =========================================================
   r-look-for（左画像 / 右テキスト）
   - 左画像カラムは可変（vw）で拡縮：1440px時ちょうど 550px
   - POINT=14px、見出し=32px、本文=16px（いずれも@1440）
   ========================================================= */
.r-look-for{
  --rlf-blue:#009DFF;
    --rlf-gap: 2.5rem;
  --rlf-radius:.625rem;
}

/* レイアウト：左=可変カラム / 右=本文 */
.r-look-for__row{
  display:grid;
  grid-template-columns:
    minmax(16rem, clamp(16rem, 38.2vw, 34.375rem))  /* 550px @1440、下限16rem・上限550px */
    1fr;
  gap: var(--rlf-gap);
  align-items: center;
}
@media (max-width:575.8px){
  .r-look-for__row{ grid-template-columns: 1fr; align-items: start; }
}

/* 画像（比率固定で拡縮） */
.r-look-for__ph{
  margin:0;
  overflow:hidden;
  border-radius:var(--rlf-radius);
  aspect-ratio: 550 / 490;          /* 縦横比のみ固定、サイズは親幅に追従 */
}
.r-look-for__ph img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}

.r-look-for__text {
    margin-top: 0.8rem;
}

/* テキスト側 */
.r-look-for__body{
  display:grid;
    gap: 0.2rem;
}

/* POINT（@1440 = 14px） */
.r-look-for__point{
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .25rem;
    color: #000000;
    font-size: clamp(.75rem, .8rem + .2vw, 0.875rem);
}
.r-look-for__dot{
  width:.5rem; height:.5rem; border-radius:50%;
  background:var(--rlf-blue); display:inline-block;
}

/* 見出し（@1440 = 32px） */
.r-look-for__title{
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.5;
    font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem);
}

/* 本文（@1440 = 16px） */
.r-look-for__text p{
  margin:0;
  color:#000000; line-height:2.2;
  font-size: clamp(.9375rem, .9rem + .2vw, 1rem);
}


.r-look-for__row {
    margin-top: 3rem;
}

.r-look-for__row:first-of-type{
    margin-top: 3rem;
}


.r-look-for__title-area {
    position: relative;
}


.r-look-for__title-area .num {
    position: absolute;
    -webkit-text-stroke: 1px #009DFF;
    text-stroke: 1px #009DFF;
    paint-order: stroke;
    color: transparent;
    font-size: 10.625rem;
    line-height: 1;
    top: 15%;
    left: 0%;
    -ms-transform: translate(0%,-50%);
    -webkit-transform: translate(0%, -50%);
    transform: translate(0%, -50%);
    margin: 0;
    padding: 0;
    opacity: 0.2;
}






.r-interview .strength-card__content {
    margin-top: 0;
}


.r-interview .strength-item {
    grid-template-columns: 1fr;
    margin-top: 0;
}

.r-interview .strength-item__ph.edge-right {
    overflow: hidden;
    aspect-ratio: 1310 / 420;
    width: auto;
    margin-top: 1rem;
}

.strength-item:last-of-type{
	margin-bottom: 0;
}

.interview-hero__flex {
    grid-template-columns: clamp(20rem, 48.18%, 38.55rem) 1fr;
    column-gap: clamp(2rem, 3vw, 3rem);
    display: grid;
	    align-items: center;
}

.interview-hero-item__ph.edge-right {
    position: relative;
    border-radius: .625rem;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 260 / 179;
	    min-width: 40rem;
}

.interview-prof {
    color: #000000;
    margin-top: 5rem;
}

.interview-hero__flex .c-hero__inner.non-fv__ptn {
    padding-right: 0;
}

.interview-prof span.sml {
    display: block;
    line-height: 1.8;
    letter-spacing: 0.04em;
}

.interview-prof span.name {
    display: block;
    font-size: clamp(1.25rem, 1rem + 0.8vw, 1.5rem);
    /* line-height: 1.47; */
    letter-spacing: 0.08em;
}

.interview-hero-item__ph.edge-right img {
	    width: 100%;
    height: auto;
}

.interview-hero__flex .c-hero__en {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #000000;
}

.interview-hero__flex .c-hero__en .r-look-for__dot {
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: #009DFF;
    display: inline-block;
    position: relative;
    top: -0.07rem;
	margin-right: 0.5rem;
}

.interview-hero__flex .c-hero__inner.non-fv__ptn .c-hero__ja {
    font-size: 3rem;
	    margin-top: 1rem;
}



@media (max-width:991.98px){ 
	.interview-hero__flex .c-hero__inner.non-fv__ptn {
    padding-right: 0;
    order: 2;
	        padding-bottom: 0;
}
.interview-hero-item__ph.edge-right {
    width: 100%;
    aspect-ratio: 260 / 179;
    min-width: auto;
    order: 1;
}
.interview-hero__flex {
    grid-template-columns: 1fr;
    row-gap: 1.5rem;
}
.interview-hero__flex .c-hero__inner.non-fv__ptn .c-hero__ja {
    font-size: 2rem;
    margin-top: 0rem;
}
.interview-hero__flex .c-hero__en {
    font-size: 1rem;
}
.interview-prof {
    margin-top: 1rem;
}
}





/* ===== timeline ===== */
.w-timeline .tl{
  --time-w: 4.5rem;                 /* 左列の幅 */
  --gap: 1rem;                      /* 列間の余白 */
  --line: #D9D9D9;                  /* 縦ライン色 */

  position: relative;
  display: grid;
  row-gap: 1.25rem;                 /* アイテム間の間隔 */
  margin: 0; padding: 0;
  list-style: none;
  /* ベース文字：1440pxで16pxになるようclamp（remベース） */
  font-size: clamp(.9375rem, .9rem + .2vw, 1rem);
  line-height: 1.9;
}

/* コンテナ全体の縦ライン（右本文が増えれば高さも自動で伸びます） */
.w-timeline .tl::before{
    content: "";
    position: absolute;
    left: calc(var(--time-w) + var(--gap) / 2);
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--line);
    border-radius: 0px;
    margin-left: -3.35rem;
}

/* 各行：2カラム（時刻／本文） */
.w-timeline .tl__item{
  display: grid;
  grid-template-columns: var(--time-w) 1fr;
  column-gap: var(--gap);
  position: relative;
  padding: .5rem 0;
    background: #ffffff;
}



/* 時刻（やや強調・青文字例） */
.w-timeline .tl__time{
  color: #009DFF;
  font-weight: 700;
  white-space: nowrap;
}

/* 本文 */
.w-timeline .tl__text{
  margin: 0;
  color: #000000;
}

/* SP：左列を少し狭める */
@media (max-width: 575.8px){
  .w-timeline .tl{ row-gap: 1rem; }
  .w-timeline .tl{ --time-w: 3.75rem; }
}






/* ================= r-profile ================= */
.r-profile{
  --rp-bg: #F2FAFF;      /* カードの淡い水色 */
  --rp-ink:#000000;
  --rp-blue:#009DFF;
  --rp-line:#009DFF33;
  --rp-radius:.625rem;    /* 12px */
  --rail-w: 6rem;      /* 左レールの見出し帯幅 */
--gap: 3.5rem;
}

/* カード本体：3レーン */
.r-profile__card{
  position: relative;
  display: grid;
  grid-template-columns: var(--rail-w) clamp(9rem, 10rem + 8vw, 12.5rem) 1fr; /* rail | avatar | info */
  gap: var(--gap);
  align-items: center;
  background: var(--rp-bg);
  border-radius: var(--rp-radius);
      margin-top: 5rem;
}

/* 左レール（縦ラベル＋縦線） */
.r-profile__rail{
  align-self: stretch;
  position: relative;
  display: grid;
  place-items: center;
  padding-inline: .25rem;
}

.r-profile__rail::after{
  content:"";
  position: absolute;
  inset-block: 0;             /* = top:0; bottom:0; */
  right: .35rem;
  width: 1px;
  background: var(--rp-line);
  border-radius: 1px;
}

.r-profile__rail-label{
  writing-mode: vertical-rl;
  text-orientation: mixed;
  color: var(--rp-blue);
  letter-spacing:.09em;
  /* 1440px≈16px、SPでやや小さく */
  font-size: clamp(.875rem, .84rem + .2vw, 1rem);
}

/* アバター（正方形・角丸） */
.r-profile__avatar{
  margin:0; aspect-ratio:1 / 1; overflow:hidden; border-radius:.625rem;
}
.r-profile__avatar img{
  width:100%; height:100%; object-fit:cover; display:block;
}

/* 右：情報の2カラム */
.r-profile__info{
  margin:0; padding:0;
  display:grid;
    gap: 0.3rem;
    padding: 2rem 0;
	padding-right: 2rem;
}
.r-profile__row{
  display:grid;
  grid-template-columns: 6rem 1fr;  /* 左ラベル幅 / 右テキスト */
  column-gap: 1rem;
  align-items: baseline;
}
.r-profile__term{
  margin:0; color:#009DFF;
  /* 1440px≈16px */
  font-size: clamp(.875rem, .84rem + .2vw, 1rem);
}
.r-profile__desc{
  margin:0; color:var(--rp-ink); line-height:1.9;
  /* 1440px≈16px */
  font-size: clamp(.875rem, .84rem + .2vw, 1rem);
}




.members.m-detail .members-feature {
    width: 50%;
	    gap: 1rem;
    grid-template-columns: minmax(0, 10.625rem) 1fr auto;
}

.members.m-detail .base-level__lower__inner.flex {
    display: flex;
    gap: 5rem;
    justify-content: space-between;
}

.members.m-detail .members-feature__dot {
    min-width: .5rem;
    min-height: .5rem;
}


/* レスポンシブ */
@media (max-width: 991.98px){

	.base-level__lower__inner.flex {
    gap: 2rem;
}

.members.m-detail .members-feature__dept {
line-height: 1.5;
}

	.members.m-detail .members-feature {
        grid-template-columns: minmax(0, 8rem) 1fr;
}


  .r-profile__card{
    grid-template-columns: 1fr;          /* 縦積み */
    gap: .875rem;
	        padding: 1.5rem;
  }
  .r-profile__rail{
    order:-1; justify-items:start; place-items:start;
    height:2rem;                          /* 過剰な縦長を抑制 */
	        border-bottom: 1px solid var(--rp-line);
        padding-bottom: 2rem;
        margin-bottom: 0.2rem;
  }
  .r-profile__rail::after{ display:none; }
  .r-profile__rail-label{
    writing-mode: horizontal-tb;
    letter-spacing:.12em;
  }
  .r-profile__info {
    padding: 0;
}
  .r-profile__avatar{ max-width: 12.5rem; } /* SPで大きすぎないよう軽い上限 */
  .r-profile__row{ grid-template-columns: 5.25rem 1fr; }
}







/* =========================================================
   Recruit Hero（右：Splide 2列）
   画像サイズバラバラ + 白帯なし + 画像間に余白あり（gapはJSで指定）
   PC/Tab：縦スクロール2列（各スライドは実寸比率で高さがバラつく）
   SP    ：横スクロール2列（各スライドは実寸比率で幅がバラつく）
   ========================================================= */

/* セクション余白・左右レイアウト（左=コピー / 右=ギャラリー） */
.recruit-hero { padding-block: clamp(2rem, 1.5rem + 3vw, 3.5rem); }

.r-hero{
  display:grid;
      grid-template-columns: clamp(28rem, 44vw, 46rem) 1fr;;
  gap: clamp(1.5rem, 1rem + 3vw, 4rem);
  height: 53.125rem;
}
@media (max-width: 767.8px){
  .r-hero{ grid-template-columns: 1fr;         margin-right: 0; }
}

.r-hero-grp {
    position: relative;
	    margin: 0 0 3rem;
}

.r-hero-grp picture {
    position: absolute;
    left: 81%;
    top: 89%;
    transform: translate(-50%, -50%);
    margin: 0;
    padding: 0;
    width: clamp(9rem, 15vw, 13rem);
}

/* 左コピー（参考タイポ） */
.r-hero__eyebrow{ margin:0 0 1.2rem; color:#000000; letter-spacing: 0.1em; font-size: clamp(.875rem, .82rem + .25vw, 1rem); }
.r-hero__title{     margin: 0 0 1rem;    white-space: nowrap;
    line-height: 1.28;
    letter-spacing: .13em;    position: relative;
    font-size: clamp(2.25rem, 0.75rem + 4vw, 4.25rem);}
.r-hero__title .is-accent{ color:#009DFF; }
.r-hero__lead{     margin: 0;
    color: #000000;
    line-height: 2.14;
    font-size: clamp(.9375rem, .9rem + .2vw, 1rem);}

/* 右：2列ギャラリーのラッパー */
.r-hero__gallery{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(.5rem, .4rem + .8vw, 1rem);   /* 列間の余白（スライド間の余白はJSの gap） */
  align-items: stretch;
}


.r-hero__copy {
    position: relative;
	    padding-top: 13rem;
}

.r-hero__col{ display:grid; }

@media (max-width: 767.8px){
  .r-hero__gallery{ height: clamp(18rem, 12rem + 30vw, 30rem); 
grid-template-columns: 1fr;
gap: 0rem;
} /* 横化時の見た目高さ */
.r-hero__copy {
    position: relative;
    padding-top: 5.5rem;
}
.r-hero {
    height: auto;
}
}


/* ===== Splide 列（コンテナ） =====
   画像自体に角丸を付けるため、ここでは切り抜かない */
.r-hero__splide{
  height: clamp(22rem, 18rem + 20vw, 34rem);   /* 縦スクロール時の見た目高さ */
  border-radius: 0;
  overflow: visible;                            /* ← 各画像の角丸をそのまま見せる */
  background: transparent;
}
@media (max-width: 767.8px){
  .r-hero__splide{ height: 100%; }             /* 横化時は親の高さに追従 */
  .r-hero__col{ min-height:11.5rem; }
}

/* Splide 標準UIは非表示（自動スクロールのみ使用） */
.r-hero__splide .splide__arrows,
.r-hero__splide .splide__pagination{ display:none !important; }

/* ===== スライド ===== */
/* 保険としての既定実寸（各<li>で style="--w:341; --h:211" 等で上書き） */
.r-hero__splide .splide__slide{ --w: 4; --h: 3; margin:0; padding:0; }

/* 画像は白帯なしでトリミング、各画像に角丸を適用 */
.r-hero__splide .splide__slide img{
  width:100%; height:100%;
  object-fit: cover; object-position: center;
  display:block;
  border-radius: .75rem;                        /* スクショ同等の丸み */
}

/* --- PC/Tab（縦）：列幅 × (w/h) = 高さ 可変 --- */
@media (min-width: 576px){
  .r-hero__splide .splide__slide{
    aspect-ratio: calc(var(--w) / var(--h));    /* 実寸比率で高さを決定 */
  }
}

/* --- SP（横）：高さ固定 × (w/h) = 幅 可変 --- */
@media (max-width: 767.8px){
  .r-hero__splide{ --slide-h: 11rem; }          /* 横化時のスライド高さ（調整可） */
  .r-hero__splide .splide__slide{
    height: var(--slide-h);
    width : calc(var(--slide-h) * (var(--w) / var(--h))); /* 実寸比率で幅を決定 */
  }
}

/* ← Splide が入れる inline height を無効化 */
.r-hero__splide .splide__slide { height: auto !important; }


/* （任意）列ごとにデフォ高さ/比率を変えたい場合の例
#hero-col-left  .splide__slide{ --w: 3; --h: 4; }
#hero-col-right .splide__slide{ --w: 4; --h: 3; }
@media (max-width:575.8px){
  #hero-col-left  { --slide-h: 10rem; }
  #hero-col-right { --slide-h: 12rem; }
}
*/


/* 例：1440px時に 680px、上下は少しだけ伸縮 */









/* ============== r-top-copy ============== */
.r-top-copy { padding-block: clamp(2rem, 1.5rem + 3vw, 4rem); }

.r-top-copy__grid {
    display: grid;
    grid-template-columns: clamp(26rem, 43vw, 44rem) 1fr;
    gap: clamp(2rem, 1.2rem + 3vw, 5rem);
    align-items: center;
}

.r-top-copy__body {
    position: relative;
    top: 3rem;
}

.nextlink-tp {
    display: flex;
    justify-content: flex-start;
    margin-top: 2rem;
}

@media (max-width:767.8px){
  .r-top-copy__grid{ grid-template-columns: 1fr; gap: 1.5rem; }

  .r-top-copy__body {
    top: 0;
}

	.top-slide {
      overflow: hidden;
	  margin-top: 5.2rem;
    }


}

/* 左ブロック */
.r-top-copy__copy{ position: relative; }

/* 小見出し */
.r-top-copy__eyebrow{
  margin: 0 0 .3rem;
  color: #009DFF;
  letter-spacing: .07em;
    font-size: clamp(.875rem, .82rem + .25vw, 1rem);
}

/* メイン見出し：上限48px（=3rem） */
.r-top-copy__title{
  margin: 0;
    line-height: 1.47;
    letter-spacing: .08em;
    white-space: nowrap;
  font-size: clamp(1.75rem, 1.1rem + 2.2vw, 3rem); /* <= 48px */
}
.r-top-copy__title .is-accent{ color:#009DFF; }

@media (max-width: 991.98px){
  .r-top-copy__script{ left: 40%; top: 82%; transform: translate(-50%,-50%) rotate(-6deg); }
}
@media (max-width: 575.8px){
  .r-top-copy__script{
    position: static;
    transform: none;
    white-space: normal;
    margin-top: .75rem;
    font-size: clamp(1rem, .9rem + .6vw, 1.5rem);
  }
}

/* 右：本文のみ */
.r-top-copy__body p{
  margin: 0;
  color: #000000;
  line-height: 2;
  font-size: clamp(.9375rem, .9rem + .2vw, 1rem); /* 14–16px帯 */
}






/* ================== r-top-workstyle ================== */
.r-top-workstyle {margin-top:-10.3rem;padding-top:0!important; padding-block: clamp(2rem, 1.5rem + 3vw, 4rem); padding-bottom: 1.5rem; }

/* 背景レイヤ（写真＋グラデ）。崩れないように cover + overlay */
.rts-bg{
  position: relative;
  overflow: clip;               /* 子の角丸も綺麗に */
  min-height: clamp(28rem, 68svh, 48rem); /* 画面に対して安定した高さ */
  /* 写真（CSS変数で差し替え） */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

figure.rts-ph.rts-ph--rb {
    position: relative;
    top: -7.5rem;
    z-index: -1;
}

figure.rts-ph.rts-ph--rt {
    width: 14.875rem;
    margin-top: 6rem;
    position: relative;
    left: -5.7rem;
}

/* グラデーションオーバーレイ（提供値に忠実） */
.rts-bg::before{
    content: "";
    position: absolute;
    inset: 0;
    background: url(public/img/top/r-top-w_bg.png);
    opacity: 1;
    pointer-events: none;
    background-size: cover;
}

/* 中身のグリッド（上に表示） */
.rts-grid{
  position: relative; z-index: 1;
  display:grid;
  grid-template-columns: minmax(0, clamp(20rem, 25.625vw, 30rem)) 1fr minmax(0, clamp(12rem, 20vw, 20rem));
  grid-template-areas:
    "left copy rt"
    "left copy rb";
  gap:5.5rem;
  align-items: center;
}



/* エリア割当 */
.rts-ph--left { grid-area:left; }
.rts-copy     { grid-area:copy; position: relative; }
.rts-ph--rt   { grid-area:rt;   }
.rts-ph--rb   { grid-area:rb;   }

/* 画像（比率固定／角丸） */
.rts-ph{ margin:0; }
.rts-ph--left { aspect-ratio: 369 / 460; }
.rts-ph--rt   { aspect-ratio: 238 / 263; }
.rts-ph--rb   { aspect-ratio: 287 / 349; }
.rts-ph img{
  width:100%; height:100%;
  object-fit:cover; display:block;
    border-radius: 0 .75rem .75rem 0;
}

figure.rts-ph.rts-ph--rb img {
    border-radius: .75rem 0 0 .75rem;
}

/* タイポ（白ベース） */
.rts-eyebrow{
    margin: 0 0 .2rem;
    letter-spacing: .07em;
  color:#ffffff;
  font-size: clamp(.875rem, .82rem + .25vw, 1rem);
}
/* 見出し：上限48px */
.rts-title{
	  color:#ffffff;
    line-height: 1.47;
    letter-spacing: .08em;
    font-size: clamp(1.75rem, 1.1rem + 2.2vw, 3rem);
}
.rts-lead{
  margin:0; color:#ffffff;
  line-height:2;
  font-size: clamp(.9375rem, .9rem + .2vw, 1rem);
  margin-top: 1.5rem;
}


/* タブレット→2カラム、SP→縦積み */
@media (max-width: 991.98px){
  .rts-grid{
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "left  copy"
      "left  rt"
      "left  rb";
    align-items: start;
	    gap: 2.5rem;
  }
  .rts-copy {
    padding: 3rem 2rem 0 0rem;
}
  figure.rts-ph.rts-ph--rt{
	  display: none;
  }
  figure.rts-ph.rts-ph--rb {
    position: relative;
    top: 0;
    z-index: -1;
}
}
@media (max-width: 575.8px){
  .rts-grid{
    grid-template-columns: 1fr;
    grid-template-areas:
      "left"
      "copy"
      "rt"
      "rb";
    gap: 1rem;
  }
  .rts-copy {
        padding: 1rem;
    }
}






.r-top-members-list .members-feature {
    grid-template-columns: minmax(0, 21.75rem) 1fr auto;
    gap: 3rem;
}

.r-top-members-list .members-feature__title {
    font-size: clamp(1.25rem, 1rem + 1.3vw, 1.75rem);
}

.r-top-copy.r-top-members.members .r-top-copy__grid {
    align-items: flex-start;
    grid-template-columns: clamp(17rem, 28vw, 29rem) 1fr;
}

.r-top-copy__text {
    margin-top: 1.6rem;
}


@media (max-width: 1124.8px){
.r-top-members-list .members-feature {
    grid-template-columns: minmax(0, 16rem) 1fr;
}

.r-top-copy.r-top-members.members .r-top-copy__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
}



}

@media (max-width: 567.8px){

    .r-top-copy.r-top-members.members .members-feature {
        grid-template-columns: 1fr;
    }

	}









	/* ===== Requirements Top（ボタン/グラデなし） ===== */
.r-top-req { padding-block: clamp(1.5rem, 1rem + 2vw, 3rem); }

/* 背景カード（写真のみ） */
.rtr-bg{
  position: relative;
   display: grid; 
  overflow: clip;
    background: url(public/img/top/rtr_bg.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
      min-height: clamp(33rem, 60svh, 40rem);
    border-radius: 0.625rem;
}

/* 右寄せのコンテンツラップ */
.rtr-inner{
  /* 右側に寄せるレイアウト（PC） */
    align-self: center;                    /* 縦：中央 */
  justify-self: end;                     /* 横：右寄り */
  display: grid;
  align-content: center;
  justify-items: start;
    gap: 0.5rem;
  /* 余白：左右で非対称（右に寄せたいので） */
padding: clamp(1rem, .8rem + 2vw, 2rem)
           clamp(1rem, 2rem + 6vw, 6rem);/* 上下 / 左右(右側が広い) */
  /* 内側のテキスト色 */
  color: #fff;
  max-width: 46rem;                /* テキスト行幅を制御 */
  margin-left: auto;               /* 右寄せ */
}

/* 小見出し */
.rtr-eyebrow{
  margin: 0;
  letter-spacing: .08em;
  color: #ffffff;
  font-size: clamp(.875rem, .82rem + .25vw, 1rem);  /* 14–16px帯 */
}

/* メイン見出し：上限48px */
.rtr-title{
  margin: 0;
  line-height: 1.25;
  letter-spacing: .04em;
  color: #ffffff;
  font-size: clamp(2rem, 1.25rem + 1.8vw, 3rem);    /* <= 48px */
}

/* リード：16px / 行間2 / 白 */
.rtr-lead{
  margin: 0;
  color: #ffffff;
  line-height: 2;
  font-size: clamp(.9375rem, .9rem + .2vw, 1rem);   /* ≈16px @1440 */
      margin-top: 0.5rem;
}

/* SPは中央寄せに切替（行幅を広げすぎない） */
@media (max-width: 575.8px){
  .rtr-inner{
    margin: 0; max-width: none;
    justify-items: start;
    padding: clamp(1rem, 1rem + 3vw, 2rem);
  }
}






/* ===== Grid ===== */
.rcc-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1rem, .8rem + 2vw, 2rem);
}
@media (max-width: 575.8px){
  .rcc-grid{ grid-template-columns: 1fr; }
}

/* ===== Card ===== */
.rcc-card{
  display:grid;
  grid-template-columns: 1fr auto;        /* 左=テキスト / 右=矢印pill */
  align-items:center;
  gap: clamp(1rem, .8rem + 1.5vw, 2rem);
  padding: clamp(1.25rem, 1rem + 2vw, 2rem);
  border:1px solid #D9D9D9;
  border-radius: .625rem;
  background:#fff;
      text-align: center;
  color:#000000;
      height: 15.625rem;
  text-decoration:none;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.rcc-card:hover{
  background:#00007E;          /* カード全体をネイビーに */
  border-color: transparent;
  color:#ffffff;                /* 既定のテキスト色を白に */
}

/* 左テキスト */
.rcc-text{ display:grid; gap:.2rem; }
.rcc-eyebrow{
  margin:0;letter-spacing:.08em;
  color:#009DFF;                       /* 通常 */
  font-size: clamp(.875rem, .82rem + .25vw, 1rem);
  transition: color .25s ease, opacity .25s ease;
}
.rcc-title{
  margin:0;letter-spacing:.08em; line-height:1.3;
  font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2rem);  /* 見出しサイズは調整可 */
  transition: color .25s ease;
}
/* ホバー時は「その他=白」規則に合わせる */
.rcc-card:hover .rcc-eyebrow,
.rcc-card:hover .rcc-title{ color:#ffffff; }

/* 右の矢印pill */
.rcc-btn{
  --pill-h: 3.125rem;                   /* 高さ 50px 相当 */
  display:inline-grid; place-items:center;
  min-width: 5rem; height: var(--pill-h);
  padding-inline: 1.25rem;
  border-radius: 999px;
    background: #00007E;
    color: #ffffff;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.rcc-btn svg{ display:block; }

/* ホバー時：矢印＝#00007E、その他＝#fff（＝台は白のまま）＋ 右へ少しスライド */
.rcc-card:hover .rcc-btn{
  background:#ffffff;                   /* 台は白 */
  color:#00007E;                        /* 矢印（アイコン）はネイビー */
}

/* 追加：SVG のみ右へスライド */
.rcc-btn svg{
  display:block;
  transition: transform .25s ease;
}
.rcc-card:hover .rcc-btn svg{
  transform: translateX(.15rem); /* ← 矢印だけ動く */
}

/* フォーカスリング */
.rcc-card:focus-visible{
  outline: .1875rem solid rgba(0,157,255,.5);
  outline-offset: .1875rem;
}







/*アニメーション*/
/* スコープ */
.hero-anim { position: relative; }



.hero-anim .reveal-clip{
  display:inline-block;
  overflow:hidden;
  clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);
  -webkit-clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);
  will-change:clip-path;
}
.hero-anim .r-hero__title .is-accent{ color:#13A3E0; transition:color .35s ease; }
.hero-anim .r-hero__title .will-accent{ color:inherit; }

/* ベース文字は通常の color のまま。上に“グラデ文字”を重ねてopacityでフェード */
.grad-fade{ position:relative; display:inline-block; }
.grad-fade::after{
  content: attr(data-text);
  position:absolute; inset:0;
  background: linear-gradient(180deg, #009DFF 28.74%, #70C8FF 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
  opacity: 0; transition: opacity .5s ease; pointer-events: none;
}
.grad-fade.is-accent::after{ opacity: 1; }





/* 親を好きなサイズに。%/px/vw/vh どれでもOK */
#animation_container {
    position: absolute;
    width: 100%;
    max-width: 960px;
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    left: 64%;
    top: 51%;
    transform: translate(-50%, -50%);
    transform: rotate(-13deg);
    padding: 0;
    width: clamp(9rem, 15vw, 13rem);
}
#animation_container > canvas,
#dom_overlay_container {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
}

#animation_container02 {
    position: absolute;
    width: 100%;
    max-width: 960px;
    aspect-ratio: 73 / 22;
    margin: 0 auto;
    left: 29%;
    top: 88%;
    transform: translate(-50%, -50%);
    transform: rotate(-13deg);
    padding: 0;
    z-index: -1;
width: clamp(13rem, 29.2vw, 26.3rem);
}
#canvas02,
#dom_overlay_container02 {
  position: absolute;
  inset: 0;          /* top/right/bottom/left: 0 */
  width: 100% !important;   /* makeResponsiveがcanvas/overlayにはwidth/heightを付けるので上書き */
  height: 100% !important;
}


#animation_container03 {
    position: absolute;
    width: 100%;
    max-width: 960px;
    aspect-ratio: 165 / 71;
    margin: 0 auto;
    left: 85%;
    top: 95%;
    transform: translate(-50%, -50%);
    transform: rotate(-13deg);
    padding: 0;
    width: clamp(13rem, 21.2vw, 18.795rem);
    z-index: 1;
}
#canvas03,
#dom_overlay_container03 {
  position: absolute;
  inset: 0;          /* top/right/bottom/left: 0 */
  width: 100% !important;   /* makeResponsiveがcanvas/overlayにはwidth/heightを付けるので上書き */
  height: 100% !important;
}


@media (max-width: 991.98px) {
	#animation_container03 {
    left: 10%;
	    top: 55%;
}
.rts-copy {
    position: static;
}
.r-look-for__title-area .num {
    font-size: 4.625rem;
    top: 15%;
    left: 0;
    -ms-transform: translate(0%,-50%);
    -webkit-transform: translate(0%, -50%);
    transform: translate(0%, -50%);
}
}

@media screen and (max-width: calc(768px - 0.2px)) {

#animation_container02 {
    left: 50%;
    top: 60%;
    width: clamp(13rem, 29.2vw, 26.3rem);
}
}

@media (max-width: 575.8px) {
	#animation_container03 {
        left: 45%;
        top: -15%;
}
.rts-copy {
    position: relative;
}
figure.strength-item__ph.edge-left.sa-content {
    order: 2;
}

.r-look-for__title-area .num {
    font-size: 3.625rem;
    top: 15%;
    left: 0;
    -ms-transform: translate(0%,-50%);
    -webkit-transform: translate(0%, -50%);
    transform: translate(0%, -50%);
}
.members.m-detail .base-level__lower__inner.flex {
    display: block;
}
    .members.m-detail .members-feature {
        grid-template-columns: minmax(0, 10.625rem) 1fr auto;
    }
}




/* スコープ内のみ影響 */
.sa-scope { position: relative; }

/* クリップリビール用のラッパ */
.sa-scope .sa-reveal {
  display: inline-block;
  overflow: hidden;
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  -webkit-clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  will-change: clip-path;
}

/* アクセント色：出現後に .sa-accent--pending を外す */
.sa-scope .sa-accent { 
  transition: color .36s ease;
  color: var(--sa-accent, #13A3E0);
}
.sa-scope .sa-accent--pending { color: inherit; }

@media (prefers-reduced-motion: reduce) {
  .sa-scope .sa-reveal { clip-path: none; -webkit-clip-path: none; }
  .sa-scope .sa-accent { transition: none; }
}


.nextlink-tp.center-white {
    display: flex
;
    justify-content: center;
}


/* ヘッダー高さに追従する sticky。JS で --stick-top を上書きします */
.r-top-copy__copy.sticky{
  position: sticky;
  top: var(--stick-top, 72px); /* ヘッダー未計測時の仮の値 */
  align-self: start;
  z-index: 2;
      margin-top: -1rem;
    padding-top: 1rem;
}

/* カードの初期状態（下から/マスクリビール） */
.r-top-members-list .members-feature{
  opacity: 0;
  transform: translateY(16px);
  clip-path: polygon(0 100%,100% 100%,100% 100%,0 100%);
  -webkit-clip-path: polygon(0 100%,100% 100%,100% 100%,0 100%);
  will-change: transform, opacity, clip-path;
}
@media (prefers-reduced-motion: reduce){
  .r-top-members-list .members-feature{
    opacity: 1;
    transform: none;
    clip-path: none;
  }
}


@media (max-width: 1124.8px){

.r-top-copy__copy.sticky {
    position: relative;
    top:0;
    align-self: start;
    z-index: 2;
    margin-top: 0;
    padding-top: 0;
}

}







.gradation01 {
    position: fixed;
    overflow: hidden;
    width: 100%;
    height: 100vh;
    z-index: -2;
}
.gradation01 .item {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50%;
  height: 50%;
  transform-origin: 0 0;
  animation-name: rotate-item;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
.item-00 {
  z-index: 4;
  animation-duration: 55s;
}
.item-01 {
  z-index: 3;
  animation-duration: 60s;
}
.item-02 {
  z-index: 2;
  left: 45%;
  animation-duration: 50s;
  animation-direction: reverse;
}
.item-03 {
    z-index: 3;
    left: 40%;
    animation-duration: 48s;
}
.item-04 {
  z-index: 1;
  animation-duration: 45s;
}
.round {
  position: relative;
  border-radius: 50%;
}

/*
.round-00 {
    z-index: 2;
    top: -70%;
	left: -50%;
    width: 25vw;
    height: 25vw;
    background: #FEFEF2;
    filter: blur(3vw);
  animation: flash 5s linear infinite;
}*/

.round-01 {
    z-index: 3;
    top: -50vw;
    left: -50%;
    width: 70vw;
    height: 70vw;
background: radial-gradient(32.8% 40.31% at 39.62% 56.68%, rgba(0, 157, 255, 0.22) 0%, rgba(255, 255, 255, 0.22) 80.29%) /* warning: gradient uses a rotation that is not supported by CSS and may not behave as expected */;
    /*filter: blur(8vw);*/
	    opacity: 0.5;
  animation: flash 5s linear infinite;
}
/*
.round-02 {
    top: -20%;
    width: 40vw;
    height: 40vw;
    background-color: #3AFDFE;
    filter: blur(5vw);
  animation: flash 8s linear infinite;
}
.round-03{
    top: 60%;
    width: 40vw;
    height: 40vw;
    background-color: #F6D4F0;
    filter: blur(3vw);
  animation: flash 3s linear infinite;
}*/
/*
.round-04{
    top: -70%;
    left: -60%;
    width: 40vw;
    height: 40vw;
    background-color: #eee6ff30;
    filter: blur(10vw);
  animation: flash 10s linear infinite;
}*/

/* 回転アニメーション */
@keyframes rotate-item {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
/* 点滅アニメーション */
@keyframes flash {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.8;
	}
}





/* ——— Base ——— */
.opener{
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0, 157, 255, 1); /* ローディング中の背景 */
  overflow: hidden;
}
.opener__grid{
  position: absolute; inset: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2x2 = 4分割 */
  grid-template-rows: repeat(2, 1fr);
}
.opener__tile{
  position: relative;
  background-size: cover; background-position: center;
  transform: scale(1.08); opacity: 0;
  clip-path: inset(100% 0 0 0); /* 下から0%で隠す */
  will-change: transform, opacity, clip-path;
}
.opener__whiteout{
  position: absolute; inset: 0; background: #fff; opacity: 0; pointer-events: none;
}

/* 8分割状態（4x2） */
.opener--8 .opener__grid{
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
}

/* Reduce motion: すぐ終わらせる */
@media (prefers-reduced-motion: reduce){
  .opener__tile{ transform: none; opacity: 1; clip-path: none; }
  .opener__whiteout{ opacity: 1; }
}




.wpcf7 .wpcf7-submit:disabled {
    cursor: not-allowed;
    pointer-events: none;
    opacity: 0.6;
}

.gradation01.under{
	z-index: -1;
}

.gradation01.under {
    margin-left: 30%;
}

@media screen and (max-width: calc(576px - 0.2px)) {
.gradation01.under .round-01 {
    z-index: 3;
    top: -50vw;
    left: -50%;
    width: 200vw;
    height: 200vw;
}
}