@charset "UTF-8";
/*
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;
}

body {
  line-height: 1;
}

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

nav 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;
}

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

svg,
img {
  max-width: 100%;
  vertical-align: middle;
}

svg {
  overflow: visible;
}

li {
  list-style: none;
}

h1, h2, h3, h4, h5, h6, th, dt {
  font-weight: inherit;
}

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

:root {
  --sans: "Gen Interface JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", "メイリオ", "Meiryo", sans-serif;
  --serif: "游明朝", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ 明朝", serif;
  --font: var(--sans);
  --Montserrat: "Montserrat", var(--sans);
  --Black: #313131;
  --Blue: #005BAB;
  --color: #313131;
  --color-inverse: #fff;
  --color-assort: #005BAB;
  --color-accent: #005BAB;
  --header-height: 4.0625rem;
}
@media screen and (min-width: 1024px) {
  :root {
    --header-height: 6.25rem;
  }
}
:root {
  --gap: 0.75rem;
  --padding-block: 2rem;
  --padding-section: 3rem;
  --padding-section-lg: 4rem;
}
@media screen and (min-width: 1024px) {
  :root {
    --gap: 1rem;
    --padding-block: 3rem;
    --padding-section: 7rem;
    --padding-section-lg: 8.5rem;
  }
}
:root {
  --stroke-weight-1: 1px;
  --sds-size-stroke-border: 1px;
}

:root {
  --easeInSine: cubic-bezier(0.47, 0, 0.745, 0.715);
  --easeOutSine: cubic-bezier(0.39, 0.575, 0.565, 1);
  --easeInOutSine: cubic-bezier(0.445, 0.05, 0.55, 0.95);
  --easeInQuad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
  --easeOutQuad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --easeInOutQuad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --easeInCubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --easeOutCubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --easeInOutCubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --easeInQuart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
  --easeOutQuart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --easeInOutQuart: cubic-bezier(0.77, 0, 0.175, 1);
  --easeInQuint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
  --easeOutQuint: cubic-bezier(0.23, 1, 0.32, 1);
  --easeInOutQuint: cubic-bezier(0.86, 0, 0.07, 1);
  --easeInExpo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
  --easeOutExpo: cubic-bezier(0.19, 1, 0.22, 1);
  --easeInOutExpo: cubic-bezier(1, 0, 0, 1);
  --easeInBack: cubic-bezier(0.6, -0.28, 0.735, 0.045);
  --easeOutBack: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --easeInOutBack: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --duration: .5s;
  --easeTheme: var(--easeOutQuad);
  --duration-intro: .9s;
  --duration-intro-bg: 1.5s;
  --easeIntro: var(--easeOutQuart);
  --easeIntroBg: var(--easeOutQuart);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-intro: 0.01ms;
    --duration-intro-bg: 0.01ms;
  }
}
.is-section-dark,
.is-nav-open {
  color: var(--color);
  --color: #fff;
}

/*----------------------------------------------------
	c-paragraph
----------------------------------------------------*/
.c-paragraph {
  text-align: justify;
  font-size: 1rem;
  line-height: 1.8;
}

.c-paragraph-14 {
  text-align: justify;
  font-size: 0.875rem;
  line-height: 1.8;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-btn
----------------------------------------------------*/
.c-btn-arrow, .cm-section-link__item-arrow, .c-pagination__arrow, .c-card-news__arrow, .c-btn-circle-arrow__arrow, .c-card-interview__arrow, .c-btn-round-arrow__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  position: relative;
  padding: 0;
}
.c-btn-arrow svg, .cm-section-link__item-arrow svg, .c-pagination__arrow svg, .c-card-news__arrow svg, .c-btn-circle-arrow__arrow svg, .c-card-interview__arrow svg, .c-btn-round-arrow__arrow svg {
  width: 100%;
  height: auto;
  will-change: transform, opacity;
  fill: var(--color-assort);
}
.c-btn-arrow:hover svg:nth-child(1), .cm-section-link__item-arrow:hover svg:nth-child(1), .c-pagination__arrow:hover svg:nth-child(1), .c-card-news__arrow:hover svg:nth-child(1), .c-btn-circle-arrow__arrow:hover svg:nth-child(1), .c-card-interview__arrow:hover svg:nth-child(1), .c-btn-round-arrow__arrow:hover svg:nth-child(1), a:hover .c-btn-arrow svg:nth-child(1), a:hover .cm-section-link__item-arrow svg:nth-child(1), a:hover .c-pagination__arrow svg:nth-child(1), a:hover .c-card-news__arrow svg:nth-child(1), a:hover .c-btn-circle-arrow__arrow svg:nth-child(1), a:hover .c-card-interview__arrow svg:nth-child(1), a:hover .c-btn-round-arrow__arrow svg:nth-child(1) {
  animation: btnArrow1 var(--duration) var(--easeTheme) forwards;
}
.c-btn-arrow:hover svg:nth-child(2), .cm-section-link__item-arrow:hover svg:nth-child(2), .c-pagination__arrow:hover svg:nth-child(2), .c-card-news__arrow:hover svg:nth-child(2), .c-btn-circle-arrow__arrow:hover svg:nth-child(2), .c-card-interview__arrow:hover svg:nth-child(2), .c-btn-round-arrow__arrow:hover svg:nth-child(2), a:hover .c-btn-arrow svg:nth-child(2), a:hover .cm-section-link__item-arrow svg:nth-child(2), a:hover .c-pagination__arrow svg:nth-child(2), a:hover .c-card-news__arrow svg:nth-child(2), a:hover .c-btn-circle-arrow__arrow svg:nth-child(2), a:hover .c-card-interview__arrow svg:nth-child(2), a:hover .c-btn-round-arrow__arrow svg:nth-child(2) {
  animation: btnArrow2 var(--duration) var(--easeTheme) forwards;
}
.c-btn-arrow svg:nth-child(2), .cm-section-link__item-arrow svg:nth-child(2), .c-pagination__arrow svg:nth-child(2), .c-card-news__arrow svg:nth-child(2), .c-btn-circle-arrow__arrow svg:nth-child(2), .c-card-interview__arrow svg:nth-child(2), .c-btn-round-arrow__arrow svg:nth-child(2) {
  position: absolute;
}
@media screen and (min-width: 1024px) {
  .c-btn-arrow, .cm-section-link__item-arrow, .c-pagination__arrow, .c-card-news__arrow, .c-btn-circle-arrow__arrow, .c-card-interview__arrow, .c-btn-round-arrow__arrow {
    width: 1.5rem;
    height: 1.5rem;
  }
}

