@charset "UTF-8";
:root {
  --white: #FFFFFF;
  --black: #323232;
  --blue: #2EA7E0;
  --gray: #F2F2F2;
  --body: clamp(1rem, 0.943rem + 0.284vw, 1.125rem);
  --display: clamp(1.5rem, 1.045rem + 2.273vw, 2.5rem);
  --heading-28: clamp(1.375rem, 1.158rem + 0.924vw, 1.75rem);
  --heading-24: clamp(1.25rem, 1.106rem + 0.616vw, 1.5rem);
  --heading-22: clamp(1.125rem, 0.981rem + 0.616vw, 1.375rem);
  --text-19: clamp(1.0625rem, 1.006rem + 0.284vw, 1.1875rem);
  --text-18: clamp(1rem, 0.943rem + 0.284vw, 1.125rem);
  --text-17: clamp(0.9375rem, 0.881rem + 0.284vw, 1.0625rem);
  --text-16: clamp(0.875rem, 0.818rem + 0.284vw, 1rem);
  --text-15: clamp(0.75rem, 0.665rem + 0.426vw, 0.9375rem);
}

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

* {
  margin: 0;
  min-height: 0vw;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

input,
button,
textarea,
select {
  font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

p strong:first-of-type {
  display: block;
  font-weight: bold;
}

a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  opacity: 0.75;
}

ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
  padding: 0;
  color: var(--black);
  background-color: var(--white);
  font-family: "メイリオ", "Meiryo", "ＭＳ ゴシック", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
  font-size: var(--body);
  line-height: 1.5;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

.heading {
  font-size: var(--heading-24);
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.heading--align_center {
  text-align: center;
}
.heading--type_bar {
  border-bottom: 2px solid var(--gray);
}
.heading--color_blue {
  color: var(--blue);
}
.heading--size_small {
  margin-bottom: 1em;
  padding-bottom: 0.2em;
  font-size: var(--heading-22);
  line-height: 1.4;
}
.heading--size_large {
  margin-bottom: 0.8em;
  padding-bottom: 0.12em;
  font-size: var(--heading-28);
}
.heading--with-icon {
  display: flex;
  justify-content: space-between;
}
.heading + * {
  margin-top: 20px;
}

.link-button--align_center {
  text-align: center;
}
.link-button__link {
  display: inline-flex;
  align-items: center;
  font-size: var(--text-15);
  letter-spacing: 0.1em;
  color: var(--blue);
  position: relative;
}
.link-button--type_back .link-button__link::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 0.5em;
  margin-right: 1em;
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  transform: scale(-1, 1);
}
.link-button--type_next .link-button__link::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 0.5em;
  margin-left: 1em;
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.link-card {
  display: block;
  border: 1px solid var(--blue);
  position: relative;
  overflow: hidden;
}
.link-card + .link-card {
  margin-top: 45px;
}
.link-card__text {
  padding: 0.8em 1em 0.5em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--text-18);
  font-weight: bold;
  letter-spacing: 0.1em;
  color: var(--blue);
  position: relative;
}
.link-card__text::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 0.5em;
  margin-left: 1em;
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.tel {
  font-weight: bold;
  color: var(--blue);
}

.br-pc {
  display: none;
}
@media (min-width: 769px) {
  .br-pc {
    display: block;
  }
}

.text15 {
  font-size: var(--text-15);
  line-height: 1.75;
  letter-spacing: 0.075em;
}

.text16 {
  font-size: var(--text-16);
  line-height: 1.75;
  letter-spacing: 0.075em;
}

.text17 {
  font-size: var(--text-17);
  line-height: 1.75;
  letter-spacing: 0.075em;
}

.text18 {
  font-size: var(--text-18);
  line-height: 1.75;
  letter-spacing: 0.075em;
}

.strong-text {
  margin-bottom: 0.5em;
  font-size: clamp(1.125rem, 0.955rem + 0.852vw, 1.5rem);
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.1em;
}
.strong-text--center {
  text-align: center;
}

.icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  position: relative;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.icon::before {
  content: "";
  padding-top: 100%;
}
.icon--haken {
  background-image: url("../../features/assets/images/icon-haken.svg");
}
.icon--ukeoi {
  background-image: url("../../features/assets/images/icon-ukeoi.svg");
}
.icon--shokai {
  background-image: url("../../features/assets/images/icon-shokai.svg");
}
.icon--people {
  background-image: url("../../features/training/assets/images/icon-people.svg");
}
.icon--seedling {
  background-image: url("../../features/training/assets/images/icon-seedling.svg");
}
.icon--welding {
  background-image: url("../../features/training/assets/images/icon-welding.svg");
}
.icon--team {
  background-image: url("../../features/training/assets/images/icon-team.svg");
}
.icon--aword {
  background-image: url("../../features/training/assets/images/icon-aword.svg");
}

