@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;0,900;1,400;1,700;1,900&family=Noto+Sans+JP:wght@100..900&display=swap");
*,
*:before,
*:after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

html {
  color: #000;
  background: #FFF;
}

body {
  -webkit-text-size-adjust: 100%;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
input, textarea, button, select,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline;
}

td, th {
  vertical-align: top;
}

img {
  vertical-align: bottom;
}

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

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

p, li, dd, dt, td, th {
  word-wrap: break-word;
}

select, input {
  word-wrap: normal;
}

address, caption, cite, code, dfn, em, strong, th, var, time, mark {
  font-style: normal;
  font-weight: normal;
}

caption, th {
  text-align: left;
}

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

abbr, acronym {
  border: 0;
  font-variant: normal;
}

mark {
  color: #000;
  background: #FFF;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input, textarea, select, keygen {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

legend {
  color: #000;
}

pre, code,
kbd, samp, tt {
  font-family: monospace;
  line-height: 100%;
}

input:not([type=radio]):not([type=checkbox]), textarea, button {
  /* iosでボタンなどのデフォルト装飾を解除 */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input:focus,
select:focus,
textarea:focus {
  outline: 0;
}

/* Firefoxでボタン系の高さが1pxずれる対策 */
button::-moz-focus-inner,
input[type=button]::-moz-focus-inner,
input[type=reset]::-moz-focus-inner,
input[type=submit]::-moz-focus-inner {
  border: 0px;
}

/*----------------------
     html base
---------------------------------------- */
*,
*:before,
*:after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  height: 100%;
  font-size: 10px; /* 1rem = 10px */
  background: #fff;
}

body {
  min-height: 100%;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1;
  font-family: Noto Sans JP, ヒラギノ角ゴ ProN W3, Hiragino Kaku Gothic ProN, 游ゴシック, YuGothic, メイリオ, Meiryo, Arimo, sans-serif;
  font-weight: 400;
  background: #fff;
}

a {
  color: #000;
  text-decoration: none;
  transition: all 1s;
}
a:hover {
  opacity: 0.7;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

button, input, textarea {
  font-family: Noto Sans JP, ヒラギノ角ゴ ProN W3, Hiragino Kaku Gothic ProN, 游ゴシック, YuGothic, メイリオ, Meiryo, Arimo, sans-serif;
}

input[type=text], textarea, select, input[type=password] {
  padding: 0.5em 1em;
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 6px;
  width: 100%;
}

textarea {
  height: 10em;
}

button {
  cursor: pointer;
}

@media (max-width: 767px) {
  img {
    max-width: 100%;
  }
}
.l-container {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .l-container {
    padding-inline: 5.5vw;
  }
}

.l-main {
  margin-top: -6.8rem;
}
@media (max-width: 767px) {
  .l-main {
    margin-top: -4.8rem;
  }
}

.l-contents {
  text-align: center;
  line-height: 1.6;
  display: grid;
  gap: 3.2rem;
}
@media (min-width: 1024px) {
  .l-contents {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .l-contents {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .l-contents {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .l-contents {
    padding: 0 3vw;
  }
}

.l-header {
  position: fixed;
  top: 4rem;
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 1023px) {
  .l-header {
    z-index: 100;
    top: 0rem;
  }
}

.l-footer {
  position: relative;
  padding-block: 5.4rem 4rem;
}
@media (max-width: 767px) {
  .l-footer {
    padding-bottom: 8rem;
  }
}
.l-footer__inner {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 2.4rem;
  padding-bottom: 2.4rem;
  justify-content: space-between;
}
@media (max-width: 1023px) {
  .l-footer__inner {
    padding-inline: 5.5vw;
  }
}
@media (max-width: 767px) {
  .l-footer__inner {
    grid-template-columns: 1fr;
  }
}
.l-footer__lower {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-block: 2rem 0;
}
@media (max-width: 1023px) {
  .l-footer__lower {
    padding-inline: 5.5vw;
  }
}

.p-mv {
  background: url(../images/toppage/bg_mv_pc.png) no-repeat top center/cover;
  overflow: hidden;
  position: relative;
}
@media (min-width: 1024px) {
  .p-mv {
    width: 100%;
    height: 100vh;
  }
}
@media (max-width: 767px) {
  .p-mv {
    background: url(../images/toppage/bg_mv_sp.png) no-repeat top center/cover;
  }
}
.p-mv__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  height: calc(100vh - 10rem);
  margin-top: 11rem;
  display: flex;
  align-items: center;
}
@media (max-width: 1023px) {
  .p-mv__inner {
    padding-inline: 5.5vw;
  }
}
@media (max-width: 767px) {
  .p-mv__inner {
    height: 100vh;
    margin-top: 0;
  }
}
.p-mv__catch {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3.2rem;
}
@media (max-width: 767px) {
  .p-mv__catch {
    gap: 1.2rem;
    width: 90%;
    margin-inline: auto;
  }
}
.p-mv__catch .__upper,
.p-mv__catch .__lower {
  width: 100%;
}
.p-mv__catch .__upper img {
  width: 100%;
  max-width: 59rem;
  aspect-ratio: 639/235;
}
.p-mv__catch .__lower img {
  width: 100%;
  max-width: 40rem;
  aspect-ratio: 400/21;
}

.p-mv-news {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 50%;
  display: grid;
  grid-template-columns: 8rem auto;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-mv-news {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .p-mv-news {
    width: 100%;
    grid-template-columns: 1fr;
    position: relative;
  }
}
.p-mv-news .__heading {
  background: #01386a;
  color: #fff;
  font-weight: 700;
  font-size: 1.8rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  padding: 1.6rem 0;
  text-align: center;
}
@media (max-width: 767px) {
  .p-mv-news .__heading {
    padding: 0.8rem;
    text-align: left;
  }
}
.p-mv-news .__list {
  background: #ededed;
  padding: 1em 0.5em;
  display: grid;
  grid-template-columns: 1fr 6rem;
  position: relative;
}
@media (max-width: 767px) {
  .p-mv-news .__list {
    grid-template-columns: 1fr;
  }
}
.p-mv-news .slick-slide a {
  overflow: hidden; /* 溢れた部分を隠す */
  text-overflow: ellipsis; /* 溢れた部分を「...」にする */
  white-space: nowrap; /* 1行で表示 */
  width: 100%;
  display: block;
}
.p-mv-news .slick-slide a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.p-mv-news .slick-dots {
  width: 6rem;
  position: relative;
  bottom: auto;
  height: 1.6rem;
  display: flex;
  justify-content: center;
}
.p-mv-news .slick-dots li {
  width: 1rem;
  margin-inline: 0.4rem;
}
.p-mv-news .slick-dots li button {
  width: 100%;
  height: 1.6rem;
}
.p-mv-news .slick-dotted.slick-slider {
  margin: 0;
}
@media (max-width: 767px) {
  .p-mv-news .slick-dots {
    width: 6rem;
    position: absolute;
    bottom: 115%;
    right: 0.8rem;
    height: 1.6rem;
    display: flex;
    justify-content: center;
  }
  .p-mv-news .slick-dots li button:before {
    color: #fff;
    opacity: 1;
    font-size: 1rem !important;
  }
  .p-mv-news .slick-dots li.slick-active button:before {
    color: #717070;
    opacity: 1;
  }
}

.p-page__3columns {
  display: grid;
  gap: 2.4rem;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767px) {
  .p-page__3columns {
    grid-template-columns: 1fr;
  }
}
.p-page__2columns {
  display: grid;
  gap: 4rem;
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 767px) {
  .p-page__2columns {
    grid-template-columns: 1fr;
  }
}

.p-page-head {
  width: 100%;
  height: 32rem;
}
@media (max-width: 767px) {
  .p-page-head {
    height: 22rem;
  }
}
.p-page-head__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 20rem;
}
@media (max-width: 1023px) {
  .p-page-head__inner {
    padding-inline: 5.5vw;
  }
}
@media (max-width: 767px) {
  .p-page-head__inner {
    padding-top: 13rem;
  }
}
.p-page-head__title {
  font-weight: 700;
  font-size: 2.8rem;
  letter-spacing: 0.04em;
  color: #01386a;
}

.p-page-planning .p-page-head {
  background: #f1f8fc url(../images/tech/bg_title_planning.png) no-repeat top right;
}
@media (max-width: 767px) {
  .p-page-planning .p-page-head {
    background-position: top left -150%;
  }
}

.p-page-production .p-page-head {
  background: #f1f8fc url(../images/tech/bg_title_production.png) no-repeat top right;
}
@media (max-width: 767px) {
  .p-page-production .p-page-head {
    background-position: top left -150%;
  }
}

.p-page-innovation .p-page-head {
  background: #f1f8fc url(../images/tech/bg_title_innovation.png) no-repeat top right;
}
@media (max-width: 767px) {
  .p-page-innovation .p-page-head {
    background-position: top left -150%;
  }
}

.p-page-consulting .p-page-head {
  background: #f1f8fc url(../images/tech/bg_title_consulting.png) no-repeat top right;
}
@media (max-width: 767px) {
  .p-page-consulting .p-page-head {
    background-position: top left -150%;
  }
}

.p-page-mv {
  overflow: hidden;
  position: relative;
  background: #fff;
}
.p-page-mv__image {
  text-align: right;
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-page-mv__image {
    padding-inline: 0;
  }
}
@media (max-width: 767px) {
  .p-page-mv__image {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    position: absolute;
    bottom: 0;
    right: 0;
  }
}
@media (max-width: 767px) and (max-width: 1023px) {
  .p-page-mv__image {
    padding-inline: 0;
  }
}
@media (max-width: 767px) {
  .p-page-mv__image img {
    width: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    aspect-ratio: 750/500;
    -o-object-position: 90% 100%;
       object-position: 90% 100%;
  }
  :is(.p-page-planning) .p-page-mv__image img {
    aspect-ratio: 750/600;
    -o-object-position: 70% 100%;
       object-position: 70% 100%;
  }
}
.p-page-mv__catch {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  height: 100%;
  display: flex;
  gap: 2.4rem;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 1023px) {
  .p-page-mv__catch {
    padding-inline: 5.5vw;
  }
}
@media (max-width: 767px) {
  .p-page-mv__catch {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    height: auto;
    gap: 1.2rem;
    padding-bottom: 50vw;
  }
}
@media (max-width: 767px) and (min-width: 1024px) {
  .p-page-mv__catch {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (max-width: 767px) and (min-width: 768px) and (max-width: 1023px) {
  .p-page-mv__catch {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) and (max-width: 767px) {
  .p-page-mv__catch {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) {
  :is(.p-page-planning) .p-page-mv__catch {
    padding-bottom: 32vw;
  }
}
.p-page-mv__prefix {
  display: grid;
  gap: 1.6rem;
  margin-bottom: 1.6rem;
}
.p-page-mv__prefix .__en {
  font-weight: 700;
  font-size: 6.8rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  letter-spacing: 0.04em;
  color: #01386a;
}
@media (max-width: 767px) {
  .p-page-mv__prefix .__en {
    font-weight: "";
    font-size: 4rem;
  }
}
.p-page-mv__prefix .__ja {
  font-weight: 700;
  font-size: 2.2rem;
  letter-spacing: 0.04em;
  color: #01386a;
}
@media (max-width: 767px) {
  .p-page-mv__prefix .__ja {
    font-weight: "";
    font-size: 1.8rem;
  }
}
.p-page-mv__head {
  font-weight: 700;
  font-size: 1.8rem;
  color: #4e4c4c;
  line-height: 1.8;
  width: clamp(28rem, 50%, 44rem);
}
@media (max-width: 1023px) {
  .p-page-mv__head {
    width: 100%;
    text-shadow: 1px 1px 3px #fff, 1px -1px 3px #fff, -1px -1px 3px #fff, -1px 1px 3px #fff;
  }
}
.p-page-mv__text {
  line-height: 1.8;
  width: clamp(28rem, 50%, 44rem);
}
@media (max-width: 1023px) {
  .p-page-mv__text {
    width: 100%;
    text-shadow: 0 0 3px #fff;
    text-shadow: 1px 1px 3px #fff, 1px -1px 3px #fff, -1px -1px 3px #fff, -1px 1px 3px #fff;
  }
}

.p-page-breadcrumbs {
  width: 100%;
  background: #fff;
  padding-block: 1em;
  padding-inline: 0.8rem;
}
.p-page-breadcrumbs__inner {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-page-breadcrumbs__inner {
    padding-inline: 5.5vw;
  }
}
.p-page-breadcrumbs__list {
  display: flex;
  justify-content: flex-start;
}
.p-page-breadcrumbs__item {
  display: flex;
  align-items: center;
}
.p-page-breadcrumbs__item a, .p-page-breadcrumbs__item span {
  color: #4e4c4c;
  font-weight: 500;
  font-size: 1.4rem;
}
.p-page-breadcrumbs__item a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.p-page-breadcrumbs__item:not(:last-of-type):after {
  content: "";
  display: block;
  width: 1em;
  height: 0.8em;
  background: url(../images/common/icon_arrow_rb.svg) no-repeat center center/contain;
  margin-inline: 0.5em;
}

.p-page-heading1 {
  display: grid;
  gap: 0.5em;
  text-align: center;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-heading1 {
    font-feature-settings: "palt";
    width: 100%;
  }
}
.p-page-heading1 .__en {
  font-weight: 700;
  font-size: 1.2rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #4e4c4c;
}
.p-page-heading1 .__ja {
  font-weight: 700;
  font-size: 1.8rem;
  color: #01386a;
  justify-self: center;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-heading1 .__ja {
    font-weight: 700;
    font-size: 1.6rem;
  }
}

.p-page-heading2 {
  display: grid;
  gap: 0.5em;
  text-align: left;
}
.p-page-heading2 .__en {
  font-weight: 700;
  font-size: 1.2rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #4e4c4c;
}
.p-page-heading2 .__ja {
  font-weight: 700;
  font-size: 1.8rem;
  color: #01386a;
}

.p-page-heading_oneline {
  font-weight: 700;
  font-size: 3.6rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #01386a;
}

.p-page-caption {
  text-align: left;
}

.p-page-card {
  display: grid;
  grid-template-rows: 1fr 5rem auto;
  gap: 1.6rem;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-card {
    display: flex;
    flex-direction: column;
    align-items: start;
  }
}
.p-page-card__withcaption {
  grid-template-rows: 1fr auto;
  gap: 0.8rem;
}
.p-page-card__head {
  place-content: center;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-card__head {
    width: 100%;
  }
}
.p-page-card__image img {
  width: 100%;
}
.p-page-card__text {
  line-height: 1.6;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-card__text {
    font-feature-settings: "palt";
  }
}

@media (min-width: 1024px) {
  .p-page-cards {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-cards {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-page-cards {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 1);
  }
}
.p-page-cards__title {
  font-weight: 700;
  font-size: 1.7rem;
  margin-bottom: 1.6rem;
  color: #4e4c4c;
}

.p-page-box {
  display: grid;
  gap: 2.4em;
  grid-template-columns: repeat(2, 1fr);
  border-top: 2px solid #01386a;
  padding-block: 4rem;
}
@media (max-width: 767px) {
  .p-page-box {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-page-box__text {
  display: grid;
  gap: 3.2rem;
  align-content: start;
}
.p-page-box__text .__head {
  font-weight: 700;
  font-size: 2rem;
  color: #01386a;
  line-height: 1.6;
  font-feature-settings: "palt";
  display: flex;
  gap: 0.2em;
}
.p-page-box__text .__head:before {
  content: attr(data-icon);
}
.p-page-box__text .__text {
  line-height: 2;
}
.p-page-box__text .__link {
  width: 50%;
  min-width: 28rem;
  margin-inline: auto;
}
.p-page-box__image img {
  width: 100%;
}
.p-page-box__note {
  background: #f1f8fc;
  display: grid;
  gap: 2.4rem;
  padding: 4rem;
  grid-template-columns: 1.5fr 1fr;
  margin-bottom: 6.4rem;
}
@media (max-width: 767px) {
  .p-page-box__note {
    grid-template-columns: 1fr;
    padding: 4rem 2.4rem;
  }
}
.p-page-box__list {
  border-top: 2px solid #ededed;
  color: #01386a;
}
.p-page-box__list .__item {
  display: flex;
  gap: 0.1em;
  border-bottom: 2px solid #ededed;
  padding: 0.5em 0;
  line-height: 1.6;
}
.p-page-box__list .__item:before {
  content: attr(data-icon);
}
.p-page-box__list .__notice {
  font-weight: "";
  font-size: 1.2rem;
  display: flex;
  gap: 0.1em;
  padding: 0.5em 0;
  line-height: 1.6;
}
.p-page-box__list .__notice:before {
  content: attr(data-icon);
}

.p-page-cta {
  overflow: hidden;
  background: #f1f8fc url(../images/common/bg_cta.png) no-repeat bottom center/cover;
}
.p-page-cta__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-page-cta__inner {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-page-cta__inner {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-cta__inner {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1.5);
  }
}
@media (max-width: 767px) {
  .p-page-cta__inner {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1.5);
  }
}
.p-page-cta__title {
  font-weight: 700;
  font-size: 4.8rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #74bbe3;
  text-align: center;
}
.p-page-cta__catch {
  text-align: center;
  margin-top: 2.4rem;
  line-height: 1.4;
}
.p-page-cta__list {
  margin-top: 4.8rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
@media (max-width: 767px) {
  .p-page-cta__list {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-cta__list > div {
    overflow: hidden;
  }
}
.p-page-cta__tel a {
  background: #fff;
  border-radius: 0.4rem;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1.2rem 2.4rem;
  height: 7.2rem;
  text-align: center;
}
@media (min-width: 1024px) {
  .p-page-cta__tel a {
    pointer-events: none;
  }
}
.p-page-cta__tel a img {
  width: 100%;
  max-width: 23rem;
  aspect-ratio: 230/48;
}
.p-page-cta__contact a {
  background: #74bbe3;
  border-radius: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.6rem 2.4rem;
  height: 7.2rem;
  text-align: center;
}
.p-page-cta__contact a img {
  aspect-ratio: 187/37;
  width: 18.7rem;
}

.p-page-contact {
  display: flex;
  justify-content: center;
}
@media (min-width: 1024px) {
  .p-page-contact {
    margin-top: calc(7.2rem * 0.75);
    margin-bottom: calc(7.2rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-contact {
    margin-top: calc(4rem * 0.75);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 767px) {
  .p-page-contact {
    margin-top: calc(4rem * 0.75);
    margin-bottom: calc(4rem * 0);
  }
}
.p-page-contact__btn {
  background: #74bbe3;
  display: block;
  border-radius: 4px;
  padding: 1em 0.5em;
  text-align: center;
  width: 80%;
  max-width: 32rem;
}
.p-page-contact__btn img {
  width: 90%;
  max-width: 30rem;
}

.p-page-notice {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding: 2.4rem;
  border: 2px solid #ededed;
}
@media (min-width: 1024px) {
  .p-page-notice {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-page-notice {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 767px) {
  .p-page-notice {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 1023px) {
  .p-page-notice {
    padding-inline: 5.5vw;
  }
}
.p-page-notice__list {
  display: grid;
  gap: 0.4em;
}
.p-page-notice__list .__item {
  display: flex;
  gap: 0.2em;
  line-height: 1.6;
}
.p-page-notice__list .__item:before {
  content: attr(data-icon);
}

.p-top__text1 {
  color: #4e4c4c;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
}
.p-top__text2 {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}

.p-top-pickup {
  position: relative;
}
@media (min-width: 1024px) {
  .p-top-pickup {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-pickup {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-pickup {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
.p-top-pickup__title {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-top-pickup__title {
    padding-inline: 5.5vw;
  }
}
.p-top-pickup__head {
  position: relative;
}
.p-top-pickup__list {
  background: linear-gradient(180deg, transparent 0%, transparent 10rem, #f8f7f2 10rem, #f8f7f2 100%);
  padding-bottom: 4.8rem;
}
@media (min-width: 1024px) {
  .p-top-pickup__list {
    margin-top: calc(7.2rem * 0.25);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-pickup__list {
    margin-top: calc(4rem * 0.25);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-top-pickup__list {
    margin-top: calc(4rem * 0.25);
    margin-bottom: calc(4rem * 0.5);
  }
}
.p-top-pickup__item {
  width: 31rem;
  background: #fff;
  margin-inline: 0.5rem;
}
.p-top-pickup__item a {
  text-decoration: none;
}
.p-top-pickup__item a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.p-top-pickup__item a:hover img {
  transform: scale(1.1);
}
.p-top-pickup__item .__image {
  overflow: hidden;
}
.p-top-pickup__item .__image img {
  width: 100%;
  aspect-ratio: 300/200;
  -o-object-fit: contain;
     object-fit: contain;
  transition: all 0.3s;
}
.p-top-pickup__item .__desc {
  padding: 1.6rem;
  display: grid;
  gap: 0.8em;
}
.p-top-pickup__item .__title {
  font-weight: 700;
  font-size: 1.8rem;
  color: #4e4c4c;
}
.p-top-pickup__arrows {
  display: flex;
  gap: 1.6rem;
  justify-content: center;
  position: absolute;
  right: 1rem;
  bottom: 0;
  overflow: hidden;
}
.p-top-pickup__arrow {
  display: block;
  width: 1.6rem;
  height: 1.6rem;
  background: url(../images/toppage/icon_arrow_rbr.svg) no-repeat center center/contain;
  cursor: pointer;
}
.p-top-pickup__prev {
  transform: rotate(180deg);
}
.p-top-pickup .slick-dots {
  bottom: 10px;
}

.p-top-about {
  width: 100%;
}
@media (min-width: 1024px) {
  .p-top-about {
    margin-top: calc(7.2rem * 1.5);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-about {
    margin-top: calc(4rem * 1.5);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-about {
    margin-top: calc(4rem * 1.5);
    margin-bottom: calc(4rem * 1);
  }
}
.p-top-about__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  justify-content: space-between;
  align-items: start;
}
@media (max-width: 1023px) {
  .p-top-about__inner {
    padding-inline: 5.5vw;
  }
}
@media (max-width: 767px) {
  .p-top-about__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-top-about__desc {
  display: grid;
  gap: 2.4rem;
}
@media (max-width: 767px) {
  .p-top-about__desc {
    margin-top: 2.4rem;
  }
}
.p-top-about__text1 {
  color: #4e4c4c;
  font-weight: 400;
  font-size: 1.8rem;
  line-height: 1.6;
}
.p-top-about__text2 {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.6;
}
.p-top-about__image {
  margin-top: 4rem;
}
.p-top-about__image img {
  width: 100%;
}

.p-top-technology {
  width: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, transparent 0%, transparent 15rem, #f1f8fc 15rem, #f1f8fc 100%);
}
@media (min-width: 1024px) {
  .p-top-technology {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-technology {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-technology {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-technology {
    background: linear-gradient(180deg, transparent 0%, transparent 12rem, #f1f8fc 12rem, #f1f8fc 100%);
  }
}
@media (max-width: 767px) {
  .p-top-technology {
    background: linear-gradient(180deg, transparent 0%, transparent 20rem, #f1f8fc 20rem, #f1f8fc 100%);
  }
}
.p-top-technology__contents {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media (max-width: 1023px) {
  .p-top-technology__contents {
    padding-inline: 0;
  }
}
.p-top-technology__image {
  width: 50%;
  margin-inline: auto 0;
  position: absolute;
  top: 0;
  right: 0;
}
.p-top-technology__image img {
  width: 100%;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-technology__image {
    height: 60%;
  }
  .p-top-technology__image img {
    height: 70%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
  }
}
@media (max-width: 767px) {
  .p-top-technology__image {
    width: 90%;
    top: 11rem;
  }
  .p-top-technology__image img {
    height: 22rem;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
  }
}
.p-top-technology__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
}
@media (max-width: 1023px) {
  .p-top-technology__inner {
    padding-inline: 5.5vw;
  }
}
@media (max-width: 1023px) {
  .p-top-technology__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-top-technology__desc {
  display: grid;
  gap: 2.4rem;
  margin-top: 7.2rem;
}
@media (max-width: 767px) {
  .p-top-technology__desc {
    margin-top: 28rem;
  }
}
.p-top-technology__list {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: 4.8rem;
  -moz-column-gap: 4rem;
       column-gap: 4rem;
}
@media (max-width: 1023px) {
  .p-top-technology__list {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-top-technology__list {
    margin-top: calc(7.2rem * 1.25);
    margin-bottom: calc(7.2rem * 1.25);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-technology__list {
    margin-top: calc(4rem * 1.25);
    margin-bottom: calc(4rem * 1.25);
  }
}
@media (max-width: 767px) {
  .p-top-technology__list {
    margin-top: calc(4rem * 1.25);
    margin-bottom: calc(4rem * 1.25);
  }
}
@media (max-width: 767px) {
  .p-top-technology__list {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-technology__list {
    -moz-column-gap: 3rem;
         column-gap: 3rem;
  }
}
.p-top-technology__list-item__detail {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 1.6rem;
  margin-top: 1.6rem;
}
@media (max-width: 767px) {
  .p-top-technology__list-item__detail {
    grid-template-columns: 1fr;
  }
}
.p-top-technology__list-item__detail .__desc {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.6rem;
}
.p-top-technology__list-item__detail .__text {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
  font-feature-settings: "palt";
  text-align: justify;
  text-justify: inter-ideograph;
}
.p-top-technology__list-item__detail .__image img {
  width: 100%;
}
@media (max-width: 767px) {
  .p-top-technology__list-item__detail .__link {
    padding-inline: 10%;
  }
}

.p-top-products {
  width: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, transparent 0%, transparent 15rem, #f1f8fc 15rem, #f1f8fc 100%);
}
@media (min-width: 1024px) {
  .p-top-products {
    margin-top: calc(7.2rem * 1.25);
    margin-bottom: calc(7.2rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-products {
    margin-top: calc(4rem * 1.25);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 767px) {
  .p-top-products {
    margin-top: calc(4rem * 1.25);
    margin-bottom: calc(4rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-products {
    background: linear-gradient(180deg, transparent 0%, transparent 12rem, #f1f8fc 12rem, #f1f8fc 100%);
  }
}
.p-top-products__contents {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media (max-width: 1023px) {
  .p-top-products__contents {
    padding-inline: 0;
  }
}
.p-top-products__image {
  width: 50%;
  max-width: 60rem;
  margin-inline: auto 0;
  position: absolute;
  top: 0;
  right: 0;
}
.p-top-products__image img {
  width: 100%;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-products__image {
    height: 60%;
    text-align: right;
  }
  .p-top-products__image img {
    height: 60%;
    width: 80%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
    margin-inline: auto 0;
  }
}
@media (max-width: 767px) {
  .p-top-products__image {
    width: 90%;
    top: 11rem;
  }
  .p-top-products__image img {
    height: 22rem;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
  }
}
.p-top-products__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
}
@media (max-width: 1023px) {
  .p-top-products__inner {
    padding-inline: 5.5vw;
  }
}
@media (max-width: 1023px) {
  .p-top-products__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-top-products__desc {
  display: grid;
  gap: 2.4rem;
  margin-top: 7.2rem;
}
@media (max-width: 767px) {
  .p-top-products__desc {
    margin-top: 28rem;
  }
}
.p-top-products__link {
  width: 50%;
  min-width: 28rem;
}
@media (max-width: 767px) {
  .p-top-products__link {
    margin-inline: auto;
  }
}
.p-top-products__list {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
}
@media (max-width: 1023px) {
  .p-top-products__list {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-top-products__list {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-products__list {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-products__list {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-products__list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-top-products__list-item__detail {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-top: 1.6rem;
  height: 46rem;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-products__list-item__detail {
    height: 40rem;
  }
}
@media (max-width: 767px) {
  .p-top-products__list-item__detail {
    height: auto;
  }
}
.p-top-products__list-item__detail .__desc {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.6rem;
}
.p-top-products__list-item__detail .__text {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.p-top-products__list-item__detail .__image img {
  width: 100%;
}
.p-top-products__list-item__detail .__link {
  width: 100%;
  max-width: 28rem;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .p-top-products__list-item__detail .__link {
    margin-top: 1.6rem;
  }
}

.p-top-search {
  width: 100%;
  background: #d5eaf7;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .p-top-search {
    padding-top: calc(7.2rem * 0.5);
    padding-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-search {
    padding-top: calc(5.6rem * 0.5);
    padding-bottom: calc(5.6rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-top-search {
    padding-top: calc(4rem * 0.5);
    padding-bottom: calc(4rem * 0.5);
  }
}
.p-top-search__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-top-search__inner {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-top-search__inner {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-search__inner {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-top-search__inner {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
.p-top-search__form {
  display: flex;
  margin-block: 1.6rem;
}
.p-top-search__input[type=text] {
  border: none;
  padding: 1.2em;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.p-top-search button {
  width: 6.8rem;
  height: 6.8rem;
  background: #01386a;
  cursor: pointer;
  border-radius: 0 1rem 1rem 0;
}
.p-top-search button img {
  width: 50%;
}
.p-top-company {
  width: 100%;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .p-top-company {
    margin-top: calc(7.2rem * 1.5);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-company {
    margin-top: calc(4rem * 1.5);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-company {
    margin-top: calc(4rem * 1.5);
    margin-bottom: calc(4rem * 1);
  }
}
.p-top-company__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  gap: 2.4rem;
  grid-template-columns: repeat(2, 1fr);
  justify-content: space-between;
}
@media (max-width: 1023px) {
  .p-top-company__inner {
    padding-inline: 5.5vw;
  }
}
.p-top-company__inner img {
  width: 100%;
}
@media (max-width: 767px) {
  .p-top-company__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}

.p-top-news {
  width: 100%;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .p-top-news {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-news {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-news {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
.p-top-news__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  gap: 2.4rem;
  grid-template-columns: 1fr 2fr;
  justify-content: space-between;
}
@media (max-width: 1023px) {
  .p-top-news__inner {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-news__inner {
    grid-template-columns: 1fr 3fr;
  }
}
@media (max-width: 767px) {
  .p-top-news__inner {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .p-top-news__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
  }
}
.p-top-news__more {
  display: flex;
  align-items: center;
  gap: 0.5em;
}
@media (min-width: 1024px) {
  .p-top-news__more {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-news__more {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 767px) {
  .p-top-news__more {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0);
  }
}
.p-top-news__more:after {
  content: "";
  display: inline-block;
  width: 1.6rem;
  height: 1.6rem;
  background: url(../images/common/icon_arrow_rb.svg) no-repeat center center/contain;
}
.p-top-news__more a {
  font-weight: 700;
  font-size: 1.6rem;
}
.p-top-news__list {
  border-top: 2px solid #dcdbdb;
}
.p-top-news__item {
  border-bottom: 2px solid #dcdbdb;
  display: grid;
  gap: 0.8rem;
  padding-block: 1.6rem;
}
.p-top-news__item .__upper {
  display: flex;
  gap: 1em;
  align-items: center;
}
.p-top-news__item .__date {
  color: #a6a5a5;
  font-weight: 700;
  font-size: 1.2rem;
}
.p-top-news__item .__category {
  font-weight: 700;
  font-size: 1rem;
  width: 6.4rem;
  color: #fff;
  padding-block: 0.3rem;
  text-align: center;
  background: #ddd;
}
.p-top-news__item .__category1 {
  background: #01386a;
}
.p-top-news__item .__category2 {
  background: #74bbe3;
}
.p-top-news__item .__category3 {
  background: #25bc98;
}
.p-top-news__item .__category4 {
  background: #c058ac;
}
.p-top-news__item .__category5 {
  background: #d38000;
}
.p-top-news__item .__category6 {
  background: #333;
}
.p-top-news__item .__link {
  line-height: 1.4;
}

.p-top-special {
  overflow: hidden;
  position: relative;
}
@media (min-width: 1024px) {
  .p-top-special {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-special {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 767px) {
  .p-top-special {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 0);
  }
}
.p-top-special__title {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-top-special__title {
    padding-inline: 5.5vw;
  }
}
.p-top-special__list {
  background: #f8f7f2;
}
@media (min-width: 1024px) {
  .p-top-special__list {
    padding-top: calc(7.2rem * 1);
    padding-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-top-special__list {
    padding-top: calc(5.6rem * 1);
    padding-bottom: calc(5.6rem * 1);
  }
}
@media (max-width: 767px) {
  .p-top-special__list {
    padding-top: calc(4rem * 1);
    padding-bottom: calc(4rem * 1);
  }
}
.p-top-special .__item {
  background: #fff;
  margin-inline: 0.5rem;
}
@media (max-width: 767px) {
  .p-top-special .__item {
    margin-inline: 3.2rem;
  }
}
.p-top-special .__item a {
  text-decoration: none;
}
.p-top-special .__item a img {
  width: 100%;
  aspect-ratio: 360/120;
  -o-object-fit: contain;
     object-fit: contain;
  transition: all 0.3s;
}
.p-top-special .__item a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.p-top-special .__item .__image {
  overflow: hidden;
}
.p-top-special .__item .__image img {
  width: 100%;
  aspect-ratio: 360/120;
  -o-object-fit: contain;
     object-fit: contain;
  transition: all 0.3s;
}
.p-top-special .__item .__desc {
  padding: 1.6rem;
  display: grid;
  gap: 0.8em;
}
.p-top-special .__item .__title {
  font-weight: 700;
  font-size: 1.8rem;
  color: #4e4c4c;
}
.p-top-special__arrow {
  z-index: 10;
  width: 2.8rem;
  height: 8rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  background: #01386a url(../images/common/icon_arrow_rw.svg) no-repeat center center/40%;
  border-radius: 0.5rem 0 0 0.5rem;
}
@media (max-width: 767px) {
  .p-top-special__arrow {
    height: 10.4rem;
  }
}
.p-top-special__prev {
  left: 0;
  transform: translateY(-50%) rotate(180deg);
}
.p-top-special__next {
  right: 0;
  transform: translateY(-50%);
}
.p-top-special .slick-dots {
  bottom: 10px;
}

.p-top-video {
  background: #01386a;
  width: 100%;
  height: 100vh;
  display: flex;
  top: 0;
  left: 0;
  justify-content: center;
  align-items: center;
  position: fixed;
  z-index: 1000;
}
@media (max-width: 1023px) {
  .p-top-video {
    height: 100svh;
  }
}
.p-top-video.a-hide {
  display: none;
}
.p-top-video__player {
  width: 100%;
  aspect-ratio: 1920/1080;
}
@media (max-width: 1023px) {
  .p-top-video__player {
    aspect-ratio: 1080/1920;
    width: auto;
    max-width: 100vw;
    height: 100svh;
    max-height: 100svh;
  }
}
.p-top-video__skip {
  width: 96%;
  aspect-ratio: 1920/1080;
  display: flex;
  position: absolute;
  bottom: 1.6rem;
  right: 1.6rem;
  z-index: 1010;
  justify-content: flex-end;
  align-items: flex-end;
}
@media (max-width: 1023px) {
  .p-top-video__skip {
    aspect-ratio: 1080/1920;
    bottom: 0.8rem;
  }
}
.p-top-video__skip-btn {
  color: #fff;
  background: #01386a;
  font-weight: 700;
  font-size: 2rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  padding: 0.8rem 1.6rem;
  cursor: pointer;
  border: 1px solid #fff;
}
@media (max-width: 767px) {
  .p-top-video__skip-btn {
    font-weight: 700;
    font-size: 1.6rem;
    font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  }
}

.p-tech__3columns {
  display: grid;
  gap: 2.4rem;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767px) {
  .p-tech__3columns {
    grid-template-columns: 1fr;
  }
}

.p-tech-main {
  background: #f1f8fc;
  margin-top: 11.4rem;
}
@media (max-width: 1023px) {
  .p-tech-main {
    margin-top: 7.2rem;
  }
}

.p-tech-contents {
  overflow: hidden;
}
@media (min-width: 1024px) {
  .p-tech-contents {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-tech-contents {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
.p-tech-contents.__bg_w {
  background: #fff;
}
@media (min-width: 1024px) {
  .p-tech-contents.__mb0 {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents.__mb0 {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 767px) {
  .p-tech-contents.__mb0 {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 0);
  }
}
@media (min-width: 1024px) {
  .p-tech-contents.__m0 {
    margin-top: calc(7.2rem * 0);
    margin-bottom: calc(7.2rem * 0);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents.__m0 {
    margin-top: calc(4rem * 0);
    margin-bottom: calc(4rem * 0);
  }
}
@media (max-width: 767px) {
  .p-tech-contents.__m0 {
    margin-top: calc(4rem * 0);
    margin-bottom: calc(4rem * 0);
  }
}
.p-tech-contents__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-tech-contents__inner {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-tech-contents__inner.__mblock {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents__inner.__mblock {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-tech-contents__inner.__mblock {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (min-width: 1024px) {
  .p-tech-contents__inner.__halfblock {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents__inner.__halfblock {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-tech-contents__inner.__halfblock {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
.p-tech-contents__inner_full {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-tech-contents__inner_full {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-tech-contents__inner_full.__mblock {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents__inner_full.__mblock {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-tech-contents__inner_full.__mblock {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (min-width: 1024px) {
  .p-tech-contents__inner_full.__halfblock {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents__inner_full.__halfblock {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-tech-contents__inner_full.__halfblock {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
.p-tech-contents__halfbg {
  background: linear-gradient(180deg, #f1f8fc 0, #f1f8fc 14rem, transparent 14rem, transparent 100%);
  overflow: hidden;
}
.p-tech-contents__title {
  font-weight: 700;
  font-size: 2.2rem;
  color: #01386a;
  text-align: center;
  line-height: 1.6;
  font-feature-settings: "palt";
}
@media (min-width: 1024px) {
  .p-tech-contents__title {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents__title {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-tech-contents__title {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
.p-tech-contents__catch {
  width: 100%;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.6;
}
@media (max-width: 1023px) {
  .p-tech-contents__catch {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-tech-contents__catch {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-contents__catch {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-tech-contents__catch {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 1);
  }
}
@media (max-width: 767px) {
  .p-tech-contents__catch {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 767px) and (max-width: 1023px) {
  .p-tech-contents__catch {
    padding-inline: 0;
  }
}

.p-tech-interview {
  background: #fff;
  display: grid;
  grid-template-columns: 1.5fr auto;
  gap: 2.4rem;
}
@media (max-width: 767px) {
  .p-tech-interview {
    grid-template-columns: 1fr;
    margin-inline: 3vw;
    width: calc(100% - 6vw);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-interview {
    grid-template-columns: 1.5fr 1fr;
    margin-inline: 3vw;
    width: calc(100% - 6vw);
  }
}
.p-tech-interview__image {
  display: flex;
  align-items: end;
}
@media (max-width: 767px) {
  .p-tech-interview__image {
    justify-content: center;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-interview__image img {
    width: 100%;
  }
}
.p-tech-interview__text {
  padding-block: 4rem;
  padding-inline: 4rem 0;
  display: grid;
  align-content: start;
  gap: 2.4rem;
}
@media (max-width: 1023px) {
  .p-tech-interview__text {
    padding: 0;
    padding-block: 4rem 0;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-interview__text {
    padding-block: 4rem;
  }
}
.p-tech-interview__text .__title {
  font-weight: 700;
  font-size: 1.8rem;
  color: #4e4c4c;
  line-height: 1.6;
}
.p-tech-interview__text .__text {
  line-height: 2;
}

.p-tech-indexlink {
  overflow: hidden;
  background: #f8f7f2;
}
@media (min-width: 1024px) {
  .p-tech-indexlink {
    padding-top: calc(7.2rem * 1);
    padding-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-indexlink {
    padding-top: calc(5.6rem * 1);
    padding-bottom: calc(5.6rem * 1);
  }
}
@media (max-width: 767px) {
  .p-tech-indexlink {
    padding-top: calc(4rem * 1);
    padding-bottom: calc(4rem * 1);
  }
}
.p-tech-indexlink__inner {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1023px) {
  .p-tech-indexlink__inner {
    padding-inline: 5.5vw;
  }
}
.p-tech-indexlink__list {
  margin-top: 2.4rem;
  display: grid;
  gap: 1.6rem;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 767px) {
  .p-tech-indexlink__list {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-indexlink__list {
    display: flex;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-tech-indexlink__list .__item {
    overflow: hidden;
  }
}
.p-tech-indexlink__list .__item a .__image {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 226/151;
}
.p-tech-indexlink__list .__item a .__image img {
  transition: all 0.3s;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-tech-indexlink__list .__item a:hover img {
  transform: scale(1.1);
}
.p-tech-indexlink__list .__item a .__text {
  margin-top: 0.8rem;
  line-height: 1.4;
}
.p-tech-indexlink__list .__item a .__text:after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-block: -0.1em;
  margin-left: 0.2em;
  background: url(../images/common/icon_arrow_rb.svg) no-repeat center center/contain;
}

.p-header .p-hidden-pc {
  visibility: hidden;
  pointer-events: none;
}
@media (max-width: 1023px) {
  .p-header .p-hidden-sp {
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
  }
}
@media (min-width: 1024px) {
  .p-header {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    z-index: 100;
    height: 6.8rem;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 0 8px rgba(78, 76, 76, 0.5);
    width: 98%;
  }
}
@media (min-width: 1024px) and (max-width: 1023px) {
  .p-header {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
  }
}
@media (max-width: 1023px) {
  .p-header {
    width: 100%;
    height: 4.8rem;
  }
}
@media (max-width: 1023px) {
  .p-header__inner {
    margin-top: 2rem;
  }
  .p-header__innerwrap {
    margin-inline: auto;
    width: 86%;
    height: 4.8rem;
    position: relative;
    z-index: 100;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 0 8px rgba(78, 76, 76, 0.5);
    display: flex;
    justify-content: space-between;
    z-index: 110;
    padding-inline: 1.6rem;
  }
}
.p-header__logo {
  width: 100%;
  max-width: 28.4rem;
  height: 100%;
  display: flex;
  align-items: center;
  margin-left: 2.4rem;
  z-index: 110;
}
@media (max-width: 767px) {
  .p-header__logo {
    max-width: 18rem;
    margin-left: 0rem;
  }
}
.p-header__logo img {
  width: 100%;
  max-width: 23.4rem;
  height: 3rem;
}
@media (max-width: 1023px) {
  .p-header__logo img {
    height: 2rem;
  }
}

@media (min-width: 1024px) {
  .p-header-nav {
    height: 100%;
    background: #fff;
    border-radius: 0 1rem 1rem 0;
    position: static;
  }
  .p-header-nav__wrap {
    height: 100%;
    transition: all 0.3s;
  }
  .p-header-nav__list {
    display: flex;
    justify-content: flex-end;
    gap: 1.3em;
    height: 100%;
    margin-right: 9.4rem;
  }
  .p-header-nav__list > .__item {
    display: flex;
    align-items: center;
    padding-inline: 0.5em;
    cursor: pointer;
  }
  .p-header-nav__list > .__item:hover .p-header-megamenu {
    -webkit-clip-path: inset(0 -50vw);
    clip-path: inset(0 -50vw);
    visibility: visible;
  }
  .p-header-nav__list .__link {
    font-weight: 700;
    font-size: 1.4rem;
    color: #4e4c4c;
  }
  .p-header-nav__list > .__item:has(.__external) {
    display: flex;
  }
  .p-header-nav__list > .__item:has(.__external):after {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background: url(../images/common/icon_external.svg) no-repeat center center/90%;
    margin-left: 0.2em;
  }
}
@media (max-width: 1023px) {
  .p-header-nav__wrap {
    height: 100vh;
    height: 100dvh;
    transition: all 0.3s;
    position: fixed;
    top: 0;
    left: -1px;
    width: calc(100vw + 1px);
    margin: 0;
    padding: 0;
    padding-top: 12rem;
    z-index: 100;
    background: #f8f7f2;
  }
  .p-header-nav-sp {
    height: calc(100vh - 12rem);
    border-radius: 0;
    overflow-y: scroll;
  }
  .p-header-nav-sp .p-header-nav__list {
    margin-right: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    height: -moz-fit-content;
    height: fit-content;
    padding: 1.5em;
  }
  .p-header-nav-sp .p-header-nav__list > .__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding-block: 1em;
    border-bottom: 2px solid #ededed;
  }
  .p-header-nav-sp .p-header-nav__list > .__item:first-of-type {
    border-top: 2px solid #ededed;
  }
  .p-header-nav-sp .p-header-nav__list > .__item:has(:not(.__external, .__disabled)):after {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    background: url(../images/common/icon_arrow_rb.svg) no-repeat center center/contain;
    transition: transform 0.3s;
  }
  .p-header-nav-sp .p-header-nav__list > .__item.is-slide:after {
    transform: rotate(-90deg) !important;
  }
  .p-header-nav-sp .p-header-nav__list > .__item:has(.__external) {
    display: flex;
  }
  .p-header-nav-sp .p-header-nav__list > .__item:has(.__external):after {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background: url(../images/common/icon_external.svg) no-repeat center center/90%;
    margin-left: 0.2em;
  }
  .p-header-nav-sp .p-header-nav__list > .__item:has(.p-header-megamenu):after {
    transform: rotate(90deg);
  }
  .p-header-nav-sp .p-header-nav__list > .__item:hover .p-header-megamenu {
    -webkit-clip-path: inset(0 -50vw);
    clip-path: inset(0 -50vw);
    visibility: visible;
  }
  .p-header-nav-sp .p-header-nav__list .__link {
    font-weight: 700;
    font-size: 1.6rem;
    color: #4e4c4c;
  }
}
@media (min-width: 1024px) {
  .p-header-megamenu {
    position: absolute;
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    background: #f8f7f2;
    box-shadow: 0px 8px 8px rgba(0, 0, 0, 0.1);
    padding: 5rem 5rem 4rem;
    border-radius: 0 0 1rem 1rem;
    display: grid;
    grid-template-columns: 20rem auto;
    top: 5.8rem;
    left: 0;
    -webkit-clip-path: inset(0 -50vw 100%);
    clip-path: inset(0 -50vw 100%);
    transition: all 0.4s;
    visibility: hidden;
  }
}
@media (min-width: 1024px) and (max-width: 1023px) {
  .p-header-megamenu {
    padding-inline: 5.5vw;
  }
}
@media (min-width: 1024px) {
  .p-header-megamenu:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1rem;
    background: #fff;
    border-radius: 0 0 1rem 1rem;
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1);
  }
}
@media (max-width: 1023px) {
  .p-header-megamenu {
    order: 2;
    width: 100%;
    display: none;
  }
  .p-header-megamenu .p-header-metamenu__contents-title {
    display: none;
  }
}
.p-header-megamenu__list {
  display: grid;
  gap: 1.6rem;
  grid-template-columns: repeat(3, 1fr);
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-header-megamenu__list {
    grid-template-columns: repeat(2, 1fr);
    margin-block: 2.4rem 1.6rem;
  }
}
@media (max-width: 767px) {
  .p-header-megamenu__list {
    grid-template-columns: 1fr;
    margin-block: 2.4rem 1.6rem;
  }
}
.p-header-megamenu__list > .__item {
  background: #fff;
}
.p-header-megamenu__list > .__item a {
  display: flex;
  gap: 1.6rem;
  align-items: center;
  width: 100%;
  max-width: 28rem;
}
.p-header-megamenu__list > .__item a:hover {
  text-decoration: none;
}
.p-header-megamenu__list > .__item .__title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.4rem;
}
.p-header-megamenu__list > .__item .__title .__en {
  font-weight: 700;
  font-size: 1rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #4e4c4c;
}
.p-header-megamenu__list > .__item .__title .__ja {
  font-weight: 700;
  font-size: 1.4rem;
  color: #01386a;
}

.p-header-open {
  display: none;
}
@media (max-width: 1023px) {
  .p-header-open {
    display: block;
    height: 50px;
    width: 25px;
    padding-inline: 1rem;
    cursor: pointer;
    position: relative;
    z-index: 110;
  }
  .p-header-open span {
    display: block;
    margin: 0;
    border: none;
    width: 25px;
    height: 2px;
    background: #01386a;
    transform-origin: 0% 50%;
    position: absolute;
    top: 15px;
    left: 0;
    transition: 0.3s;
  }
  .p-header-open span:nth-of-type(2) {
    top: 24px;
  }
  .p-header-open span:nth-of-type(3) {
    top: 33px;
  }
  .p-header-open.is-open span {
    left: 0;
  }
  .p-header-open.is-open span:nth-of-type(1) {
    transform: rotate(45deg);
    width: 26px;
  }
  .p-header-open.is-open span:nth-of-type(2) {
    opacity: 0;
  }
  .p-header-open.is-open span:nth-of-type(3) {
    top: 33px;
    transform: rotate(-45deg);
    width: 26px;
  }
}

.p-header-search {
  width: 6.8rem;
  height: 6.8rem;
  background: #01386a url(../images/common/icon_search.svg) no-repeat center center/50%;
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  border-radius: 0 1rem 1rem 0;
}
.p-header-search__console {
  z-index: -1;
  border-radius: 0 1rem 1rem 0;
  width: 77rem;
  height: 6.8rem;
  position: absolute;
  background: #74bbe3;
  background: #fff;
  color: #333;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  opacity: 0;
  transition: all 0.3s;
}
.p-header-search__console.is-display {
  z-index: 150;
  opacity: 1;
}
@media (max-width: 1023px) {
  .p-header-search__console {
    position: relative;
    background: #fff;
    top: auto;
    right: auto;
    max-width: 90%;
    height: 5rem;
    padding: 1rem 0 1rem 1.5em;
    border-radius: 1rem;
    margin-inline: auto;
    margin-block: 1.6rem;
    z-index: 150;
    opacity: 1;
  }
}
.p-header-search__console form {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.p-header-search__console input[type=text] {
  border: none;
  background: transparent;
  color: #333;
  width: 80%;
}
.p-header-search__console button {
  width: 6.8rem;
  height: 6.8rem;
  background: #74bbe3;
  cursor: pointer;
  border-radius: 0 1rem 1rem 0;
}
.p-header-search__console button img {
  width: 50%;
}
@media (max-width: 1023px) {
  .p-header-search__console button {
    width: 5rem;
    height: 5rem;
    background: #01386a;
  }
}

.p-footer {
  background: #01386a;
  color: #fff;
}
@media (max-width: 767px) {
  .p-footer {
    padding-inline: 5vw;
  }
}
@media (min-width: 1024px) {
  .p-footer {
    padding-inline: 1.6rem;
  }
}
.p-footer__inner {
  border-bottom: 1px solid #dcdbdb;
}
.p-footer__info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .p-footer__info {
    gap: 1.6rem;
  }
}
.p-footer__logo img {
  width: 100%;
  max-width: 23.4rem;
}
@media (max-width: 767px) {
  .p-footer__logo {
    text-align: center;
  }
}
.p-footer__lower {
  display: flex;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .p-footer__lower {
    flex-direction: column;
    align-items: center;
    gap: 1.6rem;
  }
}
.p-footer__copyright {
  font-weight: 400;
  font-size: 1.2rem;
}
.p-footer__privacylink {
  font-weight: 400;
  font-size: 1.2rem;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 1em;
  line-height: 1.4;
}
.p-footer__privacylink:after {
  content: "";
  display: block;
  width: 0.8rem;
  aspect-ratio: 0.5/1;
  background: url(../images/common/icon_arrow_rw.svg) no-repeat center center/contain;
}

.p-footer-address {
  font-weight: 400;
  font-size: 1.2rem;
  line-height: 1.8;
  margin-top: 0.5em;
}

.p-footer-nav {
  width: 100%;
  max-width: 50rem;
  margin-inline: auto 0;
}
.p-footer-nav__list {
  display: flex;
  flex-direction: column;
  flex-flow: column wrap;
  height: 26rem;
  gap: 1.6rem;
}
@media (max-width: 767px) {
  .p-footer-nav__list {
    height: auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "item1 item4" "item2 item4" "item3 item4" "item3 item4" "item3 item5" "item3 item5" "item3 item5" "item3 item5" "item3 item6" "item3 item7";
  }
  .p-footer-nav__list > .__item:nth-of-type(1) {
    grid-area: item1;
  }
  .p-footer-nav__list > .__item:nth-of-type(2) {
    grid-area: item2;
  }
  .p-footer-nav__list > .__item:nth-of-type(3) {
    grid-area: item3;
  }
  .p-footer-nav__list > .__item:nth-of-type(4) {
    grid-area: item4;
  }
  .p-footer-nav__list > .__item:nth-of-type(5) {
    grid-area: item5;
  }
  .p-footer-nav__list > .__item:nth-of-type(6) {
    grid-area: item6;
  }
  .p-footer-nav__list > .__item:nth-of-type(7) {
    grid-area: item7;
  }
}
.p-footer-nav__list > .__item {
  width: -moz-fit-content;
  width: fit-content;
}
.p-footer-nav__list > .__item > a {
  font-weight: 700;
  font-size: 1.4rem;
  color: #fff;
}
.p-footer-nav__list .__item-title {
  font-weight: 700;
  font-size: 1.4rem;
  color: #fff;
}
.p-footer-nav__list .__item-link-external {
  display: flex;
  gap: 0.3em;
}
.p-footer-nav__list .__item-link-external:after {
  content: "";
  background: url(../images/common/icon_external_w.svg) no-repeat center center/contain;
  display: block;
  width: 1em;
  height: 1em;
}
.p-footer-nav__innerlist {
  margin-top: 0.8rem;
  display: grid;
  gap: 0.8rem;
}
.p-footer-nav__innerlist > .__item {
  display: flex;
  align-items: center;
  gap: 0.4em;
}
.p-footer-nav__innerlist > .__item:before {
  margin-top: 0.1em;
  content: "";
  display: block;
  width: 0.6rem;
  height: 1em;
  background: url(../images/common/icon_arrow_rw.svg) no-repeat center center/contain;
}
.p-footer-nav__innerlist > .__item a {
  font-weight: 400;
  font-size: 1.2rem;
  color: #fff;
  line-height: 1.4;
}

.p-pagetop {
  cursor: pointer;
  position: fixed;
  right: 10px;
  z-index: 95;
  opacity: 0;
  transform: translateY(100px);
}
.p-pagetop > span {
  display: grid;
  place-content: center;
  text-align: center;
  align-items: center;
  width: 7rem;
  height: 7rem;
  transition: all 0.3s;
  background: rgba(0, 176, 179, 0.6235294118);
  color: #fff;
  font-size: 1.2rem;
  border-radius: 50%;
}
.p-pagetop > span:hover {
  opacity: 0.7;
}
.p-pagetop.upMove {
  animation: UpAnime 0.5s forwards;
}
.p-pagetop.downMove {
  animation: DownAnime 0.5s forwards;
}

@keyframes UpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes DownAnime {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(100px);
  }
}
.p-follow {
  background: #74bbe3;
  border: 2px solid #74bbe3;
  border-radius: 0.8rem 0 0 0.8rem;
  width: 5.3rem;
  height: 15rem;
  position: fixed;
  right: -10px;
  bottom: 60vh;
  z-index: 101;
  overflow: hidden;
  transition: all 0.3s;
}
@media (max-width: 767px) {
  .p-follow {
    display: none !important;
  }
}
.p-follow:hover {
  background: #fff;
  right: -2px;
}
.p-follow.is-hide {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
}
.p-follow__inner a {
  position: relative;
  display: flex;
  width: 80%;
  height: 15rem;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  color: #fff;
  font-weight: 700;
  font-size: 1.6rem;
  transition: all 0.3s;
}
.p-follow__inner a:hover {
  width: 100%;
  text-decoration: none;
  color: #74bbe3;
}

.p-follow-sp {
  background: #74bbe3;
  border: 2px solid #74bbe3;
  width: 100%;
  height: 6rem;
  padding-inline: 0.8rem;
  position: fixed;
  right: 0px;
  bottom: 0;
  z-index: 90;
  overflow: hidden;
  transition: all 0.3s;
}
@media (min-width: 768px) {
  .p-follow-sp {
    display: none !important;
  }
}
.p-follow-sp img {
  width: 100%;
}
.p-follow-sp__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
  align-items: center;
  height: 100%;
}
.p-follow-sp__contact a {
  display: block;
  padding: 0.8rem;
}
.p-follow-sp__tels .__upper {
  border-bottom: 2px solid #fff;
  padding: 0 0 0.4rem 0;
}
.p-follow-sp__tels .__lower {
  padding: 0.2rem 0 0 0;
}
.p-follow-sp__tels .__tel {
  padding: 0.2rem 0;
  display: block;
}
.p-follow-sp.is-hide {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
}

.c-titles {
  display: grid;
  gap: 1.6rem;
}
.c-titles .__en {
  font-weight: 700;
  font-size: 6.8rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #01386a;
}
.c-titles .__ja {
  font-weight: 700;
  font-size: 2.2rem;
  line-height: 1.2;
  color: #01386a;
}
@media (max-width: 1023px) {
  .c-titles {
    gap: 0.8rem;
  }
  .c-titles .__en {
    font-weight: 700;
    font-size: 4rem;
    font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  }
  .c-titles .__ja {
    font-weight: 700;
    font-size: 1.8rem;
  }
}

.c-titles__min .__en {
  font-weight: 700;
  font-size: 3.6rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #01386a;
}

.c-btns {
  display: block;
  border-radius: 0.4rem;
  background: #01386a;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  text-align: center;
  padding: 1.2em 1em;
}
@media (max-width: 767px) {
  .c-btns {
    padding-block: 1.3em;
  }
}

.c-contents-titles {
  display: grid;
  gap: 0.4rem;
}
.c-contents-titles .__en {
  font-weight: 700;
  font-size: 1.2rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #4e4c4c;
}
.c-contents-titles .__ja {
  font-weight: 700;
  font-size: 2rem;
  color: #01386a;
}

.c-menu-titles {
  display: grid;
  gap: 0.8rem;
  height: -moz-fit-content;
  height: fit-content;
}
.c-menu-titles .__en {
  font-weight: 700;
  font-size: 2.4rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #01386a;
}
.c-menu-titles .__ja {
  font-weight: 700;
  font-size: 1.4rem;
  color: #4e4c4c;
}

.c-titles__min .__en {
  font-weight: 700;
  font-size: 3.6rem;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, "Arimo", sans-serif;
  color: #01386a;
}

.c-fixed {
  display: fixed;
  overflow: hidden;
}

.c-disabled {
  opacity: 0.5;
  pointer-events: none;
}

@media (min-width: 1024px) {
  .h-pc_hide,
  .h-pc_tab_hide {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .h-tab_hide,
  .h-pc_tab_hide,
  .h-sp_tab_hide {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .h-sp_hide,
  .h-sp_tab_hide {
    display: none !important;
  }
}
.h-hide {
  display: none;
}

.h-inlineblock {
  display: inline-block;
}

.hp_mb0 {
  margin-bottom: 0rem !important;
}
@media (max-width: 767px) {
  .hp_mb0 {
    margin-bottom: 0rem !important;
  }
}

.hp_pb0 {
  padding-bottom: 0rem !important;
}
@media (max-width: 767px) {
  .hp_pb0 {
    padding-bottom: 0rem !important;
  }
}

.hp_mb10 {
  margin-bottom: 1.6rem !important;
}
@media (max-width: 767px) {
  .hp_mb10 {
    margin-bottom: 0.8rem !important;
  }
}

.hp_pb10 {
  padding-bottom: 1.6rem !important;
}
@media (max-width: 767px) {
  .hp_pb10 {
    padding-bottom: 0.8rem !important;
  }
}

.hp_mb20 {
  margin-bottom: 3.2rem !important;
}
@media (max-width: 767px) {
  .hp_mb20 {
    margin-bottom: 1.6rem !important;
  }
}

.hp_pb20 {
  padding-bottom: 3.2rem !important;
}
@media (max-width: 767px) {
  .hp_pb20 {
    padding-bottom: 1.6rem !important;
  }
}

.hp_mb30 {
  margin-bottom: 4.8rem !important;
}
@media (max-width: 767px) {
  .hp_mb30 {
    margin-bottom: 2.4rem !important;
  }
}

.hp_pb30 {
  padding-bottom: 4.8rem !important;
}
@media (max-width: 767px) {
  .hp_pb30 {
    padding-bottom: 2.4rem !important;
  }
}

.hp_mb40 {
  margin-bottom: 6.4rem !important;
}
@media (max-width: 767px) {
  .hp_mb40 {
    margin-bottom: 3.2rem !important;
  }
}

.hp_pb40 {
  padding-bottom: 6.4rem !important;
}
@media (max-width: 767px) {
  .hp_pb40 {
    padding-bottom: 3.2rem !important;
  }
}

.hp_mb50 {
  margin-bottom: 8rem !important;
}
@media (max-width: 767px) {
  .hp_mb50 {
    margin-bottom: 4rem !important;
  }
}

.hp_pb50 {
  padding-bottom: 8rem !important;
}
@media (max-width: 767px) {
  .hp_pb50 {
    padding-bottom: 4rem !important;
  }
}

.hp_mb60 {
  margin-bottom: 9.6rem !important;
}
@media (max-width: 767px) {
  .hp_mb60 {
    margin-bottom: 4.8rem !important;
  }
}

.hp_pb60 {
  padding-bottom: 9.6rem !important;
}
@media (max-width: 767px) {
  .hp_pb60 {
    padding-bottom: 4.8rem !important;
  }
}

.hp_mb70 {
  margin-bottom: 11.2rem !important;
}
@media (max-width: 767px) {
  .hp_mb70 {
    margin-bottom: 5.6rem !important;
  }
}

.hp_pb70 {
  padding-bottom: 11.2rem !important;
}
@media (max-width: 767px) {
  .hp_pb70 {
    padding-bottom: 5.6rem !important;
  }
}

.hp_mb80 {
  margin-bottom: 12.8rem !important;
}
@media (max-width: 767px) {
  .hp_mb80 {
    margin-bottom: 6.4rem !important;
  }
}

.hp_pb80 {
  padding-bottom: 12.8rem !important;
}
@media (max-width: 767px) {
  .hp_pb80 {
    padding-bottom: 6.4rem !important;
  }
}

.hp_mb90 {
  margin-bottom: 14.4rem !important;
}
@media (max-width: 767px) {
  .hp_mb90 {
    margin-bottom: 7.2rem !important;
  }
}

.hp_pb90 {
  padding-bottom: 14.4rem !important;
}
@media (max-width: 767px) {
  .hp_pb90 {
    padding-bottom: 7.2rem !important;
  }
}

.hp_mb100 {
  margin-bottom: 16rem !important;
}
@media (max-width: 767px) {
  .hp_mb100 {
    margin-bottom: 8rem !important;
  }
}

.hp_pb100 {
  padding-bottom: 16rem !important;
}
@media (max-width: 767px) {
  .hp_pb100 {
    padding-bottom: 8rem !important;
  }
}

.hp_mt0 {
  margin-top: 0rem !important;
}

.hp_mt10 {
  margin-top: 1.6rem !important;
}

.hp_mt20 {
  margin-top: 3.2rem !important;
}

.hp_mt30 {
  margin-top: 4.8rem !important;
}

.hp_mt40 {
  margin-top: 6.4rem !important;
}

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

.hp_mt60 {
  margin-top: 9.6rem !important;
}

.hp_mt70 {
  margin-top: 11.2rem !important;
}

.hp_mt80 {
  margin-top: 12.8rem !important;
}

.hp_mt90 {
  margin-top: 14.4rem !important;
}

.hp_mt100 {
  margin-top: 16rem !important;
}

.hp_bold {
  font-weight: 700;
}

.hp_white {
  color: #fff;
}

.hp_black {
  color: #000;
}

.hp_tac {
  text-align: center;
}

@media (max-width: 767px) {
  .hp_sp_tal {
    text-align: left;
  }
}

.hp_tal {
  text-align: left;
}

@media (max-width: 767px) {
  .hp_sp_padding {
    padding-right: 5vw;
    padding-left: 5vw;
  }
}

.hp_bg_white {
  background: #fff;
}
.hp_bg_white .__note {
  color: #000;
}

.hp_bg_radius {
  border-radius: 1.4rem;
}

.hp_contents_padding {
  padding: 2.4rem;
}

.hp_image_org_width img {
  width: auto !important;
}

.hp_fontL {
  font-size: 2rem;
}
@media (max-width: 767px) {
  .hp_fontL {
    font-size: 1.8rem;
  }
}

.hp_fontS {
  font-size: 80%;
}

.hp_notice {
  font-size: 80%;
}

.h-fixed {
  position: fixed;
  overflow: hidden;
}