.c-btn-arrow--back, .c-pagination__arrow--prev {
  transform: rotate(180deg);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.c-btn-round-arrow {
  display: inline-flex;
  height: 3.125rem;
  padding: 0 1.25rem;
  align-items: center;
  gap: 0.625rem;
  border-radius: 624.9375rem;
  border: var(--sds-size-stroke-border) solid var(--Blue_Line, rgba(0, 91, 166, 0.5));
  color: var(--Blue, #005BAB);
  font-size: 0.875rem;
  font-weight: 500;
  transition: background-color var(--duration) var(--easeTheme), border-color var(--duration) var(--easeTheme), color var(--duration) var(--easeTheme);
}
.c-btn-round-arrow .c-btn-round-arrow__arrow svg {
  transition: fill var(--duration) var(--easeTheme);
}
@media (hover: hover) {
  .c-btn-round-arrow:hover, a:hover .c-btn-round-arrow {
    background: var(--Blue, #005BAB);
    border-color: var(--Blue, #005BAB);
    color: #fff;
  }
  .c-btn-round-arrow:hover .c-btn-round-arrow__arrow svg, a:hover .c-btn-round-arrow .c-btn-round-arrow__arrow svg {
    fill: #fff;
  }
}
@media screen and (min-width: 1024px) {
  .c-btn-round-arrow {
    height: 3.125rem;
    font-size: 0.875rem;
  }
}

@media screen and (min-width: 1024px) {
  .c-btn-round-arrow__txt:hover, a:hover .c-btn-round-arrow__txt {
    will-change: transform, opacity;
    animation: btnHoverTxt var(--duration) var(--easeTheme) forwards;
  }
}

.c-btn-round-arrow--aside {
  height: 2.5rem;
  padding: 0 0.75rem;
  font-size: 0.75rem;
}
@media screen and (min-width: 1024px) {
  .c-btn-round-arrow--aside .c-btn-round-arrow__arrow {
    width: 0.875rem;
    height: 0.875rem;
  }
}
@media screen and (min-width: 1024px) {
  .c-btn-round-arrow--aside {
    height: 2.125rem;
    font-size: 0.75rem;
  }
}

.c-btn-round-arrow--aside-wh {
  background: #fff;
}

.c-btn-round-arrow--sm {
  height: 2.125rem;
  padding: 0 0.8125rem;
  font-size: 0.75rem;
  font-weight: 400;
  gap: 1rem;
}
.c-btn-round-arrow--sm .c-btn-round-arrow__arrow {
  width: 1rem;
  height: 1rem;
}
@media screen and (min-width: 1024px) {
  .c-btn-round-arrow--sm {
    padding: 0 0.8125rem;
  }
}

.c-btn-round-arrow--assort {
  background: var(--color-assort);
  color: #fff;
}
.c-btn-round-arrow--assort .c-btn-round-arrow__arrow svg {
  fill: #fff;
}
@media (hover: hover) {
  .c-btn-round-arrow--assort:hover, a:hover .c-btn-round-arrow--assort {
    background: #fff;
    border-color: var(--Blue_Line, rgba(0, 91, 166, 0.5));
    color: var(--Blue, #005BAB);
  }
  .c-btn-round-arrow--assort:hover .c-btn-round-arrow__arrow svg, a:hover .c-btn-round-arrow--assort .c-btn-round-arrow__arrow svg {
    fill: var(--Blue, #005BAB);
  }
}

.c-btn-round-arrow--wh {
  background: #fff;
  border-color: #fff;
}
@media (hover: hover) {
  .c-btn-round-arrow--wh:hover, a:hover .c-btn-round-arrow--wh {
    background: transparent;
    border-color: #fff;
    color: #fff;
  }
  .c-btn-round-arrow--wh:hover .c-btn-round-arrow__arrow svg, a:hover .c-btn-round-arrow--wh .c-btn-round-arrow__arrow svg {
    fill: #fff;
  }
}

.c-btn-round-arrow--wh-outline {
  border-color: #fff;
  color: #fff;
}
.c-btn-round-arrow--wh-outline .c-btn-round-arrow__arrow svg {
  fill: #fff;
}
@media (hover: hover) {
  .c-btn-round-arrow--wh-outline:hover, a:hover .c-btn-round-arrow--wh-outline {
    background: #fff;
    border-color: #fff;
    color: var(--Blue, #005BAB);
  }
  .c-btn-round-arrow--wh-outline:hover .c-btn-round-arrow__arrow svg, a:hover .c-btn-round-arrow--wh-outline .c-btn-round-arrow__arrow svg {
    fill: var(--Blue, #005BAB);
  }
}

.c-btn-round-arrow--seminar {
  padding: 0 1.125rem;
  align-items: center;
  gap: 0.25rem;
}
@media screen and (max-width: 640px) {
  .c-btn-round-arrow--seminar {
    height: 2rem;
    font-size: 0.75rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.c-btn-circle-arrow, .c-card-interview__btn {
  display: flex;
  width: 2.5rem;
  height: 2.5rem;
  justify-content: center;
  align-items: center;
  border-radius: 100%;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  background: var(--Gray, #E4E4DF);
  padding: 0;
}
.c-btn-circle-arrow:hover, .c-card-interview__btn:hover {
  background: var(--color-assort);
}
.c-btn-circle-arrow:hover svg, .c-card-interview__btn:hover svg {
  fill: #fff;
}
.c-btn-circle-arrow--prev {
  transform: rotate(180deg);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.c-btn-play,
.c-btn-pause {
  --btn-size: 2.5rem;
  display: flex;
  width: var(--btn-size);
  height: var(--btn-size);
  justify-content: center;
  align-items: center;
  border-radius: 100%;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  padding: 0;
  transition: background-color var(--duration) var(--easeTheme);
}
.c-btn-play svg,
.c-btn-pause svg {
  flex-shrink: 0;
  width: var(--btn-size);
  max-width: none;
  height: var(--btn-size);
  margin: calc(var(--stroke-weight-1) * -1);
  transition: fill var(--duration) var(--easeTheme);
}
.c-btn-play {
  background: var(--Blue, #005BAB);
}
.c-btn-play svg {
  fill: #fff;
}
@media (hover: hover) {
  .c-btn-play:hover, a:hover .c-btn-play {
    background: transparent;
  }
  .c-btn-play:hover svg, a:hover .c-btn-play svg {
    fill: var(--Blue, #005BAB);
  }
}

.c-btn-pause {
  background: transparent;
}
.c-btn-pause svg {
  fill: var(--Blue, #005BAB);
}
@media (hover: hover) {
  .c-btn-pause:hover, a:hover .c-btn-pause {
    background: var(--Blue, #005BAB);
  }
  .c-btn-pause:hover svg, a:hover .c-btn-pause svg {
    fill: #fff;
  }
}

.c-btn-circle-arrow--color, .c-card-interview__btn {
  background: var(--color-assort);
}
.c-btn-circle-arrow--color svg, .c-card-interview__btn svg {
  fill: #fff;
}
.c-btn-circle-arrow--color:hover, .c-card-interview__btn:hover {
  background: #fff;
}
.c-btn-circle-arrow--color:hover svg, .c-card-interview__btn:hover svg {
  fill: var(--color-assort);
}
.c-btn-circle-arrow--color.swiper-button-disabled, .swiper-button-disabled.c-card-interview__btn {
  opacity: 1;
  pointer-events: none;
  background: var(--Gray, #E4E4DF);
}
.c-btn-circle-arrow--color.swiper-button-disabled svg, .swiper-button-disabled.c-card-interview__btn svg {
  fill: var(--Blue, #005BAB);
}

.c-btn-circle-arrow--page-more {
  border-color: #fff;
  background: transparent;
  width: 2rem;
  height: 2rem;
}
.c-btn-circle-arrow--page-more svg {
  fill: #fff;
}
@media screen and (min-width: 1024px) {
  .c-btn-circle-arrow--page-more {
    width: 2.5rem;
    height: 2.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.c-btn-menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.9375rem;
  height: 1.5625rem;
  color: var(--Blue, #005BAB);
  font-size: 0.75rem;
  text-transform: uppercase;
  border: var(--stroke-weight-1) solid #005BAB;
  border-radius: 100%;
}
.c-btn-menu span:nth-child(2) {
  position: absolute;
  opacity: 0;
}
.is-header-dark .c-btn-menu {
  color: #fff;
  border-color: #fff;
}
.c-btn-menu.is-nav-open {
  color: #fff;
  border-color: #fff;
}
.c-btn-menu.is-nav-open span:nth-child(1) {
  opacity: 0;
}
.c-btn-menu.is-nav-open span:nth-child(2) {
  opacity: 1;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	フォーム
----------------------------------------------------*/
[hidden] {
  display: none !important;
}

[disabled] {
  cursor: not-allowed;
}

:focus:not(:focus-visible) {
  outline: none;
}

.sr-only {
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  left: -9999px;
  top: -9999px;
}

input,
select,
label {
  vertical-align: middle;
  color: var(--color);
}

[type=text] {
  line-height: normal;
}

input[type=text],
input[type=email],
input[type=tel],
button {
  appearance: none;
  border-radius: 0;
  outline: none;
  background: transparent;
  color: var(--color);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.5;
}

input[type=submit],
button {
  cursor: pointer;
  border: none;
}

textarea {
  appearance: none;
  resize: none;
  outline: none;
  background: transparent;
  color: var(--color);
  font-family: var(--font);
  font-size: 16px;
}

*:focus {
  outline: none;
}

/*----------------------------------------------------
	フォント
----------------------------------------------------*/
html {
  font-size: 16px;
}
@media screen and (max-width: 640px) {
  html {
    font-size: 4.1025641026vw;
  }
}
@media screen and (min-width: 641px) and (max-width: 1023px) {
  html {
    font-size: 2.5vw;
  }
}
@media screen and (min-width: 1024px) {
  html {
    font-size: min(16px, 1.1111111111vw);
  }
}
body {
  font-family: var(--font);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.045em;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  word-wrap: break-word;
  font-feature-settings: "palt" on, "ss09" on;
  color: var(--color);
}

.serif {
  font-family: var(--serif);
}

/*----------------------------------------------------
	レスポンシブ
----------------------------------------------------*/
@media screen and (min-width: 641px) {
  .sp {
    display: none;
  }
}

@media screen and (min-width: 1024px) {
  .sp-tab {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .pc {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  .pc-tab {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  .tab {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  .tab {
    display: none;
  }
}

/*----------------------------------------------------
	リンク
----------------------------------------------------*/
button,
a {
  color: var(--color);
  text-decoration: none;
  transition: var(--duration) var(--easeTheme);
  cursor: pointer;
}
@media (hover: hover) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
@media (hover: none) {
  a, button {
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: transparent;
  }
}
[data-scroll-target] {
  content: "";
  display: block;
  position: relative;
  pointer-events: none;
  top: calc(-1 * var(--header-height));
}

/*
 * 本文中のインラインリンク
 * 既定で text-decoration:none にしているため、文章に混ぜるリンクは
 * このクラスを付けて下線＋ブルーで明示する
 */
.c-link-inline {
  color: var(--Blue, #005BAB);
  text-decoration: underline;
  text-underline-position: from-font;
}
@media (hover: hover) {
  .c-link-inline:hover {
    text-decoration: none;
  }
}

/*----------------------------------------------------
	コンテナ
----------------------------------------------------*/
.l-container {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 1440px;
}
@media screen and (max-width: 640px) {
  .l-container {
    padding-left: 4.1025641026vw;
    padding-right: 4.1025641026vw;
  }
}
@media screen and (min-width: 641px) and (max-width: 1023px) {
  .l-container {
    padding-left: 4.1025641026vw;
    padding-right: 4.1025641026vw;
  }
}
@media screen and (min-width: 1024px) {
  .l-container {
    padding-left: min(120px, 8.3333333333vw);
    padding-right: min(120px, 8.3333333333vw);
  }
}
@media screen and (min-width: 1921px) {
  .l-container {
    padding-left: 120px;
    padding-right: 120px;
  }
}

@media screen and (min-width: 1024px) {
  .l-container--lg {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}
@media screen and (min-width: 1921px) {
  .l-container--lg {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

.l-container--fluid {
  padding-left: 0;
  padding-right: 0;
}

/*----------------------------------------------------
	body
----------------------------------------------------*/
body {
  position: relative;
  background: #E4E4DF;
}
.l-body-wrap {
  width: 100%;
  min-height: 100%;
}
@media screen and (max-width: 1023px) {
  .l-body-wrap {
    overflow: hidden;
  }
}

/*----------------------------------------------------
	ヘッダー
----------------------------------------------------*/
.l-header {
  position: fixed;
  display: flex;
  align-items: center;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 500;
  height: var(--header-height);
  padding: 1rem;
  transition: transform var(--duration) var(--easeTheme);
  /*
   * 白ベタの下地。.l-header 自身が stacking context（position:fixed + z-index）を
   * 作るので z-index:-1 でヘッダー内のコンテンツだけの背面に回る。
   */
}
.l-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--White, #fff);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--duration) var(--easeTheme);
}
.is-header-solid .l-header::before {
  opacity: 1;
}
@media screen and (min-width: 1024px) {
  .l-header {
    padding: 1.875rem;
  }
  .scrollDown:not(.is-mega-open) .l-header {
    transform: translateY(-100%);
  }
}

/*----------------------------------------------------
	ページ表示アニメーション
	初期状態は CSS で持ち、body.windowLoaded で解除する
----------------------------------------------------*/
.l-header-logo,
.l-header-nav,
.l-header-menu {
  opacity: 0;
  transform: translateY(-0.625rem);
  transition: opacity var(--duration-intro) var(--easeIntro), transform var(--duration-intro) var(--easeIntro);
}
.windowLoaded .l-header-logo,
.windowLoaded .l-header-nav,
.windowLoaded .l-header-menu {
  opacity: 1;
  transform: translateY(0);
}

.l-header-nav {
  transition-delay: 0.06s;
}

.l-header-menu {
  transition-delay: 0.12s;
}

.l-header-logo {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
}
.l-header-logo figure {
  position: relative;
  width: 8.125rem;
}
.l-header-logo figure img:nth-child(2) {
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
}
.is-header-dark:not(.is-header-solid) .l-header-logo figure img:nth-child(1), .is-nav-open .l-header-logo figure img:nth-child(1) {
  opacity: 0;
}
.is-header-dark:not(.is-header-solid) .l-header-logo figure img:nth-child(2), .is-nav-open .l-header-logo figure img:nth-child(2) {
  opacity: 1;
}
.l-header-logo p {
  position: relative;
  padding: 0 0 0.25rem 0.75rem;
  font-family: var(--Montserrat);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
}
.l-header-logo p:before {
  content: "";
  display: block;
  width: 0;
  height: 0.75rem;
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  border-left: var(--stroke-weight-1) solid rgba(49, 49, 49, 0.3);
}
.is-header-dark:not(.is-header-solid) .l-header-logo {
  color: #fff;
}
.is-header-dark:not(.is-header-solid) .l-header-logo p:before {
  border-color: rgba(255, 255, 255, 0.3);
}
@media screen and (min-width: 1024px) {
  .l-header-logo {
    gap: 1rem;
  }
  .l-header-logo figure {
    width: 12.5rem;
  }
  .l-header-logo p {
    padding: 0 0 0.625rem 1rem;
    font-size: 0.875rem;
  }
  .l-header-logo p:before {
    height: 1.125rem;
  }
}

.l-header-nav {
  margin-left: auto;
}
@media screen and (max-width: 1023px) {
  .l-header-nav {
    display: none;
  }
}
.l-header-menu {
  position: relative;
  z-index: 10;
  margin-left: auto;
}
@media screen and (min-width: 1024px) {
  .l-header-menu {
    display: none;
  }
}

/*----------------------------------------------------
	l-header-mega
	メガメニューのパネル置き場。ヘッダー直下に絶対配置する。
----------------------------------------------------*/
.l-header-mega {
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
}
@media screen and (max-width: 1023px) {
  .l-header-mega {
    display: none;
  }
}

/*----------------------------------------------------
	l-header-drawer
----------------------------------------------------*/
.l-header-drawer {
  width: 100%;
  position: fixed;
  inset: 0 0 0;
  overflow: auto;
  background: var(--Blue, #005BAB);
  opacity: 0;
  pointer-events: none;
  transition: var(--easeTheme) var(--duration);
}
.is-nav-open .l-header-drawer {
  opacity: 1;
  pointer-events: auto;
}

.l-header-drawer__wrap {
  height: 100%;
  overscroll-behavior: none;
}

.l-header-drawer__nav {
  padding: 6.875rem 1rem 3.5rem;
}

/*----------------------------------------------------
	main
----------------------------------------------------*/
/*----------------------------------------------------
	...
----------------------------------------------------*/
.l-aside-cta {
  position: fixed;
  left: 1.5rem;
  bottom: 1.5rem;
  z-index: 300;
  display: flex;
  gap: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: var(--duration) var(--easeTheme);
}
.is-scrolled .l-aside-cta {
  opacity: 1;
  pointer-events: auto;
}
.is-footer-show .l-aside-cta {
  opacity: 0;
  pointer-events: none;
}
@media screen and (min-width: 1024px) {
  .l-aside-cta {
    right: 2rem;
    bottom: 2rem;
    left: auto;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	フッター
----------------------------------------------------*/
.l-footer {
  position: relative;
  overflow: hidden;
  padding: 3rem 1rem;
  background: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .l-footer {
    padding: 4.5rem 2.5rem;
  }
}

.l-footer__wrap {
  display: grid;
  /*
   * カラムを minmax(0, 1fr) にしておく。
   * 既定の auto トラックだと、はみ出して流す前提の .l-footer-type（マーキー）の
   * min-content 幅（約1900px）にトラックが引き伸ばされ、
   * 他のグリッドアイテムまで一緒に広がって右の padding が消えてしまう。
   */
  grid-template-columns: minmax(0, 1fr);
  gap: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .l-footer__wrap {
    grid-template-areas: "head   nav" "type   type" "bottom bottom";
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3rem 0;
  }
}

/*
 * フッター下段（ロゴ／学園サイトリンク／コピーライト）
 * Figma: 2559:32129 — 1行のフレックスで、ナビのカラム幅には縛られない。
 * SPは display:contents で親グリッドに展開し、order でFigmaの並び
 * （ナビ → リンク → マーキー → ロゴ → コピーライト）に揃える。
 */
.l-footer-bottom {
  display: contents;
}
@media screen and (min-width: 1024px) {
  .l-footer-bottom {
    grid-area: bottom;
    display: flex;
    align-items: center;
    gap: 3rem;
  }
}

@media screen and (max-width: 1023px) {
  .l-footer-head {
    order: 1;
  }
  .l-footer-nav {
    order: 2;
  }
  .l-footer-links {
    order: 3;
  }
  .l-footer-type {
    order: 4;
  }
  .l-footer-logo {
    order: 5;
  }
  .l-footer-copyright {
    order: 6;
  }
}
@media screen and (min-width: 1024px) {
  .l-footer-head {
    grid-area: head;
  }
}

.l-footer-head__copy {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 130%;
}
@media screen and (min-width: 1024px) {
  .l-footer-head__copy {
    font-size: 2.5rem;
    letter-spacing: 0.052em;
  }
}

.l-footer-head__action {
  display: none;
}
@media screen and (min-width: 1024px) {
  .l-footer-head__action {
    margin-top: 2.5rem;
    display: flex;
    gap: 1rem;
  }
}

@media screen and (min-width: 1024px) {
  .l-footer-nav {
    grid-area: nav;
    margin-top: -0.25rem;
  }
}

.l-footer-type {
  display: flex;
}
.l-footer-type figure {
  opacity: 0.1;
  padding-right: 3.75rem;
  animation: loopLeft linear 30s infinite;
  will-change: transform;
  backface-visibility: hidden;
}
.l-footer-type svg {
  max-width: none;
  width: auto;
  height: 4.5rem;
}
@media screen and (min-width: 1024px) {
  .l-footer-type {
    grid-area: type;
    margin-top: 6.25rem;
  }
  .l-footer-type figure {
    padding-right: 9.25rem;
    animation-duration: 100s;
  }
  .l-footer-type svg {
    height: 11.5625rem;
  }
}

.l-footer-logo {
  display: flex;
  align-items: flex-end;
  flex-shrink: 0;
  gap: 1rem;
}
.l-footer-logo figure {
  width: 10.25rem;
}
.l-footer-logo p {
  position: relative;
  padding: 0 0 0.5rem 1.375rem;
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
}
.l-footer-logo p:before {
  content: "";
  display: block;
  width: 0;
  height: 0.9375rem;
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  border-left: var(--stroke-weight-1) solid rgba(255, 255, 255, 0.3);
}
@media screen and (min-width: 1024px) {
  .l-footer-logo figure {
    width: 12.375rem;
  }
  .l-footer-logo p {
    padding: 0 0 0.625rem 1rem;
    font-size: 0.875rem;
  }
  .l-footer-logo p:before {
    height: 1.125rem;
  }
}

/*----------------------------------------------------
	l-footer-links（学園サイト・個人情報保護方針）
	Figma: PC 2559:32185 / SP I5008:26325;1044:15531
----------------------------------------------------*/
.l-footer-links {
  margin-top: -1rem;
  padding-top: 1.5rem;
  border-top: var(--stroke-weight-1) solid rgba(255, 255, 255, 0.3);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .l-footer-links {
    margin-top: 0;
    margin-left: auto;
    padding-top: 0;
    border-top: none;
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
  }
}

.l-footer-links__item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  will-change: transform;
  transition-duration: 0.2s;
}
@media (hover: hover) {
  .l-footer-links__item:hover, a:hover .l-footer-links__item {
    color: rgba(255, 255, 255, 0.5);
    transform: translateX(0.5em);
  }
}
@media screen and (min-width: 1024px) {
  .l-footer-links__item {
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.0375rem;
  }
}
@media screen and (min-width: 1024px) and (hover: hover) {
  .l-footer-links__item:hover, a:hover .l-footer-links__item {
    transform: none;
  }
}

.l-footer-links__icon {
  flex-shrink: 0;
  width: 0.7745625rem;
  height: 0.7745625rem;
}
.l-footer-links__icon img {
  display: block;
  width: 100%;
  height: 100%;
}

.l-footer-copyright {
  margin-top: -0.75rem;
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 120%;
  letter-spacing: 0;
}
@media screen and (min-width: 1024px) {
  .l-footer-copyright {
    margin-top: 0;
    flex-shrink: 0;
    text-align: right;
  }
}

/*----------------------------------------------------
	...
----------------------------------------------------*/
/*----------------------------------------------------
	p-top-intro
	S0/S1。青ベタ+白ロゴ。ファーストペイントから出したいので
	初期状態はCSS側で持ち、退場だけJS（page.js のマスタータイムライン）が行う。

	S1のワイプは line.svg の1本のストロークを <mask> の中で描き伸ばしながら
	太らせて青を削り取る。青は要素の background ではなく
	マスクを掛けた <rect> で持つ（background だと削れないため）。

	failsafe: JSが落ちてもページが青幕で埋まったままにならないよう、
	5秒後に必ず消えるCSSアニメーションを保険で掛けてある。
	正常時はGSAPが1.9s前後で先に消しているので競合しない。
----------------------------------------------------*/
.p-top-intro {
  position: fixed;
  inset: 0;
  z-index: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  animation: p-top-intro-failsafe 0.4s linear 5s forwards;
}

.p-top-intro__wipe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.p-top-intro__wipe .js-mv-wipe {
  stroke-dasharray: 0 999999;
  stroke-dashoffset: 0.001;
}

.p-top-intro__logo {
  position: relative;
  width: 10rem;
}
.p-top-intro__logo img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-top-intro__logo {
    width: 13.75rem;
  }
}

@keyframes p-top-intro-failsafe {
  to {
    opacity: 0;
    visibility: hidden;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-top-intro {
    display: none;
  }
}
/*----------------------------------------------------
	p-top-mv
----------------------------------------------------*/
.p-top-mv {
  position: relative;
  overflow: hidden;
}
/*
	FVライン
	Figma "hero/card-list"(2169:6479) のレイヤー順をそのまま再現する。
	ラインとカードが交互に挟まっているのでSVGを3枚に分け、
	カードは figure ごとに z-index を振って割り込ませる。

	下 → 上（Figmaのレイヤー名で表記）:
		 1 : linne-pinkL   .p-top-mv__line--pink1
		 2 : card8         figure:nth-child(8)
		 3 : card5         figure:nth-child(5)
		 4 : line-pinkR    .p-top-mv__line--pink2   ← 不透明度 .77
		 5 : card7         figure:nth-child(7)
		 6 : card4         figure:nth-child(4)
		 7 : line-yellow   .p-top-mv__line--yellow
		 8 : card6         figure:nth-child(6)
		 9 : card1         figure:nth-child(1)
		10 : card2         figure:nth-child(2)
		11 : card3         figure:nth-child(3)
		12 : copy / concept                        テキストは常に最前面

	figure N = Figmaの cardN。写真・座標とも一致することを確認済み
	（card4=黒ジャケットの女性が x=-47 に来る）。

	※ .p-top-mv__staff に position/transform を付けると
	  スタッキングコンテキストが出来て figure の z-index が閉じ込められ、
	  この挟み込みが壊れる。マーキー実装時は transform ではなく
	  left/margin で動かすか、z階層ごとに列を分割すること。

	SVGの clip-path を外しているので、viewBox(1440x1722)の外まで伸びた
	ベクターがそのまま描画される。はみ出しは .p-top-mv の overflow:hidden で処理。
*/
.p-top-mv__line {
  display: block;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
}
.p-top-mv__line svg {
  display: block;
  width: 37.5rem;
  max-width: none;
  height: auto;
  overflow: visible;
}
.p-top-mv__line .js-mv-line {
  stroke-dasharray: 0 999999;
  stroke-dashoffset: 0.001;
}
@media (prefers-reduced-motion: reduce) {
  .p-top-mv__line .js-mv-line {
    stroke-dasharray: none;
    stroke-dashoffset: 0;
  }
}
@media screen and (max-width: 640px) {
  .p-top-mv__line svg {
    position: relative;
    left: calc(50% - 18.75rem);
  }
}
@media screen and (min-width: 641px) {
  .p-top-mv__line svg {
    width: 100%;
  }
}

.p-top-mv__line--pink1 {
  z-index: 1;
}

.p-top-mv__line--pink2 {
  z-index: 7;
  opacity: 0.77;
}

.p-top-mv__line--yellow {
  z-index: 4;
}

.p-top-mv__staff {
  padding-top: 4.9375rem;
  display: flex;
  gap: 2.5rem;
}
.p-top-mv__staff figure {
  flex-shrink: 0;
  position: relative;
  width: 9.1875rem;
  opacity: 0;
}
.p-top-mv__staff figure:nth-child(8n+1) {
  z-index: 9;
}
.p-top-mv__staff figure:nth-child(8n+2) {
  z-index: 10;
}
.p-top-mv__staff figure:nth-child(8n+3) {
  z-index: 11;
}
.p-top-mv__staff figure:nth-child(8n+4) {
  z-index: 6;
}
.p-top-mv__staff figure:nth-child(8n+5) {
  z-index: 3;
}
.p-top-mv__staff figure:nth-child(8n+6) {
  z-index: 8;
}
.p-top-mv__staff figure:nth-child(8n+7) {
  z-index: 5;
}
.p-top-mv__staff figure:nth-child(8n) {
  z-index: 2;
}
.p-top-mv__staff figure:nth-child(odd) {
  margin-top: 5.4375rem;
}
@media (prefers-reduced-motion: reduce) {
  .p-top-mv__staff figure {
    opacity: 1;
  }
}
.p-top-mv__staff img {
  border-radius: 0.5rem;
}
.p-top-mv__staff figcaption {
  font-size: 0.625rem;
  font-weight: 500;
  position: absolute;
  left: calc(100% + 2em);
  top: 0;
  writing-mode: vertical-rl;
  transform: translateX(-100%);
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .p-top-mv__staff {
    padding-top: 7.125rem;
    gap: 4.3125rem;
  }
  .p-top-mv__staff figure {
    width: 16.25rem;
  }
  .p-top-mv__staff figure:nth-child(odd) {
    margin-top: 11.3125rem;
  }
  .p-top-mv__staff figcaption {
    font-size: 0.625rem;
  }
}

.p-top-mv__copy {
  position: relative;
  z-index: 12;
  margin-top: 1.75rem;
  padding: 0 1rem;
}
@media screen and (min-width: 1024px) {
  .p-top-mv__copy {
    margin-top: -4.125rem;
    padding: 0 1.875rem;
  }
}

.p-top-mv__copy-ja {
  color: var(--White, #FFF);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 160%;
}
@media screen and (min-width: 1024px) {
  .p-top-mv__copy-ja {
    font-size: 2.5rem;
    line-height: 1.3;
    letter-spacing: 0.042em;
  }
}

.p-top-mv__copy-en svg {
  width: 46.75rem;
  height: auto;
  max-width: none;
}
@media screen and (max-width: 1023px) {
  .p-top-mv__copy-en {
    display: flex;
  }
  .p-top-mv__copy-en figure {
    padding-right: 5rem;
    animation: loopLeft linear 30s infinite;
    animation-delay: 4.2s;
    will-change: transform;
    backface-visibility: hidden;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-mv__copy-en {
    margin-top: 0.5rem;
  }
  .p-top-mv__copy-en svg {
    width: 86.125rem;
  }
  .p-top-mv__copy-en figure:nth-child(2) {
    display: none;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-top-mv__concept {
  position: relative;
  z-index: 12;
  display: flex;
  flex-direction: column;
  padding: var(--padding-section) 0 var(--padding-section);
}
.p-top-mv__message {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.8;
  text-align: justify;
}
@media screen and (min-width: 1024px) {
  .p-top-mv__message {
    margin-bottom: 5.625rem;
    letter-spacing: 0.052em;
    font-size: 2rem;
    font-weight: 600;
  }
}

.p-top-mv__foot {
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .p-top-mv__foot {
    margin-top: 0;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
  }
}

.p-top-mv__copy2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
.p-top-mv__copy2 svg {
  display: block;
  width: 21rem;
  height: auto;
}
.p-top-mv__copy2 span {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.8;
}
@media screen and (min-width: 1024px) {
  .p-top-mv__copy2 {
    gap: 1.5rem;
  }
  .p-top-mv__copy2 svg {
    width: 39.5rem;
  }
  .p-top-mv__copy2 span {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.052em;
  }
}

/*----------------------------------------------------
	p-top-schedule
----------------------------------------------------*/
.p-top-schedule {
  position: relative;
  overflow: hidden;
  background: transparent;
  padding: 2.625rem 0;
  height: 37.4375rem;
}
@media screen and (min-width: 1024px) {
  .p-top-schedule {
    background: #1a1a1a;
    padding: 4rem 0;
    height: 50.625rem;
  }
}

.p-top-schedule__bg {
  position: absolute;
  inset: 0 0 5.625rem;
  z-index: 0;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .p-top-schedule__bg {
    inset: 0;
  }
}
.p-top-schedule__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-schedule__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
}

.p-top-schedule__wrap {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
}

.cm-section-header--schedule .cm-section-header__label {
  border-bottom-color: rgba(255, 255, 255, 0.5);
}

.cm-section-header--schedule .cm-section-header__label-en {
  color: var(--White, #fff);
}

.cm-section-header--schedule .cm-section-header__body {
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .cm-section-header--schedule .cm-section-header__body {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.875rem;
  }
}

.cm-section-header--schedule .cm-section-header__heading {
  color: var(--White, #fff);
}

.cm-section-header--schedule .cm-section-header__desc {
  max-width: 10.25rem;
}
@media screen and (min-width: 1024px) {
  .cm-section-header--schedule .cm-section-header__desc {
    max-width: 15.8125rem;
  }
}

.p-top-schedule__copy {
  position: absolute;
  top: 3.6875rem;
  right: 0;
}
.p-top-schedule__copy svg {
  display: block;
  width: 3.6875rem;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-top-schedule__copy {
    top: 4.875rem;
  }
  .p-top-schedule__copy svg {
    width: 6.25rem;
  }
}

.p-top-schedule__foot {
  margin-top: 5.3125rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5.125rem;
}
@media screen and (min-width: 1024px) {
  .p-top-schedule__foot {
    margin-top: 20.25rem;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
  }
}

.p-top-schedule__talk {
  display: flex;
  align-items: center;
}

.p-top-schedule__talk-pic {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 5.0625rem;
  height: 5.0625rem;
  border-radius: 50%;
  overflow: hidden;
}
.p-top-schedule__talk-pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-top-schedule__talk-pic {
    width: 5.5rem;
    height: 5.5rem;
  }
}

.p-top-schedule__talk-message {
  position: relative;
  z-index: 5;
  margin-left: 1.5625rem;
  padding: 1.5rem 2.0625rem;
  border-radius: 0.5rem;
  background: var(--Blue, #005BAB);
  color: #fff;
  font-size: 0.875rem;
  line-height: 1.2;
}
.p-top-schedule__talk-message::before {
  content: "";
  position: absolute;
  top: calc(50% - 1.125rem);
  left: -2rem;
  width: 3rem;
  height: 1.8125rem;
  background-image: url(../img/p-top-schedule-talk-bubble.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
@media screen and (min-width: 1024px) {
  .p-top-schedule__talk-message {
    margin-left: 1.5625rem;
    padding: 1.0625rem 1.875rem 1.0625rem 1.875rem;
    border-radius: 1rem;
  }
  .p-top-schedule__talk-message::before {
    left: -2.5rem;
    width: 3.5625rem;
    height: 2.25rem;
  }
}

.p-top-schedule__more .c-btn-round-arrow--wh-outline {
  border-color: var(--Blue_Line, rgba(0, 91, 166, 0.5));
  color: var(--Blue, #005BAB);
}
.p-top-schedule__more .c-btn-round-arrow--wh-outline .c-btn-round-arrow__arrow svg {
  fill: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-top-schedule__more .c-btn-round-arrow--wh-outline {
    border-color: #fff;
    color: #fff;
  }
  .p-top-schedule__more .c-btn-round-arrow--wh-outline .c-btn-round-arrow__arrow svg {
    fill: #fff;
  }
}
@media (hover: hover) {
  .p-top-schedule__more .c-btn-round-arrow--wh-outline:hover, a:hover .p-top-schedule__more .c-btn-round-arrow--wh-outline {
    background: var(--Blue, #005BAB);
    border-color: var(--Blue, #005BAB);
    color: #fff;
  }
  .p-top-schedule__more .c-btn-round-arrow--wh-outline:hover .c-btn-round-arrow__arrow svg, a:hover .p-top-schedule__more .c-btn-round-arrow--wh-outline .c-btn-round-arrow__arrow svg {
    fill: #fff;
  }
}

/*----------------------------------------------------
	p-top-interview
----------------------------------------------------*/
.p-top-interview {
  padding: var(--padding-section) 0 0;
  overflow: hidden;
}

/*----------------------------------------------------
	p-top-numbers
----------------------------------------------------*/
.p-top-numbers {
  padding: var(--padding-section) 0 0;
}

.p-top-numbers .l-container {
  display: flex;
  flex-direction: column;
  gap: var(--padding-block);
}
.p-top-numbers__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.125rem;
}
@media screen and (min-width: 1024px) {
  .p-top-numbers__list {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
}

/*
 * カードの見た目は .c-card-stat（Component/_c-card.scss）に共通化済み。
 */
.p-top-numbers__note {
  margin-top: 1rem;
  text-align: right;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-top-numbers__note {
    font-size: 0.875rem;
    line-height: 1.8;
    letter-spacing: 0.04375rem;
  }
}

.p-top-numbers__more {
  margin-top: 1.5rem;
  display: flex;
  justify-content: flex-end;
}
@media screen and (min-width: 1024px) {
  .p-top-numbers__more {
    margin-top: 2.5rem;
  }
}

/*----------------------------------------------------
	p-top-about
----------------------------------------------------*/
.p-top-about {
  padding: var(--padding-section) 0 0;
}

.p-top-about .l-container {
  display: flex;
  flex-direction: column;
  gap: var(--padding-block);
}
.p-top-about__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-top-about__list {
    grid-template-columns: repeat(4, 1fr);
    gap: 3rem 1.5rem;
  }
}

.p-top-about-item__link {
  display: block;
}

.p-top-about-item__pic {
  display: block;
  width: 100%;
  height: 7.3125rem;
  margin-bottom: 1rem;
  border-radius: 0.25rem;
  overflow: hidden;
}
.p-top-about-item__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--duration) var(--easeTheme);
  will-change: transform;
}
a:hover .p-top-about-item__pic img {
  transform: scale(1.1);
}
@media screen and (min-width: 1024px) {
  .p-top-about-item__pic {
    height: 13.25rem;
    margin-bottom: 1.5rem;
    border-radius: 0.5rem;
  }
}

.p-top-about-item__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
}

.p-top-about-item__desc {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  line-height: 1.8;
}
@media screen and (min-width: 1024px) {
  .p-top-about-item__desc {
    margin-top: 0.5rem;
    font-size: 0.875rem;
  }
}

/*----------------------------------------------------
	p-top-news
----------------------------------------------------*/
.p-top-news {
  padding: var(--padding-section) 0;
}
.p-top-news .l-container {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-top-news .l-container {
    gap: 3.5rem;
  }
}

.p-top-news__content {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-top-news__content {
    display: grid;
    grid-template-columns: 10.9375rem 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas: "heading list" "more list";
    column-gap: 10rem;
    row-gap: 0;
  }
}

.p-top-news__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
}
@media screen and (min-width: 1024px) {
  .p-top-news__heading {
    grid-area: heading;
    font-size: 3rem;
    font-weight: 700;
    white-space: nowrap;
  }
}

.p-top-news__list {
  margin-top: -0.875rem;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-top-news__list {
    margin-top: -1.875rem;
    grid-area: list;
  }
}

@media screen and (min-width: 1024px) {
  .p-top-news__more {
    grid-area: more;
    align-self: end;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-interview
----------------------------------------------------*/
/*
 * 「読む」スライダーがコンテナ右外へブリードするため、
 * ビューポート幅で切るこの階層で横のはみ出しを隠す（SP/TABは .l-body-wrap 側で処理済み）
 */
@media screen and (min-width: 1024px) {
  .p-interview {
    overflow: hidden;
  }
}

.p-interview__wrap {
  display: flex;
  flex-direction: column;
  gap: var(--padding-section-lg);
  padding: var(--padding-section-lg) 0;
  position: relative;
  z-index: 5;
}

/*----------------------------------------------------
	p-interview-lead
----------------------------------------------------*/
.p-interview-lead p {
  text-align: justify;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-interview-lead p {
    max-width: 46.6875rem;
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.7;
  }
}

/*----------------------------------------------------
	p-interview-talking
----------------------------------------------------*/
.p-interview-talking {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .p-interview-talking {
    gap: 4.5rem;
  }
}

/*
 * カードとCTAで1セット。
 * SPはCTAをカードの下に置き、PCはカード内の左下に重ねる（Figma準拠）
 */
.p-interview-talking__item {
  position: relative;
  display: block;
}

.p-interview-talking__card {
  position: relative;
  overflow: hidden;
  padding: 1.5rem;
  border-radius: 0.5rem;
  aspect-ratio: 1/1;
}
@media screen and (min-width: 1024px) {
  .p-interview-talking__card {
    height: 39.6875rem;
    aspect-ratio: auto;
    padding: 2rem;
    border-radius: 1rem;
  }
}

.p-interview-talking__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.p-interview-talking__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--duration) var(--easeTheme);
  will-change: transform;
}
.p-interview-talking__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
}
.p-interview-talking__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 91, 166, 0.4);
  opacity: 0;
  transition: var(--duration) var(--easeTheme);
  will-change: transform;
}
button:hover .p-interview-talking__bg img, a:hover .p-interview-talking__bg img {
  transform: scale(1.1);
}
button:hover .p-interview-talking__bg:after, a:hover .p-interview-talking__bg:after {
  opacity: 1;
}

.p-interview-talking__label {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 9.1875rem;
}
.p-interview-talking__label img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-interview-talking__label {
    top: 2rem;
    right: 2rem;
    width: 13.8125rem;
  }
}

.p-interview-talking__title {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  line-height: 0;
}
.p-interview-talking__title img {
  display: block;
  width: 2.75rem;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-interview-talking__title {
    top: 2rem;
    left: 2rem;
  }
  .p-interview-talking__title img {
    width: 4.8125rem;
  }
}

/*
 * 1行＝枠付きのボックス。
 * SPは長い行を折り返す必要があるため、span 単位で枠を付けて縦に積む
 */
.p-interview-talking__copy {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
  color: #fff;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  white-space: nowrap;
}
.p-interview-talking__copy p {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.p-interview-talking__copy span {
  padding: 0 0.25rem;
  border: var(--stroke-weight-1) solid #fff;
}
.p-interview-talking__copy span + span,
.p-interview-talking__copy p + p {
  margin-top: calc(-1 * var(--stroke-weight-1));
}
@media screen and (min-width: 1024px) {
  .p-interview-talking__copy {
    right: 2rem;
    bottom: 2.3125rem;
    font-weight: 700;
    font-size: 3rem;
    line-height: 1.25;
    letter-spacing: 0;
  }
  .p-interview-talking__copy p {
    display: block;
    padding: 0.25rem 0.75rem;
    border: var(--stroke-weight-1) solid #fff;
  }
  .p-interview-talking__copy span {
    padding: 0;
    border: none;
  }
  .p-interview-talking__copy span + span {
    margin-top: 0;
  }
}

/*
 * 1枚目の対談カードだけ、SPで要素の左右を入れ替える
 * Figma: 2562:36453（1枚目＝入替あり）/ 2562:36483（2枚目＝従来どおり）
 * 人物の顔にキャッチが被るのを避けるため（フィードバック No.59）。PCは両方とも従来のまま
 */
@media screen and (max-width: 1023px) {
  .p-interview-talking__card--reverse .p-interview-talking__label {
    right: auto;
    left: 1.5rem;
  }
  .p-interview-talking__card--reverse .p-interview-talking__title {
    top: auto;
    left: auto;
    right: 1.5rem;
    bottom: 1.5rem;
  }
  .p-interview-talking__card--reverse .p-interview-talking__copy {
    right: auto;
    left: 1.5rem;
    align-items: flex-start;
  }
  .p-interview-talking__card--reverse .p-interview-talking__copy p {
    align-items: flex-start;
  }
}

.p-interview-talking__more {
  margin-top: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .p-interview-talking__more {
    position: absolute;
    left: 2rem;
    bottom: 2.3125rem;
    margin-top: 0;
  }
}
.p-interview-talking__more .c-btn-round-arrow {
  gap: 1rem;
  padding: 0 1.3125rem;
}
@media screen and (min-width: 1024px) {
  .p-interview-talking__more .c-btn-round-arrow {
    height: 2.125rem;
    padding: 0 0.8125rem;
    border-color: #fff;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 400;
  }
}
@media screen and (min-width: 1024px) {
  .p-interview-talking__more .c-btn-round-arrow__arrow svg {
    fill: #fff;
  }
}

/*----------------------------------------------------
	p-interview-interview
----------------------------------------------------*/
/*----------------------------------------------------
	p-interview-voice
----------------------------------------------------*/
.p-interview-voice__items {
  margin-top: var(--padding-block);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-interview-voice__items {
    flex-direction: row;
    gap: 3rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-interview-voice-item {
    flex: 1;
  }
}

.p-interview-voice-item__link {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: relative;
  width: 100%;
  padding: 0;
  text-align: left;
}
@media screen and (min-width: 1024px) {
  .p-interview-voice-item__link {
    gap: 1.5rem;
  }
}

.p-interview-voice-item__bg {
  position: relative;
  overflow: hidden;
  height: 16.8125rem;
  padding: 1rem;
  border-radius: 0.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.p-interview-voice-item__bg img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--duration) var(--easeTheme);
  will-change: transform;
}
.p-interview-voice-item__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 91, 166, 0.4);
  opacity: 0;
  transition: var(--duration) var(--easeTheme);
  will-change: transform;
}
button:hover .p-interview-voice-item__bg img, a:hover .p-interview-voice-item__bg img {
  transform: scale(1.1);
}
button:hover .p-interview-voice-item__bg:before, a:hover .p-interview-voice-item__bg:before {
  opacity: 1;
}
@media screen and (min-width: 1024px) {
  .p-interview-voice-item__bg {
    height: 28.375rem;
    padding: 1.5rem;
    border-radius: 1rem;
  }
}

.p-interview-voice-item__job {
  position: relative;
  color: #fff;
  font-size: 0.875rem;
  line-height: 1.8;
  text-align: right;
}
@media screen and (min-width: 1024px) {
  .p-interview-voice-item__job {
    font-size: 1rem;
  }
}

.p-interview-voice-item__copy {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.p-interview-voice-item__copy p {
  padding: 0.25rem 0.75rem;
  border: var(--stroke-weight-1) solid #fff;
  color: #fff;
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.6;
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .p-interview-voice-item__copy p {
    font-size: 2rem;
    line-height: 1.3;
  }
}
.p-interview-voice-item__copy p + p {
  margin-top: calc(var(--stroke-weight-1) * -1);
}

.p-interview-voice-item__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.p-interview-voice-item__more {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-interview-voice-item__more {
    font-size: 1rem;
  }
}

.p-interview-voice-item__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.p-interview-voice-item__actions .c-btn-play,
.p-interview-voice-item__actions .c-btn-pause {
  --btn-size: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-interview-voice-item__actions {
    gap: 1rem;
  }
  .p-interview-voice-item__actions .c-btn-play,
  .p-interview-voice-item__actions .c-btn-pause {
    --btn-size: 2.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	...
----------------------------------------------------*/
.c-card-media {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
}
.c-card-media__pic {
  width: 100%;
  aspect-ratio: 264/198;
  border-radius: 0.25rem;
  overflow: hidden;
}
.c-card-media__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .c-card-media__pic {
    aspect-ratio: 368/276;
    border-radius: 0.5rem;
  }
}

.c-card-media__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  width: 100%;
  flex: 1;
}
.c-card-media__title {
  width: 100%;
  color: var(--Black, #313131);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  word-break: break-word;
}
@media screen and (min-width: 1024px) {
  .c-card-media__title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.075rem;
  }
}

.c-card-media--business {
  gap: 1rem;
}
@media screen and (max-width: 1023px) {
  .c-card-media--business {
    flex-direction: row-reverse;
  }
}
@media screen and (min-width: 1024px) {
  .c-card-media--business {
    gap: 2rem;
  }
}
@media screen and (max-width: 1023px) {
  .c-card-media--business .c-card-media__pic {
    width: 10.625rem;
    aspect-ratio: 170/170;
    align-self: flex-start;
  }
}
@media screen and (min-width: 1024px) {
  .c-card-media--business .c-card-media__pic {
    aspect-ratio: auto;
  }
}
.c-card-media--business .c-card-media__body {
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-media--business .c-card-media__body {
    gap: 1rem;
  }
}
.c-card-media--business .c-card-media__title {
  font-size: 0.875rem;
}
@media screen and (min-width: 1024px) {
  .c-card-media--business .c-card-media__title {
    font-size: 1.125rem;
    line-height: 1.6;
  }
}

.c-card-media__desc {
  width: 100%;
  color: var(--Black, #313131);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
  word-break: break-word;
}
.c-card-media__tag {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem;
  width: 100%;
}
.c-card-media__tag li {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.5rem;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  border-radius: 1.5rem;
  color: var(--Blue, #005BAB);
  font-size: 0.625rem;
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .c-card-media__tag li {
    font-size: 0.75rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.c-card-interview__link {
  display: flex;
  flex-direction: column;
}
.c-card-interview__wrap {
  position: relative;
  display: flex;
  flex-direction: column;
}
.c-card-interview__pic {
  position: relative;
  width: 100%;
  aspect-ratio: 264/340;
}
.c-card-interview__pic img {
  width: 100%;
}
.c-card-interview__pic img:nth-child(1) {
  position: absolute;
  bottom: 0;
  transform-origin: center bottom;
  transition: var(--duration) var(--easeTheme);
}
a:hover .c-card-interview__pic img:nth-child(1) {
  transform: scale(1.03);
}
.c-card-interview__pic img:nth-child(2) {
  border-radius: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-interview__pic {
    aspect-ratio: 372/494;
  }
}

.c-card-interview__category {
  position: absolute;
  left: 100%;
  top: 0;
  display: flex;
  padding: 0.125rem 0.5rem;
  min-width: 5.5rem;
  justify-content: center;
  align-items: center;
  border-radius: 0.5rem 0 0 0;
  background: var(--color-label-yellow, #ABBD26);
  color: var(--White, #FFF);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
  white-space: nowrap;
  transform: rotate(90deg);
  transform-origin: left top;
}
@media screen and (min-width: 1024px) {
  .c-card-interview__category {
    padding: 0.25rem 0.5rem;
    min-width: 7.25rem;
    font-size: 1rem;
  }
}

.c-card-interview__copy {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4375rem;
}
.c-card-interview__copy span {
  display: flex;
  padding: 0 0.3125rem;
  flex-direction: column;
  align-items: flex-start;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  background: #fff;
}
@media screen and (min-width: 1024px) {
  .c-card-interview__copy {
    left: 1.5rem;
    bottom: 1.5rem;
  }
}

.c-card-interview__foot {
  margin-top: 0.9375rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-interview__foot {
    margin-top: 1.3125rem;
  }
}

.c-card-interview__job {
  font-size: 0.875rem;
  line-height: 1.8;
}
@media screen and (min-width: 1024px) {
  .c-card-interview__job {
    font-size: 1rem;
  }
}

.c-card-interview__btn {
  margin-left: auto;
}
@media screen and (max-width: 1023px) {
  .c-card-interview__btn {
    display: none;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.c-card-news__link {
  display: flex;
  flex-direction: column;
  gap: 0.5625rem;
  padding: 0.9375rem 0 1.1875rem;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
  color: var(--Gray01, #555);
  position: relative;
}
.c-card-news__link:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  right: 0;
  top: 100%;
  border-bottom: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  transition: var(--duration) var(--easeTheme);
}
.c-card-news__link:hover {
  color: var(--color-assort);
}
.c-card-news__link:hover:after {
  left: 0;
  right: auto;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .c-card-news__link {
    padding: 2rem 0 1.1875rem;
  }
}

.c-card-news__meta {
  display: flex;
  align-items: center;
  gap: 1.1875rem;
}
.c-card-news__category {
  display: flex;
  padding: 0 0.5rem;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  border-radius: 6.25rem;
  background: var(--Blue, #005BAB);
  color: var(--White, #FFF);
  font-size: 0.75rem;
  line-height: 1.6;
}
.c-card-news__date {
  font-size: 0.75rem;
  transition: var(--duration) var(--easeTheme);
}
.c-card-news__body {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.c-card-news__title {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  flex: 1;
  transition: var(--duration) var(--easeTheme);
}
@media screen and (min-width: 1024px) {
  .c-card-news__title {
    font-size: 1rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-card-faq
----------------------------------------------------*/
.c-card-faq {
  background: var(--Blue_light, #D6DCDF);
  border-radius: 0.5rem;
  padding: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-faq {
    padding: 2rem;
  }
}

.c-card-faq__question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  text-align: left;
  padding: 0;
}
@media screen and (min-width: 1024px) {
  .c-card-faq__question {
    gap: 24px;
  }
}

.c-card-faq__q {
  flex-shrink: 0;
  font-family: var(--Montserrat);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-faq__q {
    font-size: 2rem;
  }
}

.c-card-faq__question-text {
  flex: 1 0 0;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-faq__question-text {
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0.075rem;
  }
}

.c-card-faq__icon {
  position: relative;
  flex-shrink: 0;
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 50%;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  transition: transform 0.2s var(--easeOutCubic, ease);
}
@media screen and (min-width: 1024px) {
  .c-card-faq__icon {
    width: 2.25rem;
    height: 2.25rem;
  }
}
.c-card-faq__icon::before, .c-card-faq__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--Blue, #005BAB);
  transform: translate(-50%, -50%);
}
.c-card-faq__icon::before {
  width: 0.875rem;
  height: 1px;
}
.c-card-faq__icon::after {
  width: 1px;
  height: 0.875rem;
}
.is-open .c-card-faq__icon {
  transform: rotate(45deg);
}
@media screen and (min-width: 1024px) {
  .c-card-faq__icon::before {
    width: 1.25rem;
  }
  .c-card-faq__icon::after {
    height: 1.25rem;
  }
}

.c-card-faq__answer {
  display: none;
  overflow: hidden;
}

.c-card-faq__answer-text {
  margin-top: 1rem;
  font-size: 0.875rem;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Gray01, #555);
}
@media screen and (min-width: 1024px) {
  .c-card-faq__answer-text {
    margin-top: 1.5rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*----------------------------------------------------
	c-card-num
----------------------------------------------------*/
.c-card-num {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.c-card-num__number {
  padding-bottom: 0.125rem;
  background-image: repeating-linear-gradient(to right, var(--Blue, #005BAB) 0 2px, transparent 2px 4px);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 1px;
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-num__number {
    padding-bottom: 0.25rem;
    font-family: var(--font);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.05rem;
  }
}

.c-card-num__line {
  display: block;
  height: 1px;
  background-image: repeating-linear-gradient(to right, var(--Blue, #005BAB) 0 2px, transparent 2px 4px);
}

.c-card-num__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.c-card-num__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-num__title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.075rem;
  }
}

.c-card-num__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-card-daylog-lead
----------------------------------------------------*/
.c-card-daylog-lead {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .c-card-daylog-lead {
    flex: 0 0 auto;
    width: 24.375rem;
    height: 31.4375rem;
    justify-content: space-between;
  }
}

.c-card-daylog-lead__head {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.c-card-daylog-lead__title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-daylog-lead__title {
    font-size: 2.5rem;
    letter-spacing: 0.125rem;
  }
}

.c-card-daylog-lead__desc {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .c-card-daylog-lead__desc {
    font-size: 1.125rem;
    letter-spacing: 0.05625rem;
  }
}

.c-card-daylog-lead__meta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  border-top: var(--stroke-weight-1) solid rgba(49, 49, 49, 0.1);
  padding-top: 0.75rem;
}

.c-card-daylog-lead__meta-row {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: var(--stroke-weight-1) solid rgba(49, 49, 49, 0.1);
}

.c-card-daylog-lead__meta-label {
  flex-shrink: 0;
  min-width: 2.9375rem;
  padding: 0 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  border-radius: 1.5rem;
  font-size: 0.625rem;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  color: var(--Blue, #005BAB);
  white-space: nowrap;
}

.c-card-daylog-lead__meta-value {
  flex: 1 0 0;
  min-width: 0;
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  color: var(--Black, #313131);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-card-daylog
----------------------------------------------------*/
.c-card-daylog {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .c-card-daylog {
    gap: 2rem;
  }
}

.c-card-daylog__pic {
  position: relative;
  width: 100%;
  aspect-ratio: 368/276;
  border-radius: 0.5rem;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 1rem;
}
.c-card-daylog__pic img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-card-daylog__time {
  position: relative;
  flex-shrink: 0;
  width: 4.5rem;
  height: 4.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: var(--stroke-weight-1) solid #fff;
  border-radius: 100%;
  font-family: var(--Montserrat);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
}
@media screen and (min-width: 1024px) {
  .c-card-daylog__time {
    font-size: 1.125rem;
  }
}

.c-card-daylog__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-daylog__body {
    gap: 1rem;
  }
}

.c-card-daylog__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .c-card-daylog__title {
    font-size: 1.125rem;
    letter-spacing: 0.05625rem;
  }
}

.c-card-daylog__desc {
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .c-card-daylog__desc {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-card-seminar
----------------------------------------------------*/
.c-card-seminar {
  padding: 1.5rem;
  border-radius: 0.5rem;
  background: var(--Blue_light, #D6DCDF);
}
@media screen and (min-width: 1024px) {
  .c-card-seminar {
    padding: 2rem;
  }
}

.c-card-seminar__head {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__head {
    flex-direction: row;
    align-items: center;
    gap: 2.5rem;
  }
}

.c-card-seminar__pic {
  position: relative;
  width: 100%;
  aspect-ratio: 476/318;
  border-radius: 0.5rem;
  overflow: hidden;
}
.c-card-seminar__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__pic {
    width: 340px;
    min-width: 0;
    align-self: flex-start;
  }
}

.c-card-seminar__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__body {
    flex: 1 0 0;
    justify-content: center;
    gap: 1.5rem;
  }
}

.c-card-seminar__title {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.05625rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__title {
    font-size: 1.5rem;
    letter-spacing: 0.075rem;
  }
}

.c-card-seminar__desc {
  font-size: 0.875rem;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}

.c-card-seminar__toggle-icon {
  position: relative;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  transition: transform 0.2s var(--easeOutCubic, ease);
}
.c-card-seminar__toggle-icon::before, .c-card-seminar__toggle-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: currentColor;
  transform: translate(-50%, -50%);
}
.c-card-seminar__toggle-icon::before {
  width: 0.875rem;
  height: 1px;
}
.c-card-seminar__toggle-icon::after {
  width: 1px;
  height: 0.875rem;
}
.is-open .c-card-seminar__toggle-icon {
  transform: rotate(45deg);
}

.c-card-seminar__toggle-txt:before {
  content: "詳しく見る";
}
.is-open .c-card-seminar__toggle-txt:before {
  content: "閉じる";
}

.c-card-seminar__detail {
  display: none;
  overflow: hidden;
}

.c-card-seminar__detail-inner {
  padding-top: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__detail-inner {
    padding-top: 2.5rem;
    gap: 2.5rem;
  }
}

.c-card-seminar__row {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-bottom: 1.5rem;
  border-bottom: var(--stroke-weight-1) solid var(--Blue_Line, rgba(0, 91, 166, 0.5));
}
.c-card-seminar__row:first-child {
  padding-top: 1.5rem;
  border-top: var(--stroke-weight-1) solid var(--Blue_Line, rgba(0, 91, 166, 0.5));
}
.c-card-seminar__row:last-of-type {
  padding-bottom: 0;
  border-bottom: none;
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__row {
    gap: 1rem;
    padding-bottom: 2rem;
  }
  .c-card-seminar__row:first-child {
    padding-top: 2rem;
  }
}

.c-card-seminar__row-title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__row-title {
    font-size: 1.125rem;
    letter-spacing: 0.05625rem;
  }
}

.c-card-seminar__row-text {
  font-size: 0.875rem;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-seminar__row-text {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-card-benefits
----------------------------------------------------*/
.c-card-benefits {
  padding: 1.875rem;
  border-radius: 0.5rem;
  background: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-benefits {
    min-height: 14rem;
  }
}

.c-card-benefits__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.c-card-benefits__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--White, #fff);
}
@media screen and (max-width: 640px) {
  .c-card-benefits__title {
    margin-right: -0.625rem;
  }
}
@media screen and (min-width: 1024px) {
  .c-card-benefits__title {
    display: flex;
    align-items: center;
    min-height: 2.5rem;
  }
}

.c-card-benefits__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Gray, #E7E7E7);
}
@media screen and (min-width: 1024px) {
  .c-card-benefits__desc {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-card-stat（数字カード：TOPの p-top-numbers-item を共通化）
----------------------------------------------------*/
.c-card-stat {
  --stat-card-h: 9.625rem;
  --stat-pic-h: 3.5rem;
  display: flex;
  flex-direction: column;
  min-height: var(--stat-card-h);
  padding: 0.5rem;
  border-radius: 0.5rem;
  background: var(--gray_light, #f4f4f2);
}
@media screen and (min-width: 1024px) {
  .c-card-stat {
    --stat-card-h: 21.75rem;
    --stat-pic-h: 6.875rem;
    height: var(--stat-card-h);
    padding: 1.375rem;
  }
}

.c-card-stat__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.c-card-stat__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-card-stat__title {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.05625rem;
  }
}

.c-card-stat__en {
  display: none;
}
@media screen and (min-width: 1024px) {
  .c-card-stat__en {
    display: block;
    flex-shrink: 0;
    font-family: var(--Montserrat);
    font-size: 0.625rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0;
    color: var(--Blue, #005BAB);
  }
}

.c-card-stat__pic {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
}
.c-card-stat__pic img {
  width: auto;
  height: var(--stat-pic-h);
}

.c-card-stat__number {
  text-align: center;
  color: var(--Blue, #005BAB);
}
.c-card-stat__number span {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
}
@media screen and (min-width: 1024px) {
  .c-card-stat__number span {
    font-size: 2rem;
  }
}

.c-card-stat__number .c-card-stat__number-strong {
  font-size: 1.375rem;
}
@media screen and (min-width: 1024px) {
  .c-card-stat__number .c-card-stat__number-strong {
    font-size: 3rem;
    font-weight: 600;
  }
}

.c-card-stat__number--split {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .c-card-stat__number--split {
    gap: 2.1875rem;
  }
}

.c-card-stat__number--gender .c-card-stat__number-label {
  margin-right: 0.5rem;
  font-size: 0.75rem;
}
@media screen and (min-width: 1024px) {
  .c-card-stat__number--gender .c-card-stat__number-label {
    margin-right: 0.3em;
    font-size: 1.5rem;
  }
}

.c-card-stat__note {
  margin-top: 0.25rem;
  text-align: center;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  color: var(--Black, #313131);
}
.c-card-stat__note a {
  color: var(--Black, #313131);
}
.c-card-stat__note a:hover {
  text-decoration: underline;
}
@media screen and (min-width: 1024px) {
  .c-card-stat__note {
    font-size: 0.75rem;
    letter-spacing: 0.0375rem;
  }
}

@media screen and (min-width: 1024px) {
  .c-card-stat--auto {
    height: auto;
    min-height: var(--stat-card-h);
  }
}

@media screen and (min-width: 1024px) {
  .c-card-stat--wide {
    height: auto;
    min-height: var(--stat-card-h);
    --stat-card-h: 28.25rem;
    padding: 2rem 1.5rem 1.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-seminar
----------------------------------------------------*/
.p-seminar__inner {
  max-width: 49rem;
  margin-left: auto;
  margin-right: auto;
  padding: 12.3125rem 0 var(--padding-section-lg);
}
@media screen and (min-width: 1024px) {
  .p-seminar__inner {
    padding: 13.125rem 0 var(--padding-section-lg);
  }
}

.p-seminar__list {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-seminar__list {
    margin-top: 4.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-heading
----------------------------------------------------*/
.c-heading, .p-business-structure__title, .p-business-structure__item-title, .p-business-case__title, .p-business-jobs__title, .p-business-strengths__title, .p-about-vision__heading, .p-service-network__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-heading, .p-business-structure__title, .p-business-structure__item-title, .p-business-case__title, .p-business-jobs__title, .p-business-strengths__title, .p-about-vision__heading, .p-service-network__heading {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.125rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-service common
----------------------------------------------------*/
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-service-list
----------------------------------------------------*/
.p-service-list {
  position: relative;
  overflow: hidden;
  padding: var(--padding-section-lg) 0 0;
}

.p-service-list__items {
  margin-top: var(--padding-block);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-service-list__items {
    grid-template-columns: repeat(4, 1fr);
  }
}

.p-service-list__item {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 170/88;
  border-radius: 0.5rem;
  background: var(--Gray_light, #F4F4F2);
}
.p-service-list__item img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
@media screen and (min-width: 1024px) {
  .p-service-list__item {
    aspect-ratio: 288/160;
    padding: 0 1.25rem;
  }
}

.p-service-list__bg {
  margin-top: var(--padding-section-lg);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-service-solution
----------------------------------------------------*/
.p-service-solution {
  padding: var(--padding-section-lg) 0;
  overflow: hidden;
}

.p-service-solution__items .swiper-slide {
  width: 16.5rem;
}
@media screen and (min-width: 1024px) {
  .p-service-solution__items .swiper-slide {
    width: 23rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-service-future
----------------------------------------------------*/
.p-service-future__wrap {
  padding: var(--padding-section-lg) 0;
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-service-future__wrap {
    gap: 7rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-service-network
----------------------------------------------------*/
.p-service-network {
  background: rgba(244, 244, 242, 0.4);
  padding: var(--padding-section) 0;
}

.p-service-network__row {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-service-network__row {
    margin-top: 3.9375rem;
    display: grid;
    grid-template-columns: auto 54.125rem;
    grid-template-rows: auto auto;
    column-gap: 0.75rem;
    align-content: space-between;
    align-items: start;
  }
}

@media screen and (min-width: 1024px) {
  .p-service-network__heading {
    grid-column: 1;
    grid-row: 1;
  }
}

.p-service-network__pic {
  margin: -3.75rem -1rem 0;
}
.p-service-network__pic img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-service-network__pic {
    width: auto;
    margin: -2.125rem -1.125rem 0 0;
    grid-column: 2;
    grid-row: 1/3;
    justify-self: end;
  }
  .p-service-network__pic img {
    width: auto;
  }
}

.p-service-network__legend {
  margin-top: -1.125rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-service-network__legend {
    margin-top: 0;
    grid-column: 1;
    grid-row: 2;
    align-self: flex-end;
  }
}

.p-service-network__legend-title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--Blue, #005BAB);
  letter-spacing: 0;
}
.p-service-network__legend-list {
  display: flex;
  gap: 1rem;
}

.p-service-network__legend-col {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-service-network__legend-col {
    gap: 0.25rem;
  }
}

.p-service-network__legend-item {
  display: flex;
  align-items: center;
  gap: 0.5625rem;
  padding-right: 0.875rem;
}

.p-service-network__badge {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 1rem;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  color: var(--Blue, #005BAB);
  font-size: 0.75rem;
}
.p-service-network__badge--square {
  border-radius: 0.25rem;
}
.p-service-network__badge--filled {
  background: var(--Blue, #005BAB);
  color: #FFF;
}

.p-service-network__legend-text {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Blue, #005BAB);
  white-space: nowrap;
}

.p-service-network__divider {
  margin-top: 2rem;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
@media screen and (min-width: 1024px) {
  .p-service-network__divider {
    margin-top: 3.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-mission common
----------------------------------------------------*/
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-mission-lead
----------------------------------------------------*/
.p-about-lead {
  position: relative;
  padding: var(--padding-section-lg) 0;
}

.p-about-lead__wrap {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 2rem auto 1.5rem auto 2rem auto;
  grid-template-areas: "head" "." "copy" "." "desc" "." "pic";
}
@media screen and (min-width: 1024px) {
  .p-about-lead__wrap {
    grid-template-columns: 39.75rem 2.5rem 6.25rem 4rem 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas: "pic . copy . head" "pic . copy . desc";
  }
}

.p-about-lead__head {
  grid-area: head;
}
@media screen and (min-width: 1024px) {
  .p-about-lead__head {
    padding-top: 0.25rem;
  }
}

.p-about-lead__copy {
  grid-area: copy;
  display: flex;
  flex-direction: column;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-about-lead__copy {
    writing-mode: vertical-rl;
    font-size: 2.75rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
  }
}

.p-about-lead__desc {
  grid-area: desc;
}
@media screen and (min-width: 1024px) {
  .p-about-lead__desc {
    align-self: end;
  }
}

.p-about-lead__pic {
  grid-area: pic;
  position: relative;
  width: 100%;
  aspect-ratio: 358/284;
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-about-lead__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-about-lead__pic {
    width: 39.75rem;
    height: 44.6875rem;
    aspect-ratio: auto;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-mission-vision
----------------------------------------------------*/
.p-about-vision__inner {
  padding: var(--padding-section-lg) 0 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
@media screen and (min-width: 1024px) {
  .p-about-vision__inner {
    gap: 4rem;
  }
}

.p-about-vision__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-about-vision__text {
    gap: 4.25rem;
  }
}

.p-about-vision__mission,
.p-about-vision__vision {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-about-vision__mission,
  .p-about-vision__vision {
    gap: 1rem;
  }
}

.p-about-vision__label {
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-about-vision__label {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

.p-about-vision__divider {
  width: 100%;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}

.p-about-vision__desc {
  text-align: justify;
}

.p-about-vision__images {
  display: flex;
  gap: 1rem;
  width: 100%;
}
.p-about-vision__images img {
  border-radius: 0.25rem;
}
@media screen and (min-width: 1024px) {
  .p-about-vision__images {
    gap: 3rem;
  }
  .p-about-vision__images img {
    border-radius: 0.5rem;
  }
}

.p-about-vision__image {
  position: relative;
  flex: 1;
  aspect-ratio: 170/135;
  border-radius: 0.25rem;
  overflow: hidden;
}
.p-about-vision__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-about-vision__image {
    flex: 0 0 auto;
    width: 36rem;
    height: 28.5625rem;
    aspect-ratio: auto;
    border-radius: 0.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-mission-philosophy
----------------------------------------------------*/
.p-about-philosophy {
  padding: var(--padding-section-lg) 0 0;
}

.p-about-philosophy__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-about-philosophy__inner {
    gap: 3.5rem;
  }
}

.p-about-philosophy__list {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
}
@media screen and (min-width: 1024px) {
  .p-about-philosophy__list {
    flex-direction: row;
    justify-content: space-between;
    gap: 3.5rem;
  }
}

.p-about-philosophy__item {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-about-philosophy__item {
    width: 35.25rem;
  }
}

.p-about-philosophy__item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-about-philosophy__item-header {
    height: 3.75rem;
  }
}

.p-about-philosophy__item-heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-about-philosophy__item-heading {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.1rem;
  }
}

.p-about-philosophy__item-label {
  flex-shrink: 0;
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--Black, #313131);
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .p-about-philosophy__item-label {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-mission-culture
----------------------------------------------------*/
.p-about-culture {
  padding: var(--padding-section-lg) 0 0;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-mission-message
----------------------------------------------------*/
.p-about-message {
  padding: var(--padding-section-lg) 0;
}
@media screen and (min-width: 1024px) {
  .p-about-message {
    padding: var(--padding-section) 0 var(--padding-section-lg);
  }
}

.p-about-message__heading {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-about-message__heading {
    margin-top: 4.5rem;
  }
}

.p-about-message__body {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-about-message__body {
    margin-top: 2.5rem;
    flex-direction: row;
    gap: 3rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-about-message__col {
    flex: 1;
    min-width: 0;
  }
}
.p-about-message__col:last-child {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-about-message__col:last-child {
    justify-content: space-between;
  }
}

.p-about-message__sign {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}
@media screen and (min-width: 1024px) {
  .p-about-message__sign {
    margin-top: 0.25rem;
  }
}

.p-about-message__sign-org {
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  color: var(--Black, #313131);
}

.p-about-message__sign-name {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Black, #313131);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-business-structure
----------------------------------------------------*/
.p-business-structure {
  padding: var(--padding-section-lg) 0 0;
  overflow: hidden;
  position: relative;
}

.p-business-structure__intro {
  margin-top: var(--padding-block);
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__intro {
    margin-top: 2.5rem;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
  }
}

.p-business-structure__body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__body {
    width: 29.3125rem;
    flex-shrink: 0;
    gap: 3.5rem;
  }
}

.p-business-structure__desc {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Black, #313131);
  text-align: justify;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__desc {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

.p-business-structure__diagram {
  width: 100%;
}
.p-business-structure__diagram img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__diagram {
    flex: 1;
    max-width: 37.125rem;
    margin-left: auto;
  }
}

.p-business-structure__divider {
  margin: var(--padding-section-lg) 0;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}

.p-business-structure__list {
  display: flex;
  flex-direction: column;
}

.p-business-structure__item {
  padding: 2rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.p-business-structure__item:first-child {
  border-top: none;
  padding-top: 0;
}
.p-business-structure__item:last-child {
  padding-bottom: 0;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__item {
    border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
    padding: 5rem 0;
    display: grid;
    grid-template-columns: 36rem 36rem;
    align-items: stretch;
    gap: 3rem;
  }
}

.p-business-structure__item-body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__item-body {
    flex-shrink: 0;
    gap: 1.5rem;
    height: 100%;
    justify-content: space-between;
  }
}

.p-business-structure__item-visual {
  position: relative;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__item-visual {
    display: block;
  }
}

.p-business-structure__item-desc {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Black, #313131);
  text-align: justify;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__item-desc {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

.p-business-structure__item-pic {
  width: 100%;
  aspect-ratio: 358/269;
  border-radius: 1rem;
  overflow: hidden;
}
.p-business-structure__item-pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__item-pic {
    aspect-ratio: 576/432;
    flex-shrink: 0;
  }
}

/*
 * 吹き出し
 * Figma: PC 2826:38203（234×109 / padding 8-24 / radius16 / 14px 1.2 0.7px）
 *        しっぽ 2826:38200（47.79×43.54 を 180度回転して左 -24px / 上 39.08px）
 *        SP I5005:27771;876:10185（全幅 / padding16 / radius16 / 12px 1.6 0.6px）
 *        しっぽ I5005:27771;876:10182（31.82×24.6 を -90度回転して右18px / 上 -21px）
 */
.p-business-structure__item-voice-text {
  position: relative;
  margin-top: -1.6875rem;
  padding: 1rem;
  border-radius: 1rem;
  background: var(--Blue, #005BAB);
  color: #FFF;
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
}
.p-business-structure__item-voice-text:before {
  content: "";
  display: block;
  width: 1.5375rem;
  height: 1.98875rem;
  position: absolute;
  right: 1.125rem;
  top: -1.3125rem;
  pointer-events: none;
  background: url(../img/p-business-voice-bubble-sp.svg) center center/contain no-repeat;
}
@media screen and (min-width: 1024px) {
  .p-business-structure__item-voice-text {
    position: absolute;
    right: 1.625rem;
    bottom: 1rem;
    margin-top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 14.625rem;
    height: 6.8125rem;
    padding: 0.5rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.04375rem;
  }
  .p-business-structure__item-voice-text:before {
    width: 2.986875rem;
    height: 2.72125rem;
    right: auto;
    left: -1.5rem;
    top: 2.4425rem;
    background-image: url(../img/p-business-voice-bubble.svg);
  }
}

.p-business-structure__bottom {
  margin-top: var(--padding-section-lg);
}
.p-business-structure__bottom img {
  display: block;
  width: 100%;
  height: auto;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-business-case
----------------------------------------------------*/
.p-business-case {
  padding: var(--padding-section-lg) 0 0;
}

.p-business-case__intro {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-business-case__intro {
    flex-direction: row;
    justify-content: space-between;
    gap: 3.5rem;
  }
}

.p-business-case__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-business-case__body {
    width: 26rem;
    flex-shrink: 0;
    gap: 2rem;
  }
}

.p-business-case__title {
  margin-top: 0.75rem;
}
@media screen and (min-width: 1024px) {
  .p-business-case__title {
    margin-top: 2.5rem;
  }
}

.p-business-case__desc {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Black, #313131);
  text-align: justify;
}
@media screen and (min-width: 1024px) {
  .p-business-case__desc {
    margin-top: auto;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

.p-business-case__pic {
  width: 100%;
  aspect-ratio: 358/284;
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-business-case__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-business-case__pic {
    flex: 1;
    width: auto;
    aspect-ratio: auto;
  }
}

.p-business-case__items {
  margin-top: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-business-case__items {
    margin-top: 6rem;
  }
}
.p-business-case__items .swiper-slide {
  width: 16.5rem;
}
@media screen and (min-width: 1024px) {
  .p-business-case__items .swiper-slide {
    width: 23.3125rem;
  }
}
@media screen and (max-width: 1023px) {
  .p-business-case__items .c-card-media--business {
    flex-direction: column;
  }
}
.p-business-case__items .c-card-media--business .c-card-media__pic {
  width: 100%;
  aspect-ratio: 373/238;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-business-jobs
----------------------------------------------------*/
.p-business-jobs {
  padding: var(--padding-section-lg) 0;
}

.p-business-jobs__wrap {
  margin-top: var(--padding-block);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__wrap {
    margin-top: 3.9375rem;
    flex-direction: row;
    justify-content: space-between;
    gap: 2.5rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-business-jobs__head {
    width: 16.5rem;
    flex-shrink: 0;
  }
}

.p-business-jobs__list {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__list {
    width: 42.5rem;
  }
}

.p-business-jobs__item {
  padding: 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
.p-business-jobs__item:first-child {
  padding-top: 0;
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__item {
    padding: 2rem 0;
    flex-direction: row;
    gap: 3.5rem;
  }
}

.p-business-jobs__item-label {
  flex-shrink: 0;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__item-label {
    width: 12.125rem;
    font-size: 1.125rem;
    letter-spacing: 0.05625rem;
  }
}

.p-business-jobs__item-desc {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__item-desc {
    flex: 1 0 0;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-business-jobs__item--group {
    align-items: flex-start;
  }
}

.p-business-jobs__sublist {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__sublist {
    flex: 1 0 0;
    gap: 2rem;
  }
}

.p-business-jobs__subitem {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__subitem {
    gap: 1rem;
  }
}

.p-business-jobs__subitem-title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__subitem-title {
    font-size: 1.125rem;
    letter-spacing: 0.05625rem;
  }
}

.p-business-jobs__subitem-desc {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Gray01, #555);
}
@media screen and (min-width: 1024px) {
  .p-business-jobs__subitem-desc {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-business-strengths
----------------------------------------------------*/
.p-business-strengths {
  padding: var(--padding-section) 0;
  background: var(--Gray_Light, #F4F4F2);
}

.p-business-strengths__wrap {
  margin-top: var(--padding-block);
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__wrap {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
  }
}

.p-business-strengths__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__body {
    flex: 1;
    gap: 3rem;
  }
}

.p-business-strengths__desc {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Blue, #005BAB);
  text-align: justify;
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__desc {
    flex-direction: row;
    gap: 3rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__desc p {
    flex: 1;
    width: 23rem;
  }
}

.p-business-strengths__badges {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__badges {
    flex-shrink: 0;
    align-self: flex-end;
  }
}

.p-business-strengths__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  width: 21.25rem;
  aspect-ratio: 340/172;
  padding: 0.625rem 0 0;
  border-radius: 62.4375rem;
  border: var(--stroke-weight-1) dashed var(--Blue, #005BAB);
}
.p-business-strengths__badge:last-child {
  margin-top: -1.75rem;
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__badge {
    width: 21.25rem;
    padding: 0.625rem 0 0;
  }
  .p-business-strengths__badge:last-child {
    margin-top: -1.75rem;
  }
}

.p-business-strengths__badge-en {
  font-family: var(--Montserrat);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__badge-en {
    font-size: 1.5rem;
  }
}

.p-business-strengths__badge-ja {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.0375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-business-strengths__badge-ja {
    font-size: 0.875rem;
    letter-spacing: 0.04375rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-benefits-lead
	共通スタイルは .cm-page-intro（Module/_cm-page.scss）。ここは差分のみ
----------------------------------------------------*/
@media screen and (max-width: 1023px) {
  .cm-page-intro.p-benefits-lead {
    margin-top: 2rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-benefits-visual（フルブリード）
----------------------------------------------------*/
.p-benefits-visual {
  position: relative;
  display: block;
  margin-top: 4rem;
}
.p-benefits-visual img {
  width: 100%;
  height: auto;
  aspect-ratio: 390/280;
}
@media screen and (min-width: 1024px) {
  .p-benefits-visual {
    margin-top: 8.5rem;
  }
  .p-benefits-visual img {
    aspect-ratio: 1440/810;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-benefits
----------------------------------------------------*/
.p-benefits__wrap {
  margin-top: 4rem;
  padding-bottom: var(--padding-section-lg);
}
@media screen and (min-width: 1024px) {
  .p-benefits__wrap {
    margin-top: 8.5rem;
    display: flex;
    align-items: flex-start;
    gap: 6.5rem;
  }
}

.p-benefits__aside {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-benefits__aside {
    display: block;
    width: 13rem;
    flex-shrink: 0;
  }
}

.p-benefits__content {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  min-width: 0;
}
@media screen and (min-width: 1024px) {
  .p-benefits__content {
    flex: 1;
    gap: 7rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-benefits-section
----------------------------------------------------*/
.p-benefits-section {
  scroll-margin-top: var(--header-height);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-benefits-section {
    gap: 3.5rem;
  }
}
.p-benefits-section > * {
  width: 100%;
}
.p-benefits-section .cm-section-header__label {
  padding-bottom: 0.25rem;
}
@media screen and (min-width: 1024px) {
  .p-benefits-section .cm-section-header__label {
    padding-bottom: 0.75rem;
  }
}

.p-benefits-section__lead {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-benefits-section__lead {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2.5rem;
  }
}

.p-benefits-section__title {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-benefits-section__title {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0;
  }
}

.p-benefits-section__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-benefits-section__desc {
    width: 25.75rem;
    flex-shrink: 0;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

.p-benefits-section__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}
.p-benefits-section__list .c-card-benefits {
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-benefits-section__list .c-card-benefits {
    width: calc((100% - 1.5rem) / 2);
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-benefits-voice（吹き出し）
----------------------------------------------------*/
.p-benefits-voice {
  --pic-w: 6.4375rem;
  --pic-h: 9.6875rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 1024px) {
  .p-benefits-voice {
    width: auto;
    align-self: flex-end;
    --pic-w: 12.5rem;
    --pic-h: 12.5rem;
  }
}

.p-benefits-voice__pic {
  flex-shrink: 0;
  margin-right: 0.125rem;
  mix-blend-mode: multiply;
  width: var(--pic-w);
  height: var(--pic-h);
}
.p-benefits-voice__pic img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
}
@media screen and (min-width: 1024px) {
  .p-benefits-voice__pic {
    margin-right: 1.0625rem;
  }
}

.p-benefits-voice__balloon {
  position: relative;
  width: 16.25rem;
  flex-shrink: 0;
  padding: 1rem;
  border-radius: 1rem;
  background: var(--Gray_Green, #D9DDDC);
}
.p-benefits-voice__balloon::before {
  content: "";
  position: absolute;
  left: -0.625rem;
  top: 0.8125rem;
  width: 1.25rem;
  height: 1.3125rem;
  border-radius: 50%;
  background: var(--Gray_Green, #D9DDDC);
}
.p-benefits-voice__balloon::after {
  content: "";
  position: absolute;
  left: -1.375rem;
  top: 1.75rem;
  width: 0.5rem;
  height: 0.5625rem;
  border-radius: 50%;
  background: var(--Gray_Green, #D9DDDC);
}
@media screen and (min-width: 1024px) {
  .p-benefits-voice__balloon {
    width: 27.6875rem;
    min-height: 12.625rem;
    padding: 1.5rem 3.96875rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-benefits-voice__balloon::before {
    left: -1.0625rem;
    top: 1.3125rem;
    width: 2.125rem;
    height: 2.25rem;
  }
  .p-benefits-voice__balloon::after {
    left: -2.3125rem;
    top: 3rem;
    width: 0.875rem;
    height: 0.9375rem;
  }
}

.p-benefits-voice__text {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-benefits-voice__text {
    max-width: 19.75rem;
    font-size: 1rem;
    line-height: 1.8;
    letter-spacing: 0.05rem;
  }
}

.p-benefits-voice--01 .p-benefits-voice__pic img {
  object-fit: cover;
}

@media screen and (min-width: 1024px) {
  .p-benefits-voice--03 {
    --pic-w: 10.8125rem;
    --pic-h: 16.25rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-benefits-voice--04 {
    --pic-w: 8.8125rem;
    --pic-h: 13.25rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-career（共通）
----------------------------------------------------*/
@media screen and (min-width: 1024px) {
  .p-career .cm-section-header__body {
    margin-top: 3.5rem;
    align-items: flex-start;
  }
}
.p-career .cm-section-header__label {
  padding-bottom: 0.25rem;
}
@media screen and (min-width: 1024px) {
  .p-career .cm-section-header__label {
    padding-bottom: 0.75rem;
  }
}

.p-career-visual,
.p-career-job,
.p-career-journey,
.p-career-caurese,
.p-career-staff {
  margin-top: var(--padding-section-lg);
}

.p-career-staff {
  padding-bottom: var(--padding-section-lg);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-career-visual（フルブリード）
----------------------------------------------------*/
.p-career-visual {
  position: relative;
  display: block;
}
.p-career-visual img {
  width: 100%;
  height: auto;
  aspect-ratio: 390/280;
}
@media screen and (min-width: 1024px) {
  .p-career-visual img {
    aspect-ratio: 1440/810;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-career-job（基幹職の業務内容）
----------------------------------------------------*/
.p-career-job .cm-section-header__desc {
  text-align: justify;
}

.p-career-job__list {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .p-career-job__list {
    margin-top: 3.5rem;
  }
}

.p-career-job-card {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  padding: 1.5rem;
  border-radius: 0.75rem;
  background: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-career-job-card {
    flex-direction: row;
    align-items: center;
    gap: 3rem;
    padding: 2.5rem 3.125rem 2.5rem 2.5rem;
  }
}

.p-career-job-card__pic img {
  width: 100%;
  height: 100%;
  aspect-ratio: 310/207;
  object-fit: cover;
  border-radius: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-career-job-card__pic {
    width: 33.25rem;
    flex-shrink: 0;
  }
  .p-career-job-card__pic img {
    height: 22.1875rem;
    aspect-ratio: auto;
  }
}

.p-career-job-card__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  color: #fff;
}
@media screen and (min-width: 1024px) {
  .p-career-job-card__body {
    flex: 1;
    min-width: 0;
    height: 22.1875rem;
    justify-content: space-between;
    gap: 1.5rem;
  }
}

.p-career-job-card__title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.075rem;
}
@media screen and (min-width: 1024px) {
  .p-career-job-card__title {
    font-size: 2rem;
    letter-spacing: 0.1rem;
  }
}

.p-career-job-card__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
}
@media screen and (min-width: 1024px) {
  .p-career-job-card__desc {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-career-journey（基幹職の歩み）
----------------------------------------------------*/
.p-career-journey__body {
  margin-top: 2rem;
  display: flex;
  flex-direction: column-reverse;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-career-journey__body {
    margin-top: 3.5rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
    gap: 0;
  }
}

.p-career-journey__desc {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-career-journey__desc {
    width: 30.4166666667%;
    flex-shrink: 0;
    gap: 2.5rem;
  }
}

.p-career-journey__desc-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-career-journey__desc-title {
    font-size: 2.5rem;
    letter-spacing: 0;
  }
}

.p-career-journey__desc-text {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
.p-career-journey__desc-text .p-career-journey__desc-pc {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-career-journey__desc-text {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
  .p-career-journey__desc-text .p-career-journey__desc-pc {
    display: inline;
  }
  .p-career-journey__desc-text .p-career-journey__desc-sp {
    display: none;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-career-journey-step（階段状のバー＝モーダルを開くボタン）
	バーの寸法は Figma の 786 x 353 を基準に比率で組む
----------------------------------------------------*/
.p-career-journey__visual {
  display: flex;
  align-items: flex-end;
  width: 100%;
  aspect-ratio: 786/353;
}
@media screen and (min-width: 1024px) {
  .p-career-journey__visual {
    width: 65.5%;
    flex-shrink: 0;
  }
}

.p-career-journey-step {
  position: relative;
  width: 33.3333333333%;
  border: 0;
  padding: 0;
  background: var(--Blue, #005BAB);
  border-radius: 1rem 0 0 0;
  cursor: pointer;
  transition: opacity var(--duration) var(--easeTheme);
}
.p-career-journey-step--01 {
  height: 58.3569405099%;
  opacity: 0.6;
}
.p-career-journey-step--02 {
  height: 79.0368271955%;
  opacity: 0.8;
}
.p-career-journey-step--03 {
  height: 100%;
  border-radius: 1rem 1rem 0 0;
}
.p-career-journey-step--01:hover {
  opacity: 1;
}
.p-career-journey-step--02:hover {
  opacity: 1;
}
.p-career-journey-step--03:hover {
  opacity: 1;
}

.p-career-journey-step__plus {
  position: absolute;
  left: 0.5rem;
  top: 0.5rem;
  width: 1.3125rem;
  height: 1.3125rem;
  border: var(--stroke-weight-1) solid #fff;
  border-radius: 50%;
}
.p-career-journey-step__plus::before, .p-career-journey-step__plus::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
}
.p-career-journey-step__plus::before {
  width: 0.625rem;
  height: var(--stroke-weight-1);
}
.p-career-journey-step__plus::after {
  width: var(--stroke-weight-1);
  height: 0.625rem;
}
@media screen and (min-width: 1024px) {
  .p-career-journey-step__plus {
    left: 0.625rem;
    top: 0.625rem;
    width: 2.9375rem;
    height: 2.9375rem;
  }
  .p-career-journey-step__plus::before {
    width: 1.125rem;
    height: 2px;
  }
  .p-career-journey-step__plus::after {
    width: 2px;
    height: 1.125rem;
  }
}

.p-career-journey-step__pic {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  max-width: none;
  height: auto;
}
.p-career-journey-step--01 .p-career-journey-step__pic {
  width: 38.5%;
  bottom: 39.3203883495%;
}
.p-career-journey-step--02 .p-career-journey-step__pic {
  width: 63.358778626%;
  bottom: 33.6917562724%;
}
.p-career-journey-step--03 .p-career-journey-step__pic {
  width: 77.4809160305%;
  bottom: 36.9971671388%;
}
.p-career-journey-step__pic img {
  transition: 0.2s var(--easeTheme);
}
button:hover .p-career-journey-step__pic img {
  transform: scale(1.06);
}

.p-career-journey-step__label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.6875rem;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .p-career-journey-step__label {
    bottom: 1.75rem;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.075rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-career-caurese（複線型キャリア）
----------------------------------------------------*/
.p-career-caurese__inner {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-career-caurese__inner {
    margin-top: 3.5rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
    gap: 0;
  }
}

.p-career-caurese__lead {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-career-caurese__lead {
    width: 29%;
    flex-shrink: 0;
    justify-content: space-between;
    gap: 2.5rem;
  }
}

.p-career-caurese__title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-career-caurese__title {
    font-size: 2.5rem;
    letter-spacing: 0.125rem;
  }
}

.p-career-caurese__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-career-caurese__desc {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

@media screen and (max-width: 1023px) {
  .p-career-caurese__diagram {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
}
@media screen and (min-width: 1024px) {
  .p-career-caurese__diagram {
    width: 71%;
    flex-shrink: 0;
  }
}

.p-career-caurese__diagram-pic img {
  width: 100%;
  height: auto;
}

.p-career-caurese__diagram-zoom {
  gap: 1rem;
  padding: 0 1.3125rem;
}
@media screen and (min-width: 1024px) {
  .p-career-caurese__diagram-zoom {
    display: none;
  }
}

.p-career-caurese__list {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-career-caurese__list {
    margin-top: 3.5rem;
    flex-direction: row;
    justify-content: space-between;
    gap: 2.5rem;
  }
}

.p-career-caurese-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (min-width: 1024px) {
  .p-career-caurese-item {
    width: 31.0833333333%;
    flex-shrink: 0;
  }
}

.p-career-caurese-item__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.375rem;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  border-radius: 1.5rem;
  background: var(--Blue, #005BAB);
  color: var(--Gray, #E7E7E7);
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  white-space: nowrap;
}

.p-career-caurese-item__body {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.p-career-caurese-item__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--Blue, #005BAB);
}

.p-career-caurese-item__desc {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  color: var(--Black, #313131);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-career-staff（他スタッフのインタビュー）
----------------------------------------------------*/
.p-career-staff {
  overflow: hidden;
}
.p-career-staff .cm-slider__list.swiper,
.p-career-staff .cm-slider__foot {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-career-staff .cm-slider__list.swiper,
  .p-career-staff .cm-slider__foot {
    margin-top: 3.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-day-log
----------------------------------------------------*/
.p-day-log-lead {
  position: relative;
  padding-top: var(--padding-section-lg);
}
.p-day-log-lead p {
  text-align: justify;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-day-log-lead p {
    max-width: 46.875rem;
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.7;
    letter-spacing: 0.05em;
  }
}

.p-day-log-01,
.p-day-log-02 {
  position: relative;
  padding: var(--padding-section-lg) 0 0;
}

.p-day-log-01__lead,
.p-day-log-02__lead {
  margin-top: var(--padding-block);
  display: flex;
  flex-direction: column-reverse;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-day-log-01__lead,
  .p-day-log-02__lead {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
  }
}

.p-day-log-01__pic,
.p-day-log-02__pic {
  position: relative;
  width: 100%;
  aspect-ratio: 690/503;
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-day-log-01__pic img,
.p-day-log-02__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-day-log-01__pic,
  .p-day-log-02__pic {
    flex: 0 0 auto;
    width: 43.125rem;
    border-radius: 1rem;
  }
}

.p-day-log-interview {
  padding: var(--padding-section-lg) 0;
  overflow: hidden;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-day-log-01 .cm-slider__items .swiper-slide,
.p-day-log-02 .cm-slider__items .swiper-slide {
  width: 16.5rem;
}
@media screen and (min-width: 1024px) {
  .p-day-log-01 .cm-slider__items .swiper-slide,
  .p-day-log-02 .cm-slider__items .swiper-slide {
    width: 23rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
@media screen and (min-width: 1024px) {
  .p-day-log-01 .p-day-log-01__lead,
  .p-day-log-01 .p-day-log-02__lead,
  .p-day-log-02 .p-day-log-01__lead,
  .p-day-log-02 .p-day-log-02__lead {
    margin-top: 3.5rem;
  }
  .p-day-log-01 .cm-slider__items,
  .p-day-log-01 .cm-slider__foot,
  .p-day-log-02 .cm-slider__items,
  .p-day-log-02 .cm-slider__foot {
    margin-top: 4rem;
  }
}

/*----------------------------------------------------
	p-faq
----------------------------------------------------*/
.p-faq__wrap {
  padding: var(--padding-block) 0 var(--padding-section-lg);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-faq__wrap {
    padding: 4.5rem 0 var(--padding-section-lg);
    flex-direction: row;
    align-items: flex-start;
    gap: 3.5rem;
  }
}

.p-faq__aside {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-faq__aside {
    display: block;
    width: 13rem;
    flex-shrink: 0;
  }
}

.p-faq__content {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  min-width: 0;
}
@media screen and (min-width: 1024px) {
  .p-faq__content {
    flex: 1;
    gap: 7rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-faq-section
----------------------------------------------------*/
.p-faq-section {
  scroll-margin-top: var(--header-height);
}

.p-faq-section__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.0625rem;
  color: var(--Black, #313131);
  text-align: justify;
}
@media screen and (min-width: 1024px) {
  .p-faq-section__title {
    font-size: 2rem;
    letter-spacing: 0.1rem;
  }
}

.p-faq-section__items {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-faq-section__items {
    margin-top: 2rem;
    gap: 2rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-faq-note（ハラスメント防止の方針と相談窓口）
	Figma: 2559:51043 / テキスト 2559:51044 / リンク 2559:51045
----------------------------------------------------*/
.p-faq-note {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
}

.p-faq-note__text,
.p-faq-note__list {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.0375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-faq-note__text,
  .p-faq-note__list {
    font-size: 0.875rem;
    letter-spacing: 0.04375rem;
  }
}

.p-faq-note__list {
  margin-top: 1.8em;
}

.p-faq-note__link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.0375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-faq-note__link {
    font-size: 0.875rem;
    letter-spacing: 0.04375rem;
  }
}

.p-faq-note__link-text {
  text-decoration: underline;
  text-underline-position: from-font;
}
.p-faq-note__link:hover .p-faq-note__link-text {
  text-decoration: none;
}

.p-faq-note__link-icon {
  flex-shrink: 0;
  width: 1.1495625rem;
  height: 1.1495625rem;
}
.p-faq-note__link-icon img {
  display: block;
  width: 100%;
  height: 100%;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-pagination
----------------------------------------------------*/
.c-pagination {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.c-pagination__list {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.c-pagination__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  font-family: var(--Montserrat);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.8;
  color: var(--Blue, #005BAB);
  transition: var(--duration) var(--easeTheme);
}
.c-pagination__num.is-current {
  background: var(--Blue, #005BAB);
  color: #FFF;
}
@media (hover: hover) {
  .c-pagination__num:hover, a:hover .c-pagination__num {
    opacity: 0.7;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-news
----------------------------------------------------*/
.p-news__wrap {
  padding: var(--padding-block) 0 var(--padding-section-lg);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-news__wrap {
    padding: 4.5rem 0 var(--padding-section-lg);
    flex-direction: row;
    align-items: flex-start;
    gap: 3.5rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-news__aside {
    display: block;
    width: 13rem;
    flex-shrink: 0;
    position: sticky;
    top: calc(var(--header-height) + 1.5rem);
  }
}

.p-news__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  min-width: 0;
}
@media screen and (min-width: 1024px) {
  .p-news__content {
    margin-top: -1.875rem;
    flex: 1;
    gap: 3rem;
  }
}

.p-news__list {
  width: 100%;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-pager
----------------------------------------------------*/
.c-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.c-pager__prev,
.c-pager__next {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.c-pager__arrow {
  width: 2rem;
  height: 2rem;
}
@media screen and (min-width: 1024px) {
  .c-pager__arrow {
    width: 2.5rem;
    height: 2.5rem;
  }
}

.c-pager__txt {
  white-space: nowrap;
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .c-pager__txt {
    font-size: 1rem;
    line-height: 1.8;
    letter-spacing: 0.05rem;
  }
}

.c-pager__list {
  white-space: nowrap;
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .c-pager__list {
    font-size: 1rem;
    line-height: 1.8;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-single-news
----------------------------------------------------*/
.p-single-news__wrap {
  max-width: 49rem;
  margin-left: auto;
  margin-right: auto;
  padding: 12.3125rem 0 var(--padding-section-lg);
}
@media screen and (min-width: 1024px) {
  .p-single-news__wrap {
    padding: 13.125rem 0 var(--padding-section-lg);
  }
}

.p-single-news__head {
  margin-bottom: 4rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-single-news__head {
    margin-bottom: 7rem;
  }
}

.p-single-news__meta {
  display: flex;
  align-items: center;
  gap: 1.1875rem;
}

.p-single-news__category {
  display: flex;
  padding: 0 0.5rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: var(--Blue, #005BAB);
  color: var(--White, #FFF);
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
}
@media screen and (min-width: 1024px) {
  .p-single-news__category {
    font-size: 0.875rem;
    line-height: 1.8;
    letter-spacing: 0.04375rem;
  }
}

.p-single-news__date {
  color: var(--Gray01, #555);
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
}
@media screen and (min-width: 1024px) {
  .p-single-news__date {
    font-size: 0.875rem;
    line-height: 1.8;
    letter-spacing: 0.04375rem;
  }
}

.p-single-news__title {
  color: var(--Blue, #005BAB);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  text-align: justify;
}
@media screen and (min-width: 1024px) {
  .p-single-news__title {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.15rem;
  }
}

.p-single-news__foot {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: var(--stroke-weight-1) solid rgba(40, 40, 40, 0.3);
}
@media screen and (min-width: 1024px) {
  .p-single-news__foot {
    margin-top: 3.5rem;
    padding-top: 3.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-single-interview

	Figma
	  PC : 2091:7410 (1440 / コンテンツ幅1200)
	  SP : 2177:10908 (390 / コンテンツ幅358)
	数値はFigmaの実測値をそのまま入れている。
	PCの2カラムは 368 + gap48 + 784 = 1200。
----------------------------------------------------*/
.p-single-interview {
  position: relative;
  /*
   * 他スタッフのスライダーがコンテナ右外へブリードするので、はみ出しはここで隠す。
   * overflow:hidden だと目次（.p-single-interview-article__side）の position:sticky が
   * 効かなくなるため clip を使う。
   */
  overflow-x: clip;
  padding-block: 7.5rem var(--padding-section-lg);
}
.p-single-interview > .l-container,
.p-single-interview > .p-single-interview-gallery {
  position: relative;
  z-index: 5;
}
@media screen and (min-width: 1024px) {
  .p-single-interview {
    padding-block: 13.125rem var(--padding-section-lg);
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-single-interview-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-head {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.p-single-interview-head__body {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.p-single-interview-head__school {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-head__school {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.05625rem;
    color: var(--Black, #313131);
  }
}

.p-single-interview-head__title {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-head__title {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.15rem;
  }
}

.p-single-interview-head__en {
  font-family: var(--Montserrat);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-head__en {
    color: var(--Black, #313131);
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-single-interview-hero {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-hero {
    margin-top: 1.875rem;
  }
}

/*
 * PCはキャッチ・リード文を画像に重ねるので、基準はブロック全体ではなく画像側に持たせる。
 * （注釈 __note は画像の外に出るため、ここを基準にすると位置がずれる）
 */
.p-single-interview-hero__visual {
  position: relative;
}

.p-single-interview-hero__pic {
  position: relative;
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-single-interview-hero__pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-hero__pic img {
    aspect-ratio: 1200/635;
  }
}

.p-single-interview-hero__copy {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.p-single-interview-hero__copy span {
  display: block;
  padding: 0.25rem 0.75rem;
  border: var(--stroke-weight-1) solid var(--White, #fff);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--White, #fff);
  white-space: nowrap;
}
.p-single-interview-hero__copy span + span {
  margin-top: calc(var(--stroke-weight-1) * -1);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-hero__copy {
    right: 2.5rem;
    bottom: 2.5rem;
  }
  .p-single-interview-hero__copy span {
    font-size: 3rem;
    line-height: 1.25;
    letter-spacing: 0;
  }
}

.p-single-interview-hero__lead {
  margin-top: 2rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  text-align: justify;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-hero__lead {
    position: absolute;
    left: 2.5rem;
    bottom: 2.5rem;
    z-index: 1;
    margin-top: 0;
    width: 23rem;
    color: var(--White, #fff);
  }
}

/*
 * リード文中の「（※）」に対する注釈。
 * SPは本文と同じ左右幅で両端揃え、PCは画像の外に右寄せで置く。
 */
.p-single-interview-hero__note {
  margin-top: 2rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  text-align: justify;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-hero__note {
    margin-top: 1.5rem;
    font-size: 0.875rem;
    line-height: 1.8;
    letter-spacing: 0.04375rem;
    text-align: right;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*
	対談ページの話者紹介。

	Figma
	  PC : 2177:10137（カード208 / gap53 / 4カラムで991をコンテンツ1200の中央に）
	  SP : 2177:11337（カード170 / gap18 / 2カラムで358）
	人数が3名以下になっても崩れないよう、固定カラムではなく
	中央揃えの折り返し（flex-wrap + justify-content: center）で組んでいる。
*/
.p-single-interview-member {
  margin-top: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-member {
    margin-top: 8.5rem;
  }
}

.p-single-interview-member__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  text-align: center;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-member__heading {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.125rem;
  }
}

.p-single-interview-member__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.125rem;
  margin-top: 2rem;
}
@media screen and (max-width: 1023px) {
  .p-single-interview-member__list {
    margin-inline: auto;
    max-width: 22.375rem;
  }
}
@media screen and (min-width: 1024px) {
  .p-single-interview-member__list {
    gap: 3.3125rem;
  }
}

.p-single-interview-member__item {
  width: min(10.625rem, (100% - 1.125rem) / 2);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-member__item {
    width: 13rem;
  }
}

.p-single-interview-member__pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 50%;
  object-fit: cover;
}

.p-single-interview-member__name {
  margin-top: 1rem;
  font-family: var(--Montserrat);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-member__name {
    margin-top: 0.5rem;
    font-size: 1.5rem;
    line-height: 1.3;
  }
}

.p-single-interview-member__info {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  text-align: left;
  color: var(--Black, #313131);
}

.p-single-interview-member__label {
  color: var(--Blue, #005BAB);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-single-interview-career {
  margin-top: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-career {
    margin-top: 8.5rem;
  }
}

.p-single-interview-career__inner {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-career__inner {
    margin-top: 3.5rem;
  }
}

.p-single-interview-career__heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-career__heading {
    font-size: 2rem;
    letter-spacing: 0.1rem;
  }
}

.p-single-interview-career__main {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-career__main {
    margin-top: 3rem;
  }
}

.p-single-interview-career__timeline {
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .p-single-interview-career__timeline {
    margin-right: calc(50% - 50vw);
  }
}
@media screen and (min-width: 1024px) {
  .p-single-interview-career__timeline {
    margin-right: calc(50% - 50vw);
  }
}
.p-single-interview-career__timeline .swiper {
  overflow: visible;
}
.p-single-interview-career__timeline .swiper-slide {
  width: 16.5rem;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-career__timeline .swiper-slide {
    width: 23rem;
  }
}

/*
 * PCで項目が3件以下のときはスライダーにせず3カラムで並べる。
 * .is-pc-static は common.js の jsSwiper が付与する（Swiperは初期化しない）。
 */
@media screen and (min-width: 1024px) {
  .p-single-interview-career.is-pc-static .p-single-interview-career__timeline {
    overflow: visible;
    margin-right: 0;
  }
  .p-single-interview-career.is-pc-static .swiper-wrapper {
    display: flex;
    gap: 3rem;
  }
  .p-single-interview-career.is-pc-static .swiper-slide {
    flex: 1 0 0;
    width: auto;
    min-width: 0;
  }
  .p-single-interview-career.is-pc-static .p-single-interview-career__foot {
    display: none;
  }
}
.p-single-interview-career__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
}

.p-single-interview-career__year {
  padding: 0.125rem 0.75rem;
  border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
  border-radius: 1rem;
  background: var(--Blue, #005BAB);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  color: var(--White, #fff);
  white-space: nowrap;
}

.p-single-interview-career__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.p-single-interview-career__title {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}

.p-single-interview-career__text {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}

.cm-slider__foot.p-single-interview-career__foot {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
  justify-content: flex-end;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*
	ギャラリーはマーキー（等速の無限ループ）。
	同じ6枚を2セット並べ、トラック全体を -50%（＝1セット分）流して先頭へ戻す。
	各セットの末尾に gap と同じ padding-right を持たせているので、
	折り返した瞬間もカード間隔が変わらない。
	1セットの実幅は SP 1692px（282×6）/ PC 2754px（459×6）で
	どちらもビューポートより広いため、隙間は生じない。
*/
.p-single-interview-gallery {
  margin-top: 4rem;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-gallery {
    margin-top: 8.5rem;
  }
}

.p-single-interview-gallery__marquee {
  display: flex;
  width: max-content;
  animation: p-single-interview-gallery-marquee 40s linear infinite;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-gallery__marquee {
    animation-duration: 65s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-single-interview-gallery__marquee {
    animation: none;
  }
}

.p-single-interview-gallery__list {
  display: flex;
  flex-shrink: 0;
  gap: 2rem;
  padding-right: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-gallery__list {
    gap: 3.4375rem;
    padding-right: 3.4375rem;
  }
}

.p-single-interview-gallery__slide {
  flex-shrink: 0;
  width: 15.625rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-gallery__slide {
    width: 25.25rem;
  }
}

@keyframes p-single-interview-gallery-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
.p-single-interview-gallery__item {
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-single-interview-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 250/334;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-gallery__item img {
    aspect-ratio: 404/540;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-single-interview-article {
  margin-top: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article {
    margin-top: 8.5rem;
  }
}

.p-single-interview-article__inner {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article__inner {
    margin-top: 3.5rem;
    display: flex;
    align-items: flex-start;
    gap: 3rem;
  }
}

.p-single-interview-article__side {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article__side {
    display: block;
    position: sticky;
    top: calc(var(--header-height) + 2.5rem);
    flex-shrink: 0;
    width: 23rem;
  }
}

.p-single-interview-article__heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article__heading {
    font-size: 2rem;
    letter-spacing: 0.1rem;
  }
}

.p-single-interview-toc {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-toc {
    display: block;
    margin-top: 3.5rem;
  }
}
.p-single-interview-toc .cm-nav-aside {
  gap: 0.7rem;
}

.p-single-interview-article__body {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article__body {
    flex: 1;
    min-width: 0;
    margin-top: 0;
  }
}

/*
	Gutenberg本文（.cm-post を当ページ用に上書き）
	Figmaの縦間隔は SP 32px / PC 80px で一定。
*/
@media screen and (min-width: 1024px) {
  .p-single-interview-article__body.cm-post {
    --post-gap: 5rem;
  }
}
.p-single-interview-article__body.cm-post h2 {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article__body.cm-post h2 {
    margin-bottom: 2.5rem;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0;
  }
}
.p-single-interview-article__body.cm-post h3 {
  margin-bottom: 1.5rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article__body.cm-post h3 {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 0.05625rem;
  }
}
.p-single-interview-article__body.cm-post figure img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
}
.p-single-interview-article__body.cm-post .wp-block-gallery.columns-2 {
  display: flex;
  flex-direction: row;
  gap: 1.125rem;
}
.p-single-interview-article__body.cm-post .wp-block-gallery.columns-2 figure {
  flex: 1;
  min-width: 0;
  margin-bottom: 0;
}
.p-single-interview-article__body.cm-post .wp-block-gallery.columns-2 img {
  aspect-ratio: 170/227;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-article__body.cm-post .wp-block-gallery.columns-2 {
    gap: 3rem;
  }
  .p-single-interview-article__body.cm-post .wp-block-gallery.columns-2 img {
    aspect-ratio: 368/491;
  }
}

/*
	対談ページの本文間隔。
	Figma PCでは 大見出し→Q（h3）、Q→発言、発言→発言 が48pxで、
	画像などブロック間の80px（--post-gap）より狭い。SPは共通値のままでよい。
*/
@media screen and (min-width: 1024px) {
  .p-single-interview--talk .p-single-interview-article__body.cm-post h2,
  .p-single-interview--talk .p-single-interview-article__body.cm-post h3:has(+ .cm-post-talk),
  .p-single-interview--talk .p-single-interview-article__body.cm-post .cm-post-talk:has(+ .cm-post-talk) {
    margin-bottom: 3rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-single-interview-other {
  margin-top: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-other {
    margin-top: 8.5rem;
  }
}

/*
 * スライダー本体は共通の .cm-slider__list（template/cm-slider-interview）。
 * ここでは上下の余白だけFigmaに合わせて上書きする。
 * 右へのはみ出しは .p-single-interview 側の overflow-x: clip で画面幅に合わせて隠す。
 */
.p-single-interview-other .cm-slider__list.swiper,
.p-single-interview-other .cm-slider__foot {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-single-interview-other .cm-slider__list.swiper,
  .p-single-interview-other .cm-slider__foot {
    margin-top: 3.5rem;
  }
}

/*----------------------------------------------------
	p-person-lead
----------------------------------------------------*/
.p-person-lead {
  position: relative;
  padding-top: 3rem;
}
@media screen and (min-width: 1024px) {
  .p-person-lead {
    padding-top: 5rem;
  }
}

.p-person-lead__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-assort);
}
@media screen and (min-width: 1024px) {
  .p-person-lead__heading {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0;
  }
}

.p-person-lead__desc {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.7em;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-person-lead__desc {
    margin-top: 6.75rem;
    margin-left: auto;
    width: 42.5rem;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.075rem;
  }
}

.p-person-lead__pic {
  margin-top: var(--padding-section-lg);
  width: 100%;
  aspect-ratio: 390/280;
}
.p-person-lead__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-person-lead__pic {
    aspect-ratio: 1440/810;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-person-ideal
----------------------------------------------------*/
.p-person-ideal {
  padding-top: var(--padding-section-lg);
}

.p-person-ideal__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-person-ideal__heading {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.125rem;
  }
}

.p-person-ideal__list {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-person-ideal__list {
    margin-top: 4.5rem;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-person-message
----------------------------------------------------*/
.p-person-message {
  padding: 3rem 0 var(--padding-section-lg);
}
@media screen and (min-width: 1024px) {
  .p-person-message {
    padding: var(--padding-section-lg) 0 var(--padding-section-lg);
  }
}

.p-person-message__wrap {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-person-message__wrap {
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
  }
}

@media screen and (min-width: 1024px) {
  .p-person-message__inner {
    width: 45.75rem;
  }
}

.p-person-message__heading {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-person-message__heading {
    margin-top: 3.5rem;
  }
}

.p-person-message__body {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-person-message__body {
    margin-top: 2.5rem;
    flex-direction: row;
    gap: 3rem;
  }
}

.p-person-message__col {
  display: flex;
  flex-direction: column;
  gap: 1.8em;
}
.p-person-message__col > div {
  display: flex;
  flex-direction: column;
  gap: 1.8em;
}
@media screen and (min-width: 1024px) {
  .p-person-message__col {
    flex: 1;
    min-width: 0;
  }
}
@media screen and (min-width: 1024px) {
  .p-person-message__col:last-child {
    justify-content: space-between;
  }
}

.p-person-message__sign.p-person-message__sign {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}
@media screen and (min-width: 1024px) {
  .p-person-message__sign.p-person-message__sign {
    margin-top: 0.25rem;
  }
}

.p-person-message__sign-org {
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
  color: var(--Black, #313131);
}

.p-person-message__sign-name {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Black, #313131);
}

.p-person-message__pic {
  width: 100%;
  aspect-ratio: 358/284;
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-person-message__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-person-message__pic {
    flex: 0 0 auto;
    width: 26rem;
    aspect-ratio: auto;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-recruit
----------------------------------------------------*/
.p-recruit {
  padding: 12.3125rem 0 var(--padding-section-lg);
}
@media screen and (min-width: 1024px) {
  .p-recruit {
    padding-top: 13.125rem;
  }
}

.p-recruit__inner {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-recruit__inner {
    width: 49rem;
    max-width: 100%;
  }
}

.p-recruit__more {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit__more {
    margin-top: 4.5rem;
  }
}
.p-recruit__more .cm-nav-page-more {
  margin: 0 auto;
}
@media screen and (min-width: 1024px) {
  .p-recruit__more .cm-nav-page-more {
    width: 35rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-recruit-list
----------------------------------------------------*/
.p-recruit-list {
  margin-top: 4rem;
  padding-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
@media screen and (min-width: 1024px) {
  .p-recruit-list {
    margin-top: 4.5rem;
    padding-top: 2rem;
    gap: 2rem;
  }
}

.p-recruit-list--hasNav {
  margin-top: 1.5rem;
  padding-top: 0;
  border-top: none;
}
@media screen and (min-width: 1024px) {
  .p-recruit-list--hasNav {
    margin-top: 4.5rem;
    padding-top: 0;
  }
}

.p-recruit-item {
  padding-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
@media screen and (min-width: 1024px) {
  .p-recruit-item {
    padding-bottom: 2rem;
    flex-direction: row;
    align-items: flex-start;
    gap: 3.5rem;
  }
}

.p-recruit-item__label {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-recruit-item__label {
    width: 12.125rem;
    flex-shrink: 0;
  }
}

.p-recruit-item__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-item__body {
    flex: 1;
    min-width: 0;
    gap: 1rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-recruit テキスト・バッジ
----------------------------------------------------*/
.p-recruit-text {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
}
@media screen and (min-width: 1024px) {
  .p-recruit-text {
    font-size: 1rem;
  }
}

.p-recruit-text--blue {
  color: var(--Blue, #005BAB);
}

.p-recruit-note {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
}
@media screen and (min-width: 1024px) {
  .p-recruit-note {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

.p-recruit-note--spaced {
  margin-top: 1lh;
}

.p-recruit-badge-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.p-recruit-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.75rem;
  border-radius: 2rem;
  border: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
  color: var(--Blue, #005BAB);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
}
@media screen and (min-width: 1024px) {
  .p-recruit-badge {
    border-color: var(--Blue, #005BAB);
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-recruit 各項目の内訳
----------------------------------------------------*/
.p-recruit-salary {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-salary {
    gap: 2rem;
  }
}

.p-recruit-salary__block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-salary__block {
    gap: 1rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-recruit-salary--mid {
    gap: 2rem;
  }
}
.p-recruit-salary--mid .p-recruit-salary__block {
  gap: 0.5rem;
}
.p-recruit-salary--mid .p-recruit-note {
  margin-top: 1lh;
}

.p-recruit-salary__detail {
  width: 100%;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-recruit-holiday {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-holiday {
    gap: 1.5rem;
  }
}

.p-recruit-holiday__type {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-recruit-welfare {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.p-recruit-welfare__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-welfare__list {
    gap: 0.75rem;
  }
}

.p-recruit-welfare__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-recruit-flow {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-flow {
    gap: 3rem;
  }
}

.p-recruit-flow__block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-flow__block {
    gap: 1rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.p-recruit-cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-cta {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-recruit-panel（中途採用／カムバック採用／障がい者採用のタブ切替）
	Figma: カムバック 2296:44477 / 障がい者 2296:44332
----------------------------------------------------*/
.p-recruit-panel {
  display: none;
}
.p-recruit-panel.is-active {
  display: block;
}

.p-recruit-panel__lead {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-panel__lead {
    margin-top: 3.5rem;
    gap: 2rem;
  }
}
.p-recruit-panel__lead + .p-recruit-list--hasNav {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-recruit-panel__lead + .p-recruit-list--hasNav {
    margin-top: 3.5rem;
  }
}

.p-recruit-panel__lead-block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-lead
	共通スタイルは .cm-page-intro（Module/_cm-page.scss）。ここは差分のみ
----------------------------------------------------*/
.cm-page-intro.p-training-lead {
  --page-intro-desc-offset: 9.9375rem;
  --page-intro-desc-width: 42.25rem;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-gallery（マーキー）
----------------------------------------------------*/
.p-training-gallery {
  margin-top: 4rem;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .p-training-gallery {
    margin-top: 8.5rem;
  }
}

.p-training-gallery__marquee {
  display: flex;
  width: max-content;
  animation: p-training-gallery-marquee 40s linear infinite;
}
@media screen and (min-width: 1024px) {
  .p-training-gallery__marquee {
    animation-duration: 65s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-training-gallery__marquee {
    animation: none;
  }
}

.p-training-gallery__list {
  display: flex;
  flex-shrink: 0;
  gap: 2rem;
  padding-right: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-training-gallery__list {
    gap: 3.4375rem;
    padding-right: 3.4375rem;
  }
}

.p-training-gallery__slide {
  flex-shrink: 0;
  width: 15.625rem;
}
@media screen and (min-width: 1024px) {
  .p-training-gallery__slide {
    width: 25.25rem;
  }
}

@keyframes p-training-gallery-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
.p-training-gallery__item {
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-training-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 250/334;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-training-gallery__item img {
    aspect-ratio: 404/540;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-body（サイドナビ + 本文）
----------------------------------------------------*/
.p-training-body {
  margin-top: 4rem;
  padding-bottom: var(--padding-section-lg);
}
@media screen and (min-width: 1024px) {
  .p-training-body {
    margin-top: 8.5rem;
  }
}

.p-training-body__wrap {
  margin-top: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-training-body__wrap {
    margin-top: 2.5rem;
    display: flex;
    align-items: flex-start;
    gap: 6.5rem;
  }
}

.p-training-body__aside {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-training-body__aside {
    display: block;
    width: 13rem;
    flex-shrink: 0;
  }
}

.p-training-body__content {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  min-width: 0;
}
@media screen and (min-width: 1024px) {
  .p-training-body__content {
    flex: 1;
    gap: 7.125rem;
  }
}

.p-training-body__border {
  height: 0;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-nav（サイドナビ）
----------------------------------------------------*/
.p-training-body__aside .cm-nav-aside {
  gap: 1rem;
}

.p-training-nav__sub {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.p-training-nav__sub li a {
  display: block;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-section
----------------------------------------------------*/
.p-training-section {
  scroll-margin-top: var(--header-height);
}

.p-training-section__lead {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-training-section__lead {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2.5rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-training-section__lead--career {
    align-items: center;
  }
}

@media screen and (min-width: 1024px) {
  .p-training-section__lead--stack {
    flex-direction: column;
    align-items: stretch;
    gap: 2rem;
  }
  .p-training-section__lead--stack .p-training-section__lead-title {
    white-space: normal;
  }
  .p-training-section__lead--stack .p-training-section__lead-desc {
    width: 100%;
  }
}

.p-training-section__lead-title {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-section__lead-title {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0;
    white-space: nowrap;
  }
}

.p-training-section__lead-desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-training-section__lead-desc {
    width: 26.125rem;
    flex-shrink: 0;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-training-section__lead-desc--narrow {
    width: 23.1875rem;
  }
}

.p-training-section__head {
  padding-bottom: 1rem;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}

.p-training-section__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-section__heading {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.1rem;
  }
}

.p-training-section__border {
  margin-top: 2rem;
  height: 0;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
@media screen and (min-width: 1024px) {
  .p-training-section__border {
    margin-top: 3.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-summary（グレーの概要カード）
----------------------------------------------------*/
.p-training-summary {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-training-summary {
    margin-top: 4.5rem;
  }
}

.p-training-summary__card {
  padding: 2rem 1.5rem;
  border-radius: 0.5rem;
  background: #D9D9D9;
}
@media screen and (min-width: 1024px) {
  .p-training-summary__card {
    padding: 3.125rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-training-summary__card--flow {
    padding: 2.5rem 3.125rem 3.75rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-training-summary__card--list {
    padding-bottom: 2.625rem;
  }
}

.p-training-summary__head {
  padding-bottom: 0.75rem;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.1);
}

.p-training-summary__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-summary__title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.075rem;
  }
}

.p-training-summary__cols {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-training-summary__cols {
    flex-direction: row;
    align-items: flex-start;
    gap: 3.75rem;
  }
}

.p-training-summary__col li {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-summary__col li {
    font-size: 1rem;
    letter-spacing: 0.05rem;
    white-space: nowrap;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-flow（内定時 → 入社時 → 配属時）
----------------------------------------------------*/
.p-training-flow {
  position: relative;
  margin-top: 2.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.875rem;
}
.p-training-flow::before {
  content: "";
  position: absolute;
  left: 4.15625rem;
  top: 1.0625rem;
  width: 1px;
  height: calc(100% - 2.125rem);
  background-image: repeating-linear-gradient(to bottom, var(--Blue, #005BAB) 0 2px, transparent 2px 4px);
}
@media screen and (min-width: 1024px) {
  .p-training-flow {
    flex-direction: row;
    gap: 0;
  }
  .p-training-flow::before {
    left: 0;
    top: 3.3625rem;
    width: 100%;
    height: 1px;
    background-image: repeating-linear-gradient(to right, var(--Blue, #005BAB) 0 2px, transparent 2px 4px);
  }
}

.p-training-flow__item {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 2.125rem;
}
@media screen and (min-width: 1024px) {
  .p-training-flow__item {
    flex: 1;
    flex-direction: column;
    align-items: center;
    gap: 1.0625rem;
    min-height: 0;
  }
}

.p-training-flow__label {
  flex-shrink: 0;
  width: 3.65625rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-flow__label {
    width: auto;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.05rem;
    text-align: center;
    white-space: nowrap;
  }
}

.p-training-flow__dot {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: var(--Blue, #005BAB);
}

.p-training-flow__name {
  margin-left: 1.34375rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-flow__name {
    margin-left: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.05rem;
    text-align: center;
    white-space: nowrap;
  }
  .p-training-flow__name br {
    display: none;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-list（研修の詳細リスト）
----------------------------------------------------*/
.p-training-list {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-training-list {
    margin-top: 3.5rem;
  }
}

.p-training-list__item {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  background-repeat: no-repeat;
  background-size: 100% 1px;
}
.p-training-list__item + .p-training-list__item {
  margin-top: 2.25rem;
  padding-top: 2.25rem;
  background-image: repeating-linear-gradient(to right, rgba(0, 91, 166, 0.5) 0 1px, transparent 1px 5px);
  background-position: left top;
}
.p-training-list__item:last-child {
  padding-bottom: 2.25rem;
  background-image: repeating-linear-gradient(to right, rgba(0, 91, 166, 0.5) 0 1px, transparent 1px 5px);
  background-position: left bottom;
}
.p-training-list__item + .p-training-list__item:last-child {
  background-image: repeating-linear-gradient(to right, rgba(0, 91, 166, 0.5) 0 1px, transparent 1px 5px), repeating-linear-gradient(to right, rgba(0, 91, 166, 0.5) 0 1px, transparent 1px 5px);
  background-position: left top, left bottom;
  background-size: 100% 1px, 100% 1px;
}
@media screen and (min-width: 1024px) {
  .p-training-list__item {
    flex-direction: row;
    align-items: flex-start;
    gap: 0;
  }
}

.p-training-list__label {
  flex-shrink: 0;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-list__label {
    width: 6.5rem;
    font-size: 1.125rem;
    line-height: 1.6;
    letter-spacing: 0.05625rem;
  }
}

.p-training-list__body {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  min-width: 0;
}
@media screen and (min-width: 1024px) {
  .p-training-list__body {
    flex: 1;
  }
}

.p-training-list__block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-training-list__block {
    gap: 1rem;
  }
}

.p-training-list__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-list__title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.075rem;
  }
}

.p-training-list__desc {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.05rem;
  color: var(--Black, #313131);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-career（キャリア支援制度）
----------------------------------------------------*/
.p-training-career__pic {
  margin-top: 3.375rem;
}
.p-training-career__pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 358/280;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-training-career__pic img {
    aspect-ratio: 888/463;
  }
}

.p-training-career__list {
  margin-top: 3.375rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.p-training-career__list .c-btn-round-arrow {
  align-self: flex-start;
}
@media screen and (max-width: 1023px) {
  .p-training-career__list .c-card-num__title br {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  .p-training-career__list {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 3rem;
  }
  .p-training-career__list .c-card-num {
    width: calc((100% - 6rem) / 3);
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-group / p-training-panel（研修・資格制度のグレーパネル）
----------------------------------------------------*/
.p-training-group {
  margin-top: 2rem;
  scroll-margin-top: var(--header-height);
}
@media screen and (min-width: 1024px) {
  .p-training-group {
    margin-top: 3.5rem;
  }
}

.p-training-group__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-group__title {
    font-size: 1.25rem;
    letter-spacing: 0.0625rem;
  }
}

.p-training-panel {
  margin-top: 1rem;
  padding: 1.5rem;
  border-radius: 0.5rem;
  background: #CDD6D9;
}
@media screen and (min-width: 1024px) {
  .p-training-panel {
    padding: 2.5rem 2rem;
  }
}

.p-training-panel__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-panel__title {
    font-size: 1.25rem;
    letter-spacing: 0.0625rem;
  }
}

.p-training-panel__desc {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-training-panel__desc {
    margin-top: 1rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-map（研修の全体像・3カラムの図解）
----------------------------------------------------*/
.p-training-map {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-training-map {
    margin-top: 3.5rem;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    padding: 2.8125rem 0 1.9375rem;
    border-radius: 0.5rem;
    background: #D9D9D9;
  }
}

.p-training-map-sp {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-training-map-sp {
    display: none;
  }
}

.p-training-map-sp__pic {
  width: 100%;
}
.p-training-map-sp__pic img {
  display: block;
  width: 100%;
  height: auto;
}

.p-training-map-sp__zoom {
  gap: 1rem;
  padding: 0 1.3125rem;
}

.p-training-list-heading {
  margin-top: 4rem;
  padding-bottom: 1rem;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-list-heading {
    display: none;
  }
}

.p-training-map__col {
  display: flex;
  flex-direction: column;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .p-training-map__col {
    padding: 0 1rem;
  }
  .p-training-map__col + .p-training-map__col {
    border-left: 1px dotted rgba(0, 91, 171, 0.6);
  }
}

@media screen and (min-width: 1024px) {
  .p-training-map__col--digital {
    flex: 268 0 0;
  }
}

@media screen and (min-width: 1024px) {
  .p-training-map__col--core {
    flex: 330 0 0;
  }
}

@media screen and (min-width: 1024px) {
  .p-training-map__col--growth {
    flex: 290 0 0;
  }
}

.p-training-map__title {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-map__title {
    font-size: 1.5rem;
  }
}

.p-training-map__desc {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.0375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-map__desc {
    font-size: 0.875rem;
    letter-spacing: 0.04375rem;
  }
}

.p-training-map__items {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1024px) {
  .p-training-map__items {
    flex: 1;
  }
}

.p-training-map__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.p-training-map__icon {
  flex-shrink: 0;
}
.p-training-map__icon img {
  display: block;
  width: 100%;
  height: auto;
}

.p-training-map__label {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-training-map__label {
    font-size: 1.125rem;
    letter-spacing: 0.05625rem;
  }
}

.p-training-map__items--sm {
  gap: 1.5rem;
  align-items: flex-start;
}
.p-training-map__items--sm .p-training-map__icon {
  width: 2.75rem;
}
.p-training-map__items--sm .p-training-map__label {
  text-align: left;
}
@media screen and (min-width: 1024px) {
  .p-training-map__items--sm {
    margin-top: 2.125rem;
    padding-left: 1.3125rem;
  }
  .p-training-map__items--sm .p-training-map__icon {
    width: 3.1875rem;
  }
}

.p-training-map__items--lg {
  gap: 2rem;
}
.p-training-map__items--lg .p-training-map__item {
  flex-direction: column;
  gap: 0.5rem;
}
.p-training-map__items--lg .p-training-map__icon {
  width: 4.5rem;
}
@media screen and (min-width: 1024px) {
  .p-training-map__items--lg {
    margin-top: 4.1875rem;
    justify-content: center;
    gap: 4.1875rem;
  }
  .p-training-map__items--lg .p-training-map__icon {
    width: 5.75rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-training-tag（スキル区分のタグ）
----------------------------------------------------*/
.p-training-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.p-training-tag {
  padding: 0 0.375rem;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1.73;
  letter-spacing: 0.034375rem;
  color: var(--Blue, #005BAB);
}

.p-training-tag--portable {
  background: #E0F736;
}

.p-training-tag--job {
  background: #EEB6E7;
}

/*----------------------------------------------------
	p-data-lead（本文なしのキャッチのみ）
	共通スタイルは .cm-page-intro（Module/_cm-page.scss）。ここは差分のみ
----------------------------------------------------*/
@media screen and (max-width: 1023px) {
  .cm-page-intro.p-data-lead {
    margin-top: 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .cm-page-intro.p-data-lead .cm-page-intro__title {
    letter-spacing: 0.15rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-section（学園に関する数字／働く人に関する数字）
----------------------------------------------------*/
.p-data-section {
  position: relative;
  margin-top: 4rem;
}
@media screen and (min-width: 1024px) {
  .p-data-section {
    margin-top: 8.5rem;
  }
}

.p-data-section__head {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-data-section__head {
    gap: 3.5rem;
  }
}

.p-data-section__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-data-section__heading {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.15rem;
  }
}

.p-data-section__body {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-data-section__body {
    margin-top: 3rem;
    gap: 3rem;
  }
}

.p-data-section--work .c-card-stat {
  --stat-pic-h: 4.25rem;
}
@media screen and (min-width: 1024px) {
  .p-data-section--work .c-card-stat {
    --stat-pic-h: 8.4375rem;
  }
}

.p-data-section__border {
  height: 1px;
  background-image: repeating-linear-gradient(to right, rgba(0, 91, 166, 0.5) 0 2px, transparent 2px 6px);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-block（見出し＋本文のかたまり）
----------------------------------------------------*/
.p-data-block__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-data-block__heading {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.1rem;
  }
}

.p-data-block__desc {
  margin-top: 1rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-data-block__desc {
    margin-top: 1.5rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

.p-data-block__history {
  margin-top: 1.8em;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-data-block__history {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

.p-data-block__body {
  margin-top: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-data-block__body {
    margin-top: 2.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-stats（数字カードのグリッド）
----------------------------------------------------*/
@media screen and (max-width: 1023px) {
  .p-data-stats .c-card-stat {
    --stat-card-h: 10.625rem;
  }
}
.p-data-stats {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-data-stats {
    gap: 3rem;
  }
}

.p-data-stats__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.125rem;
}
.p-data-stats__grid > *:nth-child(3n) {
  grid-column: span 2;
}
@media screen and (min-width: 1024px) {
  .p-data-stats__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
  .p-data-stats__grid > *:nth-child(3n) {
    grid-column: auto;
  }
}

.p-data-stats__group {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-data-stats__group {
    gap: 1.5rem;
  }
}

.p-data-stats__row {
  display: grid;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-data-stats__row {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}

/*
 * 「働く人に関する数字」はSP/TABで6枚のカードを2カラムに通しで流す（Figma SP）。
 * PCの行グループ（3枚＋3枚、行間48px）は維持したいので、
 * SP/TABだけ内側のラッパーを display: contents にして1つのグリッドに畳む。
 */
@media screen and (max-width: 1023px) {
  .p-data-section--work .p-data-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem 1.125rem;
  }
  .p-data-section--work .p-data-stats__group,
  .p-data-section--work .p-data-stats__grid,
  .p-data-section--work .p-data-stats__row {
    display: contents;
  }
  .p-data-section--work .p-data-stats__grid > *:nth-child(3n) {
    grid-column: auto;
  }
  .p-data-section--work .c-card-stat--wide,
  .p-data-section--work .c-card-stat--auto,
  .p-data-section--work .p-data-stats__note {
    grid-column: span 2;
  }
}
.p-data-stats__note {
  text-align: right;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-data-stats__note {
    font-size: 0.875rem;
    line-height: 1.8;
    letter-spacing: 0.04375rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-logos（就職先企業のマーキー）
----------------------------------------------------*/
.p-data-logos {
  margin-top: 1.5rem;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .p-data-logos {
    margin-top: 2.5rem;
  }
}

.p-data-logos__marquee {
  display: flex;
  width: max-content;
  animation: p-data-logos-marquee 200s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .p-data-logos__marquee {
    animation: none;
  }
}

.p-data-logos__list {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 3.6875rem;
  padding-right: 3.6875rem;
}

@keyframes p-data-logos-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
.p-data-logos__item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.p-data-logos__item img {
  width: auto;
  max-width: none;
  height: 2.5rem;
}
@media screen and (min-width: 1024px) {
  .p-data-logos__item img {
    height: 4.375rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-chart（キャンパス数の推移グラフ／1枚画像）
----------------------------------------------------*/
.p-data-chart {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
.p-data-chart img {
  display: block;
  width: 100%;
  height: auto;
}

.p-data-chart__pic {
  width: 100%;
}

.p-data-chart__zoom {
  gap: 1rem;
  padding: 0 1.3125rem;
}
@media screen and (min-width: 1024px) {
  .p-data-chart__zoom {
    display: none;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-pair（数字＋ラベルを2つ並べる：平均年収／理解度・共感度）
----------------------------------------------------*/
.p-data-pair {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .p-data-pair {
    gap: 4.75rem;
  }
}

.p-data-pair__item {
  text-align: center;
}
.p-data-pair__item .c-card-stat__number {
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .p-data-pair__item {
    width: 11.375rem;
  }
}

.p-data-pair + .c-card-stat__note {
  margin-top: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-data-pair + .c-card-stat__note {
    margin-top: 2.25rem;
  }
}

.p-data-pair__label {
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  text-align: center;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .p-data-pair__label {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-vision（理解度・共感度：イラスト＋吹き出し）
----------------------------------------------------*/
.p-data-vision__figure {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
}
.p-data-vision__figure img {
  flex-shrink: 0;
  width: auto;
  height: var(--stat-pic-h);
}
@media screen and (max-width: 640px) {
  .p-data-vision__figure {
    gap: 1.0625rem;
  }
}

@media screen and (max-width: 640px) {
  .p-data-vision__balloon {
    width: 9.875rem;
    flex-shrink: 0;
  }
}
@media screen and (min-width: 1024px) {
  .p-data-vision__balloon {
    width: 13.84375rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-figure（1枚画像で書き出しているカード内の図版）
----------------------------------------------------*/
.p-data-figure {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  margin-top: 1.5rem;
}
.p-data-figure img {
  width: 100%;
  max-width: 47.125rem;
  height: auto;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-region（出身エリア）
----------------------------------------------------*/
.p-data-region {
  margin-top: 1.375rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
@media screen and (min-width: 1024px) {
  .p-data-region {
    position: relative;
    display: block;
    margin-top: 2.6875rem;
    padding-top: 0;
  }
}

.p-data-region__body {
  padding: 0 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-data-region__body {
    padding: 0;
    position: relative;
    z-index: 1;
    width: 36.125rem;
    padding-left: 2.375rem;
  }
}

.p-data-region__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-data-region__title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.075rem;
  }
}

.p-data-region__title::after {
  content: "";
  display: block;
  margin-top: 1.5rem;
  height: 1px;
  background-image: repeating-linear-gradient(to right, rgba(0, 91, 166, 0.5) 0 2px, transparent 2px 6px);
}
@media screen and (min-width: 1024px) {
  .p-data-region__title::after {
    margin-top: 1.5rem;
    width: 31.5625rem;
  }
}

.p-data-region__areas {
  margin-top: 1.5rem;
  display: grid;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-data-region__areas {
    grid-template-columns: repeat(2, 16.375rem);
    gap: 1rem;
  }
}

.p-data-region__area-title {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Blue, #005BAB);
}

.p-data-region__area-list {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}

.p-data-region__note {
  margin-top: 3.5rem;
}
@media screen and (min-width: 1024px) {
  .p-data-region__note {
    margin-top: 1.375rem;
  }
}
.p-data-region__note {
  text-align: right;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  color: var(--Black, #313131);
  font-size: 0.625rem;
}
@media screen and (min-width: 1024px) {
  .p-data-region__note {
    font-size: 0.875rem;
    letter-spacing: 0.04375rem;
  }
}

.p-data-region__map {
  order: -1;
  margin: 0 -0.5rem;
}
.p-data-region__map img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-data-region__map {
    order: 0;
    margin: 0;
    position: absolute;
    top: 50%;
    right: -1.375rem;
    width: 41.4375rem;
    transform: translateY(-50%);
    pointer-events: none;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-joining（内定者における入社の決め手）
----------------------------------------------------*/
/*
 * SPのカード高さは Figma の実測（横長カードは内容ごとに高さが違う）
 * 平均年収 5001:27035=219 / 理解度・共感度 5001:27050=247
 * 内定者 5001:27074=443 / 出身エリア 5001:27135=860
 */
@media screen and (max-width: 1023px) {
  .p-data-stats__row .c-card-stat--wide:nth-child(1) {
    min-height: 13.6875rem;
  }
  .p-data-stats__row .c-card-stat--wide:nth-child(2) {
    min-height: 15.4375rem;
  }
  .p-data-stats__card--joining {
    min-height: 27.6875rem;
  }
  .p-data-stats__card--region {
    min-height: 53.75rem;
  }
  .p-data-section--work .p-data-stats > .p-data-stats__grid > .c-card-stat:nth-child(-n+2) {
    min-height: 11.5rem;
  }
  .p-data-section--work .p-data-stats > .p-data-stats__grid > .c-card-stat:nth-child(3),
  .p-data-section--work .p-data-stats__group > .p-data-stats__grid > .c-card-stat:nth-child(1) {
    min-height: 10.875rem;
  }
  .p-data-section--work .p-data-stats__group > .p-data-stats__grid > .c-card-stat:nth-child(n+2) {
    min-height: 12.875rem;
  }
}
@media screen and (min-width: 1024px) {
  .p-data-section--work .c-card-stat--auto {
    height: 28.25rem;
    min-height: 0;
    padding-bottom: 1rem;
  }
}

.p-data-joining {
  margin-top: 1.375rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.375rem;
}
@media screen and (min-width: 1024px) {
  .p-data-joining {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 7rem;
  }
}

.p-data-joining__chart {
  width: 12.5rem;
  max-width: 100%;
}
.p-data-joining__chart img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (min-width: 1024px) {
  .p-data-joining__chart {
    width: 20.5625rem;
    max-width: none;
    flex-shrink: 0;
  }
}

.p-data-joining__list {
  width: calc(100% - 1rem);
}
@media screen and (min-width: 1024px) {
  .p-data-joining__list {
    width: 31.875rem;
    flex-shrink: 0;
  }
}

.p-data-joining__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(0, 91, 171, 0.1);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
.p-data-joining__item::before {
  content: "";
  flex-shrink: 0;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background: var(--Blue, #005BAB);
}
.p-data-joining__item + .p-data-joining__item {
  margin-top: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .p-data-joining__item {
    gap: 1.5rem;
    padding-bottom: 0.5rem;
    white-space: nowrap;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.075rem;
  }
  .p-data-joining__item::before {
    width: 1.125rem;
    height: 1.125rem;
  }
  .p-data-joining__item + .p-data-joining__item {
    margin-top: 0.5rem;
  }
}

.p-data-joining__item:nth-child(2)::before {
  background: #3C82BF;
}

.p-data-joining__item:nth-child(3)::before {
  background: #83B1DA;
}

.p-data-joining__item:nth-child(4)::before {
  background: #A3C6E5;
}

.p-data-joining__item:nth-child(5)::before {
  background: #B3D3EF;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	p-data-event（三幸フェスティバル）
----------------------------------------------------*/
.p-data-event {
  position: relative;
  margin-top: 4rem;
  padding-bottom: var(--padding-section-lg);
}
@media screen and (min-width: 1024px) {
  .p-data-event {
    margin-top: 8.5rem;
  }
}

.p-data-event__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-data-event__inner {
    flex-direction: row-reverse;
    align-items: stretch;
    justify-content: space-between;
    gap: 3.5rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-data-event__body {
    width: 26rem;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
  }
}

.p-data-event__heading {
  margin-top: 2rem;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .p-data-event__heading {
    margin-top: 2.125rem;
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.125rem;
  }
}

.p-data-event__text {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.8em;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Gray01, #555);
}
@media screen and (min-width: 1024px) {
  .p-data-event__text {
    margin-top: auto;
    padding-top: 2.5rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
    text-align: justify;
  }
}

.p-data-event__visual {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  min-width: 0;
}
@media screen and (min-width: 1024px) {
  .p-data-event__visual {
    flex: 1;
    gap: 1.5rem;
  }
}

.p-data-event__sub {
  display: grid;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .p-data-event__sub {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}

.p-data-event__pic {
  position: relative;
  border-radius: 0.5rem;
  overflow: hidden;
}
.p-data-event__pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 358/284;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .p-data-event__pic img {
    aspect-ratio: 728/343;
  }
}

.p-data-event__caption {
  position: absolute;
  right: 0.75rem;
  bottom: 0.625rem;
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.03125rem;
  color: #fff;
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
}
@media screen and (min-width: 1024px) {
  .p-data-event__caption {
    right: 1rem;
    bottom: 0.875rem;
    font-size: 0.75rem;
    letter-spacing: 0.0375rem;
  }
}

@media screen and (min-width: 1024px) {
  .p-data-event__sub .p-data-event__pic img {
    aspect-ratio: 352/226;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	...
----------------------------------------------------*/
.cm-page-header {
  width: 100%;
  position: relative;
}
.cm-page-header__bg {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  pointer-events: none;
}
.cm-page-header__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.12);
  will-change: transform;
  transition: transform var(--duration-intro-bg) var(--easeIntroBg);
}
.windowLoaded .cm-page-header__bg img {
  opacity: 1;
  transform: scale(1);
}
.cm-page-header__line {
  width: 100%;
  position: absolute;
  left: 0;
  top: 4.75rem;
  z-index: -1;
  pointer-events: none;
}
.cm-page-header__line img {
  width: 100%;
  height: auto;
}
@media screen and (max-width: 1023px) {
  .cm-page-header__line img {
    width: 47.5rem;
    max-width: none;
    position: relative;
    left: -19rem;
  }
}
@media screen and (min-width: 1024px) {
  .cm-page-header__line {
    top: 0;
  }
}

.cm-page-header__wrap {
  position: relative;
  padding: 12.3125rem 0 2.5rem;
  display: flex;
  flex-direction: column;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
  opacity: 0;
  transition: opacity var(--duration-intro) var(--easeIntro) 0.15s;
}
.windowLoaded .cm-page-header__wrap {
  opacity: 1;
}
@media screen and (min-width: 1024px) {
  .cm-page-header__wrap {
    padding: 13.125rem 0 5rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
  }
}

.cm-page-header__en {
  color: var(--Blue, #005BAB);
  font-family: var(--Montserrat);
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
}
@media screen and (min-width: 1024px) {
  .cm-page-header__en {
    font-size: 5rem;
  }
}

.cm-page-header__title {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (min-width: 1024px) {
  .cm-page-header__title {
    font-size: 1.125rem;
  }
}

.cm-page-header__desc {
  margin-top: 2rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.8;
}
@media screen and (min-width: 1024px) {
  .cm-page-header__desc {
    margin-top: 2.5rem;
    width: 100%;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
  }
}

.cm-page-header--hasBG {
  height: 24rem;
}
@media screen and (min-width: 1024px) {
  .cm-page-header--hasBG {
    height: 37.5vw;
  }
}
.cm-page-header--hasBG .cm-page-header__wrap {
  padding: 17rem 0 2.5rem;
  border-bottom: none;
}
@media screen and (min-width: 1024px) {
  .cm-page-header--hasBG .cm-page-header__wrap {
    padding: 15.9027777778vw 0 5.5555555556vw;
  }
}
.cm-page-header--hasBG .cm-page-header__en {
  color: #fff;
}
.cm-page-header--hasBG .cm-page-header__title {
  font-size: 0.875rem;
}
@media screen and (min-width: 1024px) {
  .cm-page-header--hasBG .cm-page-header__title {
    font-size: 1.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-page-intro
	cm-page-header 直下に置くリード文（キャッチ + 本文）。
	Figma由来で SPの上余白 / 本文の天付き位置 / 本文幅 だけページごとに違うので、
	その3つはページ側から上書きできるようにしている（.cm-page-intro.p-xxx-lead）。
----------------------------------------------------*/
.cm-page-intro {
  --page-intro-desc-offset: 10.875rem;
  --page-intro-desc-width: 42.5rem;
  position: relative;
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .cm-page-intro {
    margin-top: 5rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2.5rem;
  }
}

.cm-page-intro__title {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .cm-page-intro__title {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0;
  }
}

.cm-page-intro__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .cm-page-intro__desc {
    padding-top: var(--page-intro-desc-offset);
    width: var(--page-intro-desc-width);
    flex-shrink: 0;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.075rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-page-lead / cm-tab-nav
	（募集要項・セミナー等の共通ページ見出し + タブ）
----------------------------------------------------*/
.cm-page-lead {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .cm-page-lead {
    align-items: center;
    gap: 2rem;
    text-align: center;
  }
}

.cm-page-lead__title-block {
  margin-bottom: 1rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .cm-page-lead__title-block {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }
}

.cm-page-lead__label {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
}
@media screen and (min-width: 1024px) {
  .cm-page-lead__label {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
  }
}

.cm-page-lead__title {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
}
@media screen and (min-width: 1024px) {
  .cm-page-lead__title {
    font-size: 4rem;
  }
}

.cm-page-lead__lead {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.8;
}
@media screen and (min-width: 1024px) {
  .cm-page-lead__lead {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
  }
}

.cm-page-lead__note {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
}
@media screen and (min-width: 1024px) {
  .cm-page-lead__note {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-tab-nav（タブリンク）
----------------------------------------------------*/
.cm-tab-nav {
  margin-top: 4rem;
  display: flex;
  gap: 0.125rem;
}
@media screen and (min-width: 1024px) {
  .cm-tab-nav {
    margin-top: 4.5rem;
  }
}

.cm-tab-nav__item {
  flex: 1;
  min-width: 0;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
.cm-tab-nav__item.is-current, .cm-tab-nav__item.is-active {
  border-bottom-width: 2px;
  border-bottom-color: var(--Blue, #005BAB);
}

.cm-tab-nav__link {
  display: block;
  width: 100%;
  padding-bottom: 0.75rem;
  text-align: center;
  color: var(--Blue, #005BAB);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  opacity: 0.5;
  transition: opacity var(--duration) var(--easeTheme);
}
.cm-tab-nav__link:hover, .is-current .cm-tab-nav__link, .is-active .cm-tab-nav__link {
  opacity: 1;
}
@media (hover: hover) {
  .cm-tab-nav__link:hover, a:hover .cm-tab-nav__link {
    opacity: 1;
  }
}
@media screen and (min-width: 1024px) {
  .cm-tab-nav__link {
    padding-bottom: 0.625rem;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.cm-page-lead__action .c-btn-round-arrow {
  justify-content: center;
}
@media screen and (min-width: 1024px) {
  .cm-page-lead__action .c-btn-round-arrow {
    width: 20.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-block-media
----------------------------------------------------*/
.cm-block-media {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .cm-block-media {
    flex-direction: row-reverse;
    align-items: center;
    gap: 3.5rem;
  }
}
@media screen and (min-width: 1024px) {
  .cm-block-media--reverse {
    flex-direction: row;
  }
}

.cm-block-media__pic {
  position: relative;
  width: 100%;
  border-radius: 0.5rem;
  overflow: hidden;
  aspect-ratio: 179/142;
}
.cm-block-media__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 1024px) {
  .cm-block-media__pic {
    flex: 0 0 auto;
    width: 45.5rem;
    height: 37.5rem;
    aspect-ratio: auto;
  }
}

.cm-block-media__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (min-width: 1024px) {
  .cm-block-media__body {
    flex: 0 0 auto;
    justify-content: space-between;
    height: 37.5rem;
    width: 26rem;
    gap: 0;
  }
}

.cm-block-media__content {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .cm-block-media__content {
    gap: 3.5rem;
  }
}

.cm-block-media__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0.25rem;
  border-bottom: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}
@media screen and (min-width: 1024px) {
  .cm-block-media__label {
    padding-bottom: 0.75rem;
  }
}

.cm-block-media__label-en {
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .cm-block-media__label-en {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

.cm-block-media__label-ja {
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .cm-block-media__label-ja {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

.cm-block-media__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .cm-block-media__heading {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.125rem;
  }
}

.cm-block-media__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  text-align: justify;
  color: var(--Black, #313131);
}
@media screen and (min-width: 1024px) {
  .cm-block-media__desc {
    font-size: 1rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	...
----------------------------------------------------*/
.cm-nav-header {
  display: flex;
  align-items: center;
  gap: 1.9375rem;
}
.cm-nav-header__link {
  display: inline-flex;
  font-size: 0.875rem;
  font-weight: 500;
}
.is-header-dark:not(.is-header-solid) .cm-nav-header__link {
  color: #fff;
}
@media (hover: hover) {
  .is-header-dark:not(.is-header-solid) .cm-nav-header__link:hover, a:hover .is-header-dark:not(.is-header-solid) .cm-nav-header__link {
    color: #fff;
  }
}
@media (hover: hover) {
  .cm-nav-header__link:hover, a:hover .cm-nav-header__link {
    color: var(--color-assort);
  }
  .cm-nav-header__link:hover span, a:hover .cm-nav-header__link span {
    will-change: transform;
    animation: btnHoverTxt var(--duration) var(--easeTheme) forwards;
  }
}
.js-mega-menu.is-active > .cm-nav-header__link {
  color: var(--color-assort);
}
.is-header-dark:not(.is-header-solid) .js-mega-menu.is-active > .cm-nav-header__link {
  color: var(--color-assort);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.cm-nav-main {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .cm-nav-main {
    flex-direction: row;
    align-items: flex-start;
    gap: 2.5rem;
  }
}

/*
 * PCの2カラムは左右で高さが独立している（右カラムの社員インタビューが6項目あるため、
 * grid-area で1つのグリッドに並べると行トラックを共有して左カラムの間隔が崩れる）。
 * そのためカラムごとにラッパーを持ち、SPでは display:contents で1カラムの流れに戻す。
 */
.cm-nav-main__col {
  display: contents;
}
@media screen and (min-width: 1024px) {
  .cm-nav-main__col {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }
}

@media screen and (max-width: 1023px) {
  .cm-nav-main__col:first-child > .cm-nav-main-block:last-child {
    order: 1;
  }
  .cm-nav-main__col:last-child > .cm-nav-main-block:last-child {
    order: 2;
  }
}
.cm-nav-main-block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cm-nav-main-block__head {
  display: flex;
}
.cm-nav-main-block__link {
  display: inline-flex;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  will-change: transform;
  transition-duration: 0.2s;
}
@media (hover: hover) {
  .cm-nav-main-block__link:hover, a:hover .cm-nav-main-block__link {
    color: rgba(255, 255, 255, 0.5);
    transform: translateX(0.5em);
  }
}
.cm-nav-main-block__lv2 {
  font-size: 0.75rem;
  line-height: 1.6;
}
.cm-nav-main-block__sub {
  display: inline-flex;
  will-change: transform;
  transition-duration: 0.2s;
}
@media (hover: hover) {
  .cm-nav-main-block__sub:hover, a:hover .cm-nav-main-block__sub {
    color: rgba(255, 255, 255, 0.5);
    transform: translateX(0.5em);
  }
}
/*
 * SP/TABはブロック間に区切り線を入れ、文字サイズを大きくする（フッター・ドロワー共通）
 */
@media screen and (max-width: 1023px) {
  .cm-nav-main {
    gap: 0;
  }
  .cm-nav-main .cm-nav-main-block {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: var(--stroke-weight-1) solid rgba(255, 255, 255, 0.3);
  }
  .cm-nav-main .cm-nav-main__col:first-child > .cm-nav-main-block:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
  }
  .cm-nav-main .cm-nav-main-block--single {
    gap: 1rem;
  }
  .cm-nav-main .cm-nav-main-block__link {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.05625rem;
  }
  .cm-nav-main .cm-nav-main-block__lv2 {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.8;
    letter-spacing: 0.04375rem;
  }
}
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.cm-nav-aside {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cm-nav-aside li a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: 0.9375rem;
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.05rem;
  color: var(--Blue, #005BAB);
}
.cm-nav-aside li a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: var(--Blue, #005BAB);
  transform: translateY(-50%) scale(0);
  transition: transform 0.2s var(--easeOutCubic, ease);
}

.cm-nav-aside li.is-current > a::before {
  transform: translateY(-50%) scale(1);
}

.cm-nav-aside--bold > li > a {
  font-weight: 700;
}

@media screen and (max-width: 1023px) {
  .cm-nav-aside--news {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .cm-nav-aside--news li a {
    display: flex;
    height: 1.25rem;
    padding: 0 0.5rem;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    border-radius: 6.25rem;
    border: var(--stroke-weight-1) solid var(--Blue, #005BAB);
    font-size: 0.75rem;
    font-weight: 400;
  }
  .cm-nav-aside--news li a:before {
    display: none;
  }
  .cm-nav-aside--news li.is-current > a {
    background: var(--Blue, #005BAB);
    color: #fff;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.cm-nav-page-more__link {
  position: relative;
  display: flex;
  padding: 1rem 1rem;
  justify-content: space-between;
  gap: 1.5rem;
  align-self: stretch;
  border-radius: 0.5rem;
  background: var(--Blue_Line, rgba(0, 91, 166, 0.5));
}
@media screen and (min-width: 1024px) {
  .cm-nav-page-more__link {
    padding: 1.5rem 1rem;
    gap: 2rem;
  }
}

.cm-nav-page-more__pic {
  width: 5.75rem;
}
.cm-nav-page-more__pic img {
  border-radius: 0.25rem;
}
@media screen and (max-width: 1023px) {
  .cm-nav-page-more__pic img {
    aspect-ratio: 1/1;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media screen and (min-width: 1024px) {
  .cm-nav-page-more__pic {
    width: 11.125rem;
  }
}

.cm-nav-page-more__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  color: var(--White, #FFF);
}
.cm-nav-page-more__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 120%;
}
@media screen and (min-width: 1024px) {
  .cm-nav-page-more__title {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 130%;
  }
}

.cm-nav-page-more__desc {
  padding-right: 2.5rem;
  margin-top: auto;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.6;
}
@media screen and (min-width: 1024px) {
  .cm-nav-page-more__desc {
    padding-right: 3rem;
    font-size: 0.75rem;
  }
}

.cm-nav-page-more__arrow {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
}
@media screen and (min-width: 1024px) {
  .cm-nav-page-more__arrow {
    bottom: 1.5rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*
 * cm-nav-mega
 * PC専用のメガメニュー。.l-header-mega の中に data-mega ごとのパネルを並べ、
 * ヘッダーナビのホバーで .is-active が付いたものだけを表示する。
 */
.cm-nav-mega {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  padding: 2.25rem 1.875rem;
  background: var(--White, #fff);
  border-top: var(--stroke-weight-1) solid var(--Gray, #E7E7E7);
  color: var(--Black, #313131);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--duration) var(--easeTheme), visibility var(--duration) var(--easeTheme);
}
.cm-nav-mega.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.cm-nav-mega__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}

.cm-nav-mega__title {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
  color: var(--Blue, #005BAB);
  white-space: nowrap;
}

.cm-nav-mega__list {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
}

.cm-nav-mega__item {
  display: block;
  width: 9.25rem;
}

.cm-nav-mega__pic {
  overflow: hidden;
  width: 100%;
  height: 9.25rem;
  border-radius: 0.25rem;
}
.cm-nav-mega__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  will-change: transform;
  transition: transform var(--duration) var(--easeTheme);
}
@media (hover: hover) {
  .cm-nav-mega__pic:hover img, a:hover .cm-nav-mega__pic img {
    transform: scale(1.06);
  }
}

.cm-nav-mega__label {
  margin-top: 0.8125rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
  transition: color var(--duration) var(--easeTheme);
}
@media (hover: hover) {
  .cm-nav-mega__label:hover, a:hover .cm-nav-mega__label {
    color: var(--Blue, #005BAB);
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-modal
	data-modal-open="<id>" のボタンで開き、data-modal-close で閉じる
	（挙動は common.js の jsModal）
----------------------------------------------------*/
.is-modal-open {
  overflow: hidden;
}

.cm-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity var(--duration) var(--easeTheme), visibility var(--duration) var(--easeTheme);
}
.cm-modal.is-open {
  visibility: visible;
  opacity: 1;
}

.cm-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(49, 49, 49, 0.4);
  border: 0;
  cursor: pointer;
}

.cm-modal__inner {
  position: relative;
  width: 22.3125rem;
  max-width: calc(100% - 2rem);
  transform: translateY(1rem);
  transition: transform var(--duration) var(--easeTheme);
}
.is-open .cm-modal__inner {
  transform: translateY(0);
}
@media screen and (min-width: 1024px) {
  .cm-modal__inner {
    width: 42.375rem;
  }
}

.cm-modal__close {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.75rem);
  width: 2.5rem;
  height: 2.5rem;
  border: var(--stroke-weight-1) solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: background-color var(--duration) var(--easeTheme);
}
.cm-modal__close::before, .cm-modal__close::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1rem;
  height: var(--stroke-weight-1);
  background: #fff;
}
.cm-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.cm-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media (hover: hover) {
  .cm-modal__close:hover, a:hover .cm-modal__close {
    background: rgba(255, 255, 255, 0.15);
  }
}
@media screen and (min-width: 1024px) {
  .cm-modal__close {
    right: -3.625rem;
    bottom: auto;
    top: 0;
    width: 3rem;
    height: 3rem;
  }
}

.cm-modal__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6875rem;
  padding: 1.5rem;
  border-radius: 1rem;
  background: var(--Blue, #005BAB);
  max-height: calc(100vh - 7.5rem);
  overflow-y: auto;
}
@media screen and (min-width: 1024px) {
  .cm-modal__card {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 2.5rem;
  }
}

.cm-modal__label {
  flex-shrink: 0;
  padding: 0.25rem 1rem;
  border: var(--stroke-weight-1) solid #fff;
  border-radius: 2.75rem;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .cm-modal__label {
    padding: 0.5rem 1.5rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*
 * 図版を拡大表示するバリエーション（キャリアパスの複線型キャリア図）
 * 画像は原寸のまま横スクロールで見せる
 */
.cm-modal--wide .cm-modal__inner {
  width: calc(100% - 2rem);
  max-width: none;
}

.cm-modal__card--diagram {
  padding: 1rem;
  background: #fff;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

.cm-modal__diagram img {
  width: 53.1875rem;
  max-width: none;
  height: auto;
}

.cm-modal__diagram--chart img {
  width: 60rem;
}
@media screen and (min-width: 1024px) {
  .cm-modal__diagram--chart img {
    width: 75rem;
  }
}

.cm-modal__diagram--map img {
  width: 55.5rem;
}

/*
 * エントリー/マイページ選択モーダル
 * Figma: 3213:25319（popup/detail-card 3213:25573）
 */
.cm-modal__card--entry {
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 1.5rem;
  padding: 2.5rem 1.5rem;
}
@media screen and (min-width: 1024px) {
  .cm-modal__card--entry {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 2.25rem;
    padding: 3.5rem 1.5rem;
  }
}

.cm-modal__entry-title {
  color: #fff;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .cm-modal__entry-title {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

.cm-modal__entry-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .cm-modal__entry-list {
    gap: 2.25rem;
  }
}

.cm-modal__entry-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  border: var(--stroke-weight-1) solid #fff;
  border-radius: 2.75rem;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  text-align: center;
  transition: background-color var(--duration) var(--easeTheme), color var(--duration) var(--easeTheme);
}
@media (hover: hover) {
  .cm-modal__entry-link:hover, a:hover .cm-modal__entry-link {
    background: #fff;
    color: var(--Blue, #005BAB);
  }
}
@media screen and (min-width: 1024px) {
  .cm-modal__entry-link {
    padding: 0.5rem 1.5rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
    white-space: nowrap;
  }
}

.cm-modal__text {
  color: #fff;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
}
@media screen and (min-width: 1024px) {
  .cm-modal__text {
    width: 18.875rem;
    flex-shrink: 0;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	section-header
----------------------------------------------------*/
.cm-section-header__label {
  padding-bottom: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: var(--stroke-weight-1) solid var(--Blue, #005BAB);
}
@media screen and (min-width: 1024px) {
  .cm-section-header__label {
    padding-bottom: 0.625rem;
  }
}

.cm-section-header__label-en {
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--color-assort);
}
@media screen and (min-width: 1024px) {
  .cm-section-header__label-en {
    font-size: 0.875rem;
  }
}

.cm-section-header__label-ja {
  font-family: var(--Montserrat);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.8;
  color: var(--color-assort);
}
@media screen and (min-width: 1024px) {
  .cm-section-header__label-ja {
    font-size: 0.875rem;
  }
}

.cm-section-header__body {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.cm-section-header__body:first-child {
  margin-top: 0;
}
@media screen and (min-width: 1024px) {
  .cm-section-header__body {
    margin-top: 2.5rem;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
  }
}

.cm-section-header__heading {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-assort);
}
@media screen and (min-width: 1024px) {
  .cm-section-header__heading {
    letter-spacing: 0.052em;
    font-size: 2.5rem;
    font-weight: 700;
  }
}

.cm-section-header__desc {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  color: var(--color);
}
@media screen and (min-width: 1024px) {
  .cm-section-header__desc {
    max-width: 30.5rem;
  }
}

@media screen and (max-width: 1023px) {
  .cm-section-header--non-ja .cm-section-header__label-ja {
    display: none;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	section-link
----------------------------------------------------*/
.cm-section-link {
  background: var(--Blue_Line, rgba(0, 91, 166, 0.5));
}

.cm-section-link__wrap {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .cm-section-link__wrap {
    flex-direction: row;
    gap: 2rem;
    padding: 3.5rem 2.5rem;
  }
}

.cm-section-link__item {
  background: #E7E7E7;
  border-radius: 0.5rem;
  height: 5.625rem;
}
@media screen and (min-width: 1024px) {
  .cm-section-link__item {
    flex: 1;
    height: 10.625rem;
  }
}

.cm-section-link__item-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 0 1.5rem;
  border-radius: inherit;
  transition: background-color var(--duration) var(--easeOutQuart);
}
@media (hover: hover) {
  .cm-section-link__item-link:hover, a:hover .cm-section-link__item-link {
    background: var(--Blue, #005BAB);
  }
  .cm-section-link__item-link:hover .cm-section-link__item-en,
  .cm-section-link__item-link:hover .cm-section-link__item-ja,
  .cm-section-link__item-link:hover .cm-section-link__item-desc, a:hover .cm-section-link__item-link .cm-section-link__item-en,
  a:hover .cm-section-link__item-link .cm-section-link__item-ja,
  a:hover .cm-section-link__item-link .cm-section-link__item-desc {
    color: #fff;
  }
  .cm-section-link__item-link:hover .cm-section-link__item-arrow svg, a:hover .cm-section-link__item-link .cm-section-link__item-arrow svg {
    fill: #fff;
  }
}

.cm-section-link__item-head {
  display: flex;
  flex-direction: column;
}

.cm-section-link__item-en {
  font-family: var(--Montserrat);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  color: var(--Blue, #005BAB);
  transition: color var(--duration) var(--easeOutQuart);
}
@media screen and (min-width: 1024px) {
  .cm-section-link__item-en {
    font-size: 2rem;
    line-height: 1.3;
  }
}

.cm-section-link__item-ja {
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--Black, #313131);
  transition: color var(--duration) var(--easeOutQuart);
}
@media screen and (min-width: 1024px) {
  .cm-section-link__item-ja {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
  }
}

.cm-section-link__item-body {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
@media screen and (min-width: 1024px) {
  .cm-section-link__item-body {
    gap: 1.125rem;
  }
}

.cm-section-link__item-desc {
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.3;
  color: var(--Blue, #005BAB);
  white-space: nowrap;
  transition: color var(--duration) var(--easeOutQuart);
}
@media screen and (min-width: 1024px) {
  .cm-section-link__item-desc {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
  }
}

.cm-section-link__item-arrow svg {
  transition: fill var(--duration) var(--easeOutQuart);
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-slider
	Swiperのカルーセル + コントロール（Figma: slider/controls）
----------------------------------------------------*/
.cm-slider__items {
  margin-top: var(--padding-block);
  overflow: hidden;
}
.cm-slider__items .swiper {
  overflow: visible;
}
.cm-slider__items .swiper-slide {
  height: auto;
}
@media screen and (max-width: 1023px) {
  .cm-slider__items {
    margin-inline: calc(50% - 50vw);
    padding: 0 1rem;
  }
}

@media screen and (min-width: 1024px) {
  .cm-slider__items--bleed-right {
    margin-right: calc(50% - 50vw);
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.cm-slider__foot {
  margin-top: var(--padding-block);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.cm-slider__divider {
  flex: 1 0 0;
  height: 0;
  border-top: var(--stroke-weight-1) solid rgba(0, 91, 166, 0.5);
}

.cm-slider__ctrl {
  display: flex;
  flex-shrink: 0;
  gap: 0.5rem;
}

.cm-slider__more {
  flex-shrink: 0;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-slider__list
	インタビュースライダー（TOP / DAY LOG / CAREER 共通）
	.swiper 自体を1スライド幅にして、はみ出し分は親の overflow で隠す
----------------------------------------------------*/
.cm-slider__list.swiper {
  margin-top: var(--padding-block);
  margin-left: 0;
  margin-right: 0;
  width: 16.5rem;
  overflow: initial;
}
@media screen and (min-width: 1024px) {
  .cm-slider__list.swiper {
    width: 23.25rem;
  }
}

.cm-slider__list .swiper-slide {
  height: auto;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	cm-post

	本文まわりのスタイルは、ブロックエディタの編集画面（.editor-styles-wrapper）にも
	同じセレクタで当てて見た目を揃える。editor.scss から読み込む。
----------------------------------------------------*/
body figure {
  margin-bottom: 0;
}

.cm-post, .editor-styles-wrapper {
  --post-gap: 2rem;
  font-size: 0.875rem;
  line-height: 1.8;
  letter-spacing: 0.04375rem;
  color: var(--Black, #313131);
  word-break: break-all;
}
@media screen and (min-width: 1024px) {
  .cm-post, .editor-styles-wrapper {
    --post-gap: 3.5rem;
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
}
.cm-post > *, .editor-styles-wrapper > * {
  margin-bottom: var(--post-gap);
}
.cm-post > *:last-child, .editor-styles-wrapper > *:last-child {
  margin-bottom: 0;
}
.cm-post h1, .editor-styles-wrapper h1 {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
}
@media screen and (min-width: 1024px) {
  .cm-post h1, .editor-styles-wrapper h1 {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.15rem;
  }
}
.cm-post h2, .editor-styles-wrapper h2 {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.075rem;
}
@media screen and (min-width: 1024px) {
  .cm-post h2, .editor-styles-wrapper h2 {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.125rem;
  }
}
.cm-post h3, .editor-styles-wrapper h3 {
  margin-bottom: 1rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05625rem;
}
@media screen and (min-width: 1024px) {
  .cm-post h3, .editor-styles-wrapper h3 {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.075rem;
  }
}
.cm-post h4,
.cm-post h5,
.cm-post h6, .editor-styles-wrapper h4,
.editor-styles-wrapper h5,
.editor-styles-wrapper h6 {
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04375rem;
}
@media screen and (min-width: 1024px) {
  .cm-post h4,
  .cm-post h5,
  .cm-post h6, .editor-styles-wrapper h4,
  .editor-styles-wrapper h5,
  .editor-styles-wrapper h6 {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.05625rem;
  }
}
.cm-post hr, .editor-styles-wrapper hr {
  border: none;
  border-top: var(--stroke-weight-1) solid rgba(40, 40, 40, 0.3);
}
.cm-post figure, .editor-styles-wrapper figure {
  margin-bottom: var(--post-gap);
}
.cm-post figure img, .editor-styles-wrapper figure img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
}
.cm-post figure figcaption, .editor-styles-wrapper figure figcaption {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.0375rem;
}
@media screen and (min-width: 1024px) {
  .cm-post figure figcaption, .editor-styles-wrapper figure figcaption {
    margin-top: 0.5rem;
    font-size: 1rem;
    line-height: 1.8;
    letter-spacing: 0.05rem;
  }
}
.cm-post ul,
.cm-post ol, .editor-styles-wrapper ul,
.editor-styles-wrapper ol {
  padding: 1.5rem 2rem;
  border: var(--stroke-weight-1) solid #282828;
}
@media screen and (min-width: 1024px) {
  .cm-post ul,
  .cm-post ol, .editor-styles-wrapper ul,
  .editor-styles-wrapper ol {
    padding: 2.5rem;
  }
}
.cm-post li, .editor-styles-wrapper li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  list-style: none;
}
.cm-post li:before, .editor-styles-wrapper li:before {
  flex-shrink: 0;
  opacity: 0.8;
}
.cm-post li + li, .editor-styles-wrapper li + li {
  margin-top: 0.5rem;
}
@media screen and (min-width: 1024px) {
  .cm-post li + li, .editor-styles-wrapper li + li {
    margin-top: 1.875rem;
  }
}
.cm-post ul li:before, .editor-styles-wrapper ul li:before {
  content: "・";
  font-size: 1rem;
}
.cm-post ol, .editor-styles-wrapper ol {
  counter-reset: cm-post-ol;
}
.cm-post ol li, .editor-styles-wrapper ol li {
  counter-increment: cm-post-ol;
}
.cm-post ol li:before, .editor-styles-wrapper ol li:before {
  content: counter(cm-post-ol) ".";
}
.cm-post blockquote, .editor-styles-wrapper blockquote {
  padding-left: 2.5rem;
  border-left: var(--stroke-weight-1) solid #282828;
  text-align: justify;
}
.cm-post blockquote > * + *, .editor-styles-wrapper blockquote > * + * {
  margin-top: var(--post-gap);
}
.cm-post blockquote > *, .editor-styles-wrapper blockquote > * {
  opacity: 0.4;
}
.cm-post strong, .editor-styles-wrapper strong {
  font-weight: bold;
}
.cm-post em, .editor-styles-wrapper em {
  font-style: italic;
}
.cm-post table th, .editor-styles-wrapper table th {
  font-weight: bold;
}
.cm-post table th,
.cm-post table td, .editor-styles-wrapper table th,
.editor-styles-wrapper table td {
  padding: 0.5em 0.5em;
  border: 1px solid #ccc;
}
.cm-post a, .editor-styles-wrapper a {
  color: var(--color-accent);
  text-decoration: underline;
}
.cm-post a:hover, .editor-styles-wrapper a:hover {
  text-decoration: none;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*
	cm-post-talk
	対談記事の発言ブロック。左に話者アイコン＋名前、右に発言本文。

	Figma
	  PC : 2177:10190（アイコン104 / gap40 / 本文640＝784-104-40）
	  SP : 2177:11382（アイコン76 / gap18 / 本文264＝358-76-18）
	発言ブロック自体の下余白は .cm-post > * の --post-gap に任せる。
*/
.cm-post-talk {
  display: flex;
  align-items: flex-start;
  gap: 1.125rem;
}
@media screen and (min-width: 1024px) {
  .cm-post-talk {
    gap: 2.5rem;
  }
}

.cm-post-talk--reverse {
  flex-direction: row-reverse;
}

.cm-post .cm-post-talk__pic, .editor-styles-wrapper .cm-post-talk__pic {
  flex-shrink: 0;
  margin-bottom: 0;
  width: 4.75rem;
}
@media screen and (min-width: 1024px) {
  .cm-post .cm-post-talk__pic, .editor-styles-wrapper .cm-post-talk__pic {
    width: 6.5rem;
  }
}
.cm-post .cm-post-talk__pic img, .editor-styles-wrapper .cm-post-talk__pic img {
  aspect-ratio: 1/1;
  border-radius: 50%;
  object-fit: cover;
}
.cm-post .cm-post-talk__pic .wp-block-image, .editor-styles-wrapper .cm-post-talk__pic .wp-block-image {
  margin: 0;
}
.cm-post .cm-post-talk__pic figcaption,
.cm-post .cm-post-talk__pic .cm-post-talk__name, .editor-styles-wrapper .cm-post-talk__pic figcaption,
.editor-styles-wrapper .cm-post-talk__pic .cm-post-talk__name {
  margin-top: 0.5rem;
  font-family: var(--Montserrat);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0;
  text-align: center;
  color: var(--Blue, #005BAB);
}

.cm-post-talk__message {
  flex: 1;
  min-width: 0;
}
.cm-post-talk__message > * + *,
.cm-post-talk__message > .wp-block-group__inner-container > * + * {
  margin-top: 1em;
}

/*
 * ブロックパターンで組んだ場合の調整。
 * グループブロックは中に .wp-block-group__inner-container を挟むので、
 * レイアウト上は無いものとして扱う（display: contents）。
 * あわせてWPのレイアウト用マージンで崩れないようにする。
 */
.cm-post-talk > .wp-block-group__inner-container,
.cm-post-talk__pic > .wp-block-group__inner-container,
.cm-post-talk__message > .wp-block-group__inner-container {
  display: contents;
}

.cm-post .cm-post-talk > *,
.cm-post .cm-post-talk > .wp-block-group__inner-container > *, .editor-styles-wrapper .cm-post-talk > *,
.editor-styles-wrapper .cm-post-talk > .wp-block-group__inner-container > * {
  margin-block: 0;
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
.cm-post .wp-block-gallery, .editor-styles-wrapper .wp-block-gallery {
  display: flex;
}
@media screen and (max-width: 1023px) {
  .cm-post .wp-block-gallery, .editor-styles-wrapper .wp-block-gallery {
    flex-direction: column;
  }
}
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	c-balloon（左向きのしっぽを持つ吹き出し）
	※ p-benefits-voice__balloon と同じ作り。サイズだけ変数で調整する
----------------------------------------------------*/
.c-balloon {
  --balloon-tail-size: 1.3125rem;
  --balloon-tail-dot: 0.5rem;
  position: relative;
  padding: 0.8125rem 0.875rem;
  border-radius: 1rem;
  background: var(--Blue, #005BAB);
  color: #fff;
}
.c-balloon::before {
  content: "";
  position: absolute;
  left: calc(var(--balloon-tail-size) * -0.57);
  top: 0.6875rem;
  width: var(--balloon-tail-size);
  height: var(--balloon-tail-size);
  border-radius: 50%;
  background: var(--Blue, #005BAB);
}
.c-balloon::after {
  content: "";
  position: absolute;
  left: calc(var(--balloon-tail-size) * -0.88);
  top: 1.4375rem;
  width: var(--balloon-tail-dot);
  height: var(--balloon-tail-dot);
  border-radius: 50%;
  background: var(--Blue, #005BAB);
}

.c-balloon__text {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.0375rem;
}
@media screen and (min-width: 1024px) {
  .c-balloon__text {
    font-size: 0.875rem;
    letter-spacing: 0.04375rem;
  }
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	...
----------------------------------------------------*/
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	...
----------------------------------------------------*/
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*----------------------------------------------------
	汎用クラス
----------------------------------------------------*/
.bold,
.strong {
  font-weight: bold;
}

.u-hide {
  display: none;
}

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

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

.u-only-sp {
  display: block !important;
}
@media screen and (min-width: 641px) {
  .u-only-sp {
    display: none !important;
  }
}

.u-only-pc {
  display: none !important;
}
@media screen and (min-width: 641px) {
  .u-only-pc {
    display: block !important;
  }
}

.u-color-accent {
  color: var(--color-accent);
}

.u-template {
  display: flex;
  flex-direction: column;
  gap: 5rem;
  padding-bottom: 6.25rem;
}
.u-template > div {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.u-gap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--gap);
}

.is-disabled {
  opacity: 0.7;
  pointer-events: none;
}

.u-budoux {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

[data-delay="0.1"] {
  transition-delay: 0.1s;
}

[data-delay="0.2"] {
  transition-delay: 0.2s;
}

[data-delay="0.3"] {
  transition-delay: 0.3s;
}

[data-delay="0.4"] {
  transition-delay: 0.4s;
}

[data-delay="0.5"] {
  transition-delay: 0.5s;
}

[data-delay="0.6"] {
  transition-delay: 0.6s;
}

[data-delay="0.7"] {
  transition-delay: 0.7s;
}

[data-delay="0.8"] {
  transition-delay: 0.8s;
}

[data-delay="0.9"] {
  transition-delay: 0.9s;
}

[data-delay="1"] {
  transition-delay: 1s;
}

[data-delay="1.1"] {
  transition-delay: 1.1s;
}

[data-delay="1.2"] {
  transition-delay: 1.2s;
}

[data-delay="1.3"] {
  transition-delay: 1.3s;
}

[data-delay="1.4"] {
  transition-delay: 1.4s;
}

[data-delay="1.5"] {
  transition-delay: 1.5s;
}

[data-delay="1.6"] {
  transition-delay: 1.6s;
}

[data-delay="1.7"] {
  transition-delay: 1.7s;
}

[data-delay="1.8"] {
  transition-delay: 1.8s;
}

[data-delay="1.9"] {
  transition-delay: 1.9s;
}

[data-delay="2"] {
  transition-delay: 2s;
}

[data-delay="2.1"] {
  transition-delay: 2.1s;
}

[data-delay="2.2"] {
  transition-delay: 2.2s;
}

[data-delay="2.3"] {
  transition-delay: 2.3s;
}

[data-delay="2.4"] {
  transition-delay: 2.4s;
}

[data-delay="2.5"] {
  transition-delay: 2.5s;
}

[data-delay="2.6"] {
  transition-delay: 2.6s;
}

[data-delay="2.7"] {
  transition-delay: 2.7s;
}

[data-delay="2.8"] {
  transition-delay: 2.8s;
}

[data-delay="2.9"] {
  transition-delay: 2.9s;
}

[data-delay="3"] {
  transition-delay: 3s;
}

.__loop {
  display: flex;
}
.__loop figure {
  animation: loopLeft linear 30s infinite;
  will-change: transform;
  backface-visibility: hidden;
}
.__loop img {
  width: auto;
  max-width: none;
  height: 18.75rem;
}
@media screen and (min-width: 1024px) {
  .__loop figure {
    animation-duration: 50s;
  }
  .__loop img {
    height: 32.875rem;
  }
}

@keyframes loopLeft {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-100%, 0, 0);
  }
}
@keyframes loopRight {
  from {
    transform: translate3d(-100%, 0, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes btnArrow {
  0% {
    transform: translate3d(0, 0, 0);
  }
  30% {
    transform: translate3d(70%, 0, 0);
  }
  30.1% {
    transform: translate3d(-70%, 0, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes btnHoverTxt {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -30%, 0);
    opacity: 0;
  }
  50.1% {
    transform: translate3d(0, 30%, 0);
    opacity: 0;
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes btnArrow1 {
  0% {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
  100% {
    transform: translate3d(70%, 0, 0);
    opacity: 0;
  }
}
@keyframes btnArrow2 {
  0% {
    transform: translate3d(-70%, 0, 0);
    opacity: 0;
  }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
:root {
  /*
  --swiper-pagination-color: var(--swiper-theme-color);
  */
}

.swiper-wrapper {
  display: flex;
  transition-timing-function: var(--easeOutQuart);
}

.swiper-slide {
  flex-shrink: 0;
}

/* Common Styles */
/* Bullets */
/* Progress */