.hero {
  min-height: 180px;
  background-color: rgba(136, 136, 136, 0.6666666667);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  color: var(--white);
  display: flex;
  position: relative;
}
@media (min-width: 769px) {
  .hero {
    min-height: 330px;
  }
}
.hero::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(132, 153, 168, 0.38);
}
.hero--bg_slide {
  height: 200px;
  min-height: 200px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 769px) {
  .hero--bg_slide {
    height: 530px;
    padding-top: 180px;
    display: block;
  }
}
.hero--bg_slide::after {
  content: "";
  display: block;
  width: 100%;
  height: min(70px, 3.6458333333vw);
  background-image: url("../images/fv-mask.svg");
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: center bottom;
  position: absolute;
  bottom: -1px;
  z-index: 2;
}
@media (min-width: 769px) {
  .hero--bg_slide::after {
    background-size: auto 100%;
  }
}
.hero--bg_none {
  background-color: var(--white);
  border-bottom: 2px solid var(--blue);
  color: var(--blue);
}
.hero--bg_none::before {
  background-color: transparent;
}
.hero__contents {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: center;
  position: relative;
  z-index: 2;
}
@media (min-width: 769px) {
  .hero__contents {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    text-align: left;
  }
}
.hero__catchcopy {
  font-size: var(--display);
  font-weight: normal;
  letter-spacing: 0.2em;
}
.hero__slide {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.hero__slide .mainvisual {
  width: 100%;
  height: 100%;
}
.hero__slide .mainvisual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kirakira {
  width: 100%;
  height: 10px;
  position: relative;
  overflow: hidden;
}
.kirakira::before, .kirakira::after {
  content: "";
  display: block;
  width: 200%;
  height: 200%;
  background-position: 0 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.kirakira::before {
  background: url(../images/color-slider1.png) repeat;
  animation: bgmove 25s linear infinite reverse;
}
.kirakira::after {
  background: url(../images/color-slider2.png) repeat;
  animation: bgmove 25s linear infinite;
}
.kirakira--wide {
  height: 43px;
}

@keyframes bgmove {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 0% -100%;
  }
}
.page-title {
  font-size: var(--display);
  font-weight: normal;
  letter-spacing: 0.2em;
}
.page-title::after {
  content: attr(data-subtitle);
  margin-left: 0.7em;
  font-size: 16px;
  letter-spacing: 0.075em;
}

.container {
  width: 92%;
  max-width: 1060px;
  margin-right: auto;
  margin-left: auto;
}
.container--size_narrow {
  max-width: 960px;
}
.container--size_large {
  max-width: 1520px;
}

.figure {
  width: 100%;
  background-color: var(--gray);
  position: relative;
}
@media (min-width: 769px) {
  .figure {
    width: 330px;
    max-width: 100%;
  }
}
.figure::after {
  content: "";
  display: block;
  padding-top: 56.3636363636%;
}
.figure > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media (min-width: 769px) {
  .figure--type_wide {
    width: 50%;
  }
}
.figure--type_wide::after {
  padding-top: 35.0943396226%;
}
.figure--type_card::after {
  padding-top: 41.717791411%;
}
@media (min-width: 769px) {
  .figure--type__wide-card {
    width: 1060px;
  }
}
.figure--type__wide-card::after {
  padding-top: 25.6603773585%;
}
@media (min-width: 769px) {
  .figure--type__wide-card::after {
    padding-top: 12.8301886792%;
  }
}
@media (min-width: 769px) {
  .figure--type_medium {
    width: 1060px;
    max-width: 100%;
  }
}
.figure--type_medium::after {
  padding-top: 35.8490566038%;
}
@media (min-width: 769px) {
  .figure--type_large {
    width: 1060px;
    max-width: 100%;
  }
}
.figure--type_large::after {
  padding-top: 42.4528301887%;
}
.figure--intext {
  margin-top: 1.7em;
}

.media-contents + .media-contents {
  margin-top: 150px;
}
.media-contents--layout_alternate .media-contents__item + .media-contents__item {
  margin-top: 70px;
}
@media (min-width: 769px) {
  .media-contents--layout_alternate .media-contents__item + .media-contents__item {
    margin-top: 110px;
  }
}
.media-contents--layout_aligned .media-contents__item + .media-contents__item {
  margin-top: 70px;
}
@media (min-width: 769px) {
  .media-contents--layout_aligned .media-contents__item + .media-contents__item {
    margin-top: 80px;
  }
}

.media {
  display: flex;
  flex-direction: column;
  gap: 3%;
}
@media (min-width: 769px) {
  .media {
    flex-direction: row;
    justify-content: space-between;
  }
}
@media (min-width: 769px) {
  .media--reverse {
    flex-direction: row-reverse;
  }
}
.media__title {
  margin-bottom: 0.8em;
  padding-bottom: 0.12em;
  font-size: var(--heading-22);
  letter-spacing: 0.1em;
}
.media__title--top {
  font-size: var(--heading-28);
}
@media (min-width: 769px) {
  .media__body {
    width: 47%;
  }
}
@media (max-width: 768px) {
  .media__img-wrapper {
    margin-top: 1em;
  }
}
@media (min-width: 769px) {
  .media__img-wrapper {
    width: 50%;
  }
}
.media__img-wrapper > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.media__link {
  margin-top: 1.3em;
  text-align: right;
}

.section--type_heading {
  margin-top: 90px;
  margin-bottom: 60px;
  font-size: var(--text-18);
  line-height: 1.75;
  letter-spacing: 0.1em;
  text-align: center;
}
@media (min-width: 769px) {
  .section--type_heading {
    margin-bottom: 90px;
  }
}
.section--type_heading .heading + * {
  margin-top: 30px;
}
.section--type_intro {
  margin-top: 48px;
}
@media (min-width: 769px) {
  .section--type_intro {
    margin-top: 60px;
  }
}
.section--type_media {
  margin-top: 80px;
}
@media (min-width: 769px) {
  .section--type_media {
    margin-top: 181px;
  }
}
.section--type_info {
  margin-top: 80px;
  padding: 50px 0;
  background-color: var(--gray);
}
@media (min-width: 769px) {
  .section--type_info {
    margin-top: 190px;
    padding: 57px 0 105px;
  }
}
.section--type_relation {
  margin-top: 80px;
}
@media (min-width: 769px) {
  .section--type_relation {
    margin-top: 140px;
  }
}
.section--type_no-heading {
  margin-top: 50px;
  margin-bottom: 50px;
  text-align: center;
}
@media (min-width: 769px) {
  .section--type_no-heading {
    margin-top: 82px;
    margin-bottom: 52px;
  }
}
.section--space_small {
  margin-top: 50px;
}
@media (min-width: 769px) {
  .section--space_small {
    margin-top: 85px;
  }
}
.section--space_middle {
  margin-top: 50px;
}
@media (min-width: 769px) {
  .section--space_middle {
    margin-top: 114px;
  }
}
.section--space_wide {
  margin-top: 50px;
}
@media (min-width: 769px) {
  .section--space_wide {
    margin-top: 140px;
  }
}
.section--space_large {
  margin-top: 50px;
}
@media (min-width: 769px) {
  .section--space_large {
    margin-top: 185px;
  }
}
.section--centering {
  text-align: center;
}
.section--layout_no-padding {
  padding-bottom: 0 !important;
}
.section__heading {
  font-size: var(--heading-24);
  font-weight: bold;
  letter-spacing: 0.1em;
  text-align: center;
}
.section__heading--type_bar {
  border-bottom: 2px solid var(--gray);
}
.section__text {
  margin-top: 0.8em;
}
@media (min-width: 769px) {
  .section__text {
    margin-top: 0.6em;
  }
}
.section__links {
  margin-top: 45px;
  margin-bottom: 40px;
}
.section > img {
  margin-top: 27px;
}
.section:last-of-type {
  padding-bottom: 105px;
}

.main {
  margin-top: 60px;
}
@media (min-width: 769px) {
  .main {
    margin-top: 86px;
  }
}

.header {
  width: 100%;
  height: 60px;
  padding: 10px 0;
  background-color: var(--white);
  position: fixed;
  top: 0;
  z-index: 999;
}
@media (min-width: 769px) {
  .header {
    height: 86px;
    padding: 25px 0 23px;
  }
}
.header__contents {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}
@media (min-width: 769px) {
  .header__contents {
    align-items: flex-end;
  }
}
.header__logo {
  max-width: 220px;
  z-index: 999;
}
@media (max-width: 768px) {
  .header__logo {
    width: 50%;
  }
}
.header__logo > img {
  height: auto;
}
.header__menu {
  flex-shrink: 0;
}

.menu__check {
  display: none;
}
.menu__button {
  height: 40px;
  width: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 99;
}
@media (min-width: 769px) {
  .menu__button {
    display: none;
  }
}
.menu__button span,
.menu__button span::before,
.menu__button span::after {
  content: "";
  display: block;
  height: 2px;
  width: 25px;
  background-color: var(--blue);
  position: absolute;
}
.menu__check:checked ~ .menu__button span {
  background-color: rgba(255, 255, 255, 0);
}
.menu__button span::before {
  bottom: 8px;
}
.menu__check:checked ~ .menu__button span::before {
  bottom: 0;
  transform: rotate(45deg);
}
.menu__button span::after {
  top: 8px;
}
.menu__check:checked ~ .menu__button span::after {
  top: 0;
  transform: rotate(-45deg);
}

@media (max-width: 768px) {
  .global-nav {
    visibility: hidden;
    opacity: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    padding: 90px 9.5% 20px;
    background: var(--white);
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 9;
    overflow-y: scroll;
    transition: visibility 0.25s, opacity 0.25s;
  }
  .global-nav::after {
    content: "";
    width: 100%;
    height: 60px;
    background: var(--white);
    position: fixed;
    top: 0;
    left: 0;
  }
  #menu-btn-check:checked ~ .global-nav {
    visibility: visible;
    opacity: 1;
  }
}
.global-nav__footer {
  margin-top: 3em;
  padding: 1em 0;
  font-size: 80%;
  text-align: center;
}
@media (min-width: 769px) {
  .global-nav__footer {
    display: none;
  }
}
.global-nav__footer-link {
  display: block;
}
.global-nav__copyright {
  display: block;
  margin-top: 0.3em;
}

