@charset "UTF-8";
/*------------------------------------------------------------------------------
  reset
------------------------------------------------------------------------------*/
/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

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

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

button {
  background-color: transparent;
  cursor: pointer;
}

input,
select,
textarea,
button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

/*------------------------------------------------------------------------------
  base
------------------------------------------------------------------------------*/
html {
  font-size: 62.5%;
  -webkit-animation: fadeIn 2s ease 0s 1 normal;
          animation: fadeIn 2s ease 0s 1 normal;
  /* アンカー遷移の着地位置を固定ヘッダー分よける（全アンカー共通。--header-h は :root で定義） */
  scroll-padding-top: calc(var(--header-h) + 3rem);
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
:root {
  --header-h: 10.8rem;
}
@media (max-width: 63.937rem) {
  :root {
    --header-h: 8.8rem;
  }
}
@media (max-width: 47.9375rem) {
  :root {
    --header-h: 6.4rem;
  }
}

body {
  color: #333;
  font-size: 1.6rem;
  font-weight: normal;
  font-style: normal;
  line-height: 1.7;
  letter-spacing: 0.05em;
  font-family: "Noto Sans JP", sans-serif;
  background-color: #fff;
  margin: 0;
}
@media (max-width: 47.9375rem) {
  body {
    font-size: 1.3rem;
  }
}

/* モーダル／ハンバーガー展開中の背景スクロール固定（JS が付与） */
body.noscroll {
  overflow: hidden;
}

img {
  border: 0;
  margin: 0;
  vertical-align: bottom;
  max-width: 100%;
  -webkit-user-drag: none;
}

p {
  overflow-wrap: break-word;
  word-wrap: break-word;
}

a {
  color: #333;
  text-decoration: none;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
a:hover {
  opacity: 0.85;
}

.object_cover {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.object_contain {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.sp {
  display: none !important;
}
@media (max-width: 47.9375rem) {
  .sp {
    display: block !important;
  }
}

@media (max-width: 47.9375rem) {
  .pc {
    display: none !important;
  }
}

/*------------------------------------------------------------------------------
  common
------------------------------------------------------------------------------*/
#wrapper {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  overflow: hidden;
}

/* 固定ヘッダー分の上余白は全ページ共通では持たせない。
   トップは p-mv 側で確保し、下層ページは見出し（FV）を上まで全面に出す（padding-top なし）。 */
.l-main {
  display: block;
  background-color: transparent;
}

#wrapper .l-main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

/*------------------------------------------------------------------------------
  下層ページ共通レイアウト
------------------------------------------------------------------------------*/
.l-main__container {
  padding-top: 16rem;
  padding-bottom: 18rem;
}
@media (max-width: 47.9375rem) {
  .l-main__container {
    padding-top: 8.8rem;
    padding-bottom: 9.6rem;
  }
}

.l-main__section {
  padding-bottom: 16rem;
}
@media (max-width: 47.9375rem) {
  .l-main__section {
    padding-bottom: 7.2rem;
  }
}

/*------------------------------------------------------------------------------
  l-content（本文＋サイドバーの2カラム骨格。archive / single で共通利用）
  PC：本文＋サイド横並び／1023px以下：縦積み（サイドが本文の下）
------------------------------------------------------------------------------*/
.l-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (max-width: 63.937rem) {
  .l-content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.l-content__main {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 70.5%;
          flex: 0 1 70.5%;
}
@media (max-width: 63.937rem) {
  .l-content__main {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%;
  }
}

@media (min-width: 64rem) {
  .l-content__main .c-card-list {
    -ms-grid-columns: (minmax(0, 1fr))[2];
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.l-content__side {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 24%;
          flex: 0 1 24%;
}
@media (max-width: 63.937rem) {
  .l-content__side {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%;
    margin-top: 6.4rem;
  }
}

/*------------------------------------------------------------------------------
  l-header
------------------------------------------------------------------------------*/
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

/* 少しスクロールしたら下側に淡い影をつけて、ヘッダーが少し浮いて見えるようにする
   （クラス is-scrolled は common.js が付与） */
.l-header.is-scrolled {
  background-color: #fff;
  -webkit-box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.08);
          box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.08);
}

.l-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  max-width: 172rem;
  margin: 0 auto;
  min-height: 10.8rem;
  padding-left: 2rem;
}
@media (max-width: 75rem) {
  .l-header__inner {
    padding-left: 2.4rem;
  }
}
@media (max-width: 63.937rem) {
  .l-header__inner {
    min-height: 8.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-header__inner {
    min-height: 6.4rem;
    padding-left: 1.6rem;
  }
}

.l-header__logo {
  width: min(29.02rem, 24vw);
  line-height: 1;
}
@media (max-width: 63.937rem) {
  .l-header__logo {
    width: 22rem;
    margin-right: auto;
  }
}
@media (max-width: 32.5rem) {
  .l-header__logo {
    width: auto;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}

.l-header__logo a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.4rem;
  width: 100%;
  color: #333;
}
@media (max-width: 32.5rem) {
  .l-header__logo a {
    gap: 0.8rem;
  }
}

.l-header__logo-mark {
  position: relative;
  display: block;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 15rem;
          flex: 0 0 15rem;
  width: 15rem;
}
@media (max-width: 71.25rem) {
  .l-header__logo-mark {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12rem;
            flex: 0 0 12rem;
    width: 12rem;
  }
}
@media (max-width: 32.5rem) {
  .l-header__logo-mark {
    -ms-flex-preferred-size: 9rem;
        flex-basis: 9rem;
    width: 9rem;
    height: 2.9rem;
  }
  .l-header__logo-mark img {
    width: 17.6rem;
  }
}
.l-header__logo-mark img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.l-header__logo-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 0.6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.l-header__logo-company {
  font-size: 1.9rem;
}
@media (max-width: 71.25rem) {
  .l-header__logo-company {
    font-size: 1.4rem;
  }
}
@media (max-width: 32.5rem) {
  .l-header__logo-company {
    font-size: 1.2rem;
  }
}

.l-header__logo-name {
  font-size: 2.6rem;
  line-height: 0.9;
}
@media (max-width: 71.25rem) {
  .l-header__logo-name {
    font-size: 2.2rem;
  }
}
@media (max-width: 32.5rem) {
  .l-header__logo-name {
    font-size: 1.8rem;
  }
}

.l-header__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-right: 4rem;
}
@media (max-width: 75rem) {
  .l-header__nav {
    margin-right: 2.4rem;
  }
}
.l-header__nav {
  /* ≤1023：ドロワー本体。幅は常に 100% に固定し、表示/非表示は clip-path の横ワイプで行う。 */
}
@media (max-width: 63.937rem) {
  .l-header__nav {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    opacity: 0;
    visibility: hidden;
    z-index: 999;
    background-color: #fff;
    margin-right: 0;
    overflow-y: auto;
    clip-path: inset(0 0 0 100%);
    -webkit-transition: clip-path 0.55s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.55s ease, visibility 0s linear 0.55s;
    transition: clip-path 0.55s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.55s ease, visibility 0s linear 0.55s;
  }
}

@media (max-width: 63.937rem) {
  .l-header__nav.open {
    opacity: 1;
    visibility: visible;
    z-index: 99;
    clip-path: inset(0 0 0 0);
    -webkit-transition: clip-path 0.55s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.55s ease, visibility 0s;
    transition: clip-path 0.55s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.55s ease, visibility 0s;
  }
}

.l-header__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(1.8rem, 2.22vw, 3.2rem);
  /* ≤1023：ドロワー内ナビは左寄せ＋上下罫線の縦リスト */
}
@media (max-width: 63.937rem) {
  .l-header__nav-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    min-height: 100%;
    padding: 8.8rem 0 4rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-header__nav-list {
    padding-top: 6.4rem;
  }
}

.l-header__nav-item {
  margin-right: 0;
}
@media (max-width: 63.937rem) {
  .l-header__nav-item {
    width: 100%;
    margin: 0;
    border-top: 1px solid rgba(32, 46, 84, 0.15);
  }
}
@media (max-width: 63.937rem) {
  .l-header__nav-item:last-child {
    border-bottom: 1px solid rgba(32, 46, 84, 0.15);
  }
}

.l-header__nav-link {
  position: relative;
  color: #202e54;
  font-size: 1.6rem;
  font-weight: 700;
}
@media (max-width: 71.25rem) {
  .l-header__nav-link {
    font-size: 1.4rem;
  }
}
.l-header__nav-link {
  /* ≤1023：テキスト左・矢印ボタン右の横並び */
}
@media (max-width: 63.937rem) {
  .l-header__nav-link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    font-size: 1.7rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    gap: 1.6rem;
    padding: 1.8rem 1.6rem;
  }
}
.l-header__nav-link {
  /* PC（横並びナビ）：ホバーで文字の少し下に、左→右へ下線がのびる（線色＝文字色） */
}
@media (min-width: 64rem) {
  .l-header__nav-link {
    display: inline-block;
  }
  .l-header__nav-link::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.5rem;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    -webkit-transform-origin: left center;
            transform-origin: left center;
    -webkit-transition: -webkit-transform 0.35s ease;
    transition: -webkit-transform 0.35s ease;
    transition: transform 0.35s ease;
    transition: transform 0.35s ease, -webkit-transform 0.35s ease;
  }
  .l-header__nav-link:hover::before {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
.l-header__nav-link {
  /* 各項目の右端に丸い矢印ボタン（icon_arrowR_white.svg ＝ アクセント円＋白矢印が一体のSVG）。ドロワー時のみ表示 */
}
@media (max-width: 63.937rem) {
  .l-header__nav-link::after {
    content: "";
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    background-image: url("../img/icon_arrowR_white.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }
}

.l-header__contact {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 24.4rem;
  padding: 1.2rem 2.2rem 0.9rem;
  color: #202e54;
  background: linear-gradient(91deg, #FFFA29 3.32%, #FFE400 54.27%, #FFDD3F 97.66%);
}
@media (max-width: 63.937rem) {
  .l-header__contact {
    width: auto;
    padding: 1rem 1.6rem 0.7rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-header__contact {
    display: none;
  }
}

.l-header__contact-label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #202e54;
  font-size: 1.5rem;
  font-weight: bold;
  background-color: #fff;
  border-radius: 5rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0.2rem 1.4rem 0.2rem 1rem;
  margin-bottom: 0.6rem;
}
@media (max-width: 63.937rem) {
  .l-header__contact-label {
    font-size: 1.2rem;
    margin-bottom: 0.4rem;
  }
}

.l-header__contact-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.9rem;
  height: 1.9rem;
  margin-right: 0.8rem;
}
@media (max-width: 63.937rem) {
  .l-header__contact-icon {
    width: 1.5rem;
    height: 1.5rem;
  }
}
.l-header__contact-icon img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  vertical-align: top;
}

.l-header__contact-tel {
  color: #202e54;
  font-family: "Roboto", sans-serif;
  font-size: 2.6rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  margin-bottom: 0.2rem;
}
@media (max-width: 63.937rem) {
  .l-header__contact-tel {
    font-size: 2rem;
    display: block;
    margin-bottom: 0;
  }
}

.l-header__contact-time {
  font-size: 1.25rem;
  letter-spacing: 0.01em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 63.937rem) {
  .l-header__contact-time {
    font-size: 1.1rem;
  }
}

/* SP用 電話ボタン（l-header__contact が SP で非表示になるための代替導線）。
   PC/タブレットは非表示。SP（≤767）でハンバーガーの左に同寸で並ぶ */
.l-header__tel {
  display: none;
}
@media (max-width: 47.9375rem) {
  .l-header__tel {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-item-align: stretch;
        -ms-grid-row-align: stretch;
        align-self: stretch;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 6.4rem;
    background: linear-gradient(91deg, #FFFA29 3.32%, #FFE400 54.27%, #FFDD3F 97.66%);
  }
  .l-header__tel img {
    width: 2.8rem;
    height: 2.8rem;
    -o-object-fit: contain;
       object-fit: contain;
  }
}

/*------------------------------------------------------------------------------
  l-footer
------------------------------------------------------------------------------*/
.l-footer {
  background-color: #fff;
  border-top: 1px solid #4fb5e5;
}

.l-footer__head {
  padding-top: 10.2rem;
  margin-bottom: 3.6rem;
}
@media (max-width: 63.937rem) {
  .l-footer__head {
    padding-top: 7.2rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-footer__head {
    padding-top: 5.6rem;
    margin-bottom: 2rem;
  }
}

.l-footer__logo {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 1.3rem;
  color: #333;
}
@media (max-width: 32.5rem) {
  .l-footer__logo {
    gap: 1rem;
  }
}

.l-footer__logo-mark {
  display: block;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.3rem;
          flex: 0 0 16.3rem;
  width: 16.3rem;
  overflow: hidden;
}
.l-footer__logo-mark img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 32.5rem) {
  .l-footer__logo-mark {
    -ms-flex-preferred-size: 12.8rem;
        flex-basis: 12.8rem;
    width: 12.8rem;
  }
}

.l-footer__logo-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  font-family: "Noto Sans JP", sans-serif;
  white-space: nowrap;
}
@media (max-width: 47.9375rem) {
  .l-footer__logo-text {
    margin-bottom: 0.6rem;
  }
}

.l-footer__logo-company {
  font-size: 1.6rem;
}

.l-footer__logo-name {
  font-size: 2.6rem;
  line-height: 0.9;
}
@media (max-width: 32.5rem) {
  .l-footer__logo-name {
    font-size: 2.2rem;
  }
}

.l-footer__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.4rem;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-bottom: 9.6rem;
}
@media (max-width: 47.9375rem) {
  .l-footer__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 4.8rem;
    padding-bottom: 5.6rem;
  }
}

/* info（拠点情報）
--------------------------------------------- */
.l-footer__info {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33rem;
          flex: 0 0 33rem;
  width: 33rem;
}
@media (max-width: 47.9375rem) {
  .l-footer__info {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 2rem 3.2rem;
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
    width: 100%;
  }
}

.l-footer__office + .l-footer__office {
  margin-top: 3.2rem;
}
@media (max-width: 47.9375rem) {
  .l-footer__office + .l-footer__office {
    margin-top: 0;
  }
}

.l-footer__office-title {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
@media (max-width: 71.25rem) {
  .l-footer__office-title {
    font-size: 1.5rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-footer__office-title {
    font-size: 1.4rem;
  }
}

.l-footer__office-text {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
@media (max-width: 71.25rem) {
  .l-footer__office-text {
    font-size: 1.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-footer__office-text {
    font-size: 1.3rem;
  }
}

/* nav（フッターナビ）
--------------------------------------------- */
.l-footer__nav-area {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.l-footer__nav {
  display: -ms-grid;
  display: grid;
  grid-auto-flow: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
  gap: 5.6rem;
}
@media (max-width: 75rem) {
  .l-footer__nav {
    gap: 3.2rem;
  }
}
@media (max-width: 63.937rem) {
  .l-footer__nav {
    grid-auto-flow: row;
    -ms-grid-columns: 1fr 4rem 1fr 4rem 1fr;
    grid-template-columns: repeat(3, 1fr);
    -webkit-box-pack: stretch;
        -ms-flex-pack: stretch;
            justify-content: stretch;
    gap: 4rem;
  }
}
@media (max-width: 56.25rem) {
  .l-footer__nav {
    gap: 3.2rem 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-footer__nav {
    gap: 2.4rem 1.6rem;
  }
  .l-footer__nav > *:nth-child(1) {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .l-footer__nav > *:nth-child(2) {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .l-footer__nav > *:nth-child(3) {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .l-footer__nav > *:nth-child(4) {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .l-footer__nav > *:nth-child(5) {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
}

.l-footer__nav-primary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4rem;
}
@media (max-width: 47.9375rem) {
  .l-footer__nav-primary {
    gap: 2rem;
  }
}

.l-footer__nav-link {
  display: inline-block;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
@media (max-width: 71.25rem) {
  .l-footer__nav-link {
    font-size: 1.4rem;
  }
}
@media (hover: hover) {
  .l-footer__nav-link {
    -webkit-transition: color 0.3s ease;
    transition: color 0.3s ease;
  }
  .l-footer__nav-link:hover {
    color: #4fb5e5;
  }
}

.l-footer__nav-child {
  margin-top: 0.6rem;
  padding-left: 0.4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.6rem;
}

.l-footer__nav-child-link {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 1.8rem;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
@media (max-width: 71.25rem) {
  .l-footer__nav-child-link {
    font-size: 1.3rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-footer__nav-child-link {
    font-size: 1.15rem;
    letter-spacing: 0;
    padding-left: 1.2rem;
  }
}
.l-footer__nav-child-link::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 1.2rem;
  height: 1px;
  background-color: #4fb5e5;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  content: "";
}
@media (max-width: 47.9375rem) {
  .l-footer__nav-child-link::before {
    width: 0.8rem;
  }
}
@media (hover: hover) {
  .l-footer__nav-child-link {
    -webkit-transition: color 0.3s ease;
    transition: color 0.3s ease;
  }
  .l-footer__nav-child-link:hover {
    color: #4fb5e5;
  }
}

/* sns
--------------------------------------------- */
.l-footer__sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 2.4rem;
  margin-top: 4.8rem;
}
@media (max-width: 47.9375rem) {
  .l-footer__sns {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    margin-top: 2.4rem;
  }
}

.l-footer__sns-link {
  display: block;
}
@media (hover: hover) {
  .l-footer__sns-link {
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
  .l-footer__sns-link:hover {
    opacity: 0.7;
  }
}
.l-footer__sns-link img {
  display: block;
}

/* bottom（コピーライト）
--------------------------------------------- */
.l-footer__bottom {
  background-color: #202e54;
}

.l-footer__bottom .c-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 5.5rem;
}
@media (max-width: 47.9375rem) {
  .l-footer__bottom .c-inner {
    min-height: 4.6rem;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

.l-footer__copyright {
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.22em;
  text-align: center;
}
@media (max-width: 47.9375rem) {
  .l-footer__copyright {
    font-size: 1.3rem;
    letter-spacing: 0.15em;
    text-align: left;
  }
}

/*------------------------------------------------------------------------------
  l-common-contact
------------------------------------------------------------------------------*/
.l-common-contact {
  position: relative;
  overflow: hidden;
  background-image: url("../img/bg_common_contact.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

/* 背景の上に重ねる斜めの装飾（白45%の二重斜め）。
   画像は使わず擬似要素＋clip-path で再現。元SVG（viewBox 1653×1353）の座標を％へ変換し、
   aspect-ratio で元の比率を保持。上下の余白は overflow:hidden（親）で切り詰める */
.l-common-contact::before,
.l-common-contact::after {
  content: "";
  position: absolute;
  top: 50%;
  z-index: 0;
  height: 51vw;
  aspect-ratio: 1/1;
  background-color: #fff;
  opacity: 0.45;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}
@media (max-width: 63.937rem) {
  .l-common-contact::before,
  .l-common-contact::after {
    height: 60rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-common-contact::before,
  .l-common-contact::after {
    height: 160vw;
  }
}

/* 1枚目の斜め（元 Rectangle 1790） */
.l-common-contact::before {
  right: -2rem;
  clip-path: polygon(0% 99.19%, 97.94% 99.19%, 97.94% 0%, 34.15% 0%);
}
@media (max-width: 47.9375rem) {
  .l-common-contact::before {
    right: -70vw;
  }
}

/* 2枚目の斜め（元 Rectangle 1815／少しずらして二重に見せる） */
.l-common-contact::after {
  right: -3rem;
  clip-path: polygon(2.06% 100%, 100% 100%, 100% 0.81%, 36.21% 0.81%);
}
@media (max-width: 47.9375rem) {
  .l-common-contact::after {
    right: -72vw;
  }
}

.l-common-contact .c-inner {
  position: relative;
  z-index: 1;
}

.l-common-contact__inner {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 5.6rem;
  min-height: 48rem;
  padding: 4.8rem 0;
}
@media (max-width: 71.25rem) {
  .l-common-contact__inner {
    gap: 4rem;
  }
}
@media (max-width: 63.937rem) {
  .l-common-contact__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 0;
    padding: 6.4rem 0;
  }
}
@media (max-width: 47.9375rem) {
  .l-common-contact__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 2rem;
  }
}

/* ---- 左：見出し ---- */
.l-common-contact__head {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media (max-width: 63.937rem) {
  .l-common-contact__head {
    text-align: center;
  }
}

.l-common-contact__lead {
  color: #202e54;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.15em;
  margin-top: 2.9rem;
}
@media (max-width: 68.75rem) {
  .l-common-contact__lead {
    font-size: 1.5rem;
    letter-spacing: 0.1em;
  }
}
@media (max-width: 47.9375rem) {
  .l-common-contact__lead {
    font-size: 1.5rem;
    letter-spacing: 0.05em;
    margin-top: 2.4rem;
  }
}

/* ---- 右：連絡手段 ---- */
.l-common-contact__action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

@media (max-width: 63.937rem) {
  .l-common-contact__tel-wrap {
    margin-inline: auto;
  }
}

.l-common-contact__tel {
  color: #202e54;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.4rem;
}
@media (max-width: 47.9375rem) {
  .l-common-contact__tel {
    gap: 1.2rem;
  }
}

.l-common-contact__tel-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 4.6rem;
  height: 4.6rem;
}
.l-common-contact__tel-icon img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 47.9375rem) {
  .l-common-contact__tel-icon {
    width: 3.6rem;
    height: 3.6rem;
  }
}

.l-common-contact__tel-num {
  font-family: "Roboto", sans-serif;
  font-size: clamp(3.6rem, 5vw, 6rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.03em;
}

.l-common-contact__tel-time {
  color: #202e54;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
  padding-left: 6.2rem;
  margin-top: 0.6rem;
}
@media (max-width: 63.937rem) {
  .l-common-contact__tel-time {
    font-size: 1.3rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-common-contact__tel-time {
    padding-left: 5.1rem;
    margin-top: 0.2rem;
  }
}

/* ボタン本体は c-btn-pill コンポーネント（component/_btn.scss）に切り出し。
   ここは並びのレイアウト（折り返し・間隔）だけを持つ */
.l-common-contact__btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.4rem;
  margin-top: 3.8rem;
}
@media (max-width: 47.9375rem) {
  .l-common-contact__btns {
    margin-top: 2.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .l-common-contact__btns {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 1.2rem;
    margin-top: 2rem;
  }
}

/*------------------------------------------------------------------------------
  sidebar
------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
  c-inner
------------------------------------------------------------------------------*/
.c-inner {
  max-width: 114rem;
  margin: 0 auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 2rem;
}

.c-inner--md {
  max-width: 104rem;
}

.c-inner--lg {
  max-width: 124rem;
}

.c-inner--xlg {
  max-width: 136.8rem;
}

/*------------------------------------------------------------------------------
  c-accordion
  ・参考: トクヨビ c-course-card（js-accordion）を fuso のトークンへ翻訳
  ・見出し＝primary 塗り＋白文字、右端に白丸の ＋（開くと −）。本文はクリックで開閉
------------------------------------------------------------------------------*/
.c-accordion__head {
  color: #fff;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: left;
  font-family: "Noto Sans JP", sans-serif;
  background-color: #202e54;
  border-radius: 0.2rem 0.2rem 0 0;
  display: block;
  position: relative;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1.9rem 6.4rem 1.9rem 3.2rem;
  cursor: pointer;
}
@media (max-width: 47.9375rem) {
  .c-accordion__head {
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    padding: 1.4rem 5.2rem 1.4rem 1.8rem;
  }
}
.c-accordion__head:focus-visible {
  outline: 2px solid #4fb5e5;
  outline-offset: -2px;
}

/* ＋／− の白丸トグル（装飾。開閉状態は aria-expanded がJSで持つ） */
.c-accordion__icon {
  background-color: #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 2.4rem;
  width: 3.2rem;
  height: 3.2rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}
@media (max-width: 47.9375rem) {
  .c-accordion__icon {
    right: 1.6rem;
    width: 2.4rem;
    height: 2.4rem;
  }
}
.c-accordion__icon::before, .c-accordion__icon::after {
  content: "";
  background-color: #202e54;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}
.c-accordion__icon::before {
  width: 1.4rem;
  height: 2px;
}
@media (max-width: 47.9375rem) {
  .c-accordion__icon::before {
    width: 1rem;
  }
}
.c-accordion__icon::after {
  width: 2px;
  height: 1.4rem;
}
@media (max-width: 47.9375rem) {
  .c-accordion__icon::after {
    height: 1rem;
  }
}

/* 開いている状態：縦棒を寝かせて ＋ → − */
.c-accordion__head.is-open .c-accordion__icon::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}

.c-accordion__body {
  border: 1px solid #e0e0e0;
  border-top: none;
  border-radius: 0 0 0.2rem 0.2rem;
  display: none;
  overflow: hidden;
}

/*------------------------------------------------------------------------------
  c-btn
------------------------------------------------------------------------------*/
.c-btn {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  text-align: center;
}

.c-btn-square {
  color: #202e54;
  font-size: 2rem;
  font-weight: 700;
  border: 1px solid #F8DF00;
  min-width: 32rem;
  min-height: 6.6rem;
  padding: 1.8rem 2rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  border-radius: 0.2rem;
  background-image: linear-gradient(95.85deg, #FFFA29 3.32%, #FFE400 54.27%, #FFDD3F 97.66%);
  -webkit-box-shadow: 0 -1.6rem 3rem rgba(248, 223, 0, 0.13), 0 1.6rem 3rem rgba(248, 223, 0, 0.17);
          box-shadow: 0 -1.6rem 3rem rgba(248, 223, 0, 0.13), 0 1.6rem 3rem rgba(248, 223, 0, 0.17);
  -webkit-transition: all 0.35s ease;
  transition: all 0.35s ease;
}
@media (max-width: 56.25rem) {
  .c-btn-square {
    min-width: 28rem;
    min-height: 5.6rem;
    padding: 1.4rem 1.6rem;
    font-size: 1.6rem;
  }
}
@media (hover: hover) {
  .c-btn-square:hover {
    opacity: 0.8;
    -webkit-box-shadow: 0 -1.2rem 2rem rgba(248, 223, 0, 0.4), 0 1.2rem 2rem rgba(248, 223, 0, 0.4);
            box-shadow: 0 -1.2rem 2rem rgba(248, 223, 0, 0.4), 0 1.2rem 2rem rgba(248, 223, 0, 0.4);
  }
  .c-btn-square:hover .c-btn__arrow {
    -webkit-transform: translate(0.5rem, -50%);
            transform: translate(0.5rem, -50%);
  }
}
.c-btn-square:focus-visible {
  opacity: 0.8;
  -webkit-box-shadow: 0 -1.2rem 2rem rgba(248, 223, 0, 0.4), 0 1.2rem 2rem rgba(248, 223, 0, 0.4);
          box-shadow: 0 -1.2rem 2rem rgba(248, 223, 0, 0.4), 0 1.2rem 2rem rgba(248, 223, 0, 0.4);
  outline: none;
}
.c-btn-square:focus-visible .c-btn__arrow {
  -webkit-transform: translate(0.5rem, -50%);
          transform: translate(0.5rem, -50%);
}

.c-btn__arrow {
  position: absolute;
  top: 50%;
  right: 1.8rem;
  width: 1.8rem;
  height: 1.2rem;
  background: url("../img/icon_arrowR_primary.svg") center/contain no-repeat;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transition: -webkit-transform 0.35s ease;
  transition: -webkit-transform 0.35s ease;
  transition: transform 0.35s ease;
  transition: transform 0.35s ease, -webkit-transform 0.35s ease;
}

/*------------------------------------------------------------------------------
  c-btn--lg : c-btn-square の大型版（MV・中間/最終CTA で共通）
  ・c-btn c-btn-square と併用し、文字とサイズだけ大きくする
    （色・枠・影・hover・矢印は c-btn-square のまま＝標準の画像矢印）
  ・サイズは Figma 準拠（PC: 420×74px）。余白は配置側で付与する
  例）<a class="c-btn c-btn-square c-btn--lg"><span class="c-btn__label">…</span><span class="c-btn__arrow"></span></a>
------------------------------------------------------------------------------*/
.c-btn--lg {
  width: min(42rem, 100%);
  min-width: 0;
  height: 7.4rem;
  font-size: 2.2rem;
}
@media (max-width: 56.25rem) {
  .c-btn--lg {
    height: 6.8rem;
    font-size: 2rem;
  }
}
@media (max-width: 40rem) {
  .c-btn--lg {
    height: 6.4rem;
    font-size: 1.8rem;
  }
}

/*------------------------------------------------------------------------------
  c-btn-pill : アイコン＋テキストのピル型ボタン（ベタ塗り・丸端）
  .c-btn と併用：<a class="c-btn c-btn-pill c-btn-pill--mail"> … </a>
  色は modifier（--mail / --line）。問い合わせ・採用ページ等で流用する。
  例）
    <a href="" class="c-btn c-btn-pill c-btn-pill--mail">
      <span class="c-btn-pill__icon" aria-hidden="true"><img src="…" alt="" width="22" height="17"></span>
      <span class="c-btn-pill__label">メールでお問い合わせ</span>
    </a>
------------------------------------------------------------------------------*/
.c-btn-pill {
  gap: 1rem;
  width: 29rem;
  max-width: 100%;
  height: 6rem;
  border-radius: 5.6rem;
}
@media (max-width: 22.4375rem) {
  .c-btn-pill {
    width: 100%;
  }
}

.c-btn-pill__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.2rem;
  height: 1.7rem;
}
.c-btn-pill__icon img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  vertical-align: 1px;
}
.c-btn-pill__icon {
  /* 受話器アイコン */
}
.c-btn-pill__icon.c-btn-pill__icon--tel img {
  width: 2.4rem;
  height: 2.4rem;
}
@media (max-width: 71.25rem) {
  .c-btn-pill__icon.c-btn-pill__icon--tel img {
    width: 2rem;
    height: 2rem;
    padding-top: 0.1rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-btn-pill__icon.c-btn-pill__icon--tel img {
    padding-top: 0;
  }
}

/* LINEアイコンは正方形で少し大きい */
.c-btn-pill__icon--line {
  width: 3.4rem;
  height: 3.4rem;
}
.c-btn-pill__icon--line img {
  padding-top: 0.1rem;
}

.c-btn-pill__label {
  color: #fff;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  display: inline-block;
}

/* ---- 色バリエーション ---- */
.c-btn-pill--mail {
  background-color: #202e54;
}

.c-btn-pill--line {
  background-color: #06c755;
}

/* 電話（accent-dark） */
.c-btn-pill--tel {
  background-color: #47ABDA;
}

/* ---- 大型版（採用ページ 応募CTA 等。Figma: 348×72px・ラベル20px） ---- */
.c-btn-pill--lg {
  width: 34.8rem;
  max-width: 100%;
  height: 7.2rem;
  gap: 1.2rem;
}
@media (max-width: 71.25rem) {
  .c-btn-pill--lg {
    width: 30rem;
    height: 6.4rem;
  }
}
.c-btn-pill--lg .c-btn-pill__label {
  font-size: 2rem;
}
@media (max-width: 71.25rem) {
  .c-btn-pill--lg .c-btn-pill__label {
    font-size: 1.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-btn-pill--lg .c-btn-pill__label {
    font-size: 1.7rem;
  }
}
.c-btn-pill--lg .c-btn-pill__icon {
  width: 2.5rem;
  height: 1.9rem;
}
@media (max-width: 71.25rem) {
  .c-btn-pill--lg .c-btn-pill__icon {
    width: 2.2rem;
    height: 1.6rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-btn-pill--lg .c-btn-pill__icon {
    width: 2rem;
    height: 1.4rem;
  }
}
.c-btn-pill--lg .c-btn-pill__icon--mail img {
  vertical-align: -1px;
}
@media (max-width: 71.25rem) {
  .c-btn-pill--lg .c-btn-pill__icon--mail {
    vertical-align: 0px;
    padding-bottom: 0.3rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-btn-pill--lg .c-btn-pill__icon--mail {
    padding-bottom: 0.1rem;
  }
}
.c-btn-pill--lg .c-btn-pill__icon--line {
  width: 3.7rem;
  height: 3.7rem;
}
@media (max-width: 71.25rem) {
  .c-btn-pill--lg .c-btn-pill__icon--line {
    width: 3.2rem;
    height: 3.2rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-btn-pill--lg .c-btn-pill__icon--line {
    padding-top: 0.2rem;
  }
}

/*------------------------------------------------------------------------------
  c-breadcrumb（パンくず）
------------------------------------------------------------------------------*/
.c-breadcrumb {
  padding-top: 1.6rem;
}

.c-breadcrumb__list {
  color: #333;
  opacity: 0.9;
  font-size: 1.3rem;
  line-height: 1.3;
  letter-spacing: 0.02em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 47.9375rem) {
  .c-breadcrumb__list {
    font-size: 1.2rem;
  }
}

.c-breadcrumb__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 区切り（2つ目以降の前）：Figma は 12px×1px の細い横線（ダッシュ） */
}
.c-breadcrumb__item:not(:first-child)::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.2rem;
  height: 1px;
  background-color: #333;
  margin: 0 1.2rem;
}

.c-breadcrumb__item a {
  color: #333;
}
@media (hover: hover) {
  .c-breadcrumb__item a:hover {
    text-decoration: underline;
  }
}

/* 現在ページ（最後の項目） */
.c-breadcrumb__item[aria-current=page] {
  color: #333;
}

/*------------------------------------------------------------------------------
  c-burger-btn
------------------------------------------------------------------------------*/
.c-burger-btn {
  display: none;
}
@media (max-width: 63.937rem) {
  .c-burger-btn {
    display: block;
    border: none;
    cursor: pointer;
    position: relative;
    top: 0;
    z-index: 999;
    padding: 1.4rem;
    background-color: #4fb5e5;
    min-height: 8.8rem;
    min-width: 8.8rem;
    /* ハンバーガーメニューが開いたとき */
  }
  .c-burger-btn.cross .c-burger-btn__bar--top {
    -webkit-transition-delay: 40ms;
            transition-delay: 40ms;
    -webkit-transform: translateY(1.1rem) rotate(135deg);
            transform: translateY(1.1rem) rotate(135deg);
  }
}
@media (max-width: 63.937rem) and (max-width: 47.9375rem) {
  .c-burger-btn.cross .c-burger-btn__bar--top {
    -webkit-transform: translateY(0.9rem) rotate(135deg);
            transform: translateY(0.9rem) rotate(135deg);
  }
}
@media (max-width: 63.937rem) {
  .c-burger-btn.cross .c-burger-btn__bar--mid {
    -webkit-transition-delay: 120ms;
            transition-delay: 120ms;
    -webkit-transform: translateX(-1.5rem) scaleX(0);
            transform: translateX(-1.5rem) scaleX(0);
  }
  .c-burger-btn.cross .c-burger-btn__bar--bottom {
    -webkit-transition-delay: 20ms;
            transition-delay: 20ms;
    -webkit-transform: translateY(-1.1rem) rotate(-135deg);
            transform: translateY(-1.1rem) rotate(-135deg);
  }
}
@media (max-width: 63.937rem) and (max-width: 47.9375rem) {
  .c-burger-btn.cross .c-burger-btn__bar--bottom {
    -webkit-transform: translateY(-0.9rem) rotate(-135deg);
            transform: translateY(-0.9rem) rotate(-135deg);
  }
}
@media (max-width: 47.9375rem) {
  .c-burger-btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-item-align: stretch;
        -ms-grid-row-align: stretch;
        align-self: stretch;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 6.4rem;
    min-width: 0;
    min-height: 0;
    padding: 0;
  }
}

.c-burger-btn__bar {
  margin: 0 auto;
  display: block;
  height: 1px;
  width: 4rem;
  border-radius: 0;
  background-color: #fff;
  -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: -webkit-transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}
@media (max-width: 47.9375rem) {
  .c-burger-btn__bar {
    height: 1px;
    width: 3rem;
  }
}

.c-burger-btn__bar--top,
.c-burger-btn__bar--mid {
  margin-bottom: 1rem;
}
@media (max-width: 47.9375rem) {
  .c-burger-btn__bar--top,
  .c-burger-btn__bar--mid {
    margin-bottom: 0.8rem;
  }
}

/*------------------------------------------------------------------------------
  c-cta-band（CTA用の全幅バンド＋斜め装飾。中間CTA/最終CTAで共通）
  ・背景写真は各セクションで差し替え（__bg）。高さは各セクションが min-height で指定
  ・斜め装飾：左上＝淡青＋濃青／右下＝淡青＋濃青／中央＝白スイープ（Figma の回転矩形を再現）
  ・各バーは中心アンカー（translate(-50%,-50%)）＋rotate。左は左上・右は右下・白は中央に固定
  ・親 overflow:hidden でクリップ。横幅が変わっても各隅の見え方は一定（中央だけ伸縮）
  構造例）
    <div class="c-cta-band [section]__band">
      <figure class="c-cta-band__bg"><img …></figure>
      <span class="c-cta-band__tint"></span>
      <span class="c-cta-band__bar c-cta-band__bar--l-pale"></span> …（全5本）
      <div class="c-inner"> …中身… </div>
    </div>
------------------------------------------------------------------------------*/
.c-cta-band {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  overflow: hidden;
  background-color: #F1F8FE;
}
.c-cta-band .c-inner {
  position: relative;
  z-index: 2;
}

/* 背景写真 */
.c-cta-band__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.c-cta-band__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* 全体の薄青トーン */
.c-cta-band__tint {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: rgba(161, 212, 255, 0.05);
}

/* 斜め装飾バー（寸法/角度は 1440 幅の Figma 値） */
.c-cta-band__bar {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}

/* 左上：淡青（大）→濃青（小・角） */
.c-cta-band__bar--l-pale {
  top: 6.2rem;
  left: 14.6rem;
  width: 38.7rem;
  height: 73.3rem;
  background: rgba(79, 181, 229, 0.15);
  -webkit-transform: translate(-50%, -50%) rotate(51.14deg);
          transform: translate(-50%, -50%) rotate(51.14deg);
}
@media (max-width: 63.937rem) {
  .c-cta-band__bar--l-pale {
    top: 0;
    left: 0rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-cta-band__bar--l-pale {
    display: none;
  }
}

.c-cta-band__bar--l-solid {
  top: 1.7rem;
  left: 0.5rem;
  width: 16.1rem;
  height: 48.1rem;
  background: #47abda;
  -webkit-transform: translate(-50%, -50%) rotate(51.14deg);
          transform: translate(-50%, -50%) rotate(51.14deg);
}
@media (max-width: 47.9375rem) {
  .c-cta-band__bar--l-solid {
    top: 0.4rem;
    left: -2rem;
  }
}

/* 右下：左上を 180° 回転したミラー（同サイズ・同オフセット） */
.c-cta-band__bar--r-pale {
  top: calc(100% - 6.2rem);
  left: calc(100% - 14.6rem);
  width: 38.7rem;
  height: 73.3rem;
  background: rgba(79, 181, 229, 0.15);
  -webkit-transform: translate(-50%, -50%) rotate(-128.86deg);
          transform: translate(-50%, -50%) rotate(-128.86deg);
}
@media (max-width: 63.937rem) {
  .c-cta-band__bar--r-pale {
    top: 100%;
    left: 100%;
  }
}
@media (max-width: 47.9375rem) {
  .c-cta-band__bar--r-pale {
    display: none;
  }
}

.c-cta-band__bar--r-solid {
  top: calc(100% - 1.7rem);
  left: calc(100% - 0.5rem);
  width: 16.1rem;
  height: 48.1rem;
  background: #47abda;
  -webkit-transform: translate(-50%, -50%) rotate(-128.86deg);
          transform: translate(-50%, -50%) rotate(-128.86deg);
}
@media (max-width: 47.9375rem) {
  .c-cta-band__bar--r-solid {
    top: calc(100% - 0.4rem);
    left: calc(100% + 2rem);
  }
}

/* 中央：白の斜めスイープ（最前面＝DOM順で最後） */
.c-cta-band__bar--white {
  top: 50%;
  left: 50%;
  width: 171.2rem;
  height: 65.8rem;
  background: rgba(255, 255, 255, 0.55);
  -webkit-transform: translate(-50%, -50%) rotate(-38.67deg);
          transform: translate(-50%, -50%) rotate(-38.67deg);
}
@media (max-width: 63.937rem) {
  .c-cta-band__bar--white {
    width: 142.6rem;
    height: 60rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-cta-band__bar--white {
    width: 100rem;
    height: 46rem;
  }
}

/*------------------------------------------------------------------------------
  c-card
------------------------------------------------------------------------------*/
.c-card__link {
  position: relative;
  display: block;
  color: #333;
  opacity: 1;
  background-color: #fff;
  border-radius: 0.2rem;
  -webkit-box-shadow: 0 0 3rem rgba(17, 132, 109, 0.14);
          box-shadow: 0 0 3rem rgba(17, 132, 109, 0.14);
  overflow: hidden;
  -webkit-transition: -webkit-transform 0.35s ease, -webkit-box-shadow 0.35s ease;
  transition: -webkit-transform 0.35s ease, -webkit-box-shadow 0.35s ease;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  transition: transform 0.35s ease, box-shadow 0.35s ease, -webkit-transform 0.35s ease, -webkit-box-shadow 0.35s ease;
}
@media (hover: hover) {
  .c-card__link:hover {
    opacity: 1;
    -webkit-box-shadow: 0 1.4rem 3.4rem rgba(17, 132, 109, 0.2);
            box-shadow: 0 1.4rem 3.4rem rgba(17, 132, 109, 0.2);
    -webkit-transform: translateY(-0.6rem);
            transform: translateY(-0.6rem);
  }
}
.c-card__link:focus-visible {
  opacity: 1;
  -webkit-box-shadow: 0 1.4rem 3.4rem rgba(17, 132, 109, 0.2);
          box-shadow: 0 1.4rem 3.4rem rgba(17, 132, 109, 0.2);
  -webkit-transform: translateY(-0.6rem);
          transform: translateY(-0.6rem);
}

/* サムネイルは後から挿入するため、画像未挿入でも高さが崩れないよう下地色を敷く */
.c-card__img {
  position: relative;
  height: 100%;
  overflow: hidden;
  background-color: #F4F4F4;
}

.c-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  aspect-ratio: 3/2;
}

.c-card__body {
  padding: 2rem 2.2rem 2.6rem;
}
@media (max-width: 56.25rem) {
  .c-card__body {
    padding: 1.6rem 1.6rem 2rem;
  }
}

.c-card__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.3rem;
}
@media (max-width: 32.5rem) {
  .c-card__meta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0.8rem;
  }
}

/* カテゴリーバッジは c-label に一本化（component/_label.scss）。c-card__meta の余白のみここで管理 */
.c-card__date {
  color: #4f4f4f;
  font-family: "Roboto", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
@media (max-width: 56.25rem) {
  .c-card__date {
    font-size: 1.4rem;
  }
}
@media (max-width: 32.5rem) {
  .c-card__date {
    font-size: 1.2rem;
    letter-spacing: 0.02em;
  }
}

.c-card__title {
  color: #202e54;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-top: 0.8rem;
  padding-right: 4.4rem;
}
@media (max-width: 56.25rem) {
  .c-card__title {
    font-size: 1.4rem;
  }
}
@media (max-width: 32.5rem) {
  .c-card__title {
    font-size: 1.3rem;
    line-height: 1.6;
    padding-right: 2.8rem;
  }
}

.c-card__arrow {
  position: absolute;
  right: 2rem;
  bottom: 2.5rem;
  width: 2.6rem;
  height: 2.6rem;
}
@media (max-width: 56.25rem) {
  .c-card__arrow {
    width: 2.4rem;
    height: 2.4rem;
    right: 1.6rem;
    bottom: 1.8rem;
  }
}
.c-card__arrow {
  /* 円＋白矢印が一体になった SVG を擬似要素で表示（旧 ::before 線／::after く字の手描きを置き換え） */
}
.c-card__arrow::before {
  background-image: url("../img/icon_arrowR_white.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: absolute;
  inset: 0;
  content: "";
}

/*------------------------------------------------------------------------------
  c-card-list（c-card を並べるグリッド。ブログ／お知らせ等の一覧ページで再利用）
------------------------------------------------------------------------------*/
.c-card-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: minmax(0, 1fr) 3.2rem minmax(0, 1fr) 3.2rem minmax(0, 1fr);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3.2rem;
}
@media (max-width: 63.937rem) {
  .c-card-list {
    gap: 2.4rem;
  }
}
@media (max-width: 63.937rem) {
  .c-card-list {
    -ms-grid-columns: (minmax(0, 1fr))[2];
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 32.5rem) {
  .c-card-list {
    gap: 1.6rem;
    max-width: 48rem;
    margin-right: auto;
    margin-left: auto;
  }
}
.c-card-list {
  /* 下余白：PC は HTML側の u-mb-9(72px)。SP(767px以下)はこの一覧×u-mb-9 のときだけ詰める（ユーティリティ本体は固定のまま。CAC+G と同じ作法） */
}
@media (max-width: 47.9375rem) {
  .c-card-list.u-mb-9 {
    margin-bottom: 4rem !important;
  }
}

/*------------------------------------------------------------------------------
  c-label（カテゴリーバッジ。一覧カードと記事ページで共通のアクセントのピル。サイズは一覧カード基準）
  ※白文字×アクセント色は Figma 承認色（コントラストは要確認の AA borderline）
------------------------------------------------------------------------------*/
.c-label {
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  background-color: #4fb5e5;
  border-radius: 2.4rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0.4rem 1.4rem;
}
@media (max-width: 56.25rem) {
  .c-label {
    font-size: 1.15rem;
    padding: 0.3rem 0.8rem;
  }
}

/*------------------------------------------------------------------------------
  c-modal（汎用モーダル外殻）
  ・JS（common.js）が .js-modal-open の href(#id) で対象に .is-active を付与
  ・閉じる：.js-modal-close（オーバーレイ／×ボタン）／ESC。背景固定は body.noscroll
  ・中身はページ側（例：p-recruit-people-modal）が担当
------------------------------------------------------------------------------*/
.c-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.c-modal.is-active {
  opacity: 1;
  visibility: visible;
}

/* 背景の暗幕（クリックで閉じる） */
.c-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(32, 46, 84, 0.6);
  cursor: pointer;
}

/* 白い箱。中身が長いときは __inner 側がスクロールする */
.c-modal__content {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: absolute;
  top: 50%;
  left: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 90%;
  max-width: 75rem;
  max-height: 86vh;
  overflow: hidden;
  background-color: #fff;
  border-radius: 0.6rem;
  -webkit-transform: translate(-50%, -46%);
          transform: translate(-50%, -46%);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.c-modal.is-active .c-modal__content {
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
@media (max-width: 47.9375rem) {
  .c-modal__content {
    width: 92%;
    max-height: 88vh;
    border-radius: 0.4rem;
  }
}

/* 閉じる（×）。画像に重なるため円形で視認性を確保 */
.c-modal__close {
  position: absolute;
  top: 1.2rem;
  right: 2.4rem;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4.4rem;
  height: 4.4rem;
  color: #fff;
  font-size: 2.8rem;
  line-height: 1;
  background-color: rgba(32, 46, 84, 0.55);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  -webkit-transition: background-color 0.25s ease;
  transition: background-color 0.25s ease;
}
@media (hover: hover) {
  .c-modal__close:hover {
    background-color: #202e54;
  }
}
.c-modal__close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
@media (max-width: 47.9375rem) {
  .c-modal__close {
    top: 0.8rem;
    right: 0.8rem;
    width: 3.8rem;
    height: 3.8rem;
    font-size: 2.4rem;
  }
}

/*------------------------------------------------------------------------------
  c-prose（記事本文の WYSIWYG。WordPress エディタ出力をまとめてスタイリング）
------------------------------------------------------------------------------*/
.c-prose {
  color: #333;
  /* 見出し */
}
.c-prose h2 {
  color: #202e54;
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 1.6;
  border-left: 4px solid #4fb5e5;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-left: 2rem;
}
@media (max-width: 63.937rem) {
  .c-prose h2 {
    font-size: 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-prose h2 {
    font-size: 1.8rem;
    line-height: 1.5;
    border-width: 3px;
    padding-left: 1.2rem;
  }
}
.c-prose h3 {
  color: #202e54;
  font-size: 2.4rem;
  font-weight: bold;
  border-bottom: 1px solid #EBEBEB;
  padding-bottom: 0.6rem;
}
@media (max-width: 47.9375rem) {
  .c-prose h3 {
    font-size: 1.7rem;
  }
}
.c-prose h4 {
  color: #202e54;
  font-size: 2.2rem;
  font-weight: 600;
}
@media (max-width: 47.9375rem) {
  .c-prose h4 {
    font-size: 1.6rem;
  }
}
.c-prose h5 {
  color: #202e54;
  font-size: 1.8rem;
  font-weight: 600;
}
@media (max-width: 47.9375rem) {
  .c-prose h5 {
    font-size: 1.5rem;
  }
}
.c-prose {
  /* ブロック間の共通余白（先頭・末尾は詰める） */
}
.c-prose h2,
.c-prose h3,
.c-prose h4,
.c-prose h5,
.c-prose p,
.c-prose ul,
.c-prose ol,
.c-prose dl,
.c-prose figure,
.c-prose blockquote,
.c-prose details,
.c-prose .wp-block-quote,
.c-prose .wp-block-details,
.c-prose .wp-block-table,
.c-prose .wp-block-image {
  margin: 1.5em 0;
}
.c-prose > :first-child {
  margin-top: 0;
}
.c-prose > :last-child {
  margin-bottom: 0;
}
.c-prose {
  /* リスト */
}
.c-prose ul {
  list-style-type: disc;
  list-style-position: inside;
}
.c-prose ul li {
  padding-left: 1em;
  text-indent: -1em;
}
.c-prose ol {
  list-style-type: decimal;
  list-style-position: outside;
  padding-left: 1.2em;
}
.c-prose ol li {
  padding-left: 0.3em;
  text-indent: 0;
}
.c-prose {
  /* 定義リスト */
}
.c-prose dl dt {
  font-weight: bold;
}
.c-prose dl dd {
  margin-left: 0;
}
.c-prose dl dd:not(:last-child) {
  margin-bottom: 0.8em;
}
.c-prose {
  /* 画像・figure */
}
.c-prose figure img,
.c-prose img {
  max-width: 100%;
  height: auto;
}
.c-prose {
  /* 本文中リンク（クラス無しのインラインリンクのみ） */
}
.c-prose a:not([class]) {
  color: #47ABDA;
  text-decoration: underline;
}
@media (hover: hover) {
  .c-prose a:not([class]):hover {
    opacity: 0.8;
  }
}
.c-prose {
  /* テーブル */
}
.c-prose table {
  width: 100%;
  table-layout: auto;
}
.c-prose table th,
.c-prose table td {
  border: 1px solid #EBEBEB;
  padding: 1rem 1.4rem;
}
.c-prose table th {
  background-color: #F1F8FE;
  font-weight: bold;
  white-space: nowrap;
}
.c-prose {
  /* 引用（blockquote / .wp-block-quote。クラシックエディタの素の blockquote にも対応） */
}
.c-prose blockquote,
.c-prose .wp-block-quote {
  color: #333;
  background-color: #F1F8FE;
  border-left: 4px solid #4fb5e5;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2rem 2.4rem;
}
@media (max-width: 40rem) {
  .c-prose blockquote,
  .c-prose .wp-block-quote {
    padding: 1.6rem 1.8rem;
  }
}
.c-prose blockquote,
.c-prose .wp-block-quote {
  /* 引用内の段落は外側の大きな余白を解除（段落間だけ少し空ける） */
}
.c-prose blockquote p,
.c-prose .wp-block-quote p {
  font-style: italic;
  margin: 0;
}
.c-prose blockquote p + p,
.c-prose .wp-block-quote p + p {
  margin-top: 1em;
}
.c-prose blockquote cite,
.c-prose .wp-block-quote cite {
  color: #333;
  font-size: 1.4rem;
  font-style: normal;
  opacity: 0.7;
  display: block;
  margin-top: 0.8rem;
}
.c-prose {
  /* 開閉（details / .wp-block-details）。インジケータはサイドバーの過去記事と同じ「く の字」 */
}
.c-prose details,
.c-prose .wp-block-details {
  background-color: #fff;
  border: 1px solid #EBEBEB;
  border-radius: 0.4rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1.6rem 2rem;
}
@media (max-width: 40rem) {
  .c-prose details,
  .c-prose .wp-block-details {
    padding: 1.2rem 1.6rem;
  }
}
.c-prose details summary,
.c-prose .wp-block-details summary {
  font-weight: bold;
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  cursor: pointer;
}
.c-prose details summary::-webkit-details-marker,
.c-prose .wp-block-details summary::-webkit-details-marker {
  display: none;
}
.c-prose details summary::after,
.c-prose .wp-block-details summary::after {
  content: "";
  border-right: 1.5px solid #202e54;
  border-bottom: 1.5px solid #202e54;
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-bottom: 0.3rem;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.c-prose details[open] summary,
.c-prose .wp-block-details[open] summary {
  border-bottom: 1px solid #EBEBEB;
  padding-bottom: 1.2rem;
  margin-bottom: 1.2rem;
}
.c-prose details[open] summary::after,
.c-prose .wp-block-details[open] summary::after {
  margin-bottom: 0;
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
}
.c-prose {
  /* 文字寄せ（WPエディタの配置クラス／インラインstyle）。枠飾りのある h2・h3 は内容幅で寄せる */
}
.c-prose .has-text-align-center {
  text-align: center;
}
.c-prose .has-text-align-right {
  text-align: right;
}
.c-prose h2.has-text-align-center, .c-prose h2[style*="text-align: center"],
.c-prose h3.has-text-align-center,
.c-prose h3[style*="text-align: center"] {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.c-prose h2.has-text-align-right, .c-prose h2[style*="text-align: right"],
.c-prose h3.has-text-align-right,
.c-prose h3[style*="text-align: right"] {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
}
.c-prose {
  /* 画像の配置。WP標準の画像ブロックCSSは「.wp-block-image の“中”の .alignright」を
     float させる（= 子孫セレクタ .wp-block-image .alignright{float:right}）。
     富綜のインポート記事は figure.wp-block-image の中に figure.alignright が入れ子なので、
     このルールに当たって float→後続のカラムが回り込んで崩れる。本文は回り込みなし方針なので解除する。
     入れ子(.wp-block-image .alignright) / 同一要素(.wp-block-image.alignright) / 素の .alignright
     すべてに、WP標準より高い詳細度で勝てるよう .c-prose を冠して指定する。 */
}
.c-prose .aligncenter,
.c-prose .wp-block-image.aligncenter,
.c-prose .wp-block-image .aligncenter {
  margin-inline: auto;
}
.c-prose .alignright,
.c-prose .wp-block-image.alignright,
.c-prose .wp-block-image .alignright {
  float: none;
  margin-inline: auto 0;
}
.c-prose .alignleft,
.c-prose .wp-block-image.alignleft,
.c-prose .wp-block-image .alignleft {
  float: none;
  margin-inline: 0 auto;
}
.c-prose img.aligncenter,
.c-prose img.alignright,
.c-prose img.alignleft {
  display: block;
}
.c-prose {
  /* コード / 整形済みテキスト（背景グレーで本文と区別。馬場化学工業を参考） */
}
.c-prose .wp-block-code,
.c-prose .wp-block-preformatted,
.c-prose pre {
  font-family: Menlo, Consolas, "Courier New", monospace;
  font-size: 1.4rem;
  line-height: 1.7;
  color: #333;
  background-color: #F4F4F4;
  border: 1px solid #EBEBEB;
  border-radius: 0.4rem;
  padding: 1.6rem 2rem;
  white-space: pre-wrap;
  overflow-x: auto;
}
@media (max-width: 47.9375rem) {
  .c-prose .wp-block-code,
  .c-prose .wp-block-preformatted,
  .c-prose pre {
    font-size: 1.3rem;
    padding: 1.2rem 1.4rem;
  }
}
.c-prose {
  /* コードブロック内の code は二重背景・余白にしない（枠は親 pre 側だけ） */
}
.c-prose .wp-block-code code,
.c-prose pre code {
  font-family: inherit;
  font-size: inherit;
  background: none;
  padding: 0;
}

/*------------------------------------------------------------------------------
  c-fadeInUp — 汎用の出現アニメーション
  使い方：要素に「c-fadeInUp js-scroll-trigger」を付けると、画面内に入った時に
  下からふわっとフェードイン（JS が .is-active を付与）。
------------------------------------------------------------------------------*/
.c-fadeInUp {
  opacity: 0;
  -webkit-transform: translateY(3rem);
          transform: translateY(3rem);
  -webkit-transition: opacity 0.8s ease-out, -webkit-transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, -webkit-transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out, -webkit-transform 0.8s ease-out;
}
.c-fadeInUp.is-active {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .c-fadeInUp {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
    -webkit-transition: none;
    transition: none;
  }
}

/*------------------------------------------------------------------------------
  c-fixed-btn — 画面右下に常時表示する固定バナー（採用誘導）
  ※ SP（767px以下）の見せ方は検討中。一旦小さく表示しておく。
------------------------------------------------------------------------------*/
.c-fixed-btn {
  position: fixed;
  right: 2rem;
  bottom: 2rem;
  z-index: 90;
  width: 28rem;
}
@media (max-width: 47.9375rem) {
  .c-fixed-btn {
    right: 1.2rem;
    bottom: 1.2rem;
    width: 18rem;
  }
}

.c-fixed-btn__link {
  border-radius: 0.6rem;
  -webkit-box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.16);
          box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.16);
  display: block;
  overflow: hidden;
  -webkit-transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease, -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
}
@media (hover: hover) {
  .c-fixed-btn__link:hover {
    -webkit-box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.2);
            box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.2);
    -webkit-transform: translateY(-0.3rem);
            transform: translateY(-0.3rem);
  }
}

.c-fixed-btn__link img {
  display: block;
  width: 100%;
  height: auto;
}

/*------------------------------------------------------------------------------
  c-pagination（一覧ページの番号送り。WordPress paginate_links() の出力に対応）
------------------------------------------------------------------------------*/
/* 上の余白は持たせない。前段の .c-card-list 側 u-mb-* で間隔を取る方針（CAC+G と同じ） */
/* ul.page-numbers＝番号の並び。WP は ul と各番号の両方に .page-numbers が付くため、要素別（ul / a / span）で指定する */
.c-pagination ul.page-numbers {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.8rem;
  padding: 0;
  list-style: none;
}

.c-pagination a.page-numbers,
.c-pagination span.page-numbers {
  color: #202e54;
  font-family: "Roboto", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  background-color: #fff;
  border: 1px solid #EBEBEB;
  border-radius: 0.4rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4.4rem;
  height: 4.4rem;
  -webkit-transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}
@media (max-width: 47.9375rem) {
  .c-pagination a.page-numbers,
  .c-pagination span.page-numbers {
    font-size: 1.4rem;
    width: 4rem;
    height: 4rem;
  }
}

/* 現在ページ */
.c-pagination span.page-numbers.current {
  color: #fff;
  background-color: #4fb5e5;
  border-color: #4fb5e5;
}

/* ホバー（リンクのみ。前後の < > も同じ挙動） */
@media (hover: hover) {
  .c-pagination a.page-numbers:hover {
    color: #fff;
    background-color: #4fb5e5;
    border-color: #4fb5e5;
    opacity: 1;
  }
}

/*------------------------------------------------------------------------------
  c-slant-bg — 斜めの台形背景（共通コンポーネント）

  ■ 役割（共通化する部分）
    セクション背面に敷く「斜めにカットした帯」の“仕組み”だけを持つ。
    ＝ 絶対配置・全幅・最背面・クリック透過・斜めの clip-path・色。
    サイズ／位置（高さ・上下のはみ出し・傾き量）は持たない → セクション側で指定。

  ■ 使い方（HTML）
    背景を敷くセクション（position:relative + isolation:isolate）の先頭に置く：
      <span class="c-slant-bg c-slant-bg--blue c-slant-bg--fall-left p-home-recruit__bg" aria-hidden="true"></span>
    ・色      ：--blue（$base-color）／--gray（$base-gray-color）
    ・向き    ：--fall-left（左下がり＝右上がり「／」）／--fall-right（右下がり「＼」）※必須
    ・サイズ  ：p-home-◯◯__bg 側で top / height（必要時）を指定
    ・前面化  ：セクションに isolation:isolate を付ける（この背景は z-index:-1）

  ■ 傾き（角度）
    落差を vw（≒背景の横幅）で指定するので、画面幅が変わっても角度を保つ。
    既定は上下とも 17.5vw（平行）。角度を変えたいセクションは
    --slant-top / --slant-bottom を上書きする。
------------------------------------------------------------------------------*/
.c-slant-bg {
  --slant-top: 17.5vw;
  --slant-bottom: 17.5vw;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.c-slant-bg--blue {
  background-color: #F1F8FE;
}

.c-slant-bg--gray {
  background-color: #F4F4F4;
}

.c-slant-bg--accent-dark {
  background-color: #47ABDA;
}

/* 向き＝どちらに下がるか。落差（角度）は --slant-top / --slant-bottom を流用 */
.c-slant-bg--fall-left {
  clip-path: polygon(0 var(--slant-top), 100% 0, 100% calc(100% - var(--slant-bottom)), 0 100%);
}

.c-slant-bg--fall-right {
  clip-path: polygon(0 0, 100% var(--slant-top), 100% 100%, 0 calc(100% - var(--slant-bottom)));
}

/*------------------------------------------------------------------------------
  c-service-card
------------------------------------------------------------------------------*/
.c-service-card__link {
  display: block;
  color: #333;
  opacity: 1;
  background-color: #F8F8F8;
  -webkit-box-shadow: 0 1.4rem 3.2rem rgba(32, 46, 84, 0.08);
          box-shadow: 0 1.4rem 3.2rem rgba(32, 46, 84, 0.08);
  -webkit-transition: -webkit-transform 0.35s ease, -webkit-box-shadow 0.35s ease;
  transition: -webkit-transform 0.35s ease, -webkit-box-shadow 0.35s ease;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  transition: transform 0.35s ease, box-shadow 0.35s ease, -webkit-transform 0.35s ease, -webkit-box-shadow 0.35s ease;
}
@media (hover: hover) {
  .c-service-card__link:hover {
    opacity: 1;
    -webkit-box-shadow: 0 2rem 4rem rgba(32, 46, 84, 0.12);
            box-shadow: 0 2rem 4rem rgba(32, 46, 84, 0.12);
    -webkit-transform: translateY(-0.6rem);
            transform: translateY(-0.6rem);
  }
}
.c-service-card__link:focus-visible {
  opacity: 1;
  -webkit-box-shadow: 0 2rem 4rem rgba(32, 46, 84, 0.12);
          box-shadow: 0 2rem 4rem rgba(32, 46, 84, 0.12);
  -webkit-transform: translateY(-0.6rem);
          transform: translateY(-0.6rem);
}

.c-service-card__img {
  position: relative;
  height: 26.4rem;
  overflow: hidden;
}
@media (max-width: 75rem) {
  .c-service-card__img {
    height: 21vw;
    min-height: 21rem;
  }
}
@media (max-width: 63.937rem) {
  .c-service-card__img {
    height: 29vw;
  }
}
@media (max-width: 40rem) {
  .c-service-card__img {
    height: 100%;
    min-height: 0;
  }
}
.c-service-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.c-service-card__body {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 17.9rem;
  background-color: #F4F4F4;
  padding: 1.6rem 1.6rem 2.4rem 2rem;
}
@media (max-width: 47.9375rem) {
  .c-service-card__body {
    padding: 1.6rem;
  }
}
.c-service-card__body::before {
  content: "";
  position: absolute;
  top: -2.9rem;
  left: 0;
  width: 100%;
  height: 3.4rem;
  background-color: #F4F4F4;
  clip-path: polygon(0 0, 100% 2.8rem, 100% 100%, 0 100%);
}
@media (max-width: 47.9375rem) {
  .c-service-card__body::before {
    top: -2.8rem;
    height: 3rem;
  }
}

.c-service-card__num {
  position: relative;
  z-index: 1;
  color: #4fb5e5;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1;
  font-family: "Roboto", sans-serif;
  letter-spacing: 0;
}

.c-service-card__title {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 1.6rem;
  margin-top: 1rem;
  color: #202e54;
}

.c-service-card__title span {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.15em;
  white-space: nowrap;
}
@media (max-width: 47.9375rem) {
  .c-service-card__title span {
    font-size: 1.9rem;
  }
}

.c-service-card__title small {
  font-family: "Roboto", sans-serif;
  font-size: 1.2rem;
  font-style: italic;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.2em;
  opacity: 0.7;
}
@media (max-width: 47.9375rem) {
  .c-service-card__title small {
    font-size: 1.1rem;
    letter-spacing: 0.1em;
  }
}

.c-service-card__text {
  position: relative;
  z-index: 1;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.1em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-right: 4.8rem;
  margin-top: 0.6rem;
}
@media (max-width: 47.9375rem) {
  .c-service-card__text {
    font-size: 1.3rem;
  }
}

.c-service-card__arrow {
  position: absolute;
  right: 1.7rem;
  bottom: 2.5rem;
  width: 3.3rem;
  height: 3.3rem;
  background: url("../img/icon_arrowR_white.svg") center/contain no-repeat;
}

/*------------------------------------------------------------------------------
  c-service-card 出現アニメーション
  ・各カードが上→下に徐々に現れる（clip-path のワイプ）
  ・左→右へ少しずつ遅らせて表示。グリッドの段組みに合わせて遅延を出し分ける：
      3カラム時(≥1024px)＝1行目1,2,3 / 2行目4,5（2行目は1行目と同じ並び）
      2カラム時(768〜1023px)＝左列(奇数)→右列(偶数)
  ・スマホ(≤767px)は遅延なし（1列想定。現状グリッドは≤640pxで1列）
  ・clip-path は影が切れないよう左右下を負の値で外へ逃がす（上はホバーの浮き分だけ確保）
  ・出現トリガーは「js-scroll-trigger」（JSが .is-active を付与）
------------------------------------------------------------------------------*/
.c-service-card {
  clip-path: inset(-0.8rem -16% 100% -16%);
}
.c-service-card.is-active {
  -webkit-animation: serviceReveal 0.55s cubic-bezier(0.8, 0, 0.2, 1) forwards;
          animation: serviceReveal 0.55s cubic-bezier(0.8, 0, 0.2, 1) forwards;
}
@media (min-width: 48rem) and (max-width: 63.937rem) {
  .c-service-card.is-active:nth-child(odd) {
    -webkit-animation-delay: 0s;
            animation-delay: 0s;
  }
  .c-service-card.is-active:nth-child(even) {
    -webkit-animation-delay: 0.2s;
            animation-delay: 0.2s;
  }
}
@media (min-width: 64rem) {
  .c-service-card.is-active:nth-child(1), .c-service-card.is-active:nth-child(4) {
    -webkit-animation-delay: 0s;
            animation-delay: 0s;
  }
  .c-service-card.is-active:nth-child(2), .c-service-card.is-active:nth-child(5) {
    -webkit-animation-delay: 0.13s;
            animation-delay: 0.13s;
  }
  .c-service-card.is-active:nth-child(3) {
    -webkit-animation-delay: 0.26s;
            animation-delay: 0.26s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-service-card, .c-service-card.is-active {
    clip-path: none;
    -webkit-animation: none;
            animation: none;
  }
}

@-webkit-keyframes serviceReveal {
  from {
    clip-path: inset(-0.8rem -16% 100% -16%);
  }
  to {
    clip-path: inset(-0.8rem -16% -16% -16%);
  }
}

@keyframes serviceReveal {
  from {
    clip-path: inset(-0.8rem -16% 100% -16%);
  }
  to {
    clip-path: inset(-0.8rem -16% -16% -16%);
  }
}
/*------------------------------------------------------------------------------
  c-tab
  ・参考: トクヨビ c-tab / js-tab（タブ切り替えUI）を fuso のトークンへ翻訳
  ・アクティブタブ＝primary 塗り＋白文字／右端に ＋→− のトグルアイコン
  ・アクティブタブの下に primary の三角ポインタ（画像不使用・CSSの枠線三角）
------------------------------------------------------------------------------*/
.c-tab__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 2rem;
  margin-bottom: 3.4rem;
}
@media (max-width: 47.9375rem) {
  .c-tab__nav {
    gap: 1.2rem;
    margin-bottom: 2.4rem;
  }
}

.c-tab__nav-item {
  color: #202e54;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.15em;
  text-align: center;
  background-color: #fff;
  border: 1px solid #202e54;
  border-radius: 0.2rem 0.2rem 0 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1.8rem 3.6rem 1.6rem;
  -webkit-transition: color 0.22s ease, background-color 0.22s ease;
  transition: color 0.22s ease, background-color 0.22s ease;
  cursor: pointer;
}
@media (max-width: 47.9375rem) {
  .c-tab__nav-item {
    font-size: 1.4rem;
    letter-spacing: 0.04em;
    padding: 1.3rem 1.6rem 1.2rem 0.6rem;
  }
}
.c-tab__nav-item .c-tab__nav-icon {
  position: absolute;
  top: 50%;
  right: 2rem;
  width: 1.4rem;
  height: 1.4rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}
@media (max-width: 47.9375rem) {
  .c-tab__nav-item .c-tab__nav-icon {
    right: 1.2rem;
    width: 1rem;
    height: 1rem;
  }
}
.c-tab__nav-item .c-tab__nav-icon::before, .c-tab__nav-item .c-tab__nav-icon::after {
  content: "";
  background-color: #202e54;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: background-color 0.22s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.22s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.22s ease, transform 0.25s ease;
  transition: background-color 0.22s ease, transform 0.25s ease, -webkit-transform 0.25s ease;
}
.c-tab__nav-item .c-tab__nav-icon::before {
  width: 100%;
  height: 2px;
}
.c-tab__nav-item .c-tab__nav-icon::after {
  width: 2px;
  height: 100%;
}
.c-tab__nav-item::after {
  content: "";
  position: absolute;
  bottom: -1.6rem;
  left: 50%;
  border-style: solid;
  border-width: 1.6rem 1.3rem 0 1.3rem;
  border-color: #202e54 transparent transparent transparent;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.22s ease 0.04s, visibility 0.22s ease 0.04s;
  transition: opacity 0.22s ease 0.04s, visibility 0.22s ease 0.04s;
  pointer-events: none;
}
@media (max-width: 47.9375rem) {
  .c-tab__nav-item::after {
    bottom: -1.2rem;
    border-width: 1.2rem 1rem 0 1rem;
  }
}
@media (hover: hover) {
  .c-tab__nav-item:hover {
    color: #fff;
    background-color: #202e54;
  }
  .c-tab__nav-item:hover .c-tab__nav-icon::before,
  .c-tab__nav-item:hover .c-tab__nav-icon::after {
    background-color: #fff;
  }
}
.c-tab__nav-item:focus-visible {
  outline: 2px solid #4fb5e5;
  outline-offset: 2px;
}
.c-tab__nav-item.is-active {
  color: #fff;
  background-color: #202e54;
}
.c-tab__nav-item.is-active .c-tab__nav-icon::before,
.c-tab__nav-item.is-active .c-tab__nav-icon::after {
  background-color: #fff;
}
.c-tab__nav-item.is-active .c-tab__nav-icon::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}
.c-tab__nav-item.is-active::after {
  opacity: 1;
  visibility: visible;
}

.c-tab__contents {
  display: none;
}
.c-tab__contents.is-active {
  display: block;
}

/*------------------------------------------------------------------------------
  c-title
------------------------------------------------------------------------------*/
.c-title {
  color: #202e54;
}

.c-title--center {
  text-align: center;
}

/* en と ja を横並びにするレイアウト */
.c-title--inline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 2.8rem;
}
@media (max-width: 47.9375rem) {
  .c-title--inline {
    display: block;
  }
}

/* 右寄せ（--inline と併用。SP で block に戻る分は text-align で吸収） */
.c-title--right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media (max-width: 47.9375rem) {
  .c-title--right {
    text-align: right;
  }
}

/* 濃い背景の上に置く見出し（EN・JA を白／頭文字だけ黄色）。primary/accent 帯で使用 */
.c-title--light {
  color: #fff;
}
.c-title--light .c-title__ja {
  color: #fff;
}
.c-title--light {
  /* 頭文字だけ黄色（分割前・JS無効時は ::first-letter） */
}
.c-title--light .c-title__en::first-letter {
  color: #FDEF07;
}
.c-title--light {
  /* 英字を1文字ずつ分割した後は ::first-letter が効かないので char で上書き。
     基底の `.c-title.is-split …`（accent 指定）と同特異度のため、`.c-title` を足して勝たせる */
}
.c-title--light.c-title.is-split .c-title__char:first-child {
  color: #FDEF07;
}

.c-title__en {
  font-family: "Roboto", sans-serif;
  font-size: 7.2rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
@media (max-width: 71.25rem) {
  .c-title__en {
    font-size: 6.4rem;
  }
}
.c-title__en::first-letter {
  color: #4fb5e5;
}
@media (max-width: 47.9375rem) {
  .c-title__en {
    font-size: 4.8rem;
  }
}

.c-title__ja {
  color: #202e54;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-top: 1.2rem;
}
@media (max-width: 71.25rem) {
  .c-title__ja {
    font-size: 1.8rem;
  }
}
.c-title--inline .c-title__ja {
  margin-top: 0;
  padding-bottom: 0.8rem;
}
@media (max-width: 47.9375rem) {
  .c-title__ja {
    margin-top: 0.6rem;
    font-size: 2rem;
  }
  .c-title--inline .c-title__ja {
    margin-top: 0.4rem;
    padding-bottom: 0;
  }
}

/* 小サイズ（下層ページのサブセクション見出し用）。en/ja を一回り小さく */
.c-title--sm .c-title__en {
  font-size: 5.6rem;
}
@media (max-width: 71.25rem) {
  .c-title--sm .c-title__en {
    font-size: 4.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-title--sm .c-title__en {
    font-size: 3.4rem;
  }
}
.c-title--sm .c-title__ja {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0.05em;
  -ms-flex-item-align: end;
      align-self: flex-end;
}
@media (max-width: 71.25rem) {
  .c-title--sm .c-title__ja {
    font-size: 1.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .c-title--sm .c-title__ja {
    font-size: 1.6rem;
  }
}
.c-title--sm.c-title--inline {
  gap: 2rem;
}

/*------------------------------------------------------------------------------
  c-title : 出現アニメーション（参考: secom トップ「top-info-subtitle」）
  英字 … 1文字ずつ上から落ちて定位置に現れる（overflow:hidden のマスク＋translateY）
  日本語 … 英字が出そろってから、全体をふわっとフェードイン
  ※ JS が英字を <span class="c-title__char"> に分割し .is-split を付与。画面内で .is-active。
     JS無効／視差軽減時は分割・初期非表示を行わず、通常表示のまま。
------------------------------------------------------------------------------*/
.c-title {
  --char-stagger: 0.05s;
  --char-dur: 0.9s;
  --char-ease: cubic-bezier(0.19, 1, 0.22, 1);
}

/* FOUC（チラつき）防止：JS有効（html.js）かつ視差軽減OFFのときだけ、
   JSが分割する前の一瞬から見出しを隠す。分割後は char の translateY / ja の opacity が引き継ぐ。
   no-JS・視差軽減では適用されず通常表示。※発火のタイミングには一切関与しない。 */
@media (prefers-reduced-motion: no-preference) {
  .js .c-title__en {
    visibility: hidden;
  }
  .js .c-title.is-split .c-title__en {
    visibility: visible;
  }
  .js .c-title__ja {
    opacity: 0;
  }
}
.c-title.is-split .c-title__en {
  overflow: hidden;
}
.c-title.is-split .c-title__char {
  display: inline-block;
  -webkit-transform: translateY(-110%);
          transform: translateY(-110%);
  -webkit-transition: -webkit-transform var(--char-dur) var(--char-ease);
  transition: -webkit-transform var(--char-dur) var(--char-ease);
  transition: transform var(--char-dur) var(--char-ease);
  transition: transform var(--char-dur) var(--char-ease), -webkit-transform var(--char-dur) var(--char-ease);
  -webkit-transition-delay: calc(var(--char-index, 0) * var(--char-stagger));
          transition-delay: calc(var(--char-index, 0) * var(--char-stagger));
  will-change: transform;
}
.c-title.is-split .c-title__char:first-child {
  color: #4fb5e5;
}
.c-title.is-split .c-title__char--space {
  -webkit-transform: none;
          transform: none;
  -webkit-transition: none;
  transition: none;
}
.c-title.is-split .c-title__ja {
  opacity: 0;
  -webkit-transform: translateY(-1rem);
          transform: translateY(-1rem);
  -webkit-transition: opacity var(--char-dur) ease-out, -webkit-transform var(--char-dur) ease-out;
  transition: opacity var(--char-dur) ease-out, -webkit-transform var(--char-dur) ease-out;
  transition: opacity var(--char-dur) ease-out, transform var(--char-dur) ease-out;
  transition: opacity var(--char-dur) ease-out, transform var(--char-dur) ease-out, -webkit-transform var(--char-dur) ease-out;
  -webkit-transition-delay: var(--ja-delay, 0.8s);
          transition-delay: var(--ja-delay, 0.8s);
  will-change: opacity, transform;
}

.c-title.is-split.is-active .c-title__char {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.c-title.is-split.is-active .c-title__ja {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/*------------------------------------------------------------------------------
  p-mv
------------------------------------------------------------------------------*/
.p-mv {
  --mv-h: 60rem;
  position: relative;
  padding-top: var(--header-h);
  padding-bottom: 2.4rem;
  overflow: hidden;
  background-color: #fff;
}
@media (max-width: 71.25rem) {
  .p-mv {
    --mv-h: 56rem;
  }
}
@media (max-width: 56.25rem) {
  .p-mv {
    --mv-h: 42rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-mv {
    padding-bottom: 0;
  }
}

.p-mv__inner {
  position: relative;
  width: 100%;
  max-width: 172rem;
  min-height: var(--mv-h);
  margin: 0 auto;
}
@media (max-width: 47.9375rem) {
  .p-mv__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: auto;
  }
}

.p-mv__text {
  color: #202e54;
  position: relative;
  z-index: 2;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: min(46vw, 59rem);
  padding: 16rem 0 0 6rem;
}
@media (max-width: 75rem) {
  .p-mv__text {
    padding-left: 2.4rem;
  }
}
@media (max-width: 56.25rem) {
  .p-mv__text {
    padding: 8rem 0 0 2.4rem;
  }
}
.p-mv__text {
  /* 767px以下：箱を解除（display:contents）して子（__textGroup / __link）を
     inner の直接の子に昇格。画像(__visualArea)をテキスト群とボタンの間に order で割り込ませる */
}
@media (max-width: 47.9375rem) {
  .p-mv__text {
    display: contents;
  }
}

/* テキスト群（en・タイトル・リードのまとまり） */
@media (max-width: 47.9375rem) {
  .p-mv__textGroup {
    padding: 4.2rem 3rem 3.4rem;
  }
}
@media (max-width: 40rem) {
  .p-mv__textGroup {
    padding: 4rem 2rem 2rem;
  }
}

.p-mv__en {
  color: #202e54;
  font-weight: 300;
  font-style: italic;
  line-height: 1;
  letter-spacing: 0.28em;
  font-family: "Roboto", sans-serif;
  opacity: 0.8;
  margin-bottom: 1.6rem;
}
@media (max-width: 71.25rem) {
  .p-mv__en {
    font-size: 1.4rem;
    letter-spacing: 0.2em;
  }
}
@media (max-width: 56.25rem) {
  .p-mv__en {
    font-size: 1.3rem;
    letter-spacing: 0.15em;
  }
}
@media (max-width: 40rem) {
  .p-mv__en {
    font-size: 1.15rem;
    letter-spacing: 0.18em;
    margin-bottom: 1.8rem;
  }
}

.p-mv__title {
  margin-bottom: 3.2rem;
}
@media (max-width: 47.9375rem) {
  .p-mv__title {
    margin-bottom: 1.6rem;
  }
}

.p-mv__title-img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  width: min(29.3vw, 43.8rem);
  height: auto;
}
@media (max-width: 56.25rem) {
  .p-mv__title-img {
    width: min(37vw, 38rem);
  }
}
@media (max-width: 47.9375rem) {
  .p-mv__title-img {
    width: min(68vw, 32rem);
  }
}

.p-mv__lead {
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 71.25rem) {
  .p-mv__lead {
    font-size: 1.5rem;
  }
}
@media (max-width: 56.25rem) {
  .p-mv__lead {
    font-size: 1.4rem;
    letter-spacing: 0.1em;
  }
}
@media (max-width: 40rem) {
  .p-mv__lead {
    font-size: 1.2rem;
    font-weight: 500;
  }
}

.p-mv__link {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 28rem;
  color: #202e54;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.1em;
  border-bottom: 1px solid #202e54;
  padding: 0 4.2rem 1.7rem 0;
  margin-top: 7.8rem;
}
@media (max-width: 56.25rem) {
  .p-mv__link {
    font-size: 1.6rem;
    width: 24rem;
    padding: 0 4.2rem 1.4rem 0;
    margin-top: 5.6rem;
  }
}
.p-mv__link {
  /* ホバー時に左→右へ引かれるアクセントの下線 */
}
.p-mv__link::after {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #4fb5e5;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left center;
          transform-origin: left center;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  content: "";
}
.p-mv__link {
  /* 767px以下：テキスト群→画像→ボタンの3段。ボタンは画像の下に独立配置
     （__textGroup=0 → __visualArea=1 → __link=2 の順に並ぶ） */
}
@media (max-width: 47.9375rem) {
  .p-mv__link {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-top: 3.4rem;
    margin-bottom: 6rem;
    margin-left: 3rem;
  }
}
@media (max-width: 40rem) {
  .p-mv__link {
    width: 24rem;
    margin-top: 4rem;
    margin-bottom: 0;
    margin-left: 2rem;
    font-size: 1.5rem;
  }
}

.p-mv__link-arrow {
  position: absolute;
  top: 1.3rem;
  right: 0.7rem;
  width: 1rem;
  height: 1.2rem;
  background-image: url("../img/icon_caretR_primary.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
@media (max-width: 56.25rem) {
  .p-mv__link-arrow {
    top: 1rem;
    right: 0.5rem;
  }
}

@media (hover: hover) {
  .p-mv__link:hover .p-mv__link-arrow {
    -webkit-transform: translateX(0.5rem);
            transform: translateX(0.5rem);
  }
  .p-mv__link:hover::after {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
/* 画像＋ページネーションのまとまり。
   画像の位置決め（絶対配置・スラント右寄せ）はこのラッパーが担当し、
   ページネーションは画像の外＝この直下に流し込む */
.p-mv__visualArea {
  position: absolute;
  top: 0;
  right: 0;
  width: 56%;
  /* 1440px 超：画像の左端を固定し、画面拡大に合わせて右へ伸ばす。
     inner が 1720px で頭打ち（中央寄せ）になるまで徐々に拡大する */
}
@media (min-width: 90.0625rem) {
  .p-mv__visualArea {
    left: 55.2rem;
    width: auto;
  }
}
@media (max-width: 47.9375rem) {
  .p-mv__visualArea {
    position: relative;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    left: auto;
    width: 100%;
  }
}

.p-mv__visual {
  position: relative;
  width: 100%;
  height: var(--mv-h);
  clip-path: polygon(12.6% 0, 100% 0, 100% 100%, 0 100%);
  /* 767px以下：上辺を右上(高)→左上(低)へ下げる斜めカット。左右は全幅 */
}
@media (max-width: 47.9375rem) {
  .p-mv__visual {
    height: min(66vw, 56rem);
    clip-path: polygon(0 9%, 100% 0, 100% 100%, 0 100%);
  }
}
@media (max-width: 40rem) {
  .p-mv__visual {
    height: 74vw;
  }
}

.p-mv__visual img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* MVスライダー（Swiper：フェード切替）。
   .p-mv__visual のサイズ・clip-path はそのままに、中身をスライド化する */
.p-mv__slider {
  position: relative;
  width: 100%;
  height: 100%;
}

.p-mv__sliderList {
  height: 100%;
}

.p-mv__sliderItem {
  height: 100%;
  overflow: hidden;
}

.p-mv__slide {
  width: 100%;
  height: 100%;
}

/* アクティブスライドにゆったりズーム（西本社長希望の"ふわっと"を控えめに表現） */
.p-mv__slider .swiper-slide-active .p-mv__slide,
.p-mv__slider .swiper-slide-duplicate-active .p-mv__slide,
.p-mv__slider .swiper-slide-prev .p-mv__slide {
  -webkit-animation: mvZoomUp 7s linear 0s normal both;
          animation: mvZoomUp 7s linear 0s normal both;
}
.p-mv__slider.no-zoom .swiper-slide-active .p-mv__slide,
.p-mv__slider.no-zoom .swiper-slide-duplicate-active .p-mv__slide,
.p-mv__slider.no-zoom .swiper-slide-prev .p-mv__slide {
  -webkit-animation: none;
          animation: none;
}

/* ページネーション（Figma：画像の外・底辺から16px下の横バー型）。
   クリック/タップで該当スライドへ切り替え（停止・再生ボタンは無し） */
.p-mv__pagination.swiper-pagination {
  position: static;
  bottom: auto;
  left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  margin-top: 1.6rem;
  gap: 0.8rem;
  -webkit-transform: none;
          transform: none;
}

.p-mv__paginationBullet {
  position: relative;
  display: inline-block;
  width: 5.6rem;
  height: 0.2rem;
  margin: 0;
  background-color: rgba(32, 46, 84, 0.6);
  border-radius: 99.9rem;
  opacity: 1;
  cursor: pointer;
  -webkit-transition: background-color 0.4s ease;
  transition: background-color 0.4s ease;
}
@media (max-width: 47.9375rem) {
  .p-mv__paginationBullet {
    width: 4.8rem;
    height: 0.15rem;
  }
}
.p-mv__paginationBullet {
  /* 見た目は2pxバーのまま、押しやすいよう判定領域を縦に拡張（WCAG 2.5.5：24px以上を確保） */
}
.p-mv__paginationBullet::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 100%;
  height: 2.4rem;
}
.p-mv__paginationBullet.is-active {
  background-color: #202e54;
}

@-webkit-keyframes mvZoomUp {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.07);
            transform: scale(1.07);
  }
}

@keyframes mvZoomUp {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.07);
            transform: scale(1.07);
  }
}
/*------------------------------------------------------------------------------
  p-home-service
------------------------------------------------------------------------------*/
.p-home-service {
  position: relative;
  padding: 15.6rem 0 13.6rem;
}
@media (max-width: 63.937rem) {
  .p-home-service {
    padding: 11rem 0 12rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-service {
    padding: 9.6rem 0 5.6rem;
  }
}

.p-home-service__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 3.2rem 1fr 3.2rem 1fr 3.2rem 1fr 3.2rem 1fr 3.2rem 1fr;
  grid-template-columns: repeat(6, 1fr);
  gap: 4rem 3.2rem;
  margin-top: 6.4rem;
  margin-bottom: 6.4rem;
}
@media (max-width: 63.937rem) {
  .p-home-service__list {
    -ms-grid-columns: minmax(0, 1fr) 2.4rem minmax(0, 1fr);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3.4rem 2.4rem;
  }
}
@media (max-width: 40rem) {
  .p-home-service__list {
    -ms-grid-columns: 1fr;
    grid-template-columns: repeat(1, 1fr);
    gap: 3.2rem;
    margin-top: 3.2rem;
  }
}
.p-home-service__list .c-service-card {
  -ms-grid-column-span: 2;
  grid-column: span 2;
}
.p-home-service__list .c-service-card:nth-child(4) {
  -ms-grid-column: 2;
  -ms-grid-column-span: 2;
  grid-column: 2/span 2;
}
.p-home-service__list .c-service-card:nth-child(5) {
  -ms-grid-column: 4;
  -ms-grid-column-span: 2;
  grid-column: 4/span 2;
}
@media (max-width: 63.937rem) {
  .p-home-service__list .c-service-card {
    grid-column: auto;
  }
  .p-home-service__list .c-service-card:nth-child(4), .p-home-service__list .c-service-card:nth-child(5) {
    grid-column: auto;
  }
}

.p-home-service__btn {
  text-align: center;
}

/*------------------------------------------------------------------------------
  p-home-reason
------------------------------------------------------------------------------*/
.p-home-reason {
  position: relative;
  padding: 19rem 0 14rem;
  overflow: hidden;
  background-image: url(../img/bg_home_reason.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
@media (max-width: 63.937rem) {
  .p-home-reason {
    padding: 10rem 0;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason {
    background-image: url(../img/bg_home_reason_sp.jpg);
    padding: 8rem 0;
  }
}

.p-home-reason__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: minmax(0, 1fr) 3.4rem minmax(0, 1fr) 3.4rem minmax(0, 1fr);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3.4rem;
  margin-top: 8.6rem;
}
@media (max-width: 63.937rem) {
  .p-home-reason__list {
    gap: 2.2rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason__list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    max-width: 52rem;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason__list {
    margin-top: 3.2rem;
  }
}

.p-home-reason-card {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 37.1rem;
  padding: 3.6rem 2.4rem 4.8rem;
  text-align: center;
  background-color: #fff;
  border: 0.2rem solid #4fb5e5;
  -webkit-box-shadow: 0 0 3rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 3rem rgba(0, 0, 0, 0.1);
}
@media (max-width: 56.25rem) {
  .p-home-reason-card {
    min-height: 0;
    padding: 2.4rem 1.6rem 3.6rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason-card {
    padding: 2.4rem 1.6rem 2.8rem;
  }
}

/* PC（≥768px）のみ：2・3枚目を少し遅らせて、ふわっと表示に時間差をつける。
   c-fadeInUp（フェード）に transition-delay を足すだけ（上→下ワイプは無し）。
   SP（≤767px）は遅延なし＝3枚同時にふわっと表示。 */
@media (min-width: 48rem) {
  .p-home-reason-card:nth-child(2) {
    -webkit-transition-delay: 0.15s;
            transition-delay: 0.15s;
    /* 2枚目はテキストが1行分短く、上寄せだと左右カードとバランスが悪い。
       カード高さ（3枚は grid の stretch で同じ）内で、テキスト群を縦中央に寄せる。
       アイコンは上のまま。SP（1列・高さ無関係）ではこの min-screen 内なので効かない＝解除。 */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .p-home-reason-card:nth-child(2) .p-home-reason-card__text-wrap {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .p-home-reason-card:nth-child(3) {
    -webkit-transition-delay: 0.3s;
            transition-delay: 0.3s;
  }
}
.p-home-reason-card__num {
  position: absolute;
  top: -0.2rem;
  left: -0.2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 8.8rem;
  height: 5.7rem;
  padding-left: 2.1rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 2.9rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.01em;
  background-color: #4fb5e5;
  background: linear-gradient(118deg, #4FB5E5 0.92%, #49AFDF 85.22%);
  clip-path: polygon(0 0, 100% 0, 76% 100%, 0 100%);
}
@media (max-width: 56.25rem) {
  .p-home-reason-card__num {
    width: 7.2rem;
    height: 4.8rem;
    padding-left: 1.8rem;
    font-size: 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason-card__num {
    font-size: 2rem;
    top: -0.3rem;
    left: -0.3rem;
    width: 6.4rem;
    height: 4.2rem;
  }
}

.p-home-reason-card__icon {
  width: 13.2rem;
  height: 13.2rem;
  margin: 0 auto 2.8rem;
}
@media (max-width: 56.25rem) {
  .p-home-reason-card__icon {
    width: 8.8rem;
    height: 8.8rem;
    margin: 0 auto 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason-card__icon {
    width: 7.2rem;
    height: 7.2rem;
    margin-bottom: 1.2rem;
  }
}
.p-home-reason-card__icon img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-home-reason-card__text-wrap {
  text-align: center;
}

.p-home-reason-card__title {
  color: #202e54;
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.17em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 56.25rem) {
  .p-home-reason-card__title {
    font-size: 2.4rem;
    letter-spacing: 0.1em;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason-card__title {
    font-size: 2rem;
    letter-spacing: 0.1em;
  }
}

.p-home-reason-card__text {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
@media (max-width: 56.25rem) {
  .p-home-reason-card__text {
    font-size: 1.4rem;
    letter-spacing: 0.05em;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-reason-card__text {
    font-size: 1.5rem;
    letter-spacing: 0.1em;
  }
}

/*------------------------------------------------------------------------------
  p-home-numbers
------------------------------------------------------------------------------*/
.p-home-numbers {
  position: relative;
  z-index: 1;
  padding-top: 14.4rem;
}
@media (max-width: 63.937rem) {
  .p-home-numbers {
    padding-top: 10rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-numbers {
    padding-top: 8rem;
  }
}

.p-home-numbers__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 3.2rem 1fr 3.2rem 1fr 3.2rem 1fr;
  grid-template-columns: repeat(4, 1fr);
  gap: 3.2rem;
  margin-top: 5.6rem;
}
@media (max-width: 63.937rem) {
  .p-home-numbers__list {
    -ms-grid-columns: 1fr 2.4rem 1fr;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.4rem;
    margin-top: 4.8rem;
  }
}
@media (max-width: 40rem) {
  .p-home-numbers__list {
    gap: 1.6rem;
    margin-top: 3.2rem;
  }
}

.p-home-numbers__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.p-home-numbers-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  min-height: 26.5rem;
  padding: 2.6rem 1.6rem 1.4rem;
  text-align: center;
  background-color: #fff;
  border: 1px solid #4fb5e5;
}
@media (max-width: 40rem) {
  .p-home-numbers-card {
    min-height: 0;
    padding: 2.4rem 1rem 2rem;
  }
}

.p-home-numbers-card__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 8.7rem;
}
.p-home-numbers-card__icon img {
  width: 10.8rem;
  height: 8.7rem;
  max-width: 100%;
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 40rem) {
  .p-home-numbers-card__icon {
    height: 7rem;
  }
  .p-home-numbers-card__icon img {
    width: auto;
    height: 100%;
  }
}

.p-home-numbers-card__label {
  margin-top: 0.8rem;
  color: #202e54;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 40rem) {
  .p-home-numbers-card__label {
    font-size: 1.7rem;
  }
}

.p-home-numbers-card__value {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 1.2rem;
}
@media (max-width: 40rem) {
  .p-home-numbers-card__value {
    margin-top: 0.6rem;
  }
}

.p-home-numbers-card__num {
  --lh: 1.1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  height: calc(var(--lh) * 1em);
  overflow: hidden;
  color: #4fb5e5;
  font-family: "Roboto", sans-serif;
  font-size: 8.8rem;
  font-style: italic;
  font-weight: 900;
  line-height: var(--lh);
}
@media (max-width: 40rem) {
  .p-home-numbers-card__num {
    font-size: 6rem;
  }
}

.p-home-numbers-card__unit {
  margin-left: 0.6rem;
  color: #202e54;
  font-size: 2rem;
  font-weight: 700;
}
@media (max-width: 40rem) {
  .p-home-numbers-card__unit {
    font-size: 1.6rem;
  }
}

.p-home-numbers__note {
  color: #202e54;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-top: 2.4rem;
}
@media (max-width: 47.9375rem) {
  .p-home-numbers__note {
    font-size: 1.2rem;
    margin-top: 1.2rem;
  }
}

/* ───── カウントアップ（オドメーター方式） ─────
   各桁を縦に積み、画面内で is-active を付与すると
   目標桁までスクロールする。参考は 1lh / overflow:clip だが、対応ブラウザを広く取るため
   em / overflow:hidden で実装（窓・行高・移動量を --lh で同期）。JS が中身を生成する。 */
.countup__part {
  display: inline-block;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 1ch;
  max-width: 1ch;
  line-height: var(--lh, 1.1);
  text-align: center;
  word-break: break-all;
  white-space: normal;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
          transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-transition-duration: 1.6s;
          transition-duration: 1.6s;
}
.countup__part:nth-of-type(1) {
  -webkit-transition-duration: 1.9s;
          transition-duration: 1.9s;
}
.countup__part:nth-of-type(2) {
  -webkit-transition-duration: 1.7s;
          transition-duration: 1.7s;
}
.countup__part:nth-of-type(3) {
  -webkit-transition-duration: 1.5s;
          transition-duration: 1.5s;
}
.countup__part:nth-of-type(4) {
  -webkit-transition-duration: 1.3s;
          transition-duration: 1.3s;
}

.p-home-numbers-card__num.is-active .countup__part {
  -webkit-transform: translateY(calc(var(--digit, 0) * var(--lh) * -1em));
          transform: translateY(calc(var(--digit, 0) * var(--lh) * -1em));
}

.countup__dot,
.countup__comma {
  display: inline-block;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: auto;
}

/* スクリーンリーダー用の実値（視覚的には隠す） */
.countup__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
  .countup__part {
    -webkit-transition: none;
    transition: none;
    -webkit-transform: none;
            transform: none;
  }
}
/*------------------------------------------------------------------------------
  p-home-recruit
------------------------------------------------------------------------------*/
.p-home-recruit {
  position: relative;
  isolation: isolate;
  padding: 17.8rem 0 30rem;
}
@media (max-width: 68.75rem) {
  .p-home-recruit {
    padding: 11rem 0 12rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-recruit {
    padding: 8.8rem 0 12rem;
  }
}

.p-home-recruit__bg {
  top: -12.5vw;
  height: calc(100% + 12.5vw);
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__bg {
    top: -35vw;
    height: calc(100% + 35vw);
  }
}

/* 左テキストは c-inner--lg のコンテンツ左端に揃え、右のギャラリーは画面右端へ接地。
   ビューポートが 172rem(1720px) を超えると全体が中央寄せになる（margin-inline:auto）。
   padding-left = 「c-inner--lg の左端」-「この inner の左端」 を calc で算出 */
/* ステージ：172rem(1720px)で頭打ち。超えたら margin-inline:auto で全体が中央寄せ */
.p-home-recruit__inner {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  max-width: 172rem;
  margin-inline: auto;
}

/* 中身：左テキストを c-inner--lg のコンテンツ左端に合わせ、右のギャラリーはステージ右端へ接地。
   padding-left は % をステージ幅基準で計算するため、スクロールバー幅に影響されない（100vw 不使用） */
.p-home-recruit__layout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(3.2rem, 4vw, 7.2rem);
  padding-left: max(2rem, (100% - 124rem) / 2 + 2rem);
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__layout {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 4.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__layout {
    gap: 2rem;
  }
}

.p-home-recruit__body {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__body {
    display: contents;
  }
}

.p-home-recruit__title {
  white-space: nowrap;
  width: 75vw;
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__title {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
}

.p-home-recruit__text {
  margin-top: 4.8rem;
}
@media (max-width: 56.25rem) {
  .p-home-recruit__text {
    margin-top: 3.2rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__text {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-top: 0;
  }
}

.p-home-recruit__catch {
  color: #202e54;
  font-size: clamp(2.2rem, 2.4vw, 3.2rem);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.2em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 56.25rem) {
  .p-home-recruit__catch {
    font-size: 1.8rem;
  }
}

.p-home-recruit__catch-em {
  font-size: 1.125em;
}

.p-home-recruit__desc {
  font-size: 1.6rem;
  line-height: 1.9;
  letter-spacing: 0.1em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  max-width: 46.7rem;
  margin-top: 4rem;
}
@media (max-width: 56.25rem) {
  .p-home-recruit__desc {
    margin-top: 2.4rem;
    font-size: 1.4rem;
  }
  .p-home-recruit__desc br {
    display: none;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__desc {
    font-size: 1.3rem;
    margin-top: 1.6rem;
  }
}

.p-home-recruit__btn {
  margin-top: 4.8rem;
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__btn {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    margin-top: 0.8rem;
  }
}

/* ---- 右：写真3枚（clip-path で形を付与＝画像差し替え可） ---- */
.p-home-recruit__gallery {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0;
  width: clamp(42rem, 52vw, 74.4rem);
}
@media (max-width: 47.9375rem) {
  .p-home-recruit__gallery {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    width: 100%;
    margin-top: 1.2rem;
  }
}

.p-home-recruit__photo {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  aspect-ratio: 258.5/396;
  background-color: #F4F4F4;
  /* 平行四辺形（上辺は右に寄り、左右の辺が下にいくほど左へ傾く） */
  clip-path: polygon(7.94% 0, 100% 0, 92.06% 100%, 0 100%);
}

/* 1番右だけ右辺を垂直にして画面右端へきれいに接地させる */
.p-home-recruit__photo--last {
  clip-path: polygon(7.94% 0, 100% 0, 100% 100%, 0 100%);
}

.p-home-recruit__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*------------------------------------------------------------------------------
  p-home-blog
------------------------------------------------------------------------------*/
.p-home-blog {
  position: relative;
  padding: 2rem 0 17.6rem;
}
@media (max-width: 63.937rem) {
  .p-home-blog {
    padding: 2rem 0 12rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-blog {
    padding: 2rem 0 10.4rem;
  }
}

.p-home-company__bg {
  top: 10rem;
  height: calc(100% + 40rem);
}
@media (max-width: 47.9375rem) {
  .p-home-company__bg {
    top: 25rem;
    height: 95%;
  }
}

.p-home-blog__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: minmax(0, 1fr) 3.3rem minmax(0, 1fr) 3.3rem minmax(0, 1fr);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3.3rem;
  margin-top: 6.4rem;
}
@media (max-width: 63.937rem) {
  .p-home-blog__list {
    gap: 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-blog__list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    max-width: 48rem;
    margin-right: auto;
    margin-left: auto;
    margin-top: 4.4rem;
  }
}

.p-home-blog__btn {
  margin-top: 6.4rem;
  text-align: center;
}
@media (max-width: 47.9375rem) {
  .p-home-blog__btn {
    margin-top: 4.4rem;
  }
}

/*------------------------------------------------------------------------------
  p-home-company
------------------------------------------------------------------------------*/
.p-home-company {
  position: relative;
  isolation: isolate;
  padding-bottom: 17.6rem;
}
@media (max-width: 63.937rem) {
  .p-home-company {
    padding-bottom: 12rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-company {
    padding-bottom: 8rem;
  }
}

.p-home-company__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 5.6rem;
}
@media (max-width: 56.25rem) {
  .p-home-company__inner {
    gap: 4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-company__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
}
@media (max-width: 40rem) {
  .p-home-company__inner {
    gap: 2rem;
  }
}

.p-home-company__text {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 46.7rem;
}
@media (max-width: 56.25rem) {
  .p-home-company__text {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 50%;
            flex: 0 1 50%;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-company__text {
    display: contents;
  }
}

@media (max-width: 47.9375rem) {
  .p-home-company__text > .c-title {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
}

.p-home-company__lead {
  font-size: 1.6rem;
  line-height: 1.9;
  letter-spacing: 0.1em;
  margin-top: 4.8rem;
}
@media (max-width: 63.937rem) {
  .p-home-company__lead {
    font-size: 1.4rem;
    margin-top: 3.2rem;
  }
}
@media (max-width: 40rem) {
  .p-home-company__lead {
    line-height: 1.7;
    margin-top: 2rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-company__lead {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-top: 0;
  }
}

.p-home-company__btn {
  margin-top: 6.4rem;
}
@media (max-width: 63.937rem) {
  .p-home-company__btn {
    margin-top: 4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-home-company__btn {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    margin-top: 1.2rem;
  }
}

.p-home-company__img {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  height: auto;
  overflow: hidden;
  background-color: #F4F4F4;
}
@media (max-width: 47.9375rem) {
  .p-home-company__img {
    margin-top: 1.2rem;
  }
}
.p-home-company__img img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

/*------------------------------------------------------------------------------
  p-home-video
------------------------------------------------------------------------------*/
.p-home-video {
  position: relative;
  margin-bottom: 21rem;
}
@media (max-width: 47.9375rem) {
  .p-home-video {
    margin-bottom: 8.8rem;
  }
}

.p-home-video__inner {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  max-width: 98rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.p-home-video__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: clamp(1.6rem, 4vw, 4rem);
}
.p-home-video__title::before, .p-home-video__title::after {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  height: 1px;
  background-color: #202e54;
  content: "";
}

.p-home-video__title-text {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: inline-block;
  color: #202e54;
  font-family: "Roboto", sans-serif;
  font-size: clamp(2.4rem, 5.5vw, 6.6rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}
@media (max-width: 47.9375rem) {
  .p-home-video__title-text {
    font-size: 2.6rem;
    letter-spacing: 0.06em;
  }
}
.p-home-video__title-text::first-letter {
  color: #4fb5e5;
}

.p-home-video__frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  background-color: #F4F4F4;
  margin-top: 2.8rem;
}
@media (max-width: 47.9375rem) {
  .p-home-video__frame {
    margin-top: 1.6rem;
  }
}

.p-home-video__movie {
  background-color: #000;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-home-video__caption {
  color: #202e54;
  font-size: clamp(1.6rem, 2.6vw, 2.6rem);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.15em;
  text-align: center;
  margin-top: 3.6rem;
}
@media (max-width: 47.9375rem) {
  .p-home-video__caption {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin-top: 1.6rem;
  }
}

/*------------------------------------------------------------------------------
  p-page-head 
------------------------------------------------------------------------------*/
.p-page-head {
  --band-h: 40rem;
  --slant-x: 36vw;
  position: relative;
  overflow: hidden;
  background-color: #F8FBFF;
  border-bottom: 1px solid #4fb5e5;
}
@media (max-width: 71.25rem) {
  .p-page-head {
    --band-h: 36rem;
  }
}
@media (max-width: 56.25rem) {
  .p-page-head {
    --band-h: 34rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-page-head {
    --band-h: 28rem;
  }
}
@media (max-width: 32.5rem) {
  .p-page-head {
    --band-h: 24rem;
    --slant-x: 26vw;
  }
}

/* ---- 見出し（帯の左・下寄せ） ---- */
.p-page-head__inner {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  min-height: var(--band-h);
  padding-top: var(--header-h);
  padding-bottom: 5rem;
}
@media (max-width: 47.9375rem) {
  .p-page-head__inner {
    padding-bottom: 3.2rem;
  }
}

.p-page-head__title {
  color: #202e54;
}

.p-page-head__title-ja {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 5rem;
  line-height: 1.7;
  letter-spacing: 0.15em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  /* 先頭1文字だけアクセント色（span不要・CSSのみ。c-title__en と同じ作法） */
}
.p-page-head__title-ja::first-letter {
  color: #4fb5e5;
}
@media (max-width: 71.25rem) {
  .p-page-head__title-ja {
    font-size: 4.4rem;
  }
}
@media (max-width: 56.25rem) {
  .p-page-head__title-ja {
    font-size: 3.6rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-page-head__title-ja {
    font-size: 3rem;
  }
}
@media (max-width: 32.5rem) {
  .p-page-head__title-ja {
    font-size: 2.8rem;
  }
}

.p-page-head__title-en {
  font-family: "Roboto", sans-serif;
  font-weight: 600;
  font-size: 2.2rem;
  line-height: 1;
  letter-spacing: 0.1em;
  margin-top: 0.4rem;
  text-transform: uppercase;
}
@media (max-width: 56.25rem) {
  .p-page-head__title-en {
    font-size: 1.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-page-head__title-en {
    font-size: 1.3rem;
    margin-top: 0.2rem;
  }
}

/* ---- 右の斜め装飾（3層）------------------------------------------------------
   仕組み：3枚とも同じ skewX で傾けた「縦帯」。同じ角度なので自動で平行になる。
   ◀ 触るのはこの3つだけ ▶
     ・傾き … 下の .p-page-head__deco の skewX(-24deg) の数字ひとつ（マイナス＝右上→左下）
     ・位置 … 各帯の right（vw＝画面幅の％。画面幅に合わせて自動で伸縮。数字↑で左へ）
     ・太さ … 各帯の width
   画面外へはみ出した分は .p-page-head の overflow:hidden が切るので、
   ベタ青の右端は画面の右端でまっすぐになる。重なって隠れたら right で位置をずらす。
------------------------------------------------------------------------------- */
.p-page-head__deco {
  position: absolute;
  top: -3rem;
  bottom: -3rem;
  z-index: 0;
  -webkit-transform: skewX(-24deg);
          transform: skewX(-24deg);
  pointer-events: none;
}

.p-page-head__deco--line {
  right: calc(var(--slant-x) + 4.3rem);
  width: 0.1rem;
  background-color: #4fb5e5;
}
@media (max-width: 32.5rem) {
  .p-page-head__deco--line {
    right: calc(var(--slant-x) + 2.6rem);
  }
}

.p-page-head__deco--stripe {
  right: var(--slant-x);
  width: 3rem;
  background-color: rgba(79, 181, 229, 0.3);
}
@media (max-width: 32.5rem) {
  .p-page-head__deco--stripe {
    width: 1.6rem;
  }
}

.p-page-head__deco--solid {
  left: calc(100% - var(--slant-x));
  right: -10vw;
  background-color: rgba(79, 181, 229, 0.7);
}
@media (max-width: 32.5rem) {
  .p-page-head__deco--solid {
    right: -20vw;
  }
}

/*------------------------------------------------------------------------------
  p-message
------------------------------------------------------------------------------*/
.p-message__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 4.8rem;
  margin-top: 5.6rem;
}
@media (max-width: 63.937rem) {
  .p-message__content {
    gap: 4.8rem;
  }
}
@media (max-width: 56.25rem) {
  .p-message__content {
    gap: 4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-message__content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3.6rem;
    margin-top: 3.2rem;
  }
}

.p-message__body {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
}

.p-message__text {
  color: #333;
}
.p-message__text > p {
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  text-align: justify;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
.p-message__text > p + p {
  margin-top: 2rem;
}
@media (max-width: 40rem) {
  .p-message__text > p {
    font-size: 1.25rem;
    line-height: 1.8;
  }
  .p-message__text > p + p {
    margin-top: 1.4rem;
  }
}

.p-message__sign {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 1.2rem;
  margin-top: 2.4rem;
  color: #202e54;
}
@media (max-width: 40rem) {
  .p-message__sign {
    margin-top: 2rem;
    gap: 0.8rem;
  }
}

.p-message__sign-role {
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
@media (max-width: 40rem) {
  .p-message__sign-role {
    font-size: 1.3rem;
  }
}

.p-message__sign-name {
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}
@media (max-width: 40rem) {
  .p-message__sign-name {
    font-size: 2rem;
  }
}

/* 右カラム：写真＋署名（署名は写真の下） */
.p-message__aside {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 48rem;
          flex: 0 0 48rem;
}
@media (max-width: 56.25rem) {
  .p-message__aside {
    -ms-flex-preferred-size: 30rem;
        flex-basis: 30rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-message__aside {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    max-width: 36rem;
    margin: 0 auto;
  }
}

.p-message__photo img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

/*------------------------------------------------------------------------------
  p-overview
------------------------------------------------------------------------------*/
.p-overview {
  background-color: #F1F8FE;
  padding-top: 15.6rem;
  margin-bottom: 15.6rem;
}
@media (max-width: 47.9375rem) {
  .p-overview {
    padding-top: 6.4em;
    margin-bottom: 6.4em;
  }
}

.p-overview__content {
  margin-top: 5.6rem;
}
@media (max-width: 47.9375rem) {
  .p-overview__content {
    margin-top: 3.2rem;
  }
}

.p-overview__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.p-overview__item:first-child .p-overview__term {
  border-top: 1px solid #202e54;
}
.p-overview__item:first-child .p-overview__desc {
  border-top: 1px solid #EBEBEB;
}
@media (max-width: 40rem) {
  .p-overview__item {
    display: block;
  }
  .p-overview__item:first-child .p-overview__term {
    border-top: 1px solid #EBEBEB;
  }
  .p-overview__item:first-child .p-overview__desc {
    border-top: none;
  }
}

.p-overview__term {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 22rem;
          flex: 0 0 22rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2rem 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #202e54;
  border-bottom: 1px solid #202e54;
}
@media (max-width: 56.25rem) {
  .p-overview__term {
    -ms-flex-preferred-size: 16rem;
        flex-basis: 16rem;
  }
}
@media (max-width: 40rem) {
  .p-overview__term {
    width: 100%;
    padding: 1.75rem 1rem 1.25rem;
    font-size: 1.3rem;
    border-bottom: none;
  }
}

.p-overview__desc {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2rem 1rem 2rem 2rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  color: #333;
  border-bottom: 1px solid #EBEBEB;
}
@media (max-width: 40rem) {
  .p-overview__desc {
    font-size: 1.3rem;
    width: 100%;
    padding: 0 1rem 1.75rem;
  }
}

/* 内容内のリスト（資格者数・取引銀行・契約保険会社・加入団体）。
   既存サイトの改行区切りをそのまま箇条で表現（マーカー無し） */
.p-overview__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-overview__list > li:not(:first-child) {
  margin-top: 0.4rem;
}

/* 営業所名（長浜営業所）を内容の先頭で少し強調 */
.p-overview__office-name {
  margin-bottom: 0.4rem;
  font-weight: 700;
}

/* 認定証の画像（許可証スキャン）。番号テキストの上に配置 */
.p-overview__cert {
  max-width: 30rem;
  margin-bottom: 1.2rem;
}
.p-overview__cert img {
  width: 100%;
  height: auto;
  border: 1px solid #EBEBEB;
}
@media (max-width: 40rem) {
  .p-overview__cert {
    max-width: 24rem;
  }
}

/*------------------------------------------------------------------------------
  p-access
------------------------------------------------------------------------------*/
.p-access__content {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 4.8rem 1fr;
  grid-template-columns: repeat(2, 1fr);
  gap: 4rem 4.8rem;
  margin: 5.6rem 0 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 47.9375rem) {
  .p-access__content {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    gap: 3.2rem;
    margin-top: 3.2rem;
  }
}

.p-access__name {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #202e54;
}
@media (max-width: 40rem) {
  .p-access__name {
    font-size: 1.5rem;
  }
}

.p-access__address {
  font-size: 1.5rem;
  line-height: 1.7;
  color: #333;
  margin-top: 0.8rem;
}
@media (max-width: 40rem) {
  .p-access__address {
    font-size: 1.3rem;
    margin-top: 0.4rem;
  }
}

.p-access__map {
  margin-top: 1.6rem;
  aspect-ratio: 3/2;
  background-color: #F4F4F4;
}
@media (max-width: 47.9375rem) {
  .p-access__map {
    margin-top: 1.2rem;
  }
}
.p-access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/*------------------------------------------------------------------------------
  p-contact（お問い合わせページ）
------------------------------------------------------------------------------*/
/* 導入リード（中央寄せ） */
.p-contact__lead {
  color: #202e54;
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.9;
  letter-spacing: 0.08em;
  margin-top: -3.2rem;
  margin-bottom: 8rem;
}
@media (max-width: 56.25rem) {
  .p-contact__lead {
    font-size: 1.8rem;
    margin-bottom: 4.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-contact__lead {
    font-size: 1.45rem;
    line-height: 1.7;
    letter-spacing: 0.05em;
    text-align: left;
    margin-bottom: 3.2rem;
  }
}

/* サブセクション（お電話／メールフォーム）。見出しは c-title--inline を流用 */
.p-contact__block + .p-contact__block {
  margin-top: 9.6rem;
}
@media (max-width: 47.9375rem) {
  .p-contact__block + .p-contact__block {
    margin-top: 6.4rem;
  }
}

/* お電話セクションは見出しとボックスを横並び（2カラム）。ボックスの間延びを防ぐ */
.p-contact__block--tel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 4rem;
}
@media (max-width: 56.25rem) {
  .p-contact__block--tel {
    gap: 3.2rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-contact__block--tel {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 1.6rem;
  }
}
.p-contact__block--tel .c-title {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  min-width: 0;
}

/*------------------------------------------------------------------------------
  お電話でのお問い合わせ（p-contact__tel-card）
------------------------------------------------------------------------------*/
.p-contact__tel-card {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  background-color: #F1F8FE;
  border-radius: 0.8rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 4.8rem 3.2rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (max-width: 63.937rem) {
  .p-contact__tel-card {
    padding: 4rem 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-contact__tel-card {
    padding: 3.2rem 1.6rem;
  }
}

/* 電話番号（tel: リンク。アイコン＋大きい番号。40〜60代向けに最優先で大きく） */
.p-contact__tel {
  color: #202e54;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
}

.p-contact__tel-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 4.8rem;
  height: 4.8rem;
}
@media (max-width: 63.937rem) {
  .p-contact__tel-icon {
    width: 4rem;
    height: 4rem;
  }
}
@media (max-width: 40rem) {
  .p-contact__tel-icon {
    width: 3.6rem;
    height: 3.6rem;
  }
}
.p-contact__tel-icon img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-contact__tel-num {
  font-family: "Roboto", sans-serif;
  font-size: 4.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
}
@media (max-width: 63.937rem) {
  .p-contact__tel-num {
    font-size: 3.6rem;
  }
}
@media (max-width: 40rem) {
  .p-contact__tel-num {
    font-size: 3.2rem;
    padding-top: 0.1rem;
  }
}

.p-contact__tel-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.6rem 2.4rem;
  padding-left: 0.4rem;
  margin-top: 1.6rem;
}
@media (max-width: 40rem) {
  .p-contact__tel-meta {
    gap: 0.4rem 1.6rem;
    margin-top: 1.2rem;
  }
}

.p-contact__tel-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 0.4rem;
}
@media (max-width: 63.937rem) {
  .p-contact__tel-row {
    font-size: 1.5rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-contact__tel-row {
    font-size: 1.4rem;
  }
}

.p-contact__tel-label {
  color: #202e54;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.p-contact__tel-value {
  color: #333;
  letter-spacing: 0.02em;
}
@media (max-width: 40rem) {
  .p-contact__tel-value {
    font-size: 1.3rem;
  }
}

/*------------------------------------------------------------------------------
  メールフォーム（p-contact-form）
------------------------------------------------------------------------------*/
.p-contact__form-text {
  color: #333;
  font-size: 1.6rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
  margin-top: 4rem;
}
@media (max-width: 40rem) {
  .p-contact__form-text {
    font-size: 1.3rem;
    line-height: 1.7;
    margin-top: 3.2rem;
  }
}

.p-contact-form {
  margin-top: 4.8rem;
}
@media (max-width: 47.9375rem) {
  .p-contact-form {
    margin-top: 2.4rem;
  }
}

/* 項目は縦に gap で等間隔（区切り線は出さない） */
.p-contact-form__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.2rem;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__list {
    gap: 3.2rem;
  }
}

/* 各項目：左に見出し（固定幅）＋右に入力欄。SPは縦積み */
.p-contact-form__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-column-gap: 2.4rem;
     -moz-column-gap: 2.4rem;
          column-gap: 2.4rem;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__item {
    display: block;
  }
}

.p-contact-form__head {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 24rem;
          flex: 0 0 24rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
  padding-top: 1.4rem;
}
@media (max-width: 56.25rem) {
  .p-contact-form__head {
    -ms-flex-preferred-size: 18rem;
        flex-basis: 18rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-contact-form__head {
    padding-top: 0;
    margin-bottom: 1.2rem;
  }
}

/* 必須／任意バッジ。必須は $primary-color、任意はグレー（いずれも白文字でAA確保） */
.p-contact-form__required {
  color: #fff;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  background-color: #202e54;
  border-radius: 0.3rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding: 0.3rem 1rem;
}
@media (max-width: 63.937rem) {
  .p-contact-form__required {
    font-size: 1.2rem;
    padding: 0.2rem 0.8rem;
  }
}

.p-contact-form__required--any {
  background-color: #6f6f6f;
}

.p-contact-form__label {
  color: #202e54;
  font-weight: 700;
  letter-spacing: 0.04em;
}
@media (max-width: 63.937rem) {
  .p-contact-form__label {
    font-size: 1.5rem;
  }
}

.p-contact-form__field {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  /* iOS のフォーカス時ズーム防止のため font-size は 16px(1.6rem) を下回らない */
}
.p-contact-form__field input[type=text],
.p-contact-form__field input[type=tel],
.p-contact-form__field input[type=email],
.p-contact-form__field textarea {
  color: #333;
  font-size: 1.6rem;
  line-height: 1.6;
  font-family: "Noto Sans JP", sans-serif;
  background-color: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 0.4rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  padding: 1.3rem 1.4rem;
  -webkit-transition: border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;
}
.p-contact-form__field textarea {
  display: block;
  min-height: 18rem;
  resize: vertical;
}
.p-contact-form__field ::-webkit-input-placeholder {
  color: #aaa;
}
.p-contact-form__field ::-moz-placeholder {
  color: #aaa;
}
.p-contact-form__field :-ms-input-placeholder {
  color: #aaa;
}
.p-contact-form__field ::-ms-input-placeholder {
  color: #aaa;
}
.p-contact-form__field ::placeholder {
  color: #aaa;
}
.p-contact-form__field input:focus-visible,
.p-contact-form__field textarea:focus-visible {
  border-color: #4fb5e5;
  -webkit-box-shadow: 0 0 0 0.3rem rgba(79, 181, 229, 0.25);
          box-shadow: 0 0 0 0.3rem rgba(79, 181, 229, 0.25);
  outline: none;
}

/* 郵便番号は短め（1欄） */
.p-contact-form__input--zip {
  max-width: 22rem;
}

/* ラジオ（お問い合わせ種別） */
.p-contact-form__field--radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem 3.2rem;
}

.p-contact-form__radio {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  /* 未選択：カスタムの枠線つき丸（最初の見た目はこのまま固定） */
}
.p-contact-form__radio input {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background-color: #fff;
  border: 1.5px solid #cfcfcf;
  border-radius: 50%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  cursor: pointer;
}
.p-contact-form__radio {
  /* 選択時：ブラウザ標準の表示に戻す（フルにカスタムするとブラウザ差異の調整が要るため。参考サイトと同じ挙動） */
}
.p-contact-form__radio input:checked {
  -moz-appearance: auto;
       appearance: auto;
  -webkit-appearance: auto;
}
.p-contact-form__radio input:focus-visible {
  outline: 2px solid #4fb5e5;
  outline-offset: 2px;
}

.p-contact-form__radio-text {
  color: #333;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__radio-text {
    font-size: 1.4rem;
  }
}

/* 個人情報の取り扱い注記（スクロールボックスの見出しバー） */
.p-contact-form__policy-title {
  color: #fff;
  font-size: 1.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: center;
  line-height: 1.8;
  margin-top: 5.6rem;
  background-color: #202e54;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1.4rem 1.6rem;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__policy-title {
    font-size: 1.4rem;
    line-height: 1.7;
    text-align: left;
    padding: 1.2rem 1.6rem;
    margin-top: 4rem;
  }
}

/* お客さま情報保護方針：少し見せてスクロールできるボックス（親 .p-contact-form__policy 内の本体） */
.p-contact-form__policy-content {
  color: #333;
  font-size: 1.5rem;
  background-color: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 0.4rem;
  height: 28rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2.4rem;
}
.p-contact-form__policy-content:focus-visible {
  outline: 2px solid #4fb5e5;
  outline-offset: 2px;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__policy-content {
    font-size: 1.2rem;
    height: 24rem;
    padding: 1.6rem;
  }
}

.p-contact-form__policy-term {
  color: #202e54;
  font-size: 1.6rem;
  font-weight: 700;
  margin-top: 2rem;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__policy-term {
    font-size: 1.4rem;
  }
}

.p-contact-form__policy-desc {
  margin: 0.2rem 0 0;
}

.p-contact-form__policy-bullets {
  list-style: disc;
  padding-left: 2rem;
  margin: 0.2rem 0 0;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__policy-bullets {
    padding-left: 1.4rem;
  }
}

/* 利用目的への同意文（送信ボタンの上） */
.p-contact-form__consent {
  color: #333;
  font-size: 1.5rem;
  text-align: center;
  margin-top: 1.6rem;
}
@media (max-width: 40rem) {
  .p-contact-form__consent {
    font-size: 1.3rem;
    text-align: left;
  }
}

/* 送信ボタン（プライマリ＝ネイビー。白文字でコントラスト確保） */
.p-contact-form__action {
  text-align: center;
  margin-top: 4.8rem;
}
@media (max-width: 47.9375rem) {
  .p-contact-form__action {
    margin-top: 3.6rem;
  }
}

.p-contact-form__submit {
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  background-color: #202e54;
  border: none;
  border-radius: 0.4rem;
  width: 32rem;
  max-width: 100%;
  min-height: 6.4rem;
  padding: 1.6rem 2rem;
  cursor: pointer;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
@media (hover: hover) {
  .p-contact-form__submit:hover {
    opacity: 0.85;
  }
}
.p-contact-form__submit:focus-visible {
  outline: 2px solid #4fb5e5;
  outline-offset: 2px;
}
@media (max-width: 40rem) {
  .p-contact-form__submit {
    font-size: 1.6rem;
    width: 100%;
    min-height: 5.6rem;
  }
}

/*------------------------------------------------------------------------------
  WordPress（Contact Form 7）調整用
------------------------------------------------------------------------------*/
.p-contact-form {
  /* お問い合わせ種別（CF7ラジオ） */
}
.p-contact-form .p-contact-form__field--radio {
  /* CF7のラッパーを通し、各選択肢を横並びに */
}
.p-contact-form .p-contact-form__field--radio .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.p-contact-form .p-contact-form__field--radio .wpcf7-radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem 3.2rem;
}
.p-contact-form .p-contact-form__field--radio .wpcf7-list-item {
  margin: 0;
}
.p-contact-form .p-contact-form__field--radio .wpcf7-list-item label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  margin: 0;
  cursor: pointer;
}
.p-contact-form .p-contact-form__field--radio {
  /* 未選択：reset で消えた丸を作り直す（静的版 .p-contact-form__radio input と同じ） */
}
.p-contact-form .p-contact-form__field--radio input[type=radio] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 2rem;
  height: 2rem;
  margin: 0;
  background-color: #fff;
  border: 1.5px solid #cfcfcf;
  border-radius: 50%;
  cursor: pointer;
}
.p-contact-form .p-contact-form__field--radio {
  /* 選択時：ブラウザ標準の丸に戻す（静的版と同じ挙動） */
}
.p-contact-form .p-contact-form__field--radio input[type=radio]:checked {
  -moz-appearance: auto;
       appearance: auto;
  -webkit-appearance: auto;
}
.p-contact-form .p-contact-form__field--radio input[type=radio]:focus-visible {
  outline: 2px solid #4fb5e5;
  outline-offset: 2px;
}
.p-contact-form .p-contact-form__field--radio {
  /* 選択肢テキスト（静的版 .p-contact-form__radio-text 相当） */
}
.p-contact-form .p-contact-form__field--radio .wpcf7-list-item-label {
  color: #333;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
@media (max-width: 47.9375rem) {
  .p-contact-form .p-contact-form__field--radio .wpcf7-list-item-label {
    font-size: 1.4rem;
  }
}

/*------------------------------------------------------------------------------
  p-sidebar（一覧／記事ページのサイドバー：過去記事・カテゴリー）
  ※左の境界線は付けない方針（FH では border-left を引いていたが富綜では無し）
------------------------------------------------------------------------------*/
.p-sidebar {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* セクション（過去記事・カテゴリー） */
.p-sidebar__section:not(:last-child) {
  margin-bottom: 5.6rem;
}
@media (max-width: 63.937rem) {
  .p-sidebar__section:not(:last-child) {
    margin-bottom: 4.8rem;
  }
}

/* 見出し（en＝アクセント色の英字・小／ja＝プライマリ。c-title と同じ作法） */
.p-sidebar__heading {
  margin-bottom: 2.4rem;
}

.p-sidebar__heading-en {
  color: #4fb5e5;
  font-family: "Roboto", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.p-sidebar__heading-ja {
  color: #202e54;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  margin-top: 0.4rem;
}

/* カテゴリー等のリンクリスト */
.p-sidebar__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 0.6rem;
}

.p-sidebar__list-item {
  color: #333;
  font-size: 1.6rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  /* 行頭のアクセントドット */
}
.p-sidebar__list-item::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.6rem;
  height: 0.6rem;
  background-color: #4fb5e5;
  border-radius: 50%;
  margin-top: 1.05rem;
}
.p-sidebar__list-item a {
  color: #333;
}
@media (hover: hover) {
  .p-sidebar__list-item a:hover {
    color: #4fb5e5;
    opacity: 1;
  }
}

/*------------------------------------------------------------------------------
  p-sidebar__archive（過去記事：年で開閉 → 月リスト）
------------------------------------------------------------------------------*/
.p-sidebar__archive-year {
  color: #333;
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  border-bottom: 1px solid #EBEBEB;
  /* 開いたら矢印を反転（下向き → 上向き） */
}
.p-sidebar__archive-year[open] .p-sidebar__archive-year-label::after {
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
}

.p-sidebar__archive-year-label {
  line-height: 1.4;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1.2rem 0;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
  cursor: pointer;
  /* デフォルトの三角マーカーを消す */
}
.p-sidebar__archive-year-label::-webkit-details-marker {
  display: none;
}
@media (hover: hover) {
  .p-sidebar__archive-year-label:hover {
    opacity: 0.7;
  }
}
.p-sidebar__archive-year-label {
  /* 開閉インジケータ（く の字：border 2辺を45°回転） */
}
.p-sidebar__archive-year-label::after {
  content: "";
  border-right: 1.5px solid #202e54;
  border-bottom: 1.5px solid #202e54;
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-bottom: 0.3rem;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.p-sidebar__archive-month-list {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 0 1.2rem 1.2rem;
}
.p-sidebar__archive-month-list li {
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.04em;
}
.p-sidebar__archive-month-list li::before {
  content: "-";
  color: #4fb5e5;
  margin-right: 0.6rem;
}
.p-sidebar__archive-month-list li a {
  color: #333;
}
@media (hover: hover) {
  .p-sidebar__archive-month-list li a:hover {
    color: #4fb5e5;
    opacity: 1;
    text-decoration: underline;
  }
}

/*------------------------------------------------------------------------------
  p-single（記事詳細。l-content__main に付与）
------------------------------------------------------------------------------*/
/* 日付・カテゴリー・タイトル（日付＋ラベルが1行、タイトルは下に全幅） */
.p-single__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem 2rem;
  border-bottom: 1px solid #EBEBEB;
  padding-bottom: 2.8rem;
  margin-bottom: 4rem;
}
@media (max-width: 47.9375rem) {
  .p-single__head {
    gap: 1.2rem 1.6rem;
    padding-bottom: 2.4rem;
    margin-bottom: 3rem;
  }
}

.p-single__date {
  color: #4f4f4f;
  font-family: "Roboto", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.05em;
}
@media (max-width: 47.9375rem) {
  .p-single__date {
    font-size: 1.6rem;
  }
}

.p-single__label-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8rem 1.2rem;
}

/* 記事ページのラベルは一覧カード（c-label 基準）より少し大きめに */
.p-single__label-wrap .c-label {
  font-size: 1.6rem;
  padding: 0.6rem 1.8rem;
}
@media (max-width: 47.9375rem) {
  .p-single__label-wrap .c-label {
    font-size: 1.4rem;
    padding: 0.4rem 1.4rem;
  }
}

.p-single__title {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 100%;
          flex: 0 1 100%;
  color: #202e54;
  font-size: 3.4rem;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
@media (max-width: 63.937rem) {
  .p-single__title {
    font-size: 3rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-single__title {
    font-size: 2.2rem;
    letter-spacing: 0.05em;
  }
}

/* 本文（c-prose）。下のボタンとの間隔をここで確保 */
.p-single__contents {
  margin-bottom: 6.4rem;
}
@media (max-width: 47.9375rem) {
  .p-single__contents {
    margin-bottom: 4.8rem;
  }
}

/* 一覧へ戻るボタン（中央寄せ） */
.p-single__btn {
  text-align: center;
}

/*------------------------------------------------------------------------------
  p-service（事業内容ページ）
------------------------------------------------------------------------------*/
/* 導入リード（中央寄せ） */
.p-service__lead {
  color: #202e54;
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.9;
  letter-spacing: 0.1em;
  text-align: center;
  margin-top: -3.2rem;
  margin-bottom: 12rem;
}
@media (max-width: 56.25rem) {
  .p-service__lead {
    font-size: 1.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-service__lead {
    font-size: 1.6rem;
    text-align: justify;
    max-width: 50rem;
    margin-inline: auto;
    margin-bottom: 6.4rem;
  }
}
@media (max-width: 40rem) {
  .p-service__lead {
    font-size: 1.5rem;
    line-height: 1.8;
    letter-spacing: 0.05em;
  }
}

.p-service__media-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 12rem 0;
}
@media (max-width: 47.9375rem) {
  .p-service__media-wrap {
    max-width: 50rem;
    gap: 6.4rem 0;
    margin-inline: auto;
  }
}

.p-service__media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 47.9375rem) {
  .p-service__media {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
}

.p-service__text-wrap {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 48%;
          flex: 0 1 48%;
}
@media (max-width: 47.9375rem) {
  .p-service__text-wrap {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%;
  }
}

/* 番号＋英語ラベル（en は CSS で大文字化） */
.p-service__label {
  color: #4fb5e5;
  font-family: "Roboto", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.1em;
}
.p-service__label span {
  text-transform: uppercase;
}
@media (max-width: 47.9375rem) {
  .p-service__label {
    font-size: 1.3rem;
  }
}

/* タイトル：下線（::before）を画像側まで延長する */
.p-service__title {
  color: #202e54;
  font-size: 3.4rem;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.1em;
  position: relative;
  padding-bottom: 2rem;
  margin-top: 0.4rem;
}
@media (max-width: 56.25rem) {
  .p-service__title {
    font-size: 2.6rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-service__title {
    font-size: 2.3rem;
    padding-bottom: 1.2rem;
    margin-top: 0.2rem;
  }
}
.p-service__title {
  /* 下線：斜めにカットした画像のエッジまで伸ばす。余剰は画像側(z-index)で隠れる（SPは100%） */
}
.p-service__title::before {
  content: "";
  background-color: #4fb5e5;
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(100% + 12.5rem);
  height: 1px;
}
@media (max-width: 47.9375rem) {
  .p-service__title::before {
    width: 100%;
  }
}

/* 黄色マーカーのサブ見出し */
.p-service__catch {
  margin-top: 2.4rem;
}
@media (max-width: 47.9375rem) {
  .p-service__catch {
    margin-top: 1.6rem;
  }
}
.p-service__catch span {
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: 0.1em;
}
@media (max-width: 56.25rem) {
  .p-service__catch span {
    font-size: 1.7rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-service__catch span {
    font-size: 1.55rem;
    letter-spacing: 0.05em;
  }
}

.p-service__text {
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: justify;
  margin-top: 2rem;
}
@media (max-width: 56.25rem) {
  .p-service__text {
    font-size: 1.35rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-service__text {
    font-size: 1.25rem;
    line-height: 1.8;
    margin-top: 1.2rem;
  }
}

.p-service__img {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 46%;
          flex: 0 1 46%;
  position: relative;
  z-index: 1;
}
@media (max-width: 56.25rem) {
  .p-service__img {
    -ms-flex-item-align: start;
        align-self: flex-start;
  }
}
@media (max-width: 47.9375rem) {
  .p-service__img {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
    margin-bottom: 1.4rem;
  }
}
.p-service__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  aspect-ratio: 3/2;
  /* 斜めカット：左上を右へずらして開始 → 左下(0%)まで（p-mv の画像と同じ形） */
  clip-path: polygon(12.6% 0, 100% 0, 100% 100%, 0 100%);
  /* スマホ（画像→テキストの縦並び）：斜めの区切りを左辺から「画像の下辺」へ移す。
     左下→右下にかけて斜めにカット（下辺：左 85% → 右 100% で下がる） */
}
@media (max-width: 47.9375rem) {
  .p-service__img img {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 90%);
  }
}

/*------------------------------------------------------------------------------
  p-recruit-mv（採用ページ FV）
  ・背景は常に画面幅いっぱい（background-image）
  ・中身は 172rem(1720px) で頭打ち＋中央寄せ（p-mv / p-home-recruit と同じ作法）
  ・テキスト左／斜めマスクの写真2枚を右に flex で横並び
------------------------------------------------------------------------------*/
.p-recruit-mv {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

/* 背景：常に画面幅いっぱい */
.p-recruit-mv__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("../img/bg_recruit_mv.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

/* ステージ：1720pxで頭打ち＋中央寄せ。固定ヘッダー分を上に確保 */
.p-recruit-mv__inner {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-width: 172rem;
  min-height: clamp(40rem, 49.6vw, 71.5rem);
  margin-inline: auto;
  padding-top: var(--header-h);
}
@media (max-width: 47.9375rem) {
  .p-recruit-mv__inner {
    min-height: 0;
    padding-top: calc(var(--header-h) + 2.8rem);
    padding-bottom: 5.6rem;
  }
}

/* 中身：左テキストを c-inner--lg の左端に揃え、右の写真はステージ右端へ接地 */
.p-recruit-mv__layout {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: clamp(2rem, 3vw, 6rem);
  padding-left: max(2rem, (100% - 124rem) / 2 + 2rem);
}
@media (max-width: 47.9375rem) {
  .p-recruit-mv__layout {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 2rem;
    padding-left: 0;
  }
}

/*------------------------------------------------------------------------------
  左：テキスト
------------------------------------------------------------------------------*/
.p-recruit-mv__body {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 60rem;
          flex: 0 1 60rem;
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
  padding-bottom: 4rem;
  /* 767px以下：箱を解除（display:contents）して子（__text / __btn）を
     __layout の直接の子に昇格させる。これで画像(__gallery)をテキストとボタンの
     “間”に order で割り込ませられる。デスクトップは従来どおり（テキスト＋ボタンの左カラム） */
}
@media (max-width: 47.9375rem) {
  .p-recruit-mv__body {
    display: contents;
  }
}

/* テキスト群（装飾SVG・見出し・リードのまとまり） */
@media (max-width: 47.9375rem) {
  .p-recruit-mv__text {
    padding-inline: 2rem;
  }
}

/* Recruit Site の手書き装飾（書き出し済み SVG。回転は SVG に含む） */
.p-recruit-mv__deco {
  width: clamp(22rem, 25vw, 37rem);
  margin-bottom: -4.2rem;
  margin-left: -3rem;
}
@media (max-width: 56.25rem) {
  .p-recruit-mv__deco {
    width: 20rem;
    margin-bottom: -3rem;
    margin-left: -2rem;
  }
}
@media (max-width: 40rem) {
  .p-recruit-mv__deco {
    width: 16rem;
    margin-left: -1.6rem;
    margin-bottom: -2.4rem;
  }
}
.p-recruit-mv__deco img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-recruit-mv__title {
  color: #202e54;
  font-size: clamp(2.8rem, 3.4vw, 4.9rem);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.14em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 56.25rem) {
  .p-recruit-mv__title {
    letter-spacing: 0.1em;
  }
}
@media (max-width: 40rem) {
  .p-recruit-mv__title {
    font-size: clamp(2.65rem, 3.2vw, 4rem);
    letter-spacing: 0.14em;
  }
}

/* 「未経験」だけ一回り大きく（58/49） */
.p-recruit-mv__title-em {
  font-size: 1.18em;
}

/* 「未」だけアクセント色 */
.p-recruit-mv__title-accent {
  color: #4fb5e5;
}

.p-recruit-mv__lead {
  color: #202e54;
  font-size: clamp(1.5rem, 1.4vw, 2rem);
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.2em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  margin-top: 1.2rem;
}
@media (max-width: 40rem) {
  .p-recruit-mv__lead {
    font-size: 1.3rem;
    letter-spacing: 0.1em;
    margin-top: 0.8rem;
  }
}

/* 相談・応募ボタン（黄色グラデ） */
/* 黄色ボタンの見た目は c-btn--lg（component）に移譲。ここは MV 内の余白だけ */
.p-recruit-mv__btn {
  margin-top: 4rem;
}
@media (max-width: 56.25rem) {
  .p-recruit-mv__btn {
    margin-top: 2.4rem;
  }
}
.p-recruit-mv__btn {
  /* 767px以下：テキスト群→画像→ボタンの3段。ボタンは画像の下に独立配置
     （__text=0 → __gallery=1 → __btn=2 の順に並ぶ） */
}
@media (max-width: 47.9375rem) {
  .p-recruit-mv__btn {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    width: auto;
    -ms-flex-item-align: stretch;
        -ms-grid-row-align: stretch;
        align-self: stretch;
    margin-top: 0.8rem;
    margin-inline: 2rem;
  }
}

/*------------------------------------------------------------------------------
  右：写真2枚（斜めマスク）
------------------------------------------------------------------------------*/
.p-recruit-mv__gallery {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 0;
  width: clamp(40rem, 47vw, 67.2rem);
}
@media (max-width: 47.9375rem) {
  .p-recruit-mv__gallery {
    width: 100%;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding-left: 1.6rem;
  }
}

.p-recruit-mv__photo {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  aspect-ratio: 335/607;
  background-color: #F4F4F4;
  /* 平行四辺形（上辺が右に寄り、左右の辺が下にいくほど左へ傾く。p-home-recruit と同じ言語） */
  clip-path: polygon(7.94% 0, 100% 0, 92.06% 100%, 0 100%);
}
@media (max-width: 47.9375rem) {
  .p-recruit-mv__photo {
    aspect-ratio: 3/4.6;
    clip-path: polygon(9% 0, 100% 0, 91% 100%, 0 100%);
  }
}

/* 1番右だけ右辺を垂直にしてステージ右端へきれいに接地 */
.p-recruit-mv__photo--last {
  clip-path: polygon(7.94% 0, 100% 0, 100% 100%, 0 100%);
}
@media (max-width: 47.9375rem) {
  .p-recruit-mv__photo--last {
    clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
  }
}

.p-recruit-mv__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/*------------------------------------------------------------------------------
  p-recruit-intro（RECRUIT 見出し＋15秒コンセプト動画）
------------------------------------------------------------------------------*/
.p-recruit-intro__movie {
  max-width: 90rem;
  margin-top: 5.6rem;
  margin-inline: auto;
}
@media (max-width: 47.9375rem) {
  .p-recruit-intro__movie {
    margin-top: 2.8rem;
  }
}

/* ＼ まずは15秒動画をご覧ください ／ */
.p-recruit-intro__movie-lead {
  color: #202e54;
  font-size: clamp(1.8rem, 3.4vw, 2.8rem);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.1em;
  text-align: center;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 40rem) {
  .p-recruit-intro__movie-lead {
    letter-spacing: 0.04em;
  }
}

/* 動画フレーム（Figma 900×514 ≒ 16:9。object-fit:cover で全面表示） */
.p-recruit-intro__movie-frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 900/514;
  background-color: #F4F4F4;
  margin-top: 2.6rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-intro__movie-frame {
    margin-top: 1.2rem;
  }
}

.p-recruit-intro__movie-media {
  background-color: #000;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*------------------------------------------------------------------------------
  p-recruit-point（安心ポイント／3つの安心）
------------------------------------------------------------------------------*/
.p-recruit-point {
  position: relative;
  margin-bottom: 24rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-point {
    margin-bottom: 7.2rem;
  }
}

.p-recruit-point__bg {
  top: -50rem;
  height: calc(100% + 70rem);
}
@media (max-width: 47.9375rem) {
  .p-recruit-point__bg {
    top: -16rem;
    height: calc(100% + 20rem);
  }
}

.p-recruit-point__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: minmax(0, 1fr) 3.3rem minmax(0, 1fr) 3.3rem minmax(0, 1fr);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3.3rem;
  margin-top: 5.6rem;
}
@media (max-width: 63.937rem) {
  .p-recruit-point__list {
    gap: 2.2rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-point__list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    max-width: 40rem;
    margin-top: 3.2rem;
    margin-right: auto;
    margin-left: auto;
  }
}

.p-recruit-point-card {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 39.7rem;
  padding: 3.6rem 2.4rem 3.2rem;
  text-align: center;
  background-color: #fff;
  border-radius: 0.1rem;
  -webkit-box-shadow: 0 0 3rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 3rem rgba(0, 0, 0, 0.1);
}
@media (max-width: 71.25rem) {
  .p-recruit-point-card {
    padding: 3.6rem 1.6rem 3.2rem;
  }
}
@media (max-width: 56.25rem) {
  .p-recruit-point-card {
    min-height: 0;
    padding: 3.2rem 1.6rem 2.8rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-point-card {
    padding: 2rem;
  }
}

/* PC：2・3枚目の出現を少し遅らせる（p-home-reason と同じ時間差） */
@media (min-width: 48rem) {
  .p-recruit-point-card:nth-child(2) {
    -webkit-transition-delay: 0.15s;
            transition-delay: 0.15s;
  }
  .p-recruit-point-card:nth-child(3) {
    -webkit-transition-delay: 0.3s;
            transition-delay: 0.3s;
  }
}
/* 番号リボン（左上。アクセントのグラデ＋平行四辺形。p-home-reason と共通言語） */
.p-recruit-point-card__num {
  position: absolute;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 8.8rem;
  height: 5.7rem;
  padding-left: 2.1rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 2.9rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.01em;
  background: linear-gradient(118deg, #4FB5E5 0.92%, #49AFDF 85.22%);
  clip-path: polygon(0 0, 100% 0, 76% 100%, 0 100%);
}
@media (max-width: 56.25rem) {
  .p-recruit-point-card__num {
    width: 7.2rem;
    height: 4.8rem;
    padding-left: 1.8rem;
    font-size: 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-point-card__num {
    width: 6.4rem;
    height: 4.2rem;
    font-size: 2rem;
  }
}

/* 円形アイコン（円の背景はアイコン画像に含む想定。差し替え用の箱だけ用意） */
.p-recruit-point-card__icon {
  width: 14.5rem;
  height: 14.5rem;
  margin: 0 auto 1.9rem;
}
@media (max-width: 56.25rem) {
  .p-recruit-point-card__icon {
    width: 11rem;
    height: 11rem;
    margin-bottom: 1.6rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-point-card__icon {
    width: 8rem;
    height: 8rem;
    margin-bottom: 1.2rem;
  }
}
.p-recruit-point-card__icon img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

/* 見出し（小ラベル＋大アクセント。2段） */
.p-recruit-point-card__head {
  color: #202e54;
  font-weight: 700;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}

.p-recruit-point-card__label {
  display: block;
  font-size: 2.4rem;
  line-height: 1.5;
  letter-spacing: 0.12em;
}
@media (max-width: 56.25rem) {
  .p-recruit-point-card__label {
    font-size: 1.8rem;
    letter-spacing: 0.08em;
  }
}

.p-recruit-point-card__strong {
  display: block;
  color: #4fb5e5;
  font-size: 3.4rem;
  line-height: 1.4;
  letter-spacing: 0.12em;
}
@media (max-width: 56.25rem) {
  .p-recruit-point-card__strong {
    font-size: 2.6rem;
    letter-spacing: 0.08em;
  }
}

/* 説明文 */
.p-recruit-point-card__desc {
  color: #202e54;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.1em;
  margin-top: 2.2rem;
}
@media (max-width: 71.25rem) {
  .p-recruit-point-card__desc {
    font-size: 1.7rem;
    letter-spacing: 0.05em;
  }
}
@media (max-width: 56.25rem) {
  .p-recruit-point-card__desc {
    font-size: 1.3rem;
    letter-spacing: 0;
    margin-top: 0.6rem;
  }
}

/*------------------------------------------------------------------------------
  p-recruit-people（ここで働く人たち／PEOPLE）
------------------------------------------------------------------------------*/
.p-recruit-people__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 4rem;
  margin-top: 6.4rem;
}
@media (max-width: 56.25rem) {
  .p-recruit-people__list {
    gap: 2.4rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-people__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 4rem;
    margin-top: 3.2rem;
  }
}

.p-recruit-people__item {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  max-width: 37rem;
  clip-path: inset(-0.8rem -16% 100% -16%);
}
@media (max-width: 47.9375rem) {
  .p-recruit-people__item {
    width: 100%;
    max-width: 34rem;
  }
}
.p-recruit-people__item {
  /* 出現アニメ：c-service-card と同じ clip-path ワイプ。PC では2・3枚目を少し遅延 */
}
.p-recruit-people__item.is-active {
  -webkit-animation: serviceReveal 0.55s cubic-bezier(0.8, 0, 0.2, 1) forwards;
          animation: serviceReveal 0.55s cubic-bezier(0.8, 0, 0.2, 1) forwards;
}
@media (min-width: 48rem) {
  .p-recruit-people__item.is-active:nth-child(2) {
    -webkit-animation-delay: 0.13s;
            animation-delay: 0.13s;
  }
  .p-recruit-people__item.is-active:nth-child(3) {
    -webkit-animation-delay: 0.26s;
            animation-delay: 0.26s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-recruit-people__item, .p-recruit-people__item.is-active {
    clip-path: none;
    -webkit-animation: none;
            animation: none;
  }
}

/* PC：2・3枚目を段差で下げる（Figma の階段状レイアウト） */
@media (min-width: 48rem) {
  .p-recruit-people__item:nth-child(2) {
    margin-top: 4rem;
  }
  .p-recruit-people__item:nth-child(3) {
    margin-top: 8rem;
  }
}
.p-recruit-people-card {
  display: block;
  color: #333;
}
@media (hover: hover) {
  .p-recruit-people-card:hover {
    opacity: 1;
  }
  .p-recruit-people-card:hover .p-recruit-people-card__photo img {
    -webkit-transform: scale(1.04);
            transform: scale(1.04);
  }
  .p-recruit-people-card:hover .p-recruit-people-card__catch-arrow {
    -webkit-transform: translateX(0.4rem);
            transform: translateX(0.4rem);
  }
}

/* 写真（縦長。斜め2トーンの角飾り＋名前リボン） */
.p-recruit-people-card__photo {
  position: relative;
  overflow: hidden;
  aspect-ratio: 34/45;
  background-color: #F4F4F4;
}
.p-recruit-people-card__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
}

/* 角飾り：Figma の斜め2本バーを左上・右下に再現。1コーナー＝濃い実線＋淡い半透明の2本。
   Figma は 117×335 の矩形を rotate(30deg)。バーの中心をコーナーに置き、外側半分は写真の overflow が切る。
   サイズ・位置は写真に対する % で持たせ、カードの拡縮に追従させる（バー幅33%=117/353・高71%=335/469）。
   2本は ::before（淡・内側）と ::after（濃・コーナー側）で表現し、淡を内側へ少しずらす。 */
.p-recruit-people-card__deco {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.p-recruit-people-card__deco::before, .p-recruit-people-card__deco::after {
  content: "";
  position: absolute;
  width: 30%;
  height: 67%;
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
}
.p-recruit-people-card__deco {
  /* 淡：accent-color(#4FB5E5) を 41% 不透明で */
}
.p-recruit-people-card__deco::before {
  background-color: rgba(79, 181, 229, 0.41);
}
.p-recruit-people-card__deco {
  /* 濃：accent-dark(#47ABDA) */
}
.p-recruit-people-card__deco::after {
  background-color: #47ABDA;
}

/* 左上：バー中心を左上コーナー(0,0)へ。淡は内側（右下）へ約2%ずらす */
.p-recruit-people-card__deco--tl::after {
  top: -35.5%;
  left: -16.5%;
}
.p-recruit-people-card__deco--tl::before {
  top: -33.5%;
  left: -14.5%;
}

/* 右下：バー中心を右下コーナーへ。淡は内側（左上）へ約2%ずらす */
.p-recruit-people-card__deco--br::after {
  right: -16.5%;
  bottom: -35.5%;
}
.p-recruit-people-card__deco--br::before {
  right: -14.5%;
  bottom: -33.5%;
}

/* 名前リボン（左下。アクセント地・白文字・右端スラント） */
.p-recruit-people-card__name {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  background: linear-gradient(118deg, #40A8D9 0.92%, #2792C5 85.22%);
  padding: 0.6rem 2.6rem 0.6rem 1.6rem;
  clip-path: polygon(0 0, 100% 0, calc(100% - 1.2rem) 100%, 0 100%);
}
.p-recruit-people-card__name small {
  font-size: 1.4rem;
  font-weight: 700;
  margin-left: 0.2rem;
}

/* キャッチ＋矢印丸 */
.p-recruit-people-card__catch {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.6rem;
  margin-top: 2rem;
}

.p-recruit-people-card__catch-text {
  color: #333;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.12em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 71.25rem) {
  .p-recruit-people-card__catch-text {
    font-size: 1.8rem;
    letter-spacing: 0.08em;
  }
}
@media (max-width: 56.25rem) {
  .p-recruit-people-card__catch-text {
    font-size: 1.7rem;
    letter-spacing: 0.06em;
  }
}

/* 矢印丸：c-service-card と同じく画像（アクセント丸＋白矢印）で表示 */
.p-recruit-people-card__catch-arrow {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 3.3rem;
  height: 3.3rem;
  background: url("../img/icon_arrowR_white.svg") center/contain no-repeat;
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}

/*------------------------------------------------------------------------------
  p-recruit-people-modal（人物紹介モーダルの中身。外殻は c-modal）
------------------------------------------------------------------------------*/
.p-recruit-people-modal__inner {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.p-recruit-people-modal__img {
  aspect-ratio: 16/9;
  background-color: #F4F4F4;
}
.p-recruit-people-modal__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  -o-object-position: center 10%;
     object-position: center 10%;
}

.p-recruit-people-modal__body {
  padding: 3.2rem 4rem 4rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-people-modal__body {
    padding: 2.4rem 2rem 3.2rem;
  }
}

.p-recruit-people-modal__role {
  color: #47ABDA;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.p-recruit-people-modal__name {
  color: #202e54;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-top: 0.4rem;
}
.p-recruit-people-modal__name small {
  font-size: 1.6rem;
  font-weight: 700;
  margin-left: 0.4rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-people-modal__name {
    font-size: 2.2rem;
  }
}

.p-recruit-people-modal__lead {
  color: #202e54;
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.04em;
  margin-top: 1.6rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-people-modal__lead {
    font-size: 1.6rem;
  }
}

.p-recruit-people-modal__faq {
  margin-top: 2.4rem;
}

.p-recruit-people-modal__faq-item {
  padding: 2rem 0;
  border-top: 1px solid #EBEBEB;
}
.p-recruit-people-modal__faq-item:last-child {
  border-bottom: 1px solid #EBEBEB;
}

.p-recruit-people-modal__faq-q {
  position: relative;
  color: #202e54;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  padding-left: 3rem;
}
.p-recruit-people-modal__faq-q::before {
  content: "Q";
  position: absolute;
  top: 0.4rem;
  left: 0;
  color: #4fb5e5;
  font-family: "Roboto", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.p-recruit-people-modal__faq-a {
  position: relative;
  color: #333;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
  padding-left: 3rem;
  margin-top: 0.8rem;
}
.p-recruit-people-modal__faq-a::before {
  content: "A";
  position: absolute;
  top: 0.4rem;
  left: 0;
  color: #47ABDA;
  font-family: "Roboto", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

/*------------------------------------------------------------------------------
  p-recruit-work（どんな仕事？／WHAT WE DO）
------------------------------------------------------------------------------*/
.p-recruit-work {
  position: relative;
  padding-top: 22rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-work {
    padding-top: 8rem;
    padding-bottom: 12rem;
  }
  .p-recruit-work .c-title__en {
    font-size: 4.6rem;
    letter-spacing: 0.05em;
  }
}

.p-recruit-work__bg {
  top: -10rem;
  height: calc(100% + 40rem);
}
@media (max-width: 47.9375rem) {
  .p-recruit-work__bg {
    top: -4rem;
    height: calc(100% + 30rem);
  }
}

.p-recruit-work__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 3.2rem 1fr 3.2rem 1fr 3.2rem 1fr 3.2rem 1fr 3.2rem 1fr;
  grid-template-columns: repeat(6, 1fr);
  gap: 4rem 3.2rem;
  margin-top: 6.4rem;
}
@media (max-width: 63.937rem) {
  .p-recruit-work__list {
    -ms-grid-columns: minmax(0, 1fr) 2.4rem minmax(0, 1fr);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3.4rem 2.4rem;
  }
}
@media (max-width: 40rem) {
  .p-recruit-work__list {
    -ms-grid-columns: 1fr;
    grid-template-columns: repeat(1, 1fr);
    gap: 3.2rem;
    margin-top: 3.2rem;
  }
}
.p-recruit-work__list .c-service-card {
  -ms-grid-column-span: 2;
  grid-column: span 2;
}
.p-recruit-work__list .c-service-card:nth-child(4) {
  -ms-grid-column: 2;
  -ms-grid-column-span: 2;
  grid-column: 2/span 2;
}
.p-recruit-work__list .c-service-card:nth-child(5) {
  -ms-grid-column: 4;
  -ms-grid-column-span: 2;
  grid-column: 4/span 2;
}
@media (max-width: 63.937rem) {
  .p-recruit-work__list .c-service-card {
    grid-column: auto;
  }
  .p-recruit-work__list .c-service-card:nth-child(4), .p-recruit-work__list .c-service-card:nth-child(5) {
    grid-column: auto;
  }
}
.p-recruit-work__list .c-service-card__body {
  background-color: #fff;
}
.p-recruit-work__list .c-service-card__body::before {
  background-color: #fff;
}

/*------------------------------------------------------------------------------
  p-recruit-benefit（働きやすさ／BENEFITS）
  ・primary のナビー帯に白カード。列＝PC/タブレット4列 → SP2列。文字は clamp で漸減（タブレットの折返しを抑える）
  ・カードの黄色い円は画像でなく擬似要素（奇数=右上／偶数=左下）
  ・イラストは差し替え前提。幅・高さを固定せず、書き出したSVG（illust_benefit1.svg…）の実寸で表示
------------------------------------------------------------------------------*/
.p-recruit-benefit {
  position: relative;
  isolation: isolate;
  padding-top: 16rem;
  padding-bottom: 14.4rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-benefit {
    padding-top: 3.2rem;
    padding-bottom: 7.2rem;
  }
}

/* accent の斜め帯（上辺だけ斜め＝右下がり／下辺はフラットで下のCTAへ繋ぐ）。角度・位置はここで指定 */
.p-recruit-benefit__bg {
  --slant-top: 9vw;
  --slant-bottom: 0vw;
  top: -6rem;
  height: calc(100% + 6rem);
}

/* 見出しは c-title を流用（c-title--inline c-title--light）。白＋頭文字黄色は _title.scss の --light が担当 */
/* カード一覧：4列 → SP 2列 */
.p-recruit-benefit__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: minmax(0, 1fr) 1.6rem minmax(0, 1fr) 1.6rem minmax(0, 1fr) 1.6rem minmax(0, 1fr);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.6rem;
  list-style: none;
  padding: 0;
  margin: 4.8rem 0 0;
}
@media (max-width: 47.9375rem) {
  .p-recruit-benefit__list {
    -ms-grid-columns: minmax(0, 1fr) 1.2rem minmax(0, 1fr);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
    margin-top: 3.2rem;
  }
}

/* カード本体：白・角丸。タイトル(上)／イラスト(中)／説明(下)を space-between で配置 */
.p-recruit-benefit-card {
  background-color: #fff;
  border-radius: 0.2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 26.4rem;
  overflow: hidden;
  padding: 2.8rem 1.6rem 2.6rem;
}
@media (max-width: 63.937rem) {
  .p-recruit-benefit-card {
    min-height: 22rem;
    padding: 2.4rem 1.2rem 2.2rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-benefit-card {
    min-height: 21rem;
    padding: 2.6rem 1.4rem 2.4rem;
  }
}

.p-recruit-benefit-card__title {
  color: #202e54;
  font-size: clamp(1.5rem, 0.9rem + 1.05vw, 2.2rem);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: center;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}

/* イラスト：書き出したSVGの実寸で表示（幅・高さは固定しない）。背面に黄色い円 */
.p-recruit-benefit-card__illust {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-width: 100%;
  margin-block: 1.4rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-benefit-card__illust {
    -webkit-transform: scale(0.85);
            transform: scale(0.85);
  }
}
.p-recruit-benefit-card__illust {
  /* 黄色い円（擬似要素）。イラストの背面に敷く */
}
.p-recruit-benefit-card__illust::before {
  content: "";
  background-color: rgba(253, 239, 7, 0.4);
  border-radius: 50%;
  position: absolute;
  z-index: 0;
  width: 5rem;
  height: 5rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-benefit-card__illust::before {
    width: 4rem;
    height: 4rem;
  }
}
.p-recruit-benefit-card__illust img {
  position: relative;
  z-index: 1;
  display: block;
  max-width: 100%;
  height: auto;
}

/* 奇数カード＝円を右上 */
.p-recruit-benefit-card:nth-child(odd) .p-recruit-benefit-card__illust::before {
  top: -1.2rem;
  right: -1.6rem;
}

/* 偶数カード＝円を左下 */
.p-recruit-benefit-card:nth-child(even) .p-recruit-benefit-card__illust::before {
  bottom: -1.2rem;
  left: -1.6rem;
}

.p-recruit-benefit-card__desc {
  font-size: clamp(1.3rem, 0.95rem + 0.55vw, 1.7rem);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: center;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}

/*------------------------------------------------------------------------------
  p-recruit-entry（中間CTA／ENTRY）
------------------------------------------------------------------------------*/
/* バンドの土台・背景・斜め装飾は c-cta-band（component）に共通化。ここは高さだけ */
.p-recruit-entry__band {
  min-height: 47.4rem;
}
@media (max-width: 63.937rem) {
  .p-recruit-entry__band {
    min-height: 40rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry__band {
    min-height: 30rem;
  }
}

.p-recruit-entry__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 4rem;
  text-align: center;
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry__inner {
    gap: 2.4rem;
  }
}

.p-recruit-entry__en {
  color: #202e54;
  font-family: "Roboto", sans-serif;
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry__en {
    font-size: 1.8rem;
  }
}
.p-recruit-entry__en::first-letter {
  color: #4fb5e5;
}

.p-recruit-entry__title {
  color: #333;
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.12em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  margin-top: 0.6rem;
}
.p-recruit-entry__title span {
  color: #4fb5e5;
  font-size: 4.2rem;
  letter-spacing: 0.12em;
}
@media (max-width: 63.937rem) {
  .p-recruit-entry__title {
    font-size: 3rem;
  }
  .p-recruit-entry__title span {
    font-size: 3.3rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry__title {
    font-size: 2.1rem;
    margin-top: 0.2rem;
  }
  .p-recruit-entry__title span {
    font-size: 2.5rem;
    line-height: 1.5;
  }
}

@media (max-width: 47.9375rem) {
  .p-recruit-entry .c-cta-band__bar--white {
    width: 97rem;
    height: 36rem;
  }
}

/*------------------------------------------------------------------------------
  p-recruit-recruitments（募集要項）
------------------------------------------------------------------------------*/
@media (max-width: 47.9375rem) {
  .p-recruit-recruitments .c-title__en {
    font-size: 3.8rem;
    letter-spacing: 0.05em;
  }
}

.p-recruit-recruitments__body {
  margin-top: 4.8rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-recruitments__body {
    margin-top: 3.2rem;
  }
}

/* 要項テーブル（dl。左＝項目名 太字／右＝内容。枠＝#e0e0e0、行間に細罫線） */
.p-recruit-recruitments__table {
  border: 1px solid #e0e0e0;
  border-radius: 0.2rem;
  margin: 0;
}

.p-recruit-recruitments__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.p-recruit-recruitments__row:not(:last-child) {
  border-bottom: 1px solid #e0e0e0;
}
@media (max-width: 40rem) {
  .p-recruit-recruitments__row {
    display: block;
  }
}

/* 項目名（左カラム）：薄いグレー背景でテーブルの見出しらしく */
.p-recruit-recruitments__term {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  background-color: #F4F4F4;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 20.6rem;
          flex: 0 0 20.6rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2.2rem 2.4rem;
}
@media (max-width: 56.25rem) {
  .p-recruit-recruitments__term {
    -ms-flex-preferred-size: 16rem;
        flex-basis: 16rem;
  }
}
@media (max-width: 40rem) {
  .p-recruit-recruitments__term {
    font-size: 1.4rem;
    padding: 1.4rem 1.6rem;
  }
}

.p-recruit-recruitments__desc {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
  background-color: #fff;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  padding: 2.2rem 2.4rem;
}
@media (max-width: 40rem) {
  .p-recruit-recruitments__desc {
    font-size: 1.4rem;
    padding: 1.4rem 1.6rem;
  }
}

/* 求人ごとのアコーディオン。積み重ね時の縦間隔 */
.p-recruit-recruitments__accordion + .p-recruit-recruitments__accordion {
  margin-top: 1.6rem;
}

/* 募集停止中の注記（例：「正社員 ※現在募集はしておりません」）。
   見出しの職種名は変えずに添えるだけ＝募集再開時はHTMLの span を1行消すだけで戻せる。
   色は白の85%（ネイビー地に対し約10:1でWCAG AA基準を満たす） */
.p-recruit-recruitments__notice {
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.85);
  display: inline-block;
  margin-left: 1.6rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-recruitments__notice {
    font-size: 1.2rem;
    margin-left: 0.8rem;
  }
}

/* アコーディオン本文内の表は枠なし（本文側の枠に内包させ二重罫線を防ぐ） */
.c-accordion__body .p-recruit-recruitments__table {
  border: none;
  border-radius: 0;
}

/* 募集なしタブ（事務スタッフ）のお知らせパネル。表とは別デザイン（点線枠・中央寄せ） */
.p-recruit-recruitments__empty {
  text-align: center;
  background-color: #fff;
  border: 1px dashed #d5d5d5;
  border-radius: 0.6rem;
  padding: 6rem 2rem;
}
@media (max-width: 40rem) {
  .p-recruit-recruitments__empty {
    padding: 4rem 1.6rem;
  }
}

.p-recruit-recruitments__empty-title {
  color: #202e54;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media (max-width: 40rem) {
  .p-recruit-recruitments__empty-title {
    font-size: 1.5rem;
    letter-spacing: 0.02em;
  }
}

.p-recruit-recruitments__empty-text {
  font-size: 1.5rem;
  line-height: 1.8;
  margin-top: 1.2rem;
}
@media (max-width: 40rem) {
  .p-recruit-recruitments__empty-text {
    font-size: 1.2rem;
    margin-top: 0.8rem;
  }
}

/*------------------------------------------------------------------------------
  p-recruit-faq（よくある質問／FAQ）
  ・静的表示（アコーディオンなし）。Q/A の丸は ::before の CSS 円（画像不使用）
  ・参考: トクヨビ p-faq の作法を fuso トークンへ翻訳
------------------------------------------------------------------------------*/
.p-recruit-faq {
  position: relative;
}

.p-recruit-faq__bg {
  top: -30rem;
  height: calc(100% + 60rem);
}

.p-recruit-faq__list {
  margin-top: 3.8rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-faq__list {
    margin-top: 2.4rem;
  }
}

.p-recruit-faq__item {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2.4rem 0;
  border-bottom: 1px solid #e0e0e0;
}
.p-recruit-faq__item:first-child {
  padding-top: 0;
}

.p-recruit-faq__text {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
  min-height: 4.8rem;
  padding-top: 0.7rem;
  padding-left: 6.4rem;
  color: #333;
  font-size: 1.8rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
  /* Q／A の円（共通） */
}
.p-recruit-faq__text::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4.8rem;
  height: 4.8rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1;
  border-radius: 50%;
}
@media (max-width: 47.9375rem) {
  .p-recruit-faq__text {
    min-height: 4rem;
    padding-top: 0.5rem;
    padding-left: 5.4rem;
    font-size: 1.5rem;
  }
  .p-recruit-faq__text::before {
    width: 4rem;
    height: 4rem;
    font-size: 1.8rem;
  }
}

.p-recruit-faq__text--q {
  font-weight: 700;
  margin-bottom: 1.6rem;
}
.p-recruit-faq__text--q::before {
  content: "Q";
  background-color: #202e54;
}
@media (max-width: 47.9375rem) {
  .p-recruit-faq__text--q {
    margin-bottom: 1rem;
  }
}

.p-recruit-faq__text--a {
  font-weight: 500;
  text-align: justify;
}
.p-recruit-faq__text--a::before {
  content: "A";
  background-color: #47ABDA;
}

/*------------------------------------------------------------------------------
  p-recruit-entry-detail（応募・お問い合わせ／最終CTA）
  ・全幅バンド・斜め装飾は c-cta-band（component）に共通化。ここは高さと中身
------------------------------------------------------------------------------*/
.p-recruit-entry-detail__band {
  min-height: 53.7rem;
}
@media (max-width: 63.937rem) {
  .p-recruit-entry-detail__band {
    min-height: 0;
    padding-block: 8rem;
  }
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry-detail__band {
    padding-block: 5.6rem;
  }
}

.p-recruit-entry-detail__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3.3rem;
  width: 100%;
  text-align: center;
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry-detail__inner {
    gap: 2.4rem;
  }
}

.p-recruit-entry-detail__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry-detail__head {
    gap: 2rem;
  }
}

.p-recruit-entry-detail__lead {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry-detail__lead {
    gap: 0.4rem;
  }
}

.p-recruit-entry-detail__lead-main {
  color: #202e54;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.15em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry-detail__lead-main {
    font-size: 2rem;
    letter-spacing: 0.08em;
  }
}

.p-recruit-entry-detail__lead-sub {
  color: #333;
  font-size: 1.6rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
@media (max-width: 47.9375rem) {
  .p-recruit-entry-detail__lead-sub {
    font-size: 1.3rem;
  }
}

/* 電話／メール／LINE の3ボタン（PC横並び→タブレット以下は縦積み） */
.p-recruit-entry-detail__btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2.8rem;
  width: 100%;
}
@media (max-width: 63.937rem) {
  .p-recruit-entry-detail__btns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 1.6rem;
  }
}

/*------------------------------------------------------------------------------
  u-color
------------------------------------------------------------------------------*/
.u-primary-color {
  color: #202e54;
}

/*------------------------------------------------------------------------------
  u-fz
------------------------------------------------------------------------------*/
.u-fz16 {
  font-size: 1.6rem;
}

.u-fz15 {
  font-size: 1.5rem;
}

.u-fz14 {
  font-size: 1.4rem;
}

.u-fz13 {
  font-size: 1.3rem;
}

.u-fz12 {
  font-size: 1.2rem;
}

/*------------------------------------------------------------------------------
  u-fw
------------------------------------------------------------------------------*/
.u-fw-bold {
  font-weight: bold;
}

.u-fw-medium {
  font-weight: 500;
}

.u-fw-normal {
  font-weight: 400;
}

/*------------------------------------------------------------------------------
  u-text-align
------------------------------------------------------------------------------*/
.u-text-align-left {
  text-align: left;
}

.u-text-align-center {
  text-align: center;
}

.u-text-align-right {
  text-align: right;
}

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

.u-mt-space-2 {
  margin-top: 0.2rem !important;
}

.u-mt-space-3 {
  margin-top: 0.3rem !important;
}

.u-mt-space-4 {
  margin-top: 0.4rem !important;
}

.u-mt-space-3 {
  margin-top: 0.3rem !important;
}

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

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

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

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

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

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

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

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-mb-05 {
  margin-bottom: 0.4rem !important;
}

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

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

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

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

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

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

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

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

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

.u-my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.u-my-1 {
  margin-top: 0.8rem !important;
  margin-bottom: 0.8rem !important;
}

.u-my-2 {
  margin-top: 1.6rem !important;
  margin-bottom: 1.6rem !important;
}

.u-my-3 {
  margin-top: 2.4rem !important;
  margin-bottom: 2.4rem !important;
}

.u-my-4 {
  margin-top: 3.2rem !important;
  margin-bottom: 3.2rem !important;
}

.u-my-5 {
  margin-top: 4rem !important;
  margin-bottom: 4rem !important;
}

.u-my-6 {
  margin-top: 4.8rem !important;
  margin-bottom: 4.8rem !important;
}

.u-my-7 {
  margin-top: 5.6rem !important;
  margin-bottom: 5.6rem !important;
}

.u-ml-1 {
  margin-left: 0.8rem !important;
}

.u-ml-2 {
  margin-left: 1.6rem !important;
}

.u-ml-05 {
  margin-left: 0.4rem !important;
}

.u-mr-1 {
  margin-right: 0.8rem !important;
}

.u-mr-2 {
  margin-right: 1.6rem !important;
}

.u-mr-3 {
  margin-right: 2.4rem !important;
}

.u-mr-4 {
  margin-right: 3.2rem !important;
}

.u-mr-5 {
  margin-right: 4rem !important;
}

.u-m-space-4 {
  margin: 0.4rem !important;
}

.u-m-1 {
  margin: 0.8rem !important;
}

.u-m-2 {
  margin: 1.6rem !important;
}

.u-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.u-ml-auto {
  margin-left: auto !important;
}

.u-mr-auto {
  margin-right: auto !important;
}

/*------------------------------------------------------------------------------
  padding
------------------------------------------------------------------------------*/
.u-pt-0 {
  padding-top: 0 !important;
}

.u-pt-1 {
  padding-top: 0.8rem !important;
}

.u-pt-2 {
  padding-top: 1.6rem !important;
}

.u-pt-3 {
  padding-top: 2.4rem !important;
}

.u-pt-4 {
  padding-top: 3.2rem !important;
}

.u-pt-5 {
  padding-top: 4rem !important;
}

.u-pt-6 {
  padding-top: 4.8rem !important;
}

.u-pt-7 {
  padding-top: 5.6rem !important;
}

.u-pb-0 {
  padding-bottom: 0 !important;
}

.u-pb-1 {
  padding-bottom: 0.8rem !important;
}

.u-pb-2 {
  padding-bottom: 1.6rem !important;
}

.u-pb-3 {
  padding-bottom: 2.4rem !important;
}

.u-pb-4 {
  padding-bottom: 3.2rem !important;
}

.u-pb-5 {
  padding-bottom: 4rem !important;
}

.u-pb-6 {
  padding-bottom: 4.8rem !important;
}

.u-pb-7 {
  padding-bottom: 5.6rem !important;
}

.u-py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.u-py-1 {
  padding-top: 0.8rem !important;
  padding-bottom: 0.8rem !important;
}

.u-py-2 {
  padding-top: 1.6rem !important;
  padding-bottom: 1.6rem !important;
}

.u-py-3 {
  padding-top: 2.4rem !important;
  padding-bottom: 2.4rem !important;
}

.u-py-4 {
  padding-top: 3.2rem !important;
  padding-bottom: 3.2rem !important;
}

.u-py-5 {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

.u-py-6 {
  padding-top: 4.8rem !important;
  padding-bottom: 4.8rem !important;
}

.u-py-7 {
  padding-top: 5.6rem !important;
  padding-bottom: 5.6rem !important;
}

.u-pl-1 {
  padding-left: 0.8rem !important;
}

.u-pl-2 {
  padding-left: 1.6rem !important;
}

.u-pr-1 {
  padding-right: 0.8rem !important;
}

.u-pr-2 {
  padding-right: 1.6rem !important;
}

.u-p-1 {
  padding: 0.8rem !important;
}

.u-p-2 {
  padding: 1.6rem !important;
}

/*------------------------------------------------------------------------------
  u-flex
------------------------------------------------------------------------------*/
.u-flex {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
}

.u-justify-content-star {
  -webkit-box-pack: start !important;
      -ms-flex-pack: start !important;
          justify-content: start !important;
}

.u-justify-content-end {
  -webkit-box-pack: end !important;
      -ms-flex-pack: end !important;
          justify-content: end !important;
}

.u-justify-content-between {
  -webkit-box-pack: justify !important;
      -ms-flex-pack: justify !important;
          justify-content: space-between !important;
}

.u-justify-content-center {
  -webkit-box-pack: center !important;
      -ms-flex-pack: center !important;
          justify-content: center !important;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.u-align-items-start {
  -webkit-box-align: start !important;
      -ms-flex-align: start !important;
          align-items: start !important;
}

.u-align-items-flex-start {
  -ms-flex-item-align: start !important;
      align-self: flex-start !important;
}

.u-align-items-end {
  -webkit-box-align: end !important;
      -ms-flex-align: end !important;
          align-items: end !important;
}

.u-align-items-center {
  -webkit-box-align: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
}

.u-align-self-start {
  -ms-flex-item-align: start !important;
      -ms-grid-row-align: start !important;
      align-self: start !important;
}

.u-align-self-end {
  -ms-flex-item-align: end !important;
      -ms-grid-row-align: end !important;
      align-self: end !important;
}

.u-align-self-center {
  -ms-flex-item-align: center !important;
      -ms-grid-row-align: center !important;
      align-self: center !important;
}

.u-align-self-strech {
  -ms-flex-item-align: stretch !important;
      -ms-grid-row-align: stretch !important;
      align-self: stretch !important;
}

.u-flex-grow-1 {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.u-flex-shrink-0 {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
/*# sourceMappingURL=style.css.map */