@media (min-width: 769px) {
  .menu-list {
    display: flex;
    align-items: baseline;
    gap: clamp(1.125rem, -2.079rem + 6.667vw, 2.1875rem);
  }
}
.menu-list__item {
  font-size: 15px;
  font-size: clamp(0.875rem, 0.687rem + 0.392vw, 0.9375rem);
  font-weight: bold;
  letter-spacing: 0.05em;
  position: relative;
}
@media (max-width: 768px) {
  .menu-list__item {
    display: flex;
  }
}
@media (max-width: 768px) {
  .menu-list__item + .menu-list__item {
    margin-top: 1.3em;
  }
}
.menu-list__heading {
  font-size: inherit;
  color: var(--blue);
}
@media (max-width: 768px) {
  .menu-list__heading {
    width: 33.3%;
    padding-top: 0.1em;
  }
}
.menu-list__link {
  font-size: clamp(0.875rem, 0.498rem + 0.784vw, 1rem);
  font-weight: 600;
}
@media (max-width: 768px) {
  .menu-list__link {
    color: var(--blue);
  }
}
@media (hover: hover) {
  .menu-list__link:hover {
    color: var(--blue);
  }
}

@media (min-width: 769px) {
  .sub-menu {
    height: auto;
    padding-top: 0;
    overflow: auto;
    position: absolute;
    transform: scaleY(0);
    transform-origin: center top;
    opacity: 0;
    transition: all 0.2s;
  }
}
@media (min-width: 769px) {
  .sub-menu__item:first-of-type {
    padding-top: 1em;
  }
}
.sub-menu__link {
  display: inline-block;
  padding: 0.6em 1em 0.4em;
  font-size: 86.667%;
  line-height: 1.2;
}
@media (min-width: 769px) {
  .sub-menu__link {
    display: block;
    padding: 0.8em 1.2em 0.65em;
    white-space: nowrap;
    background: var(--white);
  }
}
@media (hover: hover) {
  .sub-menu__link:hover {
    background: var(--blue);
    color: var(--white);
    opacity: 1;
  }
}
.sub-menu__link[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-left: 0.5em;
  background-color: var(--blue);
  mask-image: url(../images/external.svg);
  mask-repeat: no-repeat;
  mask-size: 0.8em;
  mask-position: center;
}
.sub-menu__link[target=_blank]:hover::after {
  background-color: var(--white);
}
@media (max-width: 1728px) {
  .menu-list__item:last-of-type .sub-menu {
    left: -20%;
  }
}
.menu-list__item:hover .sub-menu {
  opacity: 1;
  transform: scaleY(1);
}

.sub-menu-button {
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  position: relative;
  bottom: -0.3em;
}
@media (min-width: 769px) {
  .sub-menu-button {
    pointer-events: none;
  }
}
.sub-menu-button::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 7px;
  border-top: 7px solid var(--blue);
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  transform: rotate(-90deg);
  position: absolute;
  top: 35%;
  left: calc(50% - 4px);
}
@media (min-width: 769px) {
  .sub-menu-button::before {
    transform: rotate(0deg) !important;
  }
}
.sub-menu-button-check:checked ~ .sub-menu-button::before {
  transform: rotate(0deg);
}

.sub-menu-button-check {
  display: none;
}

.footer {
  padding: 40px 0 0;
}
@media (min-width: 769px) {
  .footer {
    padding: 117px 0 0;
  }
}
.footer__inner {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 35px;
}
@media (min-width: 769px) {
  .footer__inner {
    flex-direction: row;
    justify-content: space-between;
  }
}
.footer__contents {
  width: 100%;
  max-width: 300px;
  margin: 0 auto;
  padding-top: 13px;
  font-size: var(--text-16);
  letter-spacing: 0.075em;
  text-align: center;
}
@media (min-width: 769px) {
  .footer__contents {
    width: 100%;
    max-width: 320px;
    margin: 0 0 3em;
    text-align: left;
  }
}
.footer__logo > img {
  display: inline-block;
}
.footer__nav {
  display: none;
}
@media (min-width: 769px) {
  .footer__nav {
    display: block;
    padding-top: 4px;
  }
}
.footer__text {
  margin-top: 1.1em;
  line-height: 1.75;
}
.footer__bottom {
  margin-top: 50px;
  padding: 21px 0 36px;
  display: flex;
  flex-direction: column-reverse;
  border-top: 2px solid var(--gray);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-align: center;
}
@media (min-width: 769px) {
  .footer__bottom {
    margin-top: 78px;
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }
}
.footer__bottom-link {
  font-size: 12px;
  letter-spacing: 0.1em;
}

.sitemap {
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.5625rem, -7.51rem + 16.129vw, 2.8125rem);
}
@media (min-width: 1280px) {
  .sitemap {
    gap: clamp(1.5625rem, -2.545rem + 5.134vw, 3rem);
  }
}
.sitemap__heading {
  font-size: var(--text-15);
  font-weight: bold;
  letter-spacing: 0.1em;
  color: var(--blue);
}
.sitemap__links {
  margin-top: 1.1em;
  font-size: 14px;
  letter-spacing: 0.025em;
}
.sitemap__links li + li {
  margin-top: 0.58em;
}
.sitemap__links a {
  position: relative;
}
.sitemap__links a::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--blue);
  position: absolute;
  bottom: 0;
  left: 0;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.25s;
}
.sitemap__links a:hover {
  opacity: 1;
}
.sitemap__links a:hover::before {
  transform: scaleX(1);
  transform-origin: left;
}
.sitemap__links a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-left: 0.5em;
  background-image: url(../images/external.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.news {
  width: 315px;
  padding: 15px 24px;
  background: var(--gray);
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 2;
  transition-property: visibility, opacity;
  transition-duration: 1s;
}
.news--hide {
  visibility: hidden;
  opacity: 0;
}
.news__title {
  margin: 0;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 0.1em;
  color: var(--blue);
}
.news__link {
  display: block;
}
.news__date {
  font-size: 10px;
  letter-spacing: 0.025em;
}
.news__text {
  font-size: 12px;
  letter-spacing: 0.05em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (min-width: 600px) {
  .information {
    display: flex;
    justify-content: space-between;
    gap: 38px;
  }
}
.information__news {
  flex: 1 1;
}
.information__list {
  margin: 34px 0 35px 0;
}
@media (max-width: 599px) {
  .information__faq {
    margin-top: 50px;
  }
}
@media (min-width: 600px) {
  .information__faq {
    width: 40%;
  }
}
@media (min-width: 769px) {
  .information__faq {
    width: 330px;
  }
}
.information__title {
  font-size: var(--heading-28);
}
.information__text {
  margin-top: 1.7em;
  font-size: var(--text-16);
  line-height: 1.75;
  letter-spacing: 0.075em;
}
.information__link {
  margin-top: 2em;
  text-align: right;
}

.news-list {
  list-style: none;
  padding: 0;
  border-bottom: 2px solid var(--gray);
}
.information .news-list {
  border-color: var(--white);
}
.news-list__item {
  padding: 28px 0 23px;
  border-top: 2px solid var(--gray);
}
.news-list__item--hide {
  display: none !important;
}
.news-list__item--show {
  display: flex !important;
}
.information .news-list__item {
  border-color: var(--white);
}
.article-list .news-list__item {
  padding: 28px 0 23px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
@media (min-width: 769px) {
  .article-list .news-list__item {
    padding: 28px 50px 23px;
  }
}
.article-list .news-list__item::after {
  content: "";
  flex-shrink: 0;
  display: inline-block;
  width: 1em;
  height: 0.5em;
  margin-left: 1em;
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  right: 0;
  cursor: pointer;
}
@media (min-width: 769px) {
  .article-list .news-list__item::after {
    right: 3em;
  }
}
.news-list__item:nth-of-type(n+13) {
  display: none;
}
.news-list__link {
  display: block;
  width: 100%;
  z-index: 1;
}

.post-item__date {
  font-size: 14px;
  letter-spacing: 0.075em;
}
.post-item__category {
  margin-top: 1.3em;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: #8F8F8F;
}
.post-item__title {
  margin-top: 0.4em;
  padding-right: 5em;
  font-size: 15px;
  letter-spacing: 0.2em;
}

.link-cards {
  display: flex;
  flex-direction: column;
  gap: 40px 0;
}
@media (min-width: 769px) {
  .link-cards__item {
    width: 31%;
  }
}
@media (min-width: 769px) {
  .link-cards {
    flex-direction: row;
    justify-content: space-between;
  }
}

.article-list {
  margin-top: 94px;
}
.article-list__button {
  margin-top: 70px;
  padding-bottom: 105px;
  text-align: center;
}

button {
  border: none;
  background: none;
  appearance: none;
  color: inherit;
  cursor: pointer;
}

.more-button {
  font-size: 15px;
  letter-spacing: 0.1em;
  color: var(--blue);
}

.article {
  max-width: 960px;
  padding: 88px 0 188px;
}
.article__date {
  margin-right: 3em;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.075em;
}
.article__category {
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.1em;
  color: #8F8F8F;
}
.article__title {
  margin-top: 0.5em;
  font-size: var(--heading-22);
  font-weight: bold;
  letter-spacing: 0.2em;
}
.article__body {
  margin-top: 47px;
  font-size: 15px;
  line-height: 1.75;
  letter-spacing: 0.2em;
}
.article__body > * + * {
  margin-top: 1.75em;
}
.article__body h2,
.article__body h3 {
  margin-top: 2em;
}
.article__body img {
  height: auto;
}
.article__body ul,
.article__body ol {
  padding: revert;
  list-style: revert;
}
.article__body a {
  color: var(--blue);
  text-decoration: underline;
}
.article__body a[target=_blank] {
  position: relative;
}
.article__body a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-left: 0.5em;
  background-image: url(../images/external.svg);
  background-repeat: no-repeat;
  background-size: contain;
}
.article + .link-button {
  padding-bottom: 105px;
}

.service-type {
  position: relative;
  padding-top: calc(clamp(3.125rem, 2.232rem + 4.464vw, 4.375rem) / 2);
}
.service-type + .service-type {
  margin-top: 50px;
}
@media (min-width: 769px) {
  .service-type + .service-type {
    margin-top: 90px;
  }
}
.service-type__wrapper {
  padding: 50px 20px 20px;
  border: 3px solid var(--black);
}
@media (min-width: 769px) {
  .service-type__wrapper {
    padding: 52px 42px 48px;
  }
}
.service-type__icon {
  width: 140px;
  width: clamp(6.25rem, 4.464rem + 8.929vw, 8.75rem);
  height: 70px;
  height: clamp(3.125rem, 2.232rem + 4.464vw, 4.375rem);
  background-color: var(--white);
  position: absolute;
  top: 0;
  left: calc(50% - clamp(6.25rem, 4.464rem + 8.929vw, 8.75rem) / 2);
}
.service-type__title {
  padding: 0.46em 1em 0.28em;
  background-color: var(--black);
  color: var(--white);
  font-size: var(--heading-24);
  font-weight: bold;
  letter-spacing: 0.2em;
  text-align: center;
}
.service-type__content {
  margin-top: 27px;
}
@media (min-width: 769px) {
  .service-type__content {
    display: flex;
    flex-direction: row-reverse;
    gap: 45px;
  }
}
.service-type__text {
  font-size: var(--text-16);
  line-height: 1.75;
  letter-spacing: 0.075em;
}
@media (max-width: 768px) {
  .service-type__figure {
    margin-top: 1em;
  }
}
@media (min-width: 769px) {
  .service-type__figure {
    width: 45%;
    max-width: 445px;
    flex-shrink: 0;
  }
}
.service-type__figure > img {
  margin: 0 auto;
}

.achievement {
  padding: 20px;
  border: 2px solid var(--gray);
}
@media (min-width: 769px) {
  .achievement {
    padding: clamp(1.875rem, 0rem + 3.906vw, 2.5rem) clamp(1.875rem, -1.875rem + 7.813vw, 3.125rem);
  }
}
.achievement + .achievement {
  margin-top: 90px;
}
.achievement__title {
  margin-bottom: 2em;
  font-size: var(--heading-24);
  letter-spacing: 0.075em;
}
@media (min-width: 769px) {
  .achievement__title {
    margin-bottom: 0.5em;
  }
}
@media (min-width: 769px) {
  .achievement__inner {
    display: flex;
    gap: clamp(1.25rem, -2.5rem + 7.813vw, 2.5rem);
  }
}
@media (min-width: 769px) {
  .achievement__head {
    width: 40%;
    max-width: 296px;
  }
}
@media (max-width: 768px) {
  .achievement__body {
    margin-top: 1em;
  }
}
@media (min-width: 769px) {
  .achievement__body {
    flex: 1;
  }
}
.achievement__before {
  margin-bottom: 30px;
  position: relative;
}
.achievement__before::after {
  content: "";
  width: 16px;
  height: 8px;
  border-top: 8px solid var(--black);
  display: block;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  position: absolute;
  bottom: -12px;
  left: calc(50% - 8px);
}

@media (min-width: 769px) {
  .client-info {
    display: flex;
    flex-direction: column-reverse;
  }
}
@media (min-width: 769px) {
  .client-info__body {
    margin-top: 33px;
  }
}
@media (max-width: 768px) {
  .client-info__figure {
    margin-top: 1em;
  }
}
@media (max-width: 768px) {
  .client-info__figure img {
    width: 100%;
  }
}
.client-info__name {
  font-size: var(--heading-22);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.2em;
}
.client-info__desc {
  margin-top: 15px;
}
.client-info__desc-row {
  display: flex;
  letter-spacing: 0.2em;
  gap: 9px;
}
.client-info__desc-row + .client-info__desc-row {
  margin-top: 3px;
}
.client-info__desc-row dt::after {
  content: "：";
}
.client-info__desc-row dd {
  font-weight: bold;
}

.list-box {
  padding: 14px 18px;
}
.list-box--type_problems {
  border: 2px solid #CDCDCD;
  background-color: var(--gray);
}
.list-box--type_changes {
  border: 2px solid #DFA303;
  background-color: #FBF5E3;
}
.list-box__heading {
  padding-bottom: 0.2em;
  font-size: var(--text-17);
  font-weight: bold;
  letter-spacing: 0.2em;
  text-align: center;
}
.list-box--type_problems .list-box__heading {
  border-bottom: 2px solid #CDCDCD;
}
.list-box--type_problems .list-box__heading::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background-image: url("../../business/works/assets/images/icon-problems.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: relative;
  top: -5px;
  left: 3px;
}
.list-box--type_changes .list-box__heading {
  border-bottom: 2px solid #DFA303;
  color: #DFA303;
}
.list-box--type_changes .list-box__heading::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1.59em;
  background-image: url("../../business/works/assets/images/icon-changes.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: relative;
  top: 3px;
  left: 6px;
}
.list-box__list {
  margin-top: 18px;
  font-size: var(--text-15);
  letter-spacing: 0.075em;
}
.list-box__list li {
  padding-left: 1.3em;
  position: relative;
}
.list-box__list li::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 1em;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 0.14em;
  left: 0em;
}
.list-box--type_problems .list-box__list li::before {
  background-image: url("../../business/works/assets/images/icon-sankaku.svg");
}
.list-box--type_changes .list-box__list li::before {
  background-image: url("../../business/works/assets/images/icon-maru.svg");
}
.list-box__list li + li {
  margin-top: 0.3em;
}

.changes {
  padding: 16px 20px;
}
.changes__heading {
  font-size: var(--text-17);
  font-weight: bold;
  letter-spacing: 0.2em;
  border-bottom: 2px solid currentColor;
  color: #DFA303;
}
.changes__list {
  font-size: var(--text-15);
  letter-spacing: 0.075em;
}

.icons {
  padding: 2px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.icon-meaning {
  padding: 20px;
  border: 1px solid var(--black);
}
@media (min-width: 600px) {
  .icon-meaning {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
@media (min-width: 769px) {
  .icon-meaning {
    width: 90%;
    margin-right: auto;
    margin-left: auto;
    padding: 36px 55px;
  }
}
.icon-meaning__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
@media (max-width: 599px) {
  .icon-meaning__item + .icon-meaning__item {
    margin-top: 1em;
  }
}
.icon-meaning__item > dt {
  width: clamp(1.875rem, 1.161rem + 3.571vw, 2.5rem);
}
.icon-meaning__item > dd {
  font-size: clamp(1rem, 0.292rem + 1.887vw, 1.5rem);
  font-weight: bold;
  line-height: 2;
  letter-spacing: 0.2em;
}
.icon-meaning__item > dd::before {
  content: "…";
}

.recruitment__head {
  margin-top: 58px;
}
.recruitment__body {
  margin-top: 45px;
  background-color: var(--gray);
}
.recruitment__item {
  padding: 47px clamp(1rem, -0.518rem + 7.589vw, 3.125rem);
  font-size: 16px;
  line-height: 1.75;
}
.recruitment__item dt {
  flex: 0 0 33.33%;
  font-weight: bold;
  letter-spacing: 0.2em;
}
.recruitment__item dd {
  font-size: clamp(0.875rem, 0.786rem + 0.446vw, 1rem);
  letter-spacing: 0.075em;
}
@media (max-width: 599px) {
  .recruitment__item dd {
    margin-top: 0.2em;
  }
}
@media (min-width: 600px) {
  .recruitment__item-row {
    display: flex;
  }
}
.recruitment__item-row + .recruitment__item-row {
  margin-top: 2em;
}

.anchor-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(0.9375rem, 0.568rem + 1.847vw, 1.75rem);
}
.anchor-links__link {
  padding: 0.5em 2em;
  border: 1px solid #CDCDCD;
  border-radius: 2px;
  font-size: var(--text-18);
  font-weight: bold;
  letter-spacing: 0.1em;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.anchor-links__link::after {
  content: "";
  display: inline-block;
  width: 0.65em;
  height: 0.65em;
  background-image: url(/assets/images/sankaku.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.group-company {
  margin-top: 30px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media (max-width: 599px) {
  .group-company {
    gap: 2.6666666667vw;
  }
}
@media (min-width: 600px) {
  .group-company {
    margin-top: 75px;
    gap: 20px;
  }
}
@media (min-width: 769px) {
  .group-company {
    row-gap: clamp(20px, 2.6041666667vw, 41px);
    column-gap: clamp(20px, 2.6041666667vw, 44px);
  }
}
.group-company__item {
  width: 48%;
  position: relative;
}
@media (min-width: 600px) {
  .group-company__item {
    width: 30.5%;
  }
}
.group-company__item::before {
  content: "";
  display: block;
  padding-top: 46.0122699387%;
}
.group-company__link {
  display: block;
  width: 100%;
  height: 100%;
  border: 2px solid var(--gray);
  border-radius: 2px;
  position: absolute;
  top: 0;
  left: 0;
}
@media (hover: hover) {
  .group-company__link:hover {
    opacity: 0.7;
  }
}
.group-company__link > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.faq-list__row + .faq-list__row {
  margin-top: 55px;
}
.faq-list__question {
  position: relative;
}
.faq-list__question::before, .faq-list__question::after {
  content: "";
  width: 15px;
  height: 3px;
  background-color: currentColor;
  position: absolute;
  top: 1em;
  right: 15px;
  cursor: pointer;
}
.faq-list__question::after {
  transform: rotate(90deg);
}
.faq-list__question > span {
  padding: 0.22em 2em 0.22em 0;
  display: flex;
  gap: clamp(0.625rem, 0.625rem + 0vw, 0.625rem);
  border-bottom: 2px solid var(--gray);
  font-size: clamp(1rem, 0.732rem + 1.339vw, 1.375rem);
  font-weight: bold;
  letter-spacing: 0.2em;
  cursor: pointer;
}
.faq-list__question > span::before {
  content: "Q.";
}
.faq-list__question--show::after {
  display: none;
}
.faq-list__answer {
  padding: 1.3em 0;
  display: none;
  gap: 19px;
  font-size: clamp(0.875rem, 0.786rem + 0.446vw, 1rem);
  line-height: 1.75;
  letter-spacing: 0.075em;
}
.faq-list__answer::before {
  content: "A.";
  font-size: clamp(1.125rem, 0.946rem + 0.893vw, 1.375rem);
  font-weight: bold;
  letter-spacing: 0.2em;
}
.faq-list__answer--show {
  display: flex;
}

.layout-company-info__body {
  margin-top: 40px;
}

@media (min-width: 769px) {
  .greeting {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    gap: 50px;
  }
}
.greeting__figure {
  width: 40%;
  margin: 0 0 1em 1em;
  float: right;
}
@media (min-width: 769px) {
  .greeting__figure {
    flex-shrink: 0;
    width: clamp(15.625rem, 7.15rem + 17.633vw, 20.375rem);
  }
}

.signature {
  margin-top: 1.4em;
  text-align: right;
}
.signature > span {
  display: inline-block;
  margin-left: 2em;
}

.company-info + .company-info {
  margin-top: 38px;
}
.company-info__name {
  font-size: var(--heading-24);
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.2em;
}
.company-info__body {
  padding: 30px 20px;
  background-color: var(--gray);
}
@media (min-width: 769px) {
  .company-info__body {
    padding: 35px 50px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 48px;
  }
}
.company-info__figure {
  width: 100%;
  height: auto;
  position: relative;
}
@media (min-width: 769px) {
  .company-info__figure {
    width: 32.293%;
    width: 310px;
    width: clamp(15.625rem, 4.316rem + 23.529vw, 19.375rem);
    max-width: 100%;
    height: auto;
    max-height: 200px;
    flex-shrink: 0;
  }
}
.company-info__figure::before {
  content: "";
  display: block;
  padding-top: 64.5161290323%;
}
.company-info__figure > img {
  width: 100%;
  height: auto;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 768px) {
  .company-info__content {
    margin-top: 1em;
  }
}
@media (min-width: 769px) {
  .company-info__content {
    flex: 1;
  }
}

@media (min-width: 600px) {
  .company-desc__row {
    display: flex;
    gap: 22px;
  }
}
.company-desc__row + .company-desc__row {
  margin-top: 1em;
}
@media (min-width: 600px) {
  .company-desc__row + .company-desc__row {
    margin-top: 3.5px;
  }
}
.company-desc__row dt {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.2em;
}
@media (min-width: 600px) {
  .company-desc__row dt {
    width: 100px;
    max-width: 100%;
    flex-shrink: 0;
  }
}
.company-desc__row dd {
  font-size: 16px;
  letter-spacing: 0.075em;
}
.company-desc a {
  color: var(--blue);
  word-break: break-word;
}

.form input[type=text],
.form input[type=tel],
.form input[type=email],
.form select,
.form textarea {
  padding: 1em;
  border: 1px solid var(--gray);
  font-size: var(--text-16);
  letter-spacing: 0.1em;
}
.form input[type=text]:focus, .form input[type=text]:focus-visible,
.form input[type=tel]:focus,
.form input[type=tel]:focus-visible,
.form input[type=email]:focus,
.form input[type=email]:focus-visible,
.form select:focus,
.form select:focus-visible,
.form textarea:focus,
.form textarea:focus-visible {
  outline: 1px solid var(--blue);
}
.form input[type=text],
.form input[type=tel],
.form input[type=email],
.form textarea {
  width: 100%;
}
.form select {
  width: 100%;
  cursor: pointer;
  appearance: none;
}
.form textarea {
  resize: none;
}
.form input::placeholder,
.form textarea::placeholder {
  color: #BBBBBB;
}
.form input[type=button] {
  padding: 0.65em 1.8em;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.2em;
  color: var(--blue);
  background-color: var(--white);
  border: 1px solid currentColor;
  border-radius: 1px;
  cursor: pointer;
  transition: background-color 0.25s, color 0.25s;
}
.form input[type=button]:hover:not(:disabled) {
  color: var(--white);
  background-color: var(--blue);
}
.form input[type=button]:disabled {
  color: #A8A8A8;
  cursor: not-allowed;
}
.form input[type=radio] {
  position: absolute;
  opacity: 0;
}
.form input[type=radio]:checked + span::before {
  background-color: var(--blue);
  box-shadow: inset 0 0 0 3px #F2F2F2;
}
.form input[type=radio]:focus + span::before {
  outline: none;
  border-color: var(--blue);
}
.form input[type=radio]:disabled + span::before {
  box-shadow: inset 0 0 0 4px #F2F2F2;
  border-color: rgb(178.25, 178.25, 178.25);
  background: rgb(178.25, 178.25, 178.25);
}
.form input[type=radio] + span {
  cursor: pointer;
  display: flex;
  align-items: center;
}
.form input[type=radio] + span::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 0.5em;
  background: var(--gray);
  border-radius: 100%;
  border: 1px solid rgb(178.25, 178.25, 178.25);
  vertical-align: top;
  cursor: pointer;
  text-align: center;
  transition: all 0.25s ease;
}
.form input[type=radio] + span:empty::before {
  margin-right: 0;
}
.form__radio-list li + li {
  margin-top: 0.5em;
}
@media (min-width: 600px) {
  .form__row {
    display: flex;
    align-items: center;
  }
}
.form__row + .form__row {
  margin-top: 30px;
}
@media (min-width: 600px) {
  .form__row + .form__row {
    margin-top: 50px;
  }
}
.form__title {
  font-size: var(--text-16);
  letter-spacing: 0.1em;
}
@media (min-width: 600px) {
  .form__title {
    width: 244px;
    width: clamp(11.25rem, 5.59rem + 15.094vw, 15.25rem);
  }
}
.form__title--requierd::after {
  content: "＊";
  display: inline-block;
  font-size: 87.5%;
  font-weight: bold;
  color: var(--blue);
  transform: translate(20%, -70%);
}
.form__title--align_top {
  align-self: flex-start;
}
.form__input-wrap {
  position: relative;
}
@media (max-width: 599px) {
  .form__input-wrap {
    margin-top: 0.2em;
  }
}
@media (min-width: 600px) {
  .form__input-wrap {
    flex: 1;
  }
}
.form__input-wrap--line > input[type=text] {
  display: inline-block;
  width: 48%;
}
.form__input-wrap--line > input[type=text]:nth-child(2) {
  margin-left: 4%;
}
.form__select {
  position: relative;
}
@media (min-width: 1025px) {
  .form__select {
    width: 60%;
  }
}
.form__select::after {
  content: "";
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid var(--blue);
  position: absolute;
  top: 43%;
  right: 1.2em;
  pointer-events: none;
}
.form__select:focus, .form__select:focus-visible {
  outline: 1px solid var(--blue);
}
.form__acceptance {
  padding-left: 2em;
  font-size: var(--text-16);
}
.form__acceptance input[type=checkbox] {
  display: none;
}
.form__acceptance input[type=checkbox]:checked + .form__checkbox::after {
  opacity: 1;
}
.form__acceptance ul {
  margin-top: 2em;
  list-style: disc;
}
.form__acceptance ul li + li {
  margin-top: 0.5em;
}
.form__acceptance label {
  cursor: pointer;
}
.form__checkbox {
  display: inline-block;
  cursor: pointer;
}
.form__checkbox::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: #FFF;
  border: 1px solid #AAA;
  border-radius: 3px;
  position: absolute;
  top: 0.15em;
  left: 0;
}
.form__checkbox::after {
  content: "";
  display: block;
  width: 0.5em;
  height: 0.75em;
  transform: rotate(45deg);
  border-right: 3px solid var(--blue);
  border-bottom: 3px solid var(--blue);
  position: absolute;
  top: 0.18em;
  left: 0.25em;
  opacity: 0;
}
.form__privacy-link {
  color: var(--blue);
  text-decoration: underline;
}
.form__submit-btn {
  margin-top: 100px;
  text-align: center;
}
.form .error_blank,
.form .error_format,
.form .error_match {
  display: block;
  margin-top: 5px;
  font-size: 80%;
  color: #ff0000;
}

div.loading-layer {
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.7);
  position: fixed;
  left: 0px;
  top: 0px;
  z-index: 10000;
}

span.loading {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border-top: 5px solid rgba(255, 255, 255, 0.2);
  border-right: 5px solid rgba(255, 255, 255, 0.2);
  border-bottom: 5px solid rgba(255, 255, 255, 0.2);
  border-left: 5px solid #ffffff;
  transform: translateZ(0);
  animation: load-circle 1s linear infinite;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
}

@-webkit-keyframes load-circle {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes load-circle {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@media (max-width: 768px) {
  .thanks-message {
    text-align: left;
  }
}
.thanks-message__tel {
  margin-top: 1.5em;
  font-size: var(--text-18);
  font-weight: bold;
  letter-spacing: 0.075em;
  color: var(--blue);
}

.strong-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(0.625rem, 0.341rem + 1.42vw, 1.25rem);
}
@media (min-width: 1728px) {
  .strong-list {
    justify-content: space-between;
  }
}
.strong-list__item {
  width: 48%;
  padding-top: 20px;
  position: relative;
}
@media (min-width: 600px) {
  .strong-list__item {
    width: min(288px, 30%);
    width: clamp(10.3125rem, 6.224rem + 10.904vw, 18rem);
  }
}

.strong-point {
  width: 100%;
  height: 100%;
  padding: 2.1em 0.8em 1.3em;
  border: 2px solid currentColor;
  border-radius: 1px;
  font-size: var(--text-17);
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.075em;
  text-align: center;
}
.strong-point__icon {
  position: absolute;
  width: 60px;
  height: 40px;
  background-color: var(--white);
  position: absolute;
  top: 0;
  left: calc(50% - 30px);
}

.technology {
  width: 100%;
}
@media (max-width: 768px) {
  .technology {
    background-image: none !important;
  }
}
@media (min-width: 769px) {
  .technology {
    color: var(--white);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: right;
  }
}
@media (min-width: 1024px) {
  .technology {
    min-height: 350px;
  }
}
.technology + .technology {
  margin-top: 50px;
}
@media (min-width: 769px) {
  .technology + .technology {
    margin-top: 5px;
  }
}
.technology--reverse {
  background-position: left;
}
@media (min-width: 769px) {
  .technology__inner {
    width: 92%;
    max-width: 1060px;
    margin-right: auto;
    margin-left: auto;
    padding-top: 33px;
    padding-right: 0;
    padding-bottom: 31px;
    padding-left: 35%;
  }
  .technology--reverse .technology__inner {
    padding-right: 35%;
    padding-left: 0;
  }
}
.technology__title {
  padding-bottom: 0.15em;
  border-bottom: 2px solid currentColor;
  font-size: var(--heading-22);
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.2em;
}
.technology__text {
  margin-top: 1.3em;
  font-size: var(--text-16);
  line-height: 1.75;
  letter-spacing: 0.075em;
}
.technology__text strong {
  font-size: 112.5%;
}
.technology__image {
  margin-top: 1em;
}
@media (min-width: 769px) {
  .technology__image {
    display: none;
  }
}

.table-wrap {
  min-height: 123px;
  overflow: hidden;
}
.table-wrap + .table-wrap {
  margin-top: 23px;
}

.course-table {
  width: 1060px;
}
.course-table caption {
  margin-bottom: 0.25em;
  font-size: var(--text-19);
  font-weight: bold;
  letter-spacing: 0.075em;
  text-align: left;
}
@media (min-width: 769px) {
  .course-table col.col1 {
    width: 240px;
  }
  .course-table col.col2 {
    width: auto;
  }
  .course-table col.col3 {
    width: 175px;
  }
}
.course-table tr:first-child th {
  border-top: none;
}
.course-table th,
.course-table td {
  border-left: 8px solid var(--white);
  border-top: 5px solid var(--white);
  font-size: var(--text-17);
  letter-spacing: 0.075em;
}
.course-table th:first-child,
.course-table td:first-child {
  border-left: none;
}
.course-table th {
  padding: 0.42em 2.3em;
  background-color: var(--blue);
  color: var(--white);
  font-weight: bold;
}
.course-table td {
  padding: 0.54em 2em;
  background-color: var(--gray);
}

.about-training {
  padding: 20px;
  border: 1px solid var(--blue);
  border-radius: 1px;
}
@media (min-width: 769px) {
  .about-training {
    padding: 25px 48px 35px;
  }
}
.about-training + .about-training {
  margin-top: 19px;
}
.about-training__title {
  padding-bottom: 0.35em;
  border-bottom: 1px solid currentColor;
  font-size: var(--text-19);
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.075em;
  color: var(--blue);
}
.about-training__inner {
  margin-top: 25px;
}
@media (min-width: 769px) {
  .about-training__inner {
    margin-top: 40px;
    display: flex;
    justify-content: space-between;
    gap: 15px;
  }
}
@media (min-width: 769px) {
  .about-training__content {
    width: 50%;
  }
  .about-training--layout_text .about-training__content {
    width: 75%;
  }
}
.about-training__text {
  font-size: var(--text-17);
  line-height: 1.75;
  letter-spacing: 0.075em;
}
.about-training__text strong {
  margin-bottom: 0.4em;
}
.about-training__address {
  font-size: var(--text-17);
  font-style: normal;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.about-training__address + * {
  margin-top: 17px;
}
.about-training__address span {
  display: inline-block;
  margin-top: 0.08em;
  font-size: var(--text-15);
}
.about-training__address .tel {
  font-size: var(--text-17);
}
@media (max-width: 768px) {
  .about-training__figure, .about-training__map {
    margin-top: 1em;
  }
}
.about-training__figure {
  font-size: var(--text-15);
  letter-spacing: 0.075em;
  text-align: center;
}
@media (min-width: 769px) {
  .about-training__figure {
    width: 50%;
  }
  .about-training--layout_text .about-training__figure {
    width: 25%;
  }
}
.about-training__figure img {
  display: inline-block;
}
.about-training__figure img + * {
  margin-top: 9px;
}
.about-training__map {
  width: 100%;
  position: relative;
  overflow: hidden;
}
@media (min-width: 769px) {
  .about-training__map {
    width: 50%;
    max-width: 460px;
  }
}
.about-training__map::before {
  content: "";
  display: block;
  padding-top: 60%;
}
@media (min-width: 600px) {
  .about-training__map::before {
    padding-top: 50%;
  }
}
@media (min-width: 769px) {
  .about-training__map::before {
    padding-top: 36.9565217391%;
  }
}
.about-training__map iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
}

.message__head {
  text-align: center;
}
.message__image {
  margin-top: 30px;
  position: relative;
}
.message__image::before {
  content: "";
  display: block;
  width: 100vw;
  height: 47%;
  background: var(--gray);
  position: absolute;
  bottom: 0;
  left: calc(50% - 50vw);
  z-index: 0;
}
.message__image > img {
  position: relative;
  z-index: 1;
}
.message__details {
  padding-top: 70px;
  padding-bottom: 80px;
  background: var(--gray);
}
@media (min-width: 769px) {
  .message__details {
    padding-bottom: 200px;
  }
}

.detail {
  padding: 20px;
  background-color: var(--white);
  border-radius: 1px;
}
@media (min-width: 769px) {
  .detail {
    padding: 25px 48px 35px;
  }
}
.detail + .detail {
  margin-top: 40px;
}
.detail__title {
  padding-bottom: 0.35em;
  border-bottom: 1px solid currentColor;
  font-size: var(--text-19);
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.075em;
  color: var(--blue);
}
.detail__media-layout {
  margin-top: 40px;
}
@media (min-width: 769px) {
  .detail__media-layout {
    display: flex;
    justify-content: space-between;
  }
}
@media (min-width: 769px) {
  .detail__head {
    width: 38.463%;
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
  }
}
.detail__name {
  margin-top: 0.7em;
  font-size: var(--heading-22);
  line-height: 1.75;
  letter-spacing: 0.15em;
}
.detail__figure > img {
  width: 100%;
}
.detail__certification {
  margin-top: 38px;
}
@media (max-width: 768px) {
  .detail__body {
    margin-top: 1em;
  }
}
@media (min-width: 769px) {
  .detail__body {
    width: 56.5%;
  }
}
.detail__text {
  font-size: var(--text-17);
  line-height: 1.41;
  letter-spacing: 0.075em;
}
.detail__text strong {
  font-size: var(--text-19);
  font-weight: bold;
  line-height: 1.3;
}
.detail__link {
  margin-top: 1em;
  text-align: right;
}

.certification {
  font-size: var(--text-17);
  line-height: 1.75;
  letter-spacing: 0.075em;
}
@media (min-width: 600px) {
  .certification {
    display: flex;
    gap: 20px;
  }
  .certification__left {
    width: 50%;
  }
  .certification__right {
    width: 50%;
  }
}

.case-box {
  margin-top: 29px;
  padding: 20px;
  border: 1px solid;
}
@media (min-width: 769px) {
  .case-box {
    padding: 16px 38px;
  }
}

@media (min-width: 600px) {
  .case__row {
    display: flex;
  }
}
.case__row + .case__row {
  margin-top: 1em;
}
@media (min-width: 600px) {
  .case__row + .case__row {
    margin-top: 3px;
  }
}
@media (min-width: 600px) {
  .case__row dt {
    width: 28%;
    min-width: 120px;
  }
}
@media (max-width: 599px) {
  .case__row dd {
    padding-left: 1em;
  }
}

.after-icon {
  display: block;
  margin-bottom: 2.2em;
  position: relative;
}
.after-icon::after {
  content: "";
  width: 22px;
  height: 10px;
  border-top: 10px solid var(--black);
  display: block;
  border-left: 11px solid transparent;
  border-right: 11px solid transparent;
  position: absolute;
  bottom: -1em;
  left: calc(50% - 11px);
}