@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@100..900&display=swap");
html {
  font-size: 0.520832vw; }
  @media (max-width: 1440px) and (min-width: 1280.5px) {
    html {
      font-size: 0.535vw; } }
  @media (max-width: 960px) {
    html {
      font-size: 1.3641vw; } }
  @media (max-width: 767px) {
    html {
      font-size: 2.5641vw; } }

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

body {
  font-size: 1.6rem;
  letter-spacing: 0;
  line-height: 175%;
  font-weight: 500;
  font-family: "Noto Sans JP", serif; }

.anchor_fixtop_1,
.anchor_fixtop {
  display: block;
  position: relative;
  top: -15rem;
  width: 100%;
  visibility: hidden; }
  @media (max-width: 960px) {
    .anchor_fixtop_1,
    .anchor_fixtop {
      top: -9rem; } }

.anchor_fixtop_1 {
  top: -25rem; }

#page_top {
  position: fixed;
  bottom: 3.7rem;
  right: 7.3rem;
  width: 7.4rem;
  height: 7.4rem;
  opacity: 0;
  border: 0;
  border-radius: 100%;
  z-index: 99 !important;
  background: #37c1bb url(../img/common/page-top.png) no-repeat center;
  border: #FFFFFF solid 1px;
  background-size: 2.1rem;
  transition: all 0.35s;
  cursor: pointer;
  outline: none;
  z-index: 50; }
  #page_top.show {
    opacity: 1; }
    #page_top.show:hover {
      opacity: 0.8; }
  @media (max-width: 1200px) and (min-width: 960.5px) {
    #page_top {
      right: 2.3rem; } }
  @media (max-width: 960px) {
    #page_top {
      right: 1.5rem;
      bottom: 1.5rem;
      font-size: 1rem;
      padding-top: 1.5rem;
      height: 6rem;
      width: 6rem;
      position: fixed; }
      #page_top::before {
        width: .8rem;
        height: 3rem; } }

.wow_custom {
  opacity: 0;
  -webkit-transform: translate(0, 35px);
  transform: translate(0, 35px);
  transition: all 0.5s ease; }
  .wow_custom.right_to_left {
    -webkit-transform: translate(35px, 0);
    transform: translate(35px, 0); }
  .wow_custom.show {
    opacity: 1;
    -webkit-transform: none;
    transform: none; }

p {
  color: #333333;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 195%;
  letter-spacing: 0.089rem;
  font-feature-settings: 'palt'; }
  @media (max-width: 1280px) and (min-width: 960.5px) {
    p {
      font-size: 2.4rem; } }
  @media (max-width: 960px) {
    p {
      font-size: 1.6rem;
      text-align: justify;
      letter-spacing: normal; } }

[class*="dflex"] {
  display: flex;
  flex-wrap: wrap; }

[class*="aic"] {
  align-items: center; }

[class*="aie"] {
  align-items: flex-end; }

[class*="ais"] {
  align-items: flex-start; }

[class*="jcc"] {
  justify-content: center; }

[class*="jcsb"] {
  justify-content: space-between; }

[class*="jcfe"] {
  justify-content: flex-end; }

[class*="fcolumn"] {
  flex-flow: column; }

a[href^="tel:"] {
  cursor: default;
  pointer-events: none; }
  @media (max-width: 1024px) {
    a[href^="tel:"] {
      cursor: pointer;
      pointer-events: all; } }

[class*="grid"] {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin-left: auto;
  margin-right: auto;
  width: 100%; }

.grid-1650 {
  max-width: 168rem; }
.grid-1500 {
  max-width: 153rem; }
.grid-1450 {
  max-width: 148rem; }
.grid-1300 {
  max-width: 130rem; }
.grid-1200 {
  max-width: 123rem; }
.grid-1020 {
  max-width: 105rem; }

.grid-1100 {
  max-width: 1130px; }

.grid-1290 {
  max-width: 132rem; }

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

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

body,
html {
  height: 100%; }

img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  overflow-clip-margin: inherit; }

a,
button {
  color: inherit;
  text-decoration: none; }

input,
textarea,
button,
select {
  outline: none;
  resize: none; }

.hv-o {
  transition: ease all 0.5s; }
  .hv-o:hover {
    opacity: 0.8; }

.ho-main,
.os-main {
  overflow: hidden; }

.os-y-hidden {
  overflow-y: hidden; }

.os-section {
  position: relative; }

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

.u-sp {
  display: none; }

ul,
ol {
  list-style: none; }

.is_hidden {
  display: none !important; }

.no_scroll {
  overflow: hidden; }

@media (max-width: 960px) {
  .u-pc {
    display: none; }

  .u-sp {
    display: block; } }
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0; }

.slick-list:focus {
  outline: none; }

.slick-list.dragging {
  cursor: pointer;
  cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }

.slick-track:before,
.slick-track:after {
  display: table;
  content: ''; }

.slick-track:after {
  clear: both; }

.slick-loading .slick-track {
  visibility: hidden; }

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px; }

[dir='rtl'] .slick-slide {
  float: right; }

.slick-slide img {
  display: block;
  margin-left: auto;
  margin-right: 0; }

.slick-slide.slick-loading img {
  display: none; }

.slick-slide.dragging img {
  pointer-events: none; }

.slick-initialized .slick-slide {
  display: block; }

.slick-loading .slick-slide {
  visibility: hidden; }

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

body.lb-disable-scrolling {
  overflow: hidden; }

.lightboxOverlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: black;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  opacity: 0.8;
  display: none; }

.lightbox {
  position: absolute;
  left: 0;
  width: 100%;
  z-index: 10000;
  text-align: center;
  line-height: 0;
  font-weight: normal;
  position: fixed;
  top: 50% !important;
  transform: translateY(-50%); }

.lightbox .lb-image {
  display: block;
  height: auto;
  max-width: inherit;
  max-height: none;
  border-radius: 3px;
  /* Image border */
  border: 4px solid white; }

.lightbox a img {
  border: none; }

.lb-outerContainer {
  position: relative;
  *zoom: 1;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  border-radius: 4px;
  background-color: white; }

.lb-outerContainer:after {
  content: "";
  display: table;
  clear: both; }

.lb-loader {
  position: absolute;
  top: 43%;
  left: 0;
  height: 25%;
  width: 100%;
  text-align: center;
  line-height: 0; }

.lb-cancel {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 auto; }

.lb-nav {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
  padding: 2.2rem; }
  @media (max-width: 960px) {
    .lb-nav {
      padding: 1rem; } }

.lb-container > .nav {
  left: 0; }

.lb-nav a {
  outline: none;
  background-image: url("data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="); }

.lb-prev,
.lb-next {
  height: 100%;
  cursor: pointer;
  display: block; }

.lb-nav a.lb-prev {
  width: 34%;
  left: 0;
  float: left;
  background: url(../img/works/prev.png) left 48% no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  -webkit-transition: opacity 0.6s;
  -moz-transition: opacity 0.6s;
  -o-transition: opacity 0.6s;
  transition: opacity 0.6s;
  background-size: 3rem; }
  @media (max-width: 960px) {
    .lb-nav a.lb-prev {
      background-size: 1.5rem;
      opacity: 1 !important; } }

.lb-nav a.lb-prev:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1; }

.lb-nav a.lb-next {
  width: 64%;
  right: 0;
  float: right;
  background: url(../img/works/next.png) right 48% no-repeat;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  -webkit-transition: opacity 0.6s;
  -moz-transition: opacity 0.6s;
  -o-transition: opacity 0.6s;
  transition: opacity 0.6s;
  background-size: 3rem; }
  @media (max-width: 960px) {
    .lb-nav a.lb-next {
      background-size: 1.5rem;
      opacity: 1 !important; } }

.lb-nav a.lb-next:hover {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1; }

.lb-dataContainer {
  margin: 0 auto;
  padding-top: 5px;
  *zoom: 1;
  width: 100%;
  -moz-border-radius-bottomleft: 4px;
  -webkit-border-bottom-left-radius: 4px;
  border-bottom-left-radius: 4px;
  -moz-border-radius-bottomright: 4px;
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-right-radius: 4px; }

.lb-dataContainer:after {
  content: "";
  display: table;
  clear: both; }

.lb-data {
  padding: 0 0px;
  color: #ccc; }

.lb-data .lb-details {
  width: 85%;
  float: left;
  text-align: left;
  line-height: 1.1em; }

.lb-data .lb-caption {
  font-size: 13px;
  font-weight: bold;
  line-height: 1em; }

.lb-data .lb-caption a {
  color: #4ae; }

.lb-data .lb-number {
  display: block;
  clear: left;
  padding-bottom: 1em;
  font-size: 12px;
  color: #999999; }

.lb-data .lb-close {
  display: block;
  float: right;
  width: 30px;
  height: 30px;
  background: url(../img/works/close.png) top right 1rem no-repeat;
  text-align: right;
  outline: none;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
  opacity: 0.7;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  -o-transition: opacity 0.2s;
  transition: opacity 0.2s;
  background-size: 1.4rem; }

.lb-data .lb-close:hover {
  cursor: pointer;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1; }

.lb-container img.lb-image {
  border-radius: 0 !important;
  border: .2rem solid #ffffff !important; }
  @media (min-width: 960.5px) {
    .lb-container img.lb-image {
      width: 79.1rem !important;
      height: 52.2rem !important; } }

.lb-dataContainer {
  padding-top: 1.5rem !important; }

.lb-data .lb-caption {
  font-size: 2rem;
  font-weight: bold; }

.lb-data .lb-number {
  display: none !important; }

header {
  height: 10.3rem; }

.title_h1 {
  position: absolute;
  opacity: 0; }

.header {
  padding-left: 5rem;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 60;
  background: #FFFFFF; }
  .header-item:first-child {
    display: flex;
    align-items: center; }
  .header-item .logo img {
    width: 30.8rem; }
  .header-item h1 {
    display: none;
    color: #333333;
    font-size: 1rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0; }
  .header-menu-list {
    height: 10.3rem; }
    .header-menu-list li {
      margin-left: 6.5rem; }
      .header-menu-list li:first-child {
        margin-left: 0; }
      .header-menu-list li a {
        display: flex;
        align-items: center;
        color: #333333;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 175%;
        letter-spacing: 0;
        transition: ease all 0.35s; }
        .header-menu-list li a:hover {
          color: #37c1bb; }
      .header-menu-list li.active a {
        color: #37c1bb; }
    .header-menu-list.vz-02 {
      margin-left: 7.8rem; }
      .header-menu-list.vz-02 li {
        margin-left: 0; }
        .header-menu-list.vz-02 li a {
          background: #007f96;
          height: 100%;
          width: 15.6rem;
          align-items: flex-end;
          justify-content: center;
          color: #FFFFFF;
          position: relative;
          padding-bottom: 1.3rem; }
          .header-menu-list.vz-02 li a::before {
            bottom: 4.8rem;
            content: "";
            position: absolute;
            width: 3.1rem;
            height: 3.7rem;
            background: url(../img/common/icon-01.png) no-repeat center;
            background-size: contain; }
          .header-menu-list.vz-02 li a:hover {
            background: #37c1bb; }
        .header-menu-list.vz-02 li.contact a {
          background: #284256; }
          .header-menu-list.vz-02 li.contact a::before {
            width: 3.2rem;
            height: 2.7rem;
            background-image: url(../img/common/icon-02.png); }
          .header-menu-list.vz-02 li.contact a:hover {
            background: #37c1bb; }
  .header-menu-right {
    position: fixed;
    top: 10.3rem;
    right: -60rem;
    width: 60rem;
    background: #FFFFFF;
    padding: 3rem;
    transition: all ease 0.35s;
    display: flex;
    flex-wrap: wrap; }
    .header-menu-right li {
      width: calc((100% - 1.501rem) / 2);
      margin-right: 1.5rem;
      margin-bottom: 1rem; }
      .header-menu-right li a {
        color: #333333;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 175%;
        letter-spacing: 0; }
      .header-menu-right li:nth-child(2n) {
        margin-right: 0; }
      .header-menu-right li.active a {
        color: #37c1bb; }
    .header-menu-right.active {
      right: 0; }

#menu {
  position: relative;
  display: none; }
  #menu > div {
    width: 16rem;
    height: 10.3rem;
    position: relative;
    display: flex; }
  #menu span {
    background: #c8c8c8;
    left: 5.3rem;
    -webkit-transform: translateY(-50%) rotate(0deg);
    transform: translateY(-50%) rotate(0deg);
    position: absolute;
    width: 5.3rem;
    height: .5rem;
    -webkit-transition: top 0.1s ease 0.3s, background 0.1s ease 0.3s, -webkit-transform 0.3s ease;
    transition: top 0.1s ease 0.3s, background 0.1s ease 0.3s, -webkit-transform 0.3s ease;
    transition: top 0.1s ease 0.3s, transform 0.3s ease, background 0.1s ease 0.3s;
    transition: top 0.1s ease 0.3s, transform 0.3s ease, background 0.1s ease 0.3s, -webkit-transform 0.3s ease; }
    #menu span:nth-child(1) {
      top: 3.7rem; }
    #menu span:nth-child(2) {
      top: 5rem; }
    #menu span:nth-child(3) {
      top: 6.4rem; }
  #menu .change span {
    -webkit-transition: top 0.1s ease, background 0.1s ease, -webkit-transform 0.3s ease 0.1s;
    transition: top 0.1s ease, background 0.1s ease, -webkit-transform 0.3s ease 0.1s;
    transition: top 0.1s ease, transform 0.3s ease 0.1s, background 0.1s ease;
    transition: top 0.1s ease, transform 0.3s ease 0.1s, background 0.1s ease, -webkit-transform 0.3s ease 0.1s; }
    #menu .change span:nth-child(1) {
      top: 50%;
      -webkit-transform: translateY(-50%) rotate(315deg);
      transform: translateY(-50%) rotate(315deg); }
    #menu .change span:nth-child(2) {
      opacity: 0; }
    #menu .change span:nth-child(3) {
      top: 50%;
      -webkit-transform: translateY(-50%) rotate(405deg);
      transform: translateY(-50%) rotate(405deg); }

.chane-x {
  display: inline-block;
  position: relative;
  cursor: pointer; }

.is-home .header-item h1 {
  display: block;
  margin-left: 2rem; }
.is-home #menu {
  display: none; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .header {
    padding-left: 3rem; }
    .header-menu-list li {
      margin-left: 3rem; }
      .header-menu-list li a {
        font-size: 2.4rem; }
    .header-menu-list.vz-02 {
      margin-left: 3rem; }
      .header-menu-list.vz-02 li a::before {
        bottom: 5.8rem; }
    .header-menu-right li a {
      font-size: 2.4rem; }
    .header-item h1 {
      font-size: 1.5rem; } }
@media (max-width: 960px) {
  header {
    height: 7.5rem; }

  .header {
    padding: 2.1rem 1.5rem; }
    .header-item .logo img {
      width: 26rem; }
    .header-item h1 {
      display: block;
      position: absolute;
      top: 1.8rem;
      left: 1.5rem; }
    .header-menu {
      display: none; }
      .header-menu-right {
        width: 100%;
        right: -100%;
        top: 7.5rem;
        display: block;
        height: calc(100vh - 7.5rem);
        overflow: scroll;
        padding: 0 1.5rem 15rem; }
        .header-menu-right.active {
          right: 0; }
        .header-menu-right li {
          border-top: 1px dashed #eee;
          margin-bottom: 0;
          width: 100%;
          margin-right: 0; }
          .header-menu-right li a {
            padding: 1.3rem;
            display: block; }

  #menu {
    display: block; }
    #menu > div {
      width: 5rem;
      height: 3rem; }
    #menu span {
      left: 1.2rem;
      width: 2.5rem;
      height: .4rem;
      background: #333333; } }
    @media (max-width: 960px) and (max-width: 580px) {
      #menu span {
        height: 4px; } }
@media (max-width: 960px) {
      #menu span:nth-child(1) {
        top: 1rem; }
      #menu span:nth-child(2) {
        display: none; }
      #menu span:nth-child(3) {
        top: 2.1rem; }

  .is-home header {
    height: 10.3rem; }
  .is-home .header {
    padding: 5.2rem 1.5rem 2rem; }
    .is-home .header-item h1 {
      margin-left: 0; }
    .is-home .header-menu-right {
      top: 10.3rem;
      height: calc(100vh - 10.3rem); }
  .is-home #menu {
    display: block; } }
.footer-block {
  margin-bottom: 9rem; }
  .footer-block-item {
    width: calc(100% / 2); }
    .footer-block-item a {
      padding: 8.5rem 10.5rem 10.2rem 19.7rem;
      display: block;
      background: #007f96;
      position: relative;
      transition: ease all 0.35s;
      height: 100%; }
      .footer-block-item a .btn {
        position: absolute;
        width: 10rem;
        height: 10rem;
        border-radius: 100%;
        background: #FFFFFF;
        top: 50%;
        right: 10.5rem;
        transform: translateY(-50%); }
        .footer-block-item a .btn::before {
          content: "";
          position: absolute;
          width: 4.5rem;
          height: 3.7rem;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          -webkit-mask: url(../img/common/icon-right-01.png) center/100% no-repeat;
          mask: url(../img/common/icon-right-01.png) center/100% no-repeat;
          background: #007f96; }
      .footer-block-item a span {
        display: block; }
      .footer-block-item a .head {
        color: #FFFFFF;
        font-size: 2rem;
        font-weight: 500;
        line-height: 175%;
        letter-spacing: 0;
        font-family: "Lexend Deca", sans-serif;
        position: relative;
        padding-bottom: 1.2rem;
        margin-bottom: 1.7rem; }
        .footer-block-item a .head::before {
          content: "";
          position: absolute;
          width: 12.7rem;
          height: 1.4rem;
          background: url(../img/common/icon-03.png) no-repeat center;
          background-size: contain;
          bottom: 0; }
      .footer-block-item a .title {
        color: #FFFFFF;
        font-size: 4rem;
        font-weight: 500;
        line-height: 175%;
        letter-spacing: 0.8rem;
        margin-bottom: 4.8rem; }
      .footer-block-item a .desc {
        color: #FFFFFF;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 175%;
        letter-spacing: 0; }
      .footer-block-item a:hover {
        background: #37c1bb; }
    .footer-block-item.vz-02 a {
      background: #284256;
      padding-left: 10.3rem;
      padding-right: 20rem; }
      .footer-block-item.vz-02 a .btn {
        right: 20rem; }
        .footer-block-item.vz-02 a .btn::before {
          background: #284256; }
      .footer-block-item.vz-02 a:hover {
        background: #37c1bb; }
.footer-gp {
  margin-bottom: 7.2rem; }
  .footer-gp-box {
    width: calc(100% / 2); }
    .footer-gp-box p {
      color: #284256;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 168%;
      letter-spacing: 0; }
  .footer-gp-item:first-child {
    width: 32rem; }
  .footer-gp-item:last-child {
    width: calc(100% - 32rem); }
.footer-logo {
  margin-bottom: 2.3rem; }
  .footer-logo a {
    color: #284256;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 175%;
    letter-spacing: 0; }
.footer-title-01 {
  color: #284256;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 168%;
  letter-spacing: 0; }
.footer-menu-list {
  margin-right: 9rem; }
  .footer-menu-list li {
    margin-bottom: 1.3rem; }
    .footer-menu-list li:last-child {
      margin-bottom: 0; }
    .footer-menu-list li a {
      color: #284256;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0; }
  .footer-menu-list:last-child {
    margin-right: 0; }

.copyright p {
  color: #284256;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 175%;
  letter-spacing: 0;
  text-align: right;
  padding-bottom: 9.8rem; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .footer .grid-1450 {
    max-width: 182rem; }

  .footer-gp-box p {
    font-size: 2.4rem; }
  .footer-gp-item:first-child {
    width: 42rem; }
  .footer-gp-item:last-child {
    width: calc(100% - 42rem); }

  .footer-menu-list li a {
    font-size: 2.4rem; }

  .footer-block-item a .desc {
    font-size: 2.4rem; }

  .copyright p {
    font-size: 2.2rem; } }
@media (max-width: 960px) {
  footer {
    background: #FFFFFF; }

  .footer-block {
    margin-bottom: 5rem; }
    .footer-block-item {
      width: 100%; }
      .footer-block-item a {
        padding: 6rem 3rem 6rem 10rem; }
        .footer-block-item a .head {
          text-transform: uppercase; }
          .footer-block-item a .head::before {
            background-image: url(../img/common/icon-04.png);
            width: 20.8rem;
            height: 1.5rem; }
        .footer-block-item a .title {
          letter-spacing: 0;
          margin-bottom: 1.4rem; }
        .footer-block-item a .btn {
          width: 6.7rem;
          height: 6.7rem; }
          .footer-block-item a .btn::before {
            width: 3.1rem;
            height: 2.5rem;
            right: 7rem; }
      .footer-block-item.vz-02 a {
        padding: 6rem 3rem 6rem 10rem; }
        .footer-block-item.vz-02 a .btn {
          right: 10.5rem; }
  .footer-gp {
    margin-bottom: 4rem; }
    .footer-gp-box {
      width: 100%; }
      .footer-gp-box:last-child {
        display: none; }
    .footer-gp-item:first-child, .footer-gp-item:last-child {
      width: 50%; }
    .footer-gp-item:first-child {
      margin-bottom: 3.5rem; }
  .footer .grid-1450 {
    padding-left: 4.5rem;
    padding-right: 4.5rem; }

  .copyright .grid-1450 {
    padding-left: 4.5rem;
    padding-right: 3rem; }
  .copyright p {
    text-align: left;
    line-height: 200%;
    padding-bottom: 4.5rem; } }
@media (max-width: 767px) {
  .footer-block-item a {
    padding: 6rem 3rem 16.5rem 4rem; }
    .footer-block-item a .btn {
      width: 6.7rem;
      height: 6.7rem;
      top: auto;
      bottom: 6.5rem;
      right: 50%;
      transform: translateX(50%); }
  .footer-block-item.vz-02 a {
    padding: 6rem 3rem 16.5rem 4rem; }
    .footer-block-item.vz-02 a .btn {
      right: 50%; }

  .footer-gp-item:first-child, .footer-gp-item:last-child {
    width: 100%; } }
.banner {
  position: relative; }
  .banner-head {
    position: absolute;
    top: 0;
    left: 0;
    min-width: 56.5rem;
    height: 26rem;
    background: #FFFFFF;
    padding-top: 4.2rem;
    z-index: 2; }
    .banner-head p {
      color: #284256;
      font-size: 2rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0;
      font-family: "Roboto", sans-serif;
      padding-bottom: 1rem;
      position: relative; }
      .banner-head p::before {
        content: "";
        position: absolute;
        width: 12.7rem;
        height: 1.4rem;
        background: url(../img/common/icon-03.png) no-repeat center;
        background-size: contain;
        bottom: 0; }
    .banner-head h2 {
      color: #002745;
      font-size: 6rem;
      font-weight: 500;
      line-height: 135%;
      letter-spacing: 0; }
      @media (min-width: 960.5px) {
        .banner-head h2.vz-02 {
          font-size: 4.5rem;
          margin-top: 1.7rem; } }
  .banner-img img {
    width: 100%; }
  .banner-breadcumb {
    position: absolute;
    bottom: 4.5rem;
    left: 0;
    width: 100%; }
    .banner-breadcumb-list {
      width: calc(100% - 3rem);
      max-width: 158.5rem;
      margin-left: auto;
      margin-right: auto; }
      .banner-breadcumb-list li {
        margin-right: .5rem; }
        .banner-breadcumb-list li:last-child {
          margin-right: 0; }
        .banner-breadcumb-list li * {
          color: #FFFFFF;
          font-size: 1.6rem;
          font-weight: 500;
          line-height: 175%;
          letter-spacing: 0; }
        .banner-breadcumb-list li a {
          position: relative;
          padding-right: 1.4rem; }
          .banner-breadcumb-list li a::before {
            content: ">";
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%); }
  .banner-desc {
    position: absolute;
    bottom: 10rem;
    left: 23.5rem;
    display: flex;
    flex-flow: column;
    align-items: flex-start; }
    .banner-desc p {
      background: #00192e;
      color: #FFFFFF;
      font-size: 2.4rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0;
      margin-bottom: 1.5rem;
      padding: .1rem 1.2rem;
      animation-name: bgextendAnimeBase;
      animation-duration: 1s;
      animation-fill-mode: forwards;
      overflow: hidden;
      position: relative; }
      .banner-desc p::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background: #00192e;
        pointer-events: none;
        animation-duration: 1s;
        animation-fill-mode: forwards; }
      .banner-desc p.active::before {
        animation-name: bgRLextendAnime; }

.mv {
  position: relative; }
  .mv .cont {
    max-width: 163rem;
    width: calc(100% - 3rem);
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    position: absolute;
    z-index: 2;
    top: 26rem; }
    .mv .cont h3 {
      color: #FFFFFF;
      font-size: 9rem;
      font-weight: 900;
      line-height: 175%;
      letter-spacing: 0; }
    .mv .cont .animated-text {
      display: flex; }
      .mv .cont .animated-text span {
        display: inline-block;
        opacity: 0;
        transform: translateY(100%);
        transition: none; }
    .mv .cont h2 {
      margin-bottom: 2.7rem; }
      .mv .cont h2 img {
        height: 14.3rem;
        margin-left: 0; }
      .mv .cont h2 .img-item {
        margin-right: -1.9rem; }
        .mv .cont h2 .img-item:nth-child(1) {
          margin-right: -2.4rem; }
        .mv .cont h2 .img-item:nth-child(3) {
          margin-right: -0.9rem; }
        .mv .cont h2 .img-item:last-child {
          margin-right: 0; }
      .mv .cont h2 .img-01 {
        margin-right: -1.5rem; }
        .mv .cont h2 .img-01.vz-02 {
          margin-right: -2rem; }
        .mv .cont h2 .img-01.vz-03 {
          margin-right: -2.5rem; }
      .mv .cont h2.vz-test {
        margin-top: -75px; }
    .mv .cont .desc span {
      background: #002745;
      color: #FFFFFF;
      font-size: 3.6rem;
      font-weight: 900;
      line-height: 134%;
      letter-spacing: 0; }
      .mv .cont .desc span:first-child {
        padding-left: 1.6rem; }
      .mv .cont .desc span:last-child {
        padding-right: .6rem; }
      .mv .cont .desc span.vz-01 {
        padding-left: 1rem; }
      .mv .cont .desc span.vz-02 {
        padding-right: .8rem;
        margin-right: .5rem; }
    .mv .cont .desc img {
      height: 4.8rem;
      margin-left: 0; }
  .mv .line {
    width: 204rem;
    height: 30rem;
    position: absolute;
    left: -4rem;
    bottom: 21.7rem;
    z-index: 1;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    animation-delay: 1s; }
    .mv .line .mask {
      opacity: 0 !important;
      -webkit-mask-image: url(../img/top/mv-line.png);
      -webkit-mask-position: left;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-clip: fill-box;
      -webkit-mask-size: 204rem;
      mask-image: url(../img/top/mv-line.png);
      mask-position: left;
      mask-repeat: no-repeat;
      mask-clip: fill-box;
      mask-size: 204rem;
      height: 100%;
      position: relative;
      width: 0;
      animation-direction: normal;
      transition-property: width;
      transition-duration: 0s;
      transition-delay: 5s;
      will-change: width; }
      .mv .line .mask::before {
        display: block;
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: #FFFFFF;
        z-index: 1; }
    .mv .line svg {
      width: 100%;
      height: 100%;
      position: absolute;
      top: .5rem;
      left: -3rem; }
      .mv .line svg .path {
        fill: none;
        stroke: #FFFFFF;
        stroke-miterlimit: 10;
        stroke-width: 4rem;
        stroke-dasharray: 2423;
        stroke-dashoffset: 2423; }
  .mv-list .slick-active .animated-text span {
    animation: textRise 0.5s ease forwards;
    animation-delay: calc(var(--i) * 0.1s); }
  .mv-list .slick-active .line {
    animation: _opacity 1000ms 0s linear forwards; }
    .mv-list .slick-active .line .mask {
      animation: widthAnimation 1800ms 1s linear forwards 1; }
    .mv-list .slick-active .line svg .path {
      animation: draw 3s ease-in-out forwards; }

@keyframes draw {
  to {
    stroke-dashoffset: 0; } }
@keyframes textRise {
  0% {
    opacity: 0;
    transform: translateY(100%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes _opacity {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes widthAnimation {
  0% {
    width: 0;
    transition: width 1.5s cubic-bezier(0.33, 1, 0.68, 1) 2s; }
  100% {
    width: 100%;
    transition: width 1.5s cubic-bezier(0.33, 1, 0.68, 1) 2s; } }
@keyframes heightAnimation {
  0% {
    height: 0;
    transition: width 1.5s cubic-bezier(0.33, 1, 0.68, 1) 2s; }
  100% {
    height: 100%;
    transition: width 1.5s cubic-bezier(0.33, 1, 0.68, 1) 2s; } }
.title-default-01 {
  margin-bottom: 5.8rem; }
  .title-default-01 p {
    color: #284256;
    font-size: 2rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0;
    font-family: "Roboto", sans-serif;
    position: relative;
    padding-bottom: 1.2rem; }
    .title-default-01 p::before {
      content: "";
      position: absolute;
      width: 12.6rem;
      height: 1.5rem;
      background: url(../img/common/icon-03.png) no-repeat center;
      background-size: contain;
      bottom: 0;
      left: -2.3rem; }
  .title-default-01 :is(h2, h3, h4, h5, h6) {
    color: #284256;
    font-size: 4rem;
    font-weight: 500;
    line-height: 130%;
    letter-spacing: 0.8rem; }
  .title-default-01.vz-02 p {
    padding-left: 2.5rem;
    margin-bottom: 1.7rem; }
    .title-default-01.vz-02 p::before {
      left: .5rem; }
.title-default-02 {
  display: flex;
  align-items: flex-start; }
  .title-default-02 .item {
    background: #00192e;
    writing-mode: vertical-lr;
    word-break: keep-all;
    margin-right: 5.2rem;
    padding: 4rem 0 2rem;
    min-height: 30rem;
    word-break: keep-all;
    position: relative;
    display: inline-block;
    animation-name: bgextendAnimeBase;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    overflow: hidden;
    color: #FFFFFF;
    font-size: 4.5rem;
    font-weight: 500;
    line-height: 167%;
    letter-spacing: 0; }
    .title-default-02 .item::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background: #00192e;
      pointer-events: none;
      animation-duration: 1s;
      animation-fill-mode: forwards; }
    .title-default-02 .item:last-child {
      margin-right: 0; }
    .title-default-02 .item .sub {
      color: #f38f1e; }
      .title-default-02 .item .sub.vz-02 {
        font-size: 4rem;
        line-height: 114%;
        writing-mode: initial; }
  .title-default-02.active .item::before {
    animation-name: bgRLextendAnimeY; }
.title-default-03 {
  display: block; }
  .title-default-03 span {
    display: block; }
  .title-default-03 .en {
    color: #FFFFFF;
    font-size: 2rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0;
    font-family: "Roboto", sans-serif;
    position: relative;
    padding-bottom: 1rem; }
    .title-default-03 .en::before {
      content: "";
      position: absolute;
      width: 15rem;
      height: 1.9rem;
      bottom: 0;
      left: 0;
      background: url(../img/common/icon-05.png) no-repeat center;
      background-size: contain; }
  .title-default-03 .jp {
    color: #FFFFFF;
    font-size: 5rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 1rem; }

.top_thoughts-gp-box:first-child {
  width: 55rem;
  padding-top: 7rem; }
.top_thoughts-gp-box:last-child {
  width: calc(100% - 55rem + 13rem);
  margin-right: -13rem; }
  .top_thoughts-gp-box:last-child img {
    width: 100%; }
.top_thoughts-gp-box .txt-desc p {
  padding-right: 1rem; }
.top_thoughts-01 {
  padding: 17.3rem 0 2.9rem;
  background: url(../img/top/thoughts-bg.jpg) no-repeat center bottom;
  background-size: cover;
  position: relative; }
  .top_thoughts-01 .line {
    width: 60rem;
    height: 49.2rem;
    position: absolute;
    left: 30rem;
    bottom: -26.7rem;
    z-index: 1;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    animation-delay: 1s; }
    .top_thoughts-01 .line .mask {
      background: url(../img/top/line-02.png) no-repeat center top;
      background-size: cover; }
    .top_thoughts-01 .line.active {
      animation: _opacity 500ms 1s linear forwards; }
      .top_thoughts-01 .line.active .mask {
        animation: heightAnimation 900ms 1s linear forwards 1; }
.top_thoughts-02 {
  padding: 23.6rem 0 10rem;
  background: url(../img/top/thoughts-bg-02.jpg) no-repeat center;
  background-size: cover; }
.top_thoughts-block {
  width: 50%;
  margin-left: auto;
  margin-bottom: 4.6rem; }
  @media (min-width: 960.5px) {
    .top_thoughts-block .thoughts-title-02 {
      transition: ease all 0.35s 2s; }
    .top_thoughts-block .txt-desc {
      transition: ease all 0.35s 2s; } }

.wow_fade-in {
  opacity: 0;
  transition: ease all 0.35s;
  transition-duration: 2s; }
  .wow_fade-in.animation-active {
    opacity: 1; }

.thoughts-title-01 {
  margin-bottom: 1.2rem; }
  .thoughts-title-01 span {
    color: #FFFFFF;
    font-size: 3.6rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0;
    background: #00192e;
    padding: 0 1.1rem .2rem;
    animation-name: bgextendAnimeBase;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    position: relative;
    overflow: hidden;
    opacity: 0; }
  .thoughts-title-01.active span::before {
    animation-name: bgRLextendAnime;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #00192e;
    pointer-events: none;
    animation-duration: 1s;
    animation-fill-mode: forwards; }
.thoughts-title-02 {
  color: #284256;
  font-size: 5rem;
  font-weight: 500;
  line-height: 145%;
  letter-spacing: 0;
  display: flex; }
  .thoughts-title-02 .item {
    display: inline-block;
    opacity: 0;
    transform: translateY(100%);
    transition: none; }
  .thoughts-title-02.active .item {
    animation: textRise 0.5s ease forwards;
    animation-delay: calc(var(--i) * 0.1s); }
  .thoughts-title-02 .sub {
    color: #f38f1e; }
  .thoughts-title-02.vz-02 {
    margin-bottom: 2.4rem; }
.thoughts-slide {
  overflow: hidden; }
  .thoughts-slide-gp {
    display: flex;
    width: max-content;
    position: relative; }
  .thoughts-slide-list {
    display: grid;
    grid-template-columns: 53.2rem 58rem 85.2rem 53.2rem 58rem 85.2rem 53.2rem 58rem 85.2rem;
    backface-visibility: hidden; }
    .thoughts-slide-list li {
      margin-right: 3.3rem; }
      .thoughts-slide-list li:nth-child(3n-1) {
        margin-top: 15rem; }
      .thoughts-slide-list li:nth-child(3n-2) {
        margin-top: 26.4rem; }
    .thoughts-slide-list.vz-01 {
      animation: loopSlide1 160s -80s linear infinite; }
    .thoughts-slide-list.vz-02 {
      animation: loopSlide2 160s linear infinite; }

@keyframes bgextendAnimeBase {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes bgRLextendAnime {
  0% {
    transform-origin: right;
    transform: scaleX(0); }
  50% {
    transform-origin: right;
    transform: scaleX(1); }
  50.001% {
    transform-origin: left; }
  100% {
    transform-origin: left;
    transform: scaleX(0); } }
@keyframes bgRLextendAnimeY {
  0% {
    transform-origin: top;
    transform: scaleY(0); }
  50% {
    transform-origin: top;
    transform: scaleY(1); }
  50.001% {
    transform-origin: bottom; }
  100% {
    transform-origin: bottom;
    transform: scaleY(0); } }
@keyframes loopSlide1 {
  0% {
    transform: translate(100%); }
  to {
    transform: translate(-100%); } }
@keyframes loopSlide2 {
  0% {
    transform: translate(0); }
  to {
    transform: translate(-200%); } }
.txt-desc p {
  color: #333333;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 195%;
  letter-spacing: 0;
  font-feature-settings: normal; }

.btn-default-01 a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 6.7rem;
  color: #FFFFFF;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 175%;
  letter-spacing: 0;
  background: #284256;
  border: #c8c8c8 solid 1px;
  transition: all 0.35s; }
  .btn-default-01 a span {
    position: relative;
    padding-right: 3.8rem; }
    .btn-default-01 a span::before {
      content: "";
      position: absolute;
      width: 2.4rem;
      height: 2rem;
      top: 50%;
      right: 0;
      transform: translateY(-50%);
      -webkit-mask: url(../img/common/icon-right-02.png) center/100% no-repeat;
      mask: url(../img/common/icon-right-02.png) center/100% no-repeat;
      background: #FFFFFF;
      transition: all 0.35s; }
  .btn-default-01 a:hover {
    background: #FFFFFF;
    color: #284256; }
    .btn-default-01 a:hover span::before {
      background: #284256; }
.btn-default-02 a {
  display: flex;
  height: 8.2rem;
  align-items: center;
  justify-content: center;
  width: 22.6rem;
  margin-left: auto;
  margin-right: auto;
  background: #284256;
  border: #284256 solid 1px;
  border-radius: 8.2rem;
  transition: ease all 0.35s; }
  .btn-default-02 a .txt {
    color: #FFFFFF;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0; }
  .btn-default-02 a .icon {
    width: 5.2rem;
    height: 5.2rem;
    border-radius: 100%;
    background: #FFFFFF;
    position: relative;
    margin-left: 3.4rem; }
    .btn-default-02 a .icon::before {
      content: "";
      position: absolute;
      width: 2.4rem;
      height: 2.1rem;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      -webkit-mask: url(../img/common/icon-right-01.png) center/100% no-repeat;
      mask: url(../img/common/icon-right-01.png) center/100% no-repeat;
      background: #284256; }
  .btn-default-02 a:hover {
    background: #FFFFFF; }
    .btn-default-02 a:hover .txt {
      color: #284256; }
    .btn-default-02 a:hover .icon {
      background: #284256; }
      .btn-default-02 a:hover .icon::before {
        background: #FFFFFF; }

.top_news {
  padding: 18rem 0; }
  .top_news-gp-box:first-child {
    width: 32.5rem;
    padding-right: 10.8rem; }
  .top_news-gp-box:last-child {
    width: calc(100% - 32.5rem); }
  .top_news .title-default-01 {
    margin-bottom: 3.2rem; }

.news-list-01 li {
  display: flex;
  flex-wrap: wrap;
  border-bottom: #e2e2e2 solid 1px;
  padding-top: 1rem;
  padding-bottom: 1rem; }
  .news-list-01 li:first-child {
    border-top: #e2e2e2 solid 1px; }
  .news-list-01 li .img {
    width: 27.7rem; }
    .news-list-01 li .img img {
      width: 100%; }
  .news-list-01 li .head {
    margin-bottom: 1.4rem; }
  .news-list-01 li .cont {
    padding-top: 2.8rem;
    padding-left: 4.8rem;
    width: calc(100% - 27.7rem); }
    .news-list-01 li .cont .date {
      color: #333333;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0; }
    .news-list-01 li .cont .catName {
      color: #37c1bb;
      font-size: 1.6rem;
      font-weight: 700;
      line-height: 175%;
      letter-spacing: 0;
      border: #37c1bb solid 1px;
      padding: .2rem .6rem;
      margin-left: 1rem; }
    .news-list-01 li .cont .title {
      color: #284256;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0; }

.news-cate-list-01 li {
  margin-bottom: 2.5rem; }
  .news-cate-list-01 li a {
    color: #37c1bb;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 175%;
    letter-spacing: 0;
    border: #c8c8c8 solid 1px;
    display: flex;
    width: 100%;
    height: 6.7rem;
    align-items: center;
    justify-content: center;
    transition: ease all 0.35s; }
    .news-cate-list-01 li a.active, .news-cate-list-01 li a:hover {
      background: #37c1bb;
      border-color: #37c1bb;
      color: #FFFFFF; }
.news-cate-list-01.vz-02 li {
  margin-right: 1.5rem; }
  .news-cate-list-01.vz-02 li a {
    padding: 0 1.5rem;
    min-width: 20rem; }
  .news-cate-list-01.vz-02 li:last-child {
    margin-right: 0; }

.page_news {
  padding: 18rem 0 20rem; }
  .page_news_single .date {
    color: #333333;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0; }
  .page_news_single .cate a {
    color: #37c1bb;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 175%;
    letter-spacing: 0;
    border: #37c1bb solid 1px;
    padding: .2rem .6rem;
    margin-left: 1rem; }
  .page_news_single-head {
    margin-bottom: 4rem; }
    .page_news_single-head .title {
      margin-top: 1.5rem;
      color: #37c1bb;
      font-size: 2.6rem;
      font-weight: 700;
      line-height: 175%;
      letter-spacing: 0; }
  .page_news_single .thumbnail {
    margin-bottom: 2rem; }
  .page_news_single-main {
    margin-bottom: 5rem; }
    .page_news_single-main ul, .page_news_single-main ol {
      margin-bottom: 2rem; }
    .page_news_single-main blockquote {
      background: #f0f0f0;
      padding: 1.5rem;
      border-radius: 1.5rem; }
    .page_news_single-main :is(p, blockquote, li, a) {
      color: #000000;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0; }
    .page_news_single-main :is(blockquote, li, a) {
      margin-bottom: 1.5rem; }
    .page_news_single-main :is(h1, h2, h3, h4, h5, h6) {
      font-weight: 700;
      line-height: 130%;
      margin-bottom: 1.5rem; }
    .page_news_single-main a {
      color: #00aed5;
      transition: all 0.35s;
      display: inline-block;
      position: relative; }
      .page_news_single-main a::before {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: .1rem;
        background: #00aed5;
        transition: all 0.35s; }
      .page_news_single-main a:hover::before {
        width: 0; }
    .page_news_single-main h1 {
      font-size: 2.7rem; }
    .page_news_single-main h2 {
      font-size: 2.5rem; }
    .page_news_single-main h3 {
      font-size: 2.3rem; }
    .page_news_single-main h4 {
      font-size: 2.1rem; }
    .page_news_single-main h5 {
      font-size: 1.9rem; }
    .page_news_single-main h6 {
      font-size: 1.7rem; }

.top_service {
  background: #d9f2f0;
  position: relative;
  overflow: hidden;
  padding-bottom: 18rem;
  z-index: 0; }
  .top_service::before {
    content: "";
    position: absolute;
    width: 75rem;
    height: 42.9rem;
    top: 0;
    left: 0;
    z-index: -1;
    background: url(../img/top/service-icon-01.png) no-repeat center;
    background-size: contain; }
  .top_service::after {
    content: "";
    position: absolute;
    width: 75.2rem;
    height: 44.4rem;
    bottom: 0;
    left: 0;
    z-index: -1;
    background: url(../img/top/service-icon-02.png) no-repeat center;
    background-size: contain; }
  .top_service .icon-03 {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: -1;
    background: url(../img/top/service-icon-03.png) no-repeat center;
    background-size: contain;
    width: 69.3rem;
    height: 43.4rem; }
  .top_service-gp-item:first-child {
    width: 43rem;
    padding-right: 6rem;
    padding-top: 3.2rem; }
  .top_service-gp-item:last-child {
    width: calc(100% - 43rem + 23.5rem);
    margin-right: -23.5rem; }
  .top_service-gp-item .title-default-01 {
    margin-bottom: 2.1rem; }
  .top_service-gp-item .img {
    position: relative;
    z-index: 0; }
    .top_service-gp-item .img::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 31.8rem;
      bottom: 0;
      left: 0;
      background: linear-gradient(180deg, rgba(217, 242, 240, 0) 0%, #d9f2f0 50%); }
  .top_service-gp-box {
    width: calc((100% - 1.301rem) / 2);
    margin-right: 1.3rem; }
    .top_service-gp-box:nth-child(2n) {
      margin-right: 0; }
    .top_service-gp-box .cont {
      margin-top: -7rem;
      background: #33b3ad;
      padding: 0 4rem 9.5rem;
      position: relative;
      z-index: 0; }
      .top_service-gp-box .cont::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 9rem;
        top: -9rem;
        left: 0;
        background: linear-gradient(180deg, rgba(217, 242, 240, 0) 0%, #33b3ad 100%); }
      .top_service-gp-box .cont .txt-desc {
        padding-left: 5.2rem;
        padding-right: 6.5rem; }
    .top_service-gp-box.vz-02 .cont {
      background: #2ba3b9; }
      .top_service-gp-box.vz-02 .cont::before {
        background: linear-gradient(180deg, rgba(217, 242, 240, 0) 0%, #2ba3b9 100%); }
  .top_service-gp .title-default-02 {
    position: absolute;
    top: 10rem;
    right: 15rem;
    z-index: 1; }
  .top_service-gp.vz-02 {
    margin-bottom: 8.4rem;
    margin-top: -2rem;
    position: relative;
    z-index: 1; }
  .top_service-title-01 {
    padding-bottom: 1.5rem;
    margin-bottom: 2.8rem;
    border-bottom: #FFFFFF solid 1px; }
    .top_service-title-01 .img {
      width: 11.5rem; }
      .top_service-title-01 .img img {
        width: 100%; }
    .top_service-title-01 .txt {
      padding-left: 2.5rem;
      width: calc(100% - 11.5rem);
      color: #FFFFFF;
      font-size: 5rem;
      font-weight: 500;
      line-height: 150%;
      letter-spacing: 0.9rem; }

.top_works {
  padding: 18rem 0 15.5rem; }
  .top_works-gp {
    margin-bottom: 4.7rem; }
    .top_works-gp-item:first-child {
      width: 40.5rem;
      position: relative;
      z-index: 0; }
      .top_works-gp-item:first-child::before {
        content: "";
        position: absolute;
        width: 53.4rem;
        height: 46.5rem;
        background: url(../img/top/works-icon-01.png) no-repeat center;
        background-size: contain;
        bottom: -11.4rem;
        left: -16rem;
        z-index: -1; }
      .top_works-gp-item:first-child .title-default-01 {
        margin-bottom: 4.6rem; }
    .top_works-gp-item:last-child {
      width: calc(100% - 40.5rem); }
    .top_works-gp-box {
      width: calc(100% / 2);
      display: block;
      position: relative;
      z-index: 0; }
      .top_works-gp-box::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background: #000000;
        opacity: 0.4;
        z-index: 1;
        pointer-events: none; }
      .top_works-gp-box .cont {
        position: absolute;
        bottom: 0;
        left: 0;
        z-index: 2;
        padding: 3.8rem 4.5rem; }
  .top_works-list .item .txt {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 10.8rem;
    height: 4.9rem;
    text-align: center;
    color: #FFFFFF;
    font-size: 2rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0;
    font-family: "Roboto", sans-serif;
    display: flex;
    align-items: center;
    justify-content: center; }
    .top_works-list .item .txt::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      z-index: -1;
      -webkit-mask: url(../img/top/works-icon-02.png) center/100% no-repeat;
      mask: url(../img/top/works-icon-02.png) center/100% no-repeat;
      background: #333333; }
  .top_works-list .item.vz-02 .txt::before {
    background: #00eaf4; }
  .top_works-01 {
    margin-bottom: 11.5rem; }
    .top_works-01 .txt-desc {
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 2rem;
      width: 100%;
      max-width: 71rem; }
    .top_works-01 .title-default-02 .item {
      padding-top: 1.7rem; }

.top_recruit {
  position: relative; }
  .top_recruit .cont {
    position: absolute;
    top: 0;
    right: 0;
    width: 81.5rem; }
  .top_recruit .detail {
    background: #FFFFFF;
    padding: 9.3rem 23rem 10rem 11rem; }
    .top_recruit .detail .title-default-01 {
      margin-bottom: 2.4rem;
      margin-left: 7.5rem; }
    .top_recruit .detail .btn-default-02 a {
      margin-left: 7.5rem; }
  .top_recruit .txt-desc {
    margin-bottom: 2.5rem; }
  .top_recruit .title-default-02 {
    margin-top: -4.2rem;
    margin-bottom: 18rem;
    margin-left: 14rem; }
    .top_recruit .title-default-02 .item {
      padding: 1.7rem 0 2rem; }
  .top_recruit-desc {
    padding: 9.6rem 0 6.8rem; }
    .top_recruit-desc .txt-desc p {
      font-size: 1.3rem; }

.pagerDsp {
  margin-top: 5rem; }
  .pagerDsp a {
    padding: 0 1.5rem;
    transition: ease all 0.35s; }
    .pagerDsp a.current, .pagerDsp a:hover {
      color: #37c1bb; }
  .pagerDsp .btnarrow {
    display: none; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .txt-desc p {
    font-size: 2.4rem; }

  .btn-default-01 a {
    font-size: 2.4rem; }
  .btn-default-02 a {
    width: 26rem; }
    .btn-default-02 a .txt {
      font-size: 2.4rem; }

  .banner-breadcumb-list li * {
    font-size: 2.4rem; }

  .news-cate-list-01 li a {
    font-size: 2.4rem; }

  .news-list-01 li .cont .title, .news-list-01 li .cont .date, .news-list-01 li .cont .catName {
    font-size: 2.4rem; } }
@media (max-width: 960px) {
  .is-home [class*="grid"] {
    padding-left: 3rem;
    padding-right: 3rem; }

  .banner-head {
    padding-left: 1.5rem;
    min-width: 18rem;
    height: 11rem;
    padding-right: 1.5rem;
    padding-top: 1.5rem; }
    .banner-head p {
      font-size: 1.4rem; }
      .banner-head p::before {
        width: 7rem;
        height: .8rem; }
    .banner-head h2 {
      font-size: 3rem; }
  .banner-img img {
    height: 35rem;
    object-fit: cover; }
  .banner-desc {
    position: relative;
    bottom: 0;
    left: 0;
    margin-top: 2rem;
    padding: 0 1.5rem; }
    .banner-desc p {
      font-size: 1.5rem;
      margin-bottom: .8rem; }
    .banner-desc .u-sp {
      display: flex;
      flex-flow: column;
      align-items: flex-start; }
  .banner-breadcumb {
    bottom: 1.5rem; }
    .banner-breadcumb.vz-02 {
      bottom: 17rem; }

  .title-default-01 {
    margin-bottom: 3rem; }
    .title-default-01.vz-02 p {
      margin-bottom: 1rem; }
  .title-default-02 .item {
    font-size: 3.5rem;
    padding: 2.7rem .8rem;
    min-height: auto;
    display: flex;
    align-items: center;
    max-width: 5.7rem; }
  .title-default-03 .en::before {
    width: 12.6rem;
    height: 1.6rem; }
  .title-default-03 .jp {
    font-size: 4rem;
    letter-spacing: .8rem;
    line-height: 130%; }

  .btn-default-01 a {
    max-width: 21.6rem;
    margin-left: auto;
    margin-right: auto; }

  .mv .cont {
    top: 23.5rem;
    width: calc(100% - 5rem); }
    .mv .cont h2 {
      margin-bottom: 1.2rem; }
      .mv .cont h2 .img-item {
        margin-right: -0.9rem; }
        .mv .cont h2 .img-item:nth-child(1) {
          margin-right: -1.2rem; }
        .mv .cont h2 .img-item:nth-child(3) {
          margin-right: -0.5rem; }
      .mv .cont h2 .img-01 {
        margin-right: -0.7rem; }
        .mv .cont h2 .img-01.vz-02 {
          margin-right: -0.8rem; }
        .mv .cont h2 .img-01.vz-03 {
          margin-right: -1.1rem; }
      .mv .cont h2 img {
        height: 6.3rem; }
    .mv .cont h3 {
      font-size: 4rem; }
    .mv .cont .desc span {
      font-size: 1.6rem; }
      .mv .cont .desc span:first-child {
        padding-left: .8rem; }
      .mv .cont .desc span:last-child {
        padding-right: .5rem; }
      .mv .cont .desc span.vz-01 {
        padding-left: .5rem; }
      .mv .cont .desc span.vz-02 {
        padding-right: .5rem;
        margin-right: .2rem; }
    .mv .cont .desc img {
      height: 2.2rem; }
  .mv .line {
    height: 15.1rem;
    width: 102rem;
    left: -29rem;
    bottom: 13.7rem; }
    .mv .line .mask {
      mask-size: 102rem; } }
@media (max-width: 960px) and (min-width: 767.5px) {
  .mv .cont {
    top: 10rem; }
  .mv .line {
    left: -11rem;
    bottom: 8rem; }
  .mv-list .slick-slide img {
    height: 50rem;
    object-fit: cover; } }

@media (max-width: 960px) {
  .top_thoughts-01 {
    padding: 9.3rem 0 14.5rem;
    background-image: url(../img/top/thoughts-bg-sp.png); }
    .top_thoughts-01 .line {
      display: none; }
  .top_thoughts-02 {
    padding: 6.2rem 0 8rem;
    background-image: url(../img/top/thoughts-bg-02-sp.png); }
  .top_thoughts-block {
    width: 100%;
    margin-bottom: 6.6rem; }
    .top_thoughts-block .thoughts-title-02 {
      line-height: 162%;
      flex-wrap: wrap; }
      .top_thoughts-block .thoughts-title-02.active .item {
        animation: textRise 0.5s ease forwards;
        animation-delay: calc(var(--i) * 0.05s); }
      .top_thoughts-block .thoughts-title-02.vz-02 {
        margin-bottom: 1.7rem; }
    .top_thoughts-block .txt-desc {
      padding-right: 1.2rem; }
  .top_thoughts-gp-box:first-child {
    padding-top: 0;
    width: 100%;
    margin-bottom: 5rem; }
  .top_thoughts-gp-box:last-child {
    margin-left: -1.6rem;
    width: calc(100% + 16px + 1.9rem);
    margin-right: -1.9rem; }
  .top_thoughts-gp-box .txt-desc p {
    padding-right: 1rem; }

  .thoughts-title-01 {
    margin-bottom: 1.8rem; }
    .thoughts-title-01 span {
      font-size: 3.5rem;
      padding: 0 1.4rem .3rem; }
  .thoughts-title-02 {
    font-size: 3rem;
    line-height: 168%; }
  .thoughts-slide-list {
    grid-template-columns: 44.5rem 54.4rem 68rem 44.5rem 54.4rem 68rem 44.5rem 54.4rem 68rem; }
    .thoughts-slide-list li {
      margin-right: 3rem; }

  .top_news {
    padding: 5rem 0 6rem; }
    .top_news-gp-box:first-child, .top_news-gp-box:last-child {
      width: 100%; }
    .top_news-gp-box:first-child {
      padding-right: 3.8rem;
      padding-left: 3.8rem; }

  .news-cate-list-01 li {
    width: calc((100% - 1.501rem) / 2);
    margin-bottom: 1.5rem; }
    .news-cate-list-01 li:nth-child(2n) {
      margin-right: 0; }
    .news-cate-list-01 li a {
      height: 6rem; }
  .news-cate-list-01.vz-02 li a {
    min-width: auto; }
  .news-list-01 {
    margin-bottom: 4.8rem; }
    .news-list-01 li {
      padding: 2rem 0; }
      .news-list-01 li .img {
        width: 100%;
        max-width: 27.7rem;
        margin: 0 auto; }
      .news-list-01 li .cont {
        padding-top: 1.2rem;
        padding-left: 0;
        width: 100%; }
        .news-list-01 li .cont .title {
          line-height: 160%;
          display: inline-block; }

  .page_news {
    padding: 7rem 0; }
    .page_news_single-head .title {
      font-size: 2rem; }
    .page_news_single-main :is(p, blockquote, li, a) {
      font-size: 1.5rem; }
    .page_news_single-main h1 {
      font-size: 2.5rem; }
    .page_news_single-main h2 {
      font-size: 2.3rem; }
    .page_news_single-main h3 {
      font-size: 2.1rem; }
    .page_news_single-main h4 {
      font-size: 1.9rem; }
    .page_news_single-main h5 {
      font-size: 1.7rem; }
    .page_news_single-main h6 {
      font-size: 1.5rem; }

  .top_service {
    padding-bottom: 6rem; }
    .top_service::after, .top_service::before {
      content: none; }
    .top_service .icon-03 {
      display: none; }
    .top_service .grid-1450 {
      padding-left: 0;
      padding-right: 0; }
    .top_service-gp-item:first-child {
      width: 100%;
      order: 1;
      padding: 12.5rem 3rem 3.7rem; }
    .top_service-gp-item:last-child {
      width: 100%; }
    .top_service-gp-item .img::before {
      content: none; }
    .top_service-gp-item .title-default-01 {
      margin-bottom: 3.1rem; }
    .top_service-gp-box {
      width: 100%;
      margin-right: 0; }
      .top_service-gp-box .cont {
        padding: 0 2rem 4.2rem;
        margin-top: -4rem; }
      .top_service-gp-box .cont .txt-desc {
        padding-left: 3rem;
        padding-right: 3.3rem; }
    .top_service-gp .title-default-02 {
      top: 0;
      right: 50%;
      transform: translateX(50%); }
    .top_service-gp.vz-02 {
      margin-top: 0;
      margin-bottom: 5rem; }
    .top_service-title-01 {
      padding-bottom: .8rem;
      margin-bottom: 1.2rem; }
      .top_service-title-01 .img {
        width: 6.2rem; }
      .top_service-title-01 .txt {
        width: calc(100% - 6.2rem);
        font-size: 3rem;
        letter-spacing: .5rem;
        padding-left: 1.3rem; }

  .top_works {
    padding: 4.5rem 0 0;
    margin-bottom: 31.5rem;
    overflow: hidden; }
    .top_works-gp {
      margin-bottom: 2rem; }
      .top_works-gp-item:first-child, .top_works-gp-item:last-child {
        width: 100%; }
      .top_works-gp-item:first-child {
        padding: 51.3rem 5.5rem 0; }
        .top_works-gp-item:first-child::before {
          width: 38rem;
          height: 33.1rem;
          left: 50%;
          transform: translateX(-50%);
          bottom: 24.4rem; }
      .top_works-gp-item:last-child {
        padding: 0 1.3rem; }
      .top_works-gp-box {
        width: 100%;
        margin-bottom: 2.3rem; }
        .top_works-gp-box:last-child {
          margin-bottom: 0; }
        .top_works-gp-box .cont {
          padding: 2.4rem; }
    .top_works-01 {
      margin-bottom: 8.7rem; }
      .top_works-01 .title-default-02 {
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%); }
      .top_works-01 .txt-desc {
        padding-left: 3.5rem;
        padding-right: 4.5rem;
        margin-bottom: 4.5rem; }
    .top_works-list .item .txt {
      font-size: 1.4rem;
      width: 7.2rem;
      height: 3.3rem; }
    .top_works .grid-1450 {
      padding-left: 0;
      padding-right: 0; }

  .top_recruit-desc {
    padding: 4rem 0 .7rem; }
  .top_recruit .detail {
    padding: 5.6rem 3.7rem 7.2rem;
    background: #d9f2f0; }
    .top_recruit .detail .btn-default-02 a {
      margin-left: auto; }
    .top_recruit .detail .title-default-01 {
      margin-left: 1.7rem;
      margin-bottom: 4.2rem; }
  .top_recruit .title-default-02 {
    margin-top: -52.6rem;
    margin-left: 0;
    justify-content: center;
    position: relative;
    top: -15.7rem; }
  .top_recruit .cont {
    position: relative;
    width: 100%; }
  .top_recruit .txt-desc {
    margin-bottom: 4rem; } }
@media (max-width: 767px) {
  .thoughts-slide-list {
    grid-template-columns: 68rem 68rem 68rem 68rem 68rem 68rem 68rem 68rem 68rem; }
    .thoughts-slide-list li:nth-child(3n-1), .thoughts-slide-list li:nth-child(3n-2) {
      margin-top: 0; }
    .thoughts-slide-list li img {
      height: 100%;
      object-fit: cover; }

  .top_thoughts-block .thoughts-title-02 {
    max-width: 29rem; }

  .top_recruit .title-default-02 {
    top: -2.2rem; } }
.recruit-title-01 {
  margin-bottom: 4rem; }
  .recruit-title-01 .txt {
    display: block;
    color: #284256;
    font-size: 5rem;
    font-weight: 500;
    line-height: 135%;
    letter-spacing: 0; }
    .recruit-title-01 .txt.en {
      font-size: 2rem;
      font-family: "Roboto", sans-serif;
      position: relative; }
      .recruit-title-01 .txt.en::before {
        content: "";
        position: absolute;
        width: 21.5rem;
        height: 0.5rem;
        top: 50%;
        transform: translateY(-50%);
        left: -23.6rem;
        background: #37c1bb; }
.recruit-title-02 {
  color: #284256;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0;
  margin-bottom: 1.2rem; }
.recruit-title-03 {
  color: #cee6e4;
  font-size: 12rem;
  font-weight: 900;
  line-height: 120%;
  letter-spacing: 0;
  font-family: "Roboto", sans-serif; }
.recruit-title-04 {
  color: #284256;
  font-size: 3rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0;
  margin-top: .8rem;
  margin-bottom: 2.3rem; }
.recruit-title-05 {
  text-align: center;
  margin-bottom: 3.8rem; }
  .recruit-title-05 span {
    color: #FFFFFF;
    font-size: 4rem;
    font-weight: 500;
    line-height: 150%;
    letter-spacing: 0;
    position: relative;
    padding: 0 5.7rem; }
    .recruit-title-05 span::before {
      content: "";
      position: absolute;
      width: 0.5rem;
      height: 6.2rem;
      top: 0;
      left: 0;
      background: #FFFFFF;
      transform: rotate(-35deg); }
    .recruit-title-05 span::after {
      content: "";
      position: absolute;
      width: 0.5rem;
      height: 6.2rem;
      top: 0;
      right: 0;
      background: #FFFFFF;
      transform: rotate(35deg); }
.recruit-title-06 {
  text-align: center;
  margin-bottom: 1.4rem; }
  .recruit-title-06 span {
    color: #284256;
    font-size: 2.3rem;
    font-weight: 700;
    line-height: 150%;
    letter-spacing: 0;
    background: #FFFFFF;
    padding: .4rem 2.1rem;
    border-radius: 4.3rem; }
.recruit-title-07 {
  position: absolute;
  top: -4rem;
  display: flex;
  align-items: flex-start;
  right: 4.5rem;
  z-index: 1; }
  .recruit-title-07 .item {
    color: #FFFFFF;
    font-size: 2.3rem;
    font-weight: 700;
    line-height: 150%;
    letter-spacing: 0;
    background: #284256;
    writing-mode: vertical-lr;
    margin-right: 1rem;
    padding: .9rem .3rem;
    animation-name: bgextendAnimeBase;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    overflow: hidden;
    position: relative; }
    .recruit-title-07 .item::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background: #284256;
      pointer-events: none;
      animation-duration: 1s;
      animation-fill-mode: forwards; }
    .recruit-title-07 .item:last-child {
      margin-right: 0; }
    .recruit-title-07 .item .sub {
      color: #37c1bb; }
      .recruit-title-07 .item .sub.vz-02 {
        color: #62caf8; }
      .recruit-title-07 .item .sub.vz-03 {
        color: #f7ac3b; }
      .recruit-title-07 .item .sub.vz-04 {
        color: #ddca00; }
  .recruit-title-07.active .item::before {
    animation-name: bgRLextendAnimeY; }
.recruit-table-01 {
  padding: 1rem; }
  .recruit-table-01 table {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse; }
  .recruit-table-01 td {
    color: #333333;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 150%;
    letter-spacing: 0;
    border: #eeeeee solid 1px;
    padding: 1.6rem 3rem; }
    .recruit-table-01 td:first-child {
      width: 47.5rem; }
.recruit-btn-01 {
  position: relative;
  padding-right: 6.8rem;
  margin-top: 2rem;
  color: #284256;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0; }
  .recruit-btn-01 .btn {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 5.2rem;
    height: 5.2rem;
    border-radius: 100%;
    background: #284256; }
    .recruit-btn-01 .btn::before {
      content: "";
      position: absolute;
      width: 2.4rem;
      height: 2rem;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background: url(../img/common/icon-right-02.png) no-repeat center;
      background-size: contain; }

.jon_opening {
  padding: 9.3rem 0 10rem; }
  .jon_opening-gp-item {
    width: 50%;
    background: #f2f2f4; }
    .jon_opening-gp-item:first-child {
      padding: 6rem 7rem 6rem 7.5rem; }
    .jon_opening-gp-item p {
      line-height: 200%; }

.appeal_job {
  padding: 9.6rem 0 10rem;
  background: #d9f2f0;
  overflow: hidden; }
  .appeal_job-gp {
    margin-bottom: 10rem; }
    .appeal_job-gp-item {
      width: 50%; }
      .appeal_job-gp-item:first-child {
        padding-top: 15.3rem;
        padding-left: 7rem;
        padding-right: 6rem; }
      .appeal_job-gp-item:last-child {
        width: calc(50% + 23rem);
        margin-right: -23rem; }
    .appeal_job-gp-left {
      width: 5.4rem;
      text-align: center;
      display: flex;
      align-items: center;
      writing-mode: vertical-lr;
      margin-top: 2.6rem;
      background: url(../img/recruit/recruit-icon-01.png) no-repeat center;
      background-size: cover;
      color: #FFFFFF;
      font-size: 3rem;
      font-weight: 500;
      line-height: 135%;
      letter-spacing: 0;
      padding: 1.3rem 0;
      position: relative;
      animation-name: bgextendAnimeBase;
      animation-duration: 1s;
      animation-fill-mode: forwards;
      overflow: hidden; }
      .appeal_job-gp-left::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background: #00a195;
        pointer-events: none;
        animation-duration: 1s;
        animation-fill-mode: forwards; }
      .appeal_job-gp-left.vz-02 {
        background-image: url(../img/recruit/recruit-icon-02.png); }
        .appeal_job-gp-left.vz-02::before {
          background: #01b6fd; }
      .appeal_job-gp-left.vz-03 {
        background-image: url(../img/recruit/recruit-icon-03.png); }
        .appeal_job-gp-left.vz-03::before {
          background: #fa4087; }
      .appeal_job-gp-left.active::before {
        animation-name: bgRLextendAnimeY; }
    .appeal_job-gp-right {
      padding-left: 5rem;
      width: calc(100% - 5.4rem); }
      .appeal_job-gp-right p {
        letter-spacing: .05rem; }
    @media (min-width: 960.5px) {
      .appeal_job-gp.vz-02 {
        margin-bottom: 0; }
        .appeal_job-gp.vz-02 .appeal_job-gp-item:first-child {
          order: 1;
          padding-top: 7.3rem;
          padding-left: 5.2rem;
          padding-right: 7.5rem; }
        .appeal_job-gp.vz-02 .appeal_job-gp-item:last-child {
          margin-right: 0;
          margin-left: -23rem; }
        .appeal_job-gp.vz-02 .appeal_job-gp-item p {
          letter-spacing: .01rem; }
      .appeal_job-gp.vz-03 {
        margin-bottom: 5rem; }
        .appeal_job-gp.vz-03 .appeal_job-gp-item:first-child {
          padding-top: 7.3rem; } }
  .appeal_job-block {
    padding: 5rem 0;
    position: relative; }
    .appeal_job-block .view img {
      width: 109.3rem;
      display: block;
      margin: 0 auto; }
    .appeal_job-block .img {
      position: absolute;
      right: -6.2rem;
      top: -15.5rem; }
      .appeal_job-block .img img {
        width: 42rem; }
  .appeal_job-field {
    margin-bottom: 5rem; }
    .appeal_job-field-item:first-child {
      width: 57.5rem;
      padding-top: 6rem;
      padding-left: 9.5rem;
      padding-right: 10.5rem;
      background: #FFFFFF; }
    .appeal_job-field-item:last-child {
      width: calc(100% - 57.5rem); }
    .appeal_job-field-item .icon {
      text-align: center; }
      .appeal_job-field-item .icon img {
        width: 16.7rem;
        display: inline-block; }
    .appeal_job-field.vz-02 {
      margin-bottom: 10rem; }
      .appeal_job-field.vz-02 .appeal_job-field-item:first-child {
        padding-top: 8.5rem; }
      .appeal_job-field.vz-02 .appeal_job-field-item:last-child {
        background: #2ba3b9;
        position: relative;
        z-index: 0; }
        .appeal_job-field.vz-02 .appeal_job-field-item:last-child::before {
          content: "";
          position: absolute;
          width: calc(100% - 2rem);
          height: calc(100% - 2rem);
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          background: #FFFFFF;
          z-index: -1; }
      .appeal_job-field.vz-02 .appeal_job-field-item .icon img {
        width: 12.7rem; }
  .appeal_job-box-item {
    width: calc((100% - 9.001rem) / 3);
    margin-right: 4.5rem;
    background: #FFFFFF;
    padding: 9rem 0 6rem; }
    .appeal_job-box-item .img {
      text-align: center;
      margin-bottom: 3rem; }
      .appeal_job-box-item .img img {
        width: 25.5rem; }
      .appeal_job-box-item .img p {
        color: #ff0000;
        font-size: 2rem;
        font-weight: 700;
        line-height: 130%;
        letter-spacing: 0; }
    .appeal_job-box-item .txt-desc {
      padding: 0 4rem; }
    .appeal_job-box-item.vz-02 {
      padding-top: 6.8rem; }
      .appeal_job-box-item.vz-02 .img {
        margin-bottom: 0; }
        .appeal_job-box-item.vz-02 .img img {
          width: 16.3rem; }
    .appeal_job-box-item.vz-03 {
      padding-top: 15.3rem; }
      .appeal_job-box-item.vz-03 .img {
        margin-bottom: 4.5rem; }
    .appeal_job-box-item:nth-child(3n), .appeal_job-box-item:last-child {
      margin-right: 0; }
  .appeal_job .recruit-title-01 {
    margin-bottom: -0.5rem; }

.initiatives {
  padding: 8.7rem 0 9rem;
  background: url(../img/recruit/initiatives-bg-01.jpg) no-repeat center;
  background-size: cover; }
  .initiatives-gp-item {
    width: calc((100% - 1.001rem) / 3);
    margin-right: .5rem; }
    .initiatives-gp-item:nth-child(3n) {
      margin-right: 0; }
    .initiatives-gp-item .img {
      text-align: center;
      margin-bottom: 2rem; }
      .initiatives-gp-item .img img {
        width: 38.5rem; }
    .initiatives-gp-item.vz-02 .img img {
      width: 23.6rem; }
    .initiatives-gp-item .txt-desc {
      padding: 0 5rem; }
      .initiatives-gp-item .txt-desc p {
        color: #284256; }

.recr_interview {
  padding: 9.3rem 0 16rem; }
  .recr_interview-gp-box {
    width: calc((100% - 7.301rem) / 2);
    margin-right: 7.3rem;
    margin-bottom: 8rem;
    position: relative; }
    .recr_interview-gp-box .img {
      margin-bottom: 2.6rem; }
      .recr_interview-gp-box .img img {
        width: 100%; }
    .recr_interview-gp-box:nth-child(2n) {
      margin-right: 0; }

.entry {
  position: relative; }
  .entry::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 76.7rem;
    top: 0;
    left: 0;
    background: url(../img/recruit/recruit-img-15.jpg) top center fixed;
    background-size: cover; }
  .entry .cont {
    position: relative;
    width: 100%;
    padding: 13.3rem 0 36rem;
    top: 0;
    left: 0; }
    .entry .cont p {
      color: #333333;
      font-size: 2rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0;
      text-align: center;
      margin-bottom: 1.6rem; }
      .entry .cont p:last-child {
        margin-bottom: 0; }
  .entry-title-01 {
    position: relative;
    margin-bottom: 4.2rem; }
    .entry-title-01::before {
      content: "";
      position: absolute;
      width: 0.5rem;
      height: 18.5rem;
      top: -21rem;
      left: 50%;
      transform: translateX(-50%);
      background: #37c1bb; }
    .entry-title-01 .txt {
      text-align: center;
      display: block;
      color: #284256;
      font-size: 5rem;
      font-weight: 500;
      line-height: 135%;
      letter-spacing: 0; }
      .entry-title-01 .txt.en {
        font-family: "Roboto", sans-serif;
        font-size: 2rem; }

.page_service-title-01 {
  text-align: center;
  color: #284256;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 135%;
  letter-spacing: 0;
  margin-bottom: 2.5rem; }
.page_service-video {
  margin-bottom: 15rem; }
  .page_service-video-gp {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    max-width: 100rem; }
  .page_service-video video {
    width: 100%;
    vertical-align: top; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .appeal_job-gp-item:last-child {
    width: calc(50% + 24rem);
    margin-right: -24rem; }
  .appeal_job-gp.vz-02 .appeal_job-gp-item:last-child {
    margin-left: -24rem; }
  .appeal_job-block {
    padding: 13rem 0 5rem; }
    .appeal_job-block .img {
      top: -5.5rem; }
  .appeal_job-field-item:first-child {
    padding-top: 3rem; } }
@media (max-width: 960px) {
  .recruit-title-01 .txt {
    font-size: 3rem; }
    .recruit-title-01 .txt.en {
      font-size: 1.6rem; }
  .recruit-title-03 {
    font-size: 7rem; }
  .recruit-title-04 {
    font-size: 2.4rem; }
  .recruit-title-05 span {
    font-size: 2.4rem;
    padding: 0; }
    .recruit-title-05 span::before, .recruit-title-05 span::after {
      content: none; }
  .recruit-title-06 span {
    font-size: 2rem; }
  .recruit-title-07 {
    top: -2rem;
    right: 0; }
    .recruit-title-07 .item {
      font-size: 2rem;
      margin-right: .5rem; }
  .recruit-table-01 td {
    padding: 1rem; }
    .recruit-table-01 td:first-child {
      width: 23rem; }
  .recruit-btn-01 {
    padding-right: 4.5rem; }
    .recruit-btn-01 .btn {
      width: 4rem;
      height: 4rem; }
      .recruit-btn-01 .btn::before {
        width: 1.5rem;
        height: 1.2rem; }

  .jon_opening {
    padding: 7rem 0;
    background: #FFFFFF; }
    .jon_opening-gp-item {
      width: 100%; }
      .jon_opening-gp-item:first-child {
        padding: 1.5rem; }

  .appeal_job {
    padding: 7rem 0; }
    .appeal_job-gp {
      margin-bottom: 5rem; }
      .appeal_job-gp-item {
        width: 100%; }
        .appeal_job-gp-item:first-child {
          padding: 1.5rem 0; }
        .appeal_job-gp-item:last-child {
          width: 100%;
          margin-right: 0; }
      .appeal_job-gp-left {
        font-size: 2.4rem;
        margin-top: 1.4rem;
        width: 4.5rem; }
      .appeal_job-gp-right {
        padding-left: 1.5rem; }
    .appeal_job-block {
      padding: 20rem 0 5rem; }
      .appeal_job-block .img {
        right: 50%;
        top: 0;
        transform: translateX(50%);
        width: 25rem; }
        .appeal_job-block .img img {
          width: 25rem; }
    .appeal_job-field-item:first-child {
      width: 100%;
      padding: 1.5rem; }
    .appeal_job-field-item:last-child {
      width: 100%; }
    .appeal_job-field-item .icon img {
      width: 12rem; }
    .appeal_job-field.vz-02 {
      margin-bottom: 5rem; }
      .appeal_job-field.vz-02 .appeal_job-field-item:first-child {
        padding-top: 1.5rem; }
      .appeal_job-field.vz-02 .appeal_job-field-item .icon img {
        width: 9rem; }
    .appeal_job-box-item {
      width: 100%;
      margin-right: 0;
      margin-bottom: 1.5rem;
      padding: 4rem 1.5rem; }
      .appeal_job-box-item:last-child {
        margin-bottom: 0; }
      .appeal_job-box-item .img img {
        width: 15rem; }
      .appeal_job-box-item .img p {
        text-align: center; }
      .appeal_job-box-item.vz-02 {
        padding-top: 4rem; }
        .appeal_job-box-item.vz-02 .img img {
          width: 13rem; }
      .appeal_job-box-item.vz-03 {
        padding-top: 4rem; }
        .appeal_job-box-item.vz-03 .img {
          margin-bottom: 1rem; }
        .appeal_job-box-item.vz-03 .recruit-title-04 {
          margin-bottom: 0; }

  .initiatives {
    padding: 6rem 0; }
    .initiatives-gp-item {
      width: 100%;
      margin-right: 0;
      margin-bottom: 3rem; }
      .initiatives-gp-item:last-child {
        margin-bottom: 0; }
      .initiatives-gp-item .txt-desc {
        padding: 0; }
        .initiatives-gp-item .txt-desc p {
          color: #FFFFFF; }

  .recr_interview {
    padding: 6rem 0 7rem;
    background: #FFFFFF; }
    .recr_interview-gp-box {
      width: 100%;
      margin-right: 0;
      margin-bottom: 4rem; }
      .recr_interview-gp-box:last-child {
        margin-bottom: 0; }
      .recr_interview-gp-box .img {
        margin-bottom: 1.5rem; }

  .entry::before {
    position: fixed;
    height: 100vh;
    z-index: -1;
    background-attachment: initial; }
  .entry::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    background: #FFF;
    z-index: -1;
    opacity: 0.7; }
  .entry-title-01 {
    margin-bottom: 1rem; }
    .entry-title-01::before {
      height: 8rem;
      top: -10rem; }
    .entry-title-01 .txt {
      font-size: 3.5rem; }
      .entry-title-01 .txt.en {
        font-size: 1.5rem; }
  .entry .img img {
    object-fit: cover;
    height: 45rem; }
  .entry .cont {
    padding: 6rem 0 22rem; }
    .entry .cont p {
      font-size: 1.6rem;
      margin-bottom: 0; }

  .page_service-video {
    margin-bottom: 5rem; }
  .page_service-title-01 {
    margin-bottom: 1.5rem;
    font-size: 2rem; } }
@media (max-width: 767px) {
  .banner-img.vz-02 img {
    object-position: -50rem 0; }

  .recruit-table-01 td:first-child {
    width: 19rem; }

  .top_thoughts-01 {
    background-size: contain; } }
.p_contact {
  padding: 17.8rem 0 25rem; }
  .p_contact-head {
    border-bottom: #cccccc solid 1px;
    padding-bottom: 6.5rem;
    margin-bottom: 3.3rem; }
    .p_contact-head p {
      margin-bottom: 3.7rem; }
      .p_contact-head p:last-child {
        margin-bottom: 0; }
    .p_contact-head .required {
      margin-right: 1.3rem; }
  .p_contact p {
    color: #333333;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 170%;
    letter-spacing: 0; }
  .p_contact .required {
    color: #FFFFFF;
    background: #314a70;
    border-radius: 2.6rem;
    letter-spacing: .8rem;
    padding: .3rem .2rem .4rem .8rem;
    font-size: 1.3rem; }
  .p_contact-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
    margin-bottom: 8.7rem; }
    .p_contact-table td {
      padding: .7rem 0;
      color: #333333;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 170%;
      letter-spacing: 0;
      position: relative; }
      .p_contact-table td:first-child {
        width: 25.5rem; }
    .p_contact-table .required {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      right: 3.5rem;
      line-height: 147%; }
    .p_contact-table tr.vz-02 td {
      padding-top: 4rem;
      padding-bottom: 3.7rem;
      vertical-align: top; }
    .p_contact-table tr.vz-03 td {
      vertical-align: top;
      padding-bottom: 3.2rem; }
    .p_contact-table.confirm td:last-child span {
      border: #cccccc solid 1px;
      display: block;
      padding: .3rem 1.5rem;
      min-height: 3.6rem;
      word-break: break-all; }
  .p_contact .form-input {
    width: 100%;
    height: 3.6rem;
    border: #cccccc solid 1px;
    padding: 1rem 1.5rem;
    font-family: "Noto Sans JP", serif; }
    .p_contact .form-input.error {
      border-color: #F00; }
  .p_contact textarea.form-input {
    height: 35rem; }
  .p_contact .checkbox {
    cursor: pointer;
    position: relative; }
    .p_contact .checkbox input {
      position: absolute;
      top: .5rem;
      left: 0;
      opacity: 0; }
      .p_contact .checkbox input:checked ~ span::after {
        opacity: 1; }
    .p_contact .checkbox span {
      position: relative;
      padding-left: 3rem; }
      .p_contact .checkbox span::before {
        content: "";
        position: absolute;
        width: 1.3rem;
        height: 1.3rem;
        top: .7rem;
        left: 0;
        border: #333333 solid 1px; }
      .p_contact .checkbox span::after {
        content: "";
        position: absolute;
        width: 0.7rem;
        height: 0.7rem;
        top: 1rem;
        left: .3rem;
        background: #333333;
        transition: ease all 0.35s;
        opacity: 0; }
    .p_contact .checkbox.error span::before {
      border-color: #F00; }
  .p_contact-list li {
    position: relative; }
    .p_contact-list li label {
      cursor: pointer; }
    .p_contact-list li input {
      position: absolute;
      top: .7rem;
      left: 0;
      opacity: 0; }
      .p_contact-list li input:checked ~ span::after {
        opacity: 1; }
    .p_contact-list li span {
      position: relative;
      padding-left: 3rem; }
      .p_contact-list li span::before {
        content: "";
        position: absolute;
        width: 1.3rem;
        height: 1.3rem;
        top: .7rem;
        left: 0;
        border: #333333 solid 1px; }
      .p_contact-list li span::after {
        content: "";
        position: absolute;
        width: 0.7rem;
        height: 0.7rem;
        top: 1rem;
        left: .3rem;
        background: #333333;
        transition: ease all 0.35s;
        opacity: 0; }
  .p_contact-btn-gp .p_contact-btn {
    margin-right: 1.5rem; }
    .p_contact-btn-gp .p_contact-btn:last-child {
      margin-right: 0; }
  .p_contact-btn * {
    background: #284256;
    color: #FFFFFF;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0;
    border-radius: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 23.6rem;
    height: 7.7rem;
    border: 0;
    margin-left: auto;
    margin-right: auto;
    border: #284256 solid 1px;
    transition: ease all 0.35s;
    cursor: pointer; }
    .p_contact-btn *:hover {
      background: #FFFFFF;
      color: #284256; }

.form-input-gp .item {
  width: 7.5rem;
  margin-right: 3.5rem;
  position: relative; }
  .form-input-gp .item::before {
    content: "";
    position: absolute;
    width: 1rem;
    height: 0.2rem;
    top: 50%;
    right: -2.4rem;
    background: #333333; }
  .form-input-gp .item:last-child {
    margin-right: 0; }
    .form-input-gp .item:last-child::before {
      content: none; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .p_contact p {
    font-size: 2.4rem; }
  .p_contact .required {
    font-size: 1.8rem; }
  .p_contact .checkbox span::before {
    width: 2rem;
    height: 2rem; }
  .p_contact .checkbox span::after {
    width: 1rem;
    height: 1rem;
    top: 1.1rem;
    left: .5rem; }
  .p_contact-btn * {
    font-size: 2.4rem; }
  .p_contact-table td {
    font-size: 2.4rem; }
    .p_contact-table td:first-child {
      width: 35rem; }
  .p_contact-list li span::before {
    width: 2rem;
    height: 2rem; }
  .p_contact-list li span::after {
    width: 1rem;
    height: 1rem;
    top: 1.1rem;
    left: .5rem; } }
@media (max-width: 960px) {
  .p_contact {
    padding: 8rem 0; }
    .p_contact-head {
      padding-bottom: 3rem;
      margin-bottom: 2rem; }
      .p_contact-head p {
        margin-bottom: 2rem; }
    .p_contact-table {
      margin-bottom: 5rem; }
      .p_contact-table td {
        float: left;
        width: 100%; }
        .p_contact-table td:first-child {
          width: 100%; }
      .p_contact-table tr.vz-02 td {
        padding-top: 2rem;
        padding-bottom: 2rem; }
        .p_contact-table tr.vz-02 td:first-child {
          padding-bottom: 0; }
      .p_contact-table tr.vz-03 td {
        padding-bottom: 1rem; }
        .p_contact-table tr.vz-03 td:last-child {
          padding-bottom: 3rem; }
      .p_contact-table tr.vz-04 td:first-child {
        padding-bottom: 4rem; }
      .p_contact-table .required {
        right: 0; }
    .p_contact-btn-gp .p_contact-btn {
      margin-right: 0;
      margin-bottom: 1.5rem; }
      .p_contact-btn-gp .p_contact-btn:last-child {
        margin-bottom: 0; }
    .p_contact-btn * {
      height: 6rem; }
    .p_contact textarea.form-input {
      height: 25rem; } }
.group_title--style01 :is(h2, h3, h4, h5, h6) {
  display: block;
  text-align: center;
  position: relative;
  padding-top: .7rem;
  color: #284256;
  font-size: 5rem;
  font-weight: 500;
  line-height: 175%;
  letter-spacing: 0rem; }
  .group_title--style01 :is(h2, h3, h4, h5, h6):before {
    content: "";
    width: 9.2rem;
    height: .5rem;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    background-color: #37c1bb; }
.group_title--style02 :is(h2, h3, h4, h5, h6) {
  position: relative;
  padding-top: 1rem;
  color: #333333;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 175%;
  letter-spacing: 0rem; }
.group_title--style02 .number-item {
  display: inline-block;
  color: #333333;
  font-size: 6rem;
  font-weight: 900;
  line-height: 100%;
  letter-spacing: 0rem;
  font-family: "Roboto", sans-serif; }
.group_title--style03 :is(h2, h3, h4, h5, h6) {
  position: relative;
  text-align: center;
  color: #284256;
  font-size: 2rem;
  font-weight: bold;
  line-height: 175%;
  letter-spacing: 0rem; }
.group_title--style04 :is(h2, h3, h4, h5, h6) {
  position: relative;
  text-align: center;
  color: #284256;
  font-size: 6rem;
  font-weight: bold;
  line-height: 175%;
  letter-spacing: 0rem; }
.group_title--style04 img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 4.7rem; }
.group_title--style05 {
  padding-left: 23.5rem;
  position: relative; }
  .group_title--style05::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.3rem;
    width: 21.4rem;
    height: .5rem;
    background-color: #EEEEEE; }
  .group_title--style05 :is(h2, h3, h4, h5, h6) {
    position: relative;
    text-align: left;
    color: #284256;
    font-size: 5rem;
    font-weight: 500;
    line-height: 117%;
    letter-spacing: 0rem; }
  .group_title--style05 p {
    font-family: "Roboto", sans-serif;
    color: #284256;
    font-size: 2rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0rem; }
  .group_title--style05.vs-01 {
    padding-left: 0;
    margin-bottom: 2.8rem; }
    .group_title--style05.vs-01 h4 {
      font-size: 3.6rem; }
    .group_title--style05.vs-01::before {
      content: none; }
.group_title--style06 {
  margin-bottom: 1.3rem;
  padding-top: 9.3rem;
  position: relative; }
  .group_title--style06::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: .2rem;
    height: 10rem;
    z-index: 1;
    transform: translateX(-50%);
    background-color: #EEEEEE; }
  .group_title--style06 :is(h2, h3, h4, h5, h6) {
    position: relative;
    text-align: left;
    writing-mode: vertical-lr;
    color: #ffffff;
    font-size: 6rem;
    font-weight: 700;
    line-height: 117%;
    letter-spacing: 0rem;
    background-color: #00192E;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 2.4rem;
    margin-bottom: 1.1rem;
    padding-top: 2.8rem;
    width: 9.5rem;
    display: flex;
    align-items: center;
    animation-name: bgextendAnimeBase;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    overflow: hidden; }
    .group_title--style06 :is(h2, h3, h4, h5, h6) span {
      color: #F38F1E; }
    .group_title--style06 :is(h2, h3, h4, h5, h6)::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background: #00192e;
      pointer-events: none;
      animation-duration: 1s;
      animation-fill-mode: forwards; }
    .group_title--style06 :is(h2, h3, h4, h5, h6).active::before {
      animation-name: bgRLextendAnimeY; }
  .group_title--style06 p {
    font-family: "Roboto", sans-serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 400;
    line-height: 175%;
    letter-spacing: 0.1rem; }

@media (max-width: 960px) {
  .group_title--style01 :is(h2, h3, h4, h5, h6) {
    padding-top: 1rem;
    font-size: 3rem; }
    .group_title--style01 :is(h2, h3, h4, h5, h6):before {
      width: 4.6rem;
      height: .3rem; }
  .group_title--style02 :is(h2, h3, h4, h5, h6) {
    padding-top: 0.5rem;
    font-size: 2rem; }
  .group_title--style02 .number-item {
    font-size: 4rem; }
  .group_title--style03 :is(h2, h3, h4, h5, h6) {
    font-size: 1.8rem; }
  .group_title--style04 :is(h2, h3, h4, h5, h6) {
    font-size: 3rem; }
  .group_title--style04 img {
    width: 2.4rem; }
  .group_title--style05 {
    padding-left: 3rem; }
    .group_title--style05::before {
      top: 1.2rem;
      width: 2rem;
      height: .2rem; }
    .group_title--style05 :is(h2, h3, h4, h5, h6) {
      font-size: 3rem; }
    .group_title--style05 p {
      font-size: 1.6rem; }
    .group_title--style05.vs-01 {
      margin-bottom: 2.7rem; }
      .group_title--style05.vs-01 h4 {
        font-size: 2.6rem; }
  .group_title--style06 {
    margin-bottom: 1.3rem;
    padding-top: 5rem; }
    .group_title--style06::before {
      height: 6rem; }
    .group_title--style06 :is(h2, h3, h4, h5, h6) {
      font-size: 3rem;
      padding-bottom: 1.5rem;
      margin-bottom: 1.5rem;
      padding-top: 2rem;
      width: 5.5rem; }
    .group_title--style06 p {
      font-size: 1.6rem;
      text-align: center; } }
.page_policy {
  padding-top: 7.9rem;
  padding-bottom: 24.2rem; }

.policy_box {
  padding: 9.2rem 2rem;
  border-bottom: 1px solid #e2e2e2; }
  .policy_box h3 {
    color: #333333;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 175%;
    letter-spacing: 0.06rem;
    margin-bottom: 3.5rem; }
  .policy_box.t-center {
    text-align: center;
    padding-left: 0;
    padding-right: 0; }
  .policy_box:last-child {
    border-bottom: 0;
    padding-bottom: 0; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .policy_box h3 {
    font-size: 2.4rem; } }
@media (max-width: 960px) {
  .page_policy {
    padding-top: 5rem;
    padding-bottom: 11.6rem; }

  .policy_box {
    padding: 4.2rem 1.5rem; }
    .policy_box h3 {
      margin-bottom: 1.2rem; } }
.page_partner {
  padding-top: 17.2rem;
  padding-bottom: 24.7rem; }
  .page_partner--desc {
    width: 100%;
    margin-bottom: 9.2rem;
    text-align: center; }
  .page_partner--entry {
    width: 100%;
    margin-top: 7.5rem;
    text-align: center; }
    .page_partner--entry p {
      font-size: 2.4rem;
      line-height: 130%;
      letter-spacing: .22rem; }
  .page_partner--eligibility {
    margin-bottom: 18rem; }
  .page_partner--benefits {
    margin-bottom: 17.9rem; }

.benefits_box {
  margin-top: 8.2rem; }
  .benefits_box--content {
    width: 100%;
    display: flex;
    align-items: center; }
    .benefits_box--content:nth-child(2n) {
      flex-direction: row-reverse; }
      .benefits_box--content:nth-child(2n) .benefits_box--item {
        width: calc(100% - 96rem); }
        .benefits_box--content:nth-child(2n) .benefits_box--item:last-child {
          width: 96rem;
          display: flex;
          align-items: center;
          justify-content: flex-end;
          padding-left: 0;
          padding-right: 11.5rem; }
  .benefits_box--item {
    width: 96rem; }
    .benefits_box--item:last-child {
      width: calc(100% - 96rem);
      padding-left: 11.5rem; }
    .benefits_box--item > div {
      width: 100%;
      max-width: 52rem; }
    .benefits_box--item .group_title--style02 {
      margin-bottom: 1.8rem; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .page_partner--eligibility .grid-1290 {
    max-width: 180rem; }

  .benefits_box--item:last-child {
    padding-left: 6rem;
    padding-right: 6rem; }
  .benefits_box--item > div {
    max-width: 84rem; }
  .benefits_box--content:nth-child(2n) .benefits_box--item:last-child {
    padding-left: 6rem;
    padding-right: 6rem; } }
.eligibility_grid {
  padding-left: 0;
  padding-right: 0;
  display: flex;
  gap: 7.5rem;
  margin-top: 8.2rem; }
  .eligibility_grid--item {
    background-color: #d9f2f0;
    padding-top: 2.7rem;
    padding-left: 4.2rem;
    padding-right: 4.2rem;
    padding-bottom: 4.7rem; }
    .eligibility_grid--item img {
      display: block;
      margin-left: auto;
      margin-right: auto;
      width: auto;
      height: 21.6rem; }
    .eligibility_grid--item h4 {
      font-size: 2.4rem;
      line-height: 130%;
      letter-spacing: .22rem;
      color: #333333;
      display: block;
      text-align: center;
      font-weight: 500;
      margin-top: 2.2rem; }
    .eligibility_grid--item p {
      text-align: center;
      letter-spacing: 0;
      margin-top: 2.4rem;
      font-feature-settings: normal; }

@media (max-width: 960px) {
  .page_partner {
    overflow: hidden;
    padding-top: 9.1rem;
    padding-bottom: 12.1rem; }
    .page_partner--desc {
      margin-bottom: 4.2rem; }
    .page_partner--entry {
      margin-top: 3.5rem; }
      .page_partner--entry p {
        font-size: 2rem;
        padding-left: 1.5rem;
        padding-right: 1.5rem; }
    .page_partner--eligibility {
      margin-bottom: 10rem; }
    .page_partner--benefits {
      margin-bottom: 9.2rem; }

  .benefits_box {
    margin-top: 4rem; }
    .benefits_box--content {
      flex-wrap: wrap; }
      .benefits_box--content:not(:last-child) {
        margin-bottom: 4.2rem; }
      .benefits_box--content:nth-child(2n) {
        flex-direction: row; }
        .benefits_box--content:nth-child(2n) .benefits_box--item:last-child {
          padding-left: 3rem;
          padding-right: 3rem;
          justify-content: flex-start; }
    .benefits_box--item {
      width: 100% !important; }
      .benefits_box--item img {
        aspect-ratio: 4/2.06; }
      .benefits_box--item:last-child {
        width: 100% !important;
        padding-left: 3rem;
        padding-right: 3rem;
        padding-top: 2rem; }
      .benefits_box--item > div {
        max-width: 52rem; }
      .benefits_box--item .group_title--style02 {
        margin-bottom: 1rem; }

  .eligibility_grid {
    flex-wrap: wrap;
    gap: 3rem;
    margin-top: 4rem; }
    .eligibility_grid--item {
      width: calc(100% - 3rem);
      margin-left: auto;
      margin-right: auto;
      padding: 2.2rem; }
      .eligibility_grid--item img {
        height: 16rem; }
      .eligibility_grid--item h4 {
        font-size: 2rem;
        letter-spacing: .22rem;
        margin-top: 2.2rem; }
      .eligibility_grid--item p {
        margin-top: 1.2rem; } }
.page_download {
  padding-top: 17rem;
  padding-bottom: 25rem; }
  .page_download--desc {
    text-align: center; }
  .page_download--grid {
    max-width: 144.5rem;
    padding-left: 0;
    padding-right: 0;
    margin-left: auto;
    margin-right: auto;
    margin-top: 9.2rem; }
    .page_download--grid > div {
      gap: 9.23rem; }
  .page_download--item a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 29.2rem;
    height: 35.6rem;
    border: 1px solid #e2e2e2;
    padding: 3rem; }
  .page_download--item .img-01 {
    width: 9.8rem; }
  .page_download--item span {
    display: block;
    width: 100%;
    height: 13.7rem;
    text-align: center; }
  .page_download--item .img-02 {
    width: 12.1rem; }
  .page_download--item .group_title--style03 * {
    min-height: 7rem;
    margin-bottom: 1.4rem; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .page_download--grid {
    max-width: 154.5rem; }

  .page_download--grid > div {
    gap: 5rem; }

  .page_download--item {
    width: calc((100% - 15rem) / 4); }

  .page_download--item .group_title--style03 * {
    font-size: 2.5rem;
    margin-bottom: 2.8rem; }

  .page_download--item a {
    width: 100%;
    height: 39rem; } }
@media (max-width: 960px) {
  .page_download {
    padding-top: 9.2rem;
    padding-bottom: 12.5rem; }
    .page_download--grid {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
      margin-top: 4.2rem; }
      .page_download--grid > div {
        gap: 1rem;
        display: grid;
        grid-template-columns: repeat(2, 1fr); }
    .page_download--item a {
      width: auto;
      height: 100%;
      padding: 2rem 1.5rem; }
    .page_download--item .img-01 {
      width: 4.9rem; }
    .page_download--item span {
      height: auto; }
    .page_download--item .img-02 {
      width: 6.05rem; }
    .page_download--item .group_title--style03 * {
      min-height: 6.3rem;
      margin-bottom: 1.4rem; } }
.page_works {
  padding-top: 10rem;
  padding-bottom: 25rem; }
  .page_works--button {
    margin-bottom: 7.2rem; }
  .page_works--pavement {
    width: calc(100% - 3rem);
    max-width: 145rem;
    margin-left: auto;
    margin-right: auto; }
    .page_works--pavement:not(:last-child) {
      margin-bottom: 15.2rem; }
  .page_works--box {
    gap: 10rem 6rem;
    display: grid;
    margin-top: 5rem;
    grid-template-columns: repeat(3, 1fr); }
    .page_works--box img {
      width: 100%;
      display: block;
      vertical-align: top;
      aspect-ratio: 4 / 2.752;
      object-fit: cover; }
    .page_works--box .tag {
      display: inline-flex;
      padding: .85rem 1.1rem;
      align-items: center;
      justify-content: center;
      background-color: #002745;
      gap: 0.8rem;
      margin-bottom: .8rem;
      color: #ffffff;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0rem; }
      .page_works--box .tag img {
        width: 2rem;
        height: auto;
        object-fit: contain;
        aspect-ratio: inherit; }
    .page_works--box---title {
      padding-top: 2.1rem; }
      .page_works--box---title h4,
      .page_works--box---title li {
        color: #333333;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 175%;
        letter-spacing: 0rem; }
      .page_works--box---title h4 {
        display: block;
        width: calc(100% + 2rem);
        margin-top: .4rem; }
      .page_works--box---title ul {
        width: 100%;
        margin-top: .6rem;
        display: flex;
        align-items: center;
        gap: 1rem; }
        .page_works--box---title ul li {
          background-color: #e2e2e2;
          padding: .7rem 1.3rem .8rem 1.3rem;
          line-height: 100%;
          display: flex;
          align-items: center;
          justify-content: center; }

.group-colums {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem; }

.group--button {
  width: 38.3rem;
  height: 10.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #284256;
  padding-left: 5rem;
  border: #284256 solid 1px;
  padding-right: 5rem;
  position: relative;
  color: #ffffff;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 175%;
  letter-spacing: 0rem; }
  .group--button .icon {
    width: 5.2rem;
    height: 5.2rem;
    border-radius: 100%;
    background: #FFFFFF;
    position: absolute;
    right: 2.5rem;
    top: 50%;
    transform: translateY(-50%);
    transition: ease all 0.35s; }
    .group--button .icon::before {
      content: "";
      position: absolute;
      width: 2.4rem;
      height: 1.9rem;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      -webkit-mask: url(../img/common/icon-right-02.png) center/100% no-repeat;
      mask: url(../img/common/icon-right-02.png) center/100% no-repeat;
      background: #284256;
      transition: ease all 0.35s; }
  .group--button:hover {
    background: #FFFFFF;
    color: #284256; }
    .group--button:hover .icon {
      background: #284256; }
      .group--button:hover .icon::before {
        background: #FFFFFF; }
  .group--button img {
    width: 3.5rem; }

.click_plus {
  width: 100%;
  text-align: center;
  margin-top: 10rem; }
  .click_plus img {
    width: 10.3rem;
    vertical-align: top;
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: .2rem; }
  .click_plus p {
    letter-spacing: .13rem;
    display: inline-block;
    padding-bottom: .4rem;
    border-bottom: 1px solid #e2e2e2; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .page_works--box---title h4, .page_works--box---title li, .page_works--box .tag {
    font-size: 2.4rem; }

  .page_works--pavement {
    max-width: 167rem; } }
@media (max-width: 960px) {
  .page_works {
    padding-top: 5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    padding-bottom: 12.5rem;
    overflow: hidden; }
    .page_works--button {
      margin-bottom: 3.5rem; }
      .page_works--button .grid-1100 {
        padding-left: 0;
        padding-right: 0; }
    .page_works--pavement {
      width: 100%; }
      .page_works--pavement:not(:last-child) {
        margin-bottom: 8.6rem; }
    .page_works--box {
      gap: 5rem 0rem;
      margin-top: 2.5rem;
      grid-template-columns: repeat(1, 1fr); }
      .page_works--box .tag {
        margin-bottom: .5rem; }
        .page_works--box .tag span:last-child {
          position: relative;
          top: -1px; }
      .page_works--box---title {
        padding-top: 1.5rem; }
        .page_works--box---title h4 {
          width: 100%;
          margin-top: .4rem;
          -webkit-font-feature-settings: 'palt';
          font-feature-settings: 'palt';
          letter-spacing: 0; }
        .page_works--box---title ul {
          width: 100%;
          margin-top: .6rem;
          gap: 1rem; }

  .group-colums {
    flex-direction: column;
    gap: 1.5rem; }
    .group-colums li {
      width: 100%; }

  .group--button {
    width: 100%;
    height: 7rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    font-size: 2rem; }
    .group--button span {
      display: inline-block;
      line-height: 100%; }
    .group--button img {
      width: 2.5rem; }

  .click_plus {
    margin-top: 5rem; }
    .click_plus img {
      width: 5.15rem;
      margin-bottom: .2rem; }
    .click_plus p {
      padding-top: 0.5rem;
      padding-bottom: .5rem; } }
.page_interview {
  padding-top: 18rem;
  padding-bottom: 25rem; }
  .page_interview-content {
    display: flex;
    margin-bottom: 7.4rem; }
    .page_interview-content:nth-child(3) {
      margin-bottom: 10.8rem; }
    .page_interview-content.last {
      margin-bottom: 18rem; }
      .page_interview-content.last .box:last-child {
        margin-bottom: 0; }
      .page_interview-content.last .max {
        border-bottom: 0;
        padding-bottom: 0; }
  .page_interview--item {
    width: 96rem;
    position: relative; }
    .page_interview--item:first-child {
      padding-top: 4rem; }
    .page_interview--item:nth-child(2) {
      padding-left: 6rem;
      padding-right: 6rem;
      padding-top: 3.1rem;
      width: calc(100% - 96rem); }
      .page_interview--item:nth-child(2) p {
        line-height: 200%;
        text-align: justify; }
    .page_interview--item .max {
      max-width: 67.1rem;
      padding-right: .7rem;
      padding-bottom: 7.4rem;
      border-bottom: 1px solid #e2e2e2; }
      .page_interview--item .max > p > strong {
        font-weight: bold;
        display: block; }
    .page_interview--item .box {
      margin: 2.3rem 0 3.6rem; }
      .page_interview--item .box_text {
        position: absolute;
        right: 15.5rem;
        top: 0;
        z-index: 1;
        display: flex;
        gap: 1rem;
        align-content: space-between;
        justify-content: flex-end;
        flex-direction: row-reverse;
        flex-wrap: nowrap;
        align-items: flex-start; }
      .page_interview--item .box .title {
        color: #284256;
        font-size: 2.3rem;
        font-weight: 700;
        line-height: 175%;
        letter-spacing: 0rem; }
        .page_interview--item .box .title.f5,
        .page_interview--item .box .title span {
          font-family: "Roboto", sans-serif;
          font-weight: 900; }
      .page_interview--item .box p {
        line-height: 200%; }
  .page_interview .group-colums {
    gap: 8.7rem; }
  .page_interview .group--button {
    width: 29.8rem;
    height: 8.2rem;
    border-radius: 8.2rem;
    font-size: 1.6rem;
    padding-left: 5rem;
    padding-right: 2.5rem;
    position: relative; }
    .page_interview .group--button img {
      width: 5.2rem; }

.vertical-text {
  writing-mode: vertical-rl;
  text-orientation: upright;
  color: #ffffff;
  font-size: 2.3rem;
  font-weight: 700;
  padding: .9rem .6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  animation-name: bgextendAnimeBase;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  overflow: hidden;
  position: relative; }
  .vertical-text::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #284256;
    pointer-events: none;
    animation-duration: 1s;
    animation-fill-mode: forwards; }
  .vertical-text span {
    color: #37c1bb; }
    .vertical-text span.vs-01 {
      color: #62caf8; }
    .vertical-text span.vs-02 {
      color: #f7ac3b; }
    .vertical-text span.vs-03 {
      color: #ddca00; }
  .vertical-text.active::before {
    animation-name: bgRLextendAnimeY; }

.box1 {
  background: #284256; }

.box2 {
  background: #284256; }

.box3 {
  background: #284256; }

.box4 {
  background: #284256; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .page_interview--item .max {
    max-width: 80rem; }
  .page_interview--item .box .title {
    font-size: 3rem; }
  .page_interview .group--button {
    font-size: 2.4rem;
    width: 34rem; } }
@media (max-width: 960px) {
  .page_interview {
    padding-top: 10rem;
    padding-bottom: 12.5rem; }
    .page_interview-content {
      flex-wrap: wrap;
      margin-bottom: 4.5rem; }
      .page_interview-content:nth-child(3) {
        margin-bottom: 4.5rem; }
      .page_interview-content.last {
        margin-bottom: 10rem; }
        .page_interview-content.last .box:last-child {
          margin-bottom: 0; }
        .page_interview-content.last .max {
          border-bottom: 0;
          padding-bottom: 0; }
    .page_interview--item {
      width: 100%; }
      .page_interview--item:first-child {
        padding-top: 4rem; }
      .page_interview--item:nth-child(2) {
        padding-left: 3rem;
        padding-right: 3rem;
        padding-top: 3.1rem;
        width: 100%; }
        .page_interview--item:nth-child(2) p {
          line-height: 200%;
          text-align: justify; }
      .page_interview--item .max {
        max-width: 100%;
        padding-right: 0rem;
        padding-bottom: 0;
        border-bottom: 0px solid #e2e2e2; }
      .page_interview--item .box {
        margin: 2.3rem 0 3.6rem; }
        .page_interview--item .box:last-child {
          margin-bottom: 0; }
        .page_interview--item .box_text {
          gap: 0.5rem;
          right: 1rem; }
        .page_interview--item .box .title {
          font-size: 2rem; }
        .page_interview--item .box p {
          line-height: 200%; }
    .page_interview .group-colums {
      gap: 1.5rem; }
    .page_interview .group--button {
      width: 30rem;
      padding-left: 4rem;
      padding-right: 1.5rem;
      margin-left: auto;
      margin-right: auto; }
      .page_interview .group--button img {
        width: 5.2rem; }

  .vertical-text {
    font-size: 1.8rem;
    padding: .9rem .6rem; } }
.page_company--profile {
  padding-top: 17rem;
  padding-bottom: 10rem;
  position: relative; }
  .page_company--profile_box {
    width: 100%;
    display: flex; }
    .page_company--profile_box--item {
      width: 50.5rem; }
      .page_company--profile_box--item:last-child {
        width: calc(100% - 50.5rem); }
.page_company--pro {
  width: 100%;
  max-width: 91.1rem;
  margin-top: 9.2rem;
  display: flex;
  gap: 3.5rem; }
  .page_company--pro---item {
    width: calc((100% - 3.5rem) / 2); }
  .page_company--pro .box_bg {
    width: 100%;
    min-height: 42.7rem;
    padding: 3.5rem 4rem;
    background-color: #eeeeee; }
  .page_company--pro p:not(:last-child) {
    margin-bottom: 3.2rem; }
  .page_company--pro ul li {
    display: flex;
    width: 100%;
    color: #333333;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 195%;
    letter-spacing: 0.089rem; }
    .page_company--pro ul li:not(:last-child) {
      margin-bottom: .2rem; }
    .page_company--pro ul li span {
      width: calc(100% - 24rem); }
      .page_company--pro ul li span:first-child {
        width: 24rem; }
.page_company--table {
  width: 100%;
  max-width: 91.1rem;
  margin-top: 1rem; }
  .page_company--table table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0px; }
  .page_company--table td {
    border: 1px solid #EEEEEE;
    color: #333333;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 195%;
    letter-spacing: 0.1rem;
    vertical-align: middle;
    padding-left: 4rem;
    padding-top: 1.9rem;
    padding-bottom: 1.9rem;
    padding-right: 4rem; }
    .page_company--table td:first-child {
      width: 22.5rem;
      font-weight: bold;
      color: #ffffff;
      padding-left: 3rem;
      background-color: #284256;
      border-top: 1px solid #284256;
      border-left: 1px solid #284256; }
  .page_company--table tr:last-child td:first-child {
    border-bottom: 1px solid #284256; }
.page_company--safety {
  height: 84.2rem;
  width: 100%;
  position: relative;
  background-color: #284256;
  display: flex;
  align-items: center;
  justify-content: center; }
  .page_company--safety .z-index {
    z-index: 2;
    text-align: center;
    position: relative; }
    .page_company--safety .z-index > p {
      font-size: 2.4rem;
      font-weight: bold;
      color: #ffffff;
      text-align: center;
      line-height: 225%; }
      .page_company--safety .z-index > p.vs-bg {
        margin-bottom: 2.4rem;
        background-color: #ffffff;
        color: #002745;
        display: inline-block;
        padding-top: 2px;
        padding-bottom: 4px;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        line-height: 140%;
        margin-left: auto;
        margin-right: auto;
        clip-path: polygon(0.8rem 0, 100% 0%, calc(100% - .8rem) 100%, 0% 100%); }
  .page_company--safety::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); }
.page_company--history {
  padding-top: 17.1rem;
  padding-bottom: 9.2rem;
  display: flex; }
  .page_company--history---item {
    width: 57.3rem; }
    .page_company--history---item:last-child {
      width: calc(100% - 57.3rem); }
  .page_company--history h4 {
    display: block;
    margin-bottom: .7rem;
    color: #284256;
    font-size: 4rem;
    font-weight: 500;
    line-height: 117%;
    letter-spacing: 0rem; }
  .page_company--history ul {
    position: relative; }
    .page_company--history ul::before {
      content: "";
      width: .2rem;
      height: calc(100% - 8.7rem);
      background-color: #284256;
      position: absolute;
      left: .85rem;
      top: 1.5rem; }
  .page_company--history li {
    position: relative;
    padding-left: 7rem; }
    .page_company--history li:not(:last-child) {
      margin-bottom: 8.6rem; }
    .page_company--history li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 1rem;
      width: 1.8rem;
      height: 1.8rem;
      background-color: #284256; }
    .page_company--history li p {
      max-width: 800px; }
.page_company--activities {
  padding-top: 10rem;
  padding-bottom: 10rem;
  background-color: #D9F2F0;
  display: flex; }
  .page_company--activities---item {
    width: 33.2rem; }
    .page_company--activities---item:first-child {
      text-align: right; }
    .page_company--activities---item:last-child {
      width: calc(100% - 33.2rem);
      padding-left: 8rem; }
  .page_company--activities .group_title--style06 {
    display: inline-block;
    padding-bottom: 0;
    margin-bottom: 0;
    padding-top: 3.5rem;
    margin-top: -3.6rem; }
    .page_company--activities .group_title--style06::before {
      height: 4.5rem;
      background-color: #C8C8C8; }
  .page_company--activities ul {
    display: flex;
    gap: 2rem;
    width: 100%;
    max-width: 109.5rem;
    margin-top: 5.2rem; }
    .page_company--activities ul li {
      width: calc((100% - 2rem) / 2); }
  .page_company--activities p.vs-01 {
    font-family: "Roboto", sans-serif;
    color: #2BA3B9;
    font-size: 2rem;
    margin-bottom: .2rem;
    letter-spacing: .018rem;
    margin-top: -1.2rem; }
.page_company--assess {
  padding-top: 17rem;
  padding-bottom: 24rem; }
.page_company--colums {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  margin-top: 3rem; }
  .page_company--colums---item {
    width: calc((100% - 2rem) / 2); }
  .page_company--colums iframe {
    width: 100%;
    height: 36.6rem;
    vertical-align: top;
    border: 0; }
  .page_company--colums .group_title--style02 h4 {
    font-weight: 500;
    padding-top: 3rem;
    padding-bottom: 1.2rem; }

.wrap_txt_po {
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  padding-top: 5rem; }
  .wrap_txt_po .grid-1590 {
    max-width: 161rem;
    margin-left: auto;
    margin-right: auto;
    text-align: right; }
  .wrap_txt_po .title-default-02 {
    justify-content: flex-end; }
    .wrap_txt_po .title-default-02 .item {
      font-size: 3.4rem;
      padding-top: 1rem;
      min-height: auto;
      padding-bottom: 1.5rem; }
      .wrap_txt_po .title-default-02 .item:not(:last-child) {
        margin-right: 4rem; }
      .wrap_txt_po .title-default-02 .item .sub.vz-02 {
        margin-top: -0.3rem;
        font-size: 3.4rem;
        letter-spacing: -0.5rem; }

@media (max-width: 1280px) and (min-width: 960.5px) {
  .page_company--table {
    max-width: 105rem; }
    .page_company--table td {
      font-size: 2.4rem; }
  .page_company--pro {
    max-width: 105rem; }
    .page_company--pro ul li {
      font-size: 2.4rem; }
      .page_company--pro ul li span {
        width: calc(100% - 33rem); }
        .page_company--pro ul li span:first-child {
          width: 33rem; } }
@media (max-width: 960px) {
  .banner {
    overflow: hidden;
    background: #FFFFFF; }

  .page_company {
    overflow: hidden; }
    .page_company--profile {
      padding-top: 9.2rem;
      padding-bottom: 5rem; }
      .page_company--profile_box {
        flex-wrap: wrap; }
        .page_company--profile_box--item {
          width: 100% !important; }
    .page_company--pro {
      max-width: 100%;
      margin-top: 6.5rem;
      flex-wrap: wrap;
      padding-left: 3rem;
      padding-right: 3rem;
      gap: 4.6rem; }
      .page_company--pro---item {
        width: 100%; }
      .page_company--pro .box_bg {
        width: 100%;
        min-height: auto;
        padding: 2rem 3rem; }
      .page_company--pro p:not(:last-child) {
        margin-bottom: 1.5rem; }
      .page_company--pro ul li:not(:last-child) {
        margin-bottom: 0rem; }
      .page_company--pro ul li span {
        width: calc(100% - 22rem); }
        .page_company--pro ul li span:first-child {
          width: 22rem; }
    .page_company--table {
      max-width: 100%;
      margin-top: 1rem;
      padding-left: 3rem;
      padding-right: 3rem;
      margin-top: 3rem; }
      .page_company--table table {
        width: 100%;
        border-collapse: collapse;
        border-spacing: 0px; }
      .page_company--table td {
        width: 100% !important;
        float: left;
        padding: 1rem 1.5rem;
        border: 0px solid #284256; }
        .page_company--table td:first-child {
          padding-left: 1.5rem;
          border: 0px solid #284256; }
        .page_company--table td:last-child {
          padding-bottom: 2rem;
          padding-left: 0;
          padding-right: 0;
          letter-spacing: 0; }
      .page_company--table tr:last-child td:first-child {
        border-bottom: 0px solid #284256; }
    .page_company--safety {
      height: auto;
      padding-top: 5rem;
      padding-bottom: 4.2rem; }
      .page_company--safety .z-index > p {
        font-size: 1.8rem;
        line-height: 195%; }
        .page_company--safety .z-index > p br {
          display: none; }
        .page_company--safety .z-index > p.vs-bg {
          margin-bottom: 1.5rem; }
      .page_company--safety::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5); }
    .page_company--history {
      padding-top: 9.2rem;
      padding-bottom: 4rem;
      flex-wrap: wrap; }
      .page_company--history---item {
        width: 100% !important; }
        .page_company--history---item:last-child {
          padding-left: 3rem;
          padding-right: 3rem;
          margin-top: 2rem; }
      .page_company--history h4 {
        font-size: 2.5rem; }
      .page_company--history ul::before {
        left: .625rem;
        width: .1rem;
        height: calc(100% - 10.7rem); }
      .page_company--history li {
        padding-left: 3.2rem; }
        .page_company--history li:not(:last-child) {
          margin-bottom: 4rem; }
        .page_company--history li::before {
          top: 0.6rem;
          width: 1.3rem;
          height: 1.3rem; }
    .page_company--activities {
      padding-top: 5rem;
      padding-bottom: 5rem;
      flex-wrap: wrap; }
      .page_company--activities---item {
        width: 100% !important; }
        .page_company--activities---item:first-child {
          text-align: left;
          padding-left: 3rem; }
        .page_company--activities---item:last-child {
          padding-left: 3rem;
          padding-right: 3rem;
          margin-top: -23rem; }
      .page_company--activities .group_title--style06 {
        display: inline-block;
        padding-bottom: 0;
        margin-bottom: 0;
        padding-top: 3.5rem; }
        .page_company--activities .group_title--style06::before {
          height: 4.5rem; }
      .page_company--activities ul {
        gap: 1.5rem;
        max-width: 100%;
        margin-top: 2rem;
        flex-wrap: wrap; }
        .page_company--activities ul li {
          width: 100%; }
          .page_company--activities ul li img {
            width: 100%; }
      .page_company--activities p {
        padding-left: 7.3rem; }
        .page_company--activities p.vs-01 {
          text-align: left;
          font-size: 2rem;
          line-height: 150%;
          margin-bottom: 1rem; }
    .page_company--assess {
      padding-top: 9.4rem;
      padding-bottom: 11.4rem; }
    .page_company--colums {
      flex-wrap: wrap;
      gap: 3rem;
      margin-top: 3rem;
      padding-left: 1.5rem;
      padding-right: 1.5rem; }
      .page_company--colums---item {
        width: 100%; }
      .page_company--colums iframe {
        height: 25rem; }
      .page_company--colums .group_title--style02 h4 {
        padding-top: 1.5rem;
        padding-bottom: 0.5rem; }

  .wrap_txt_po {
    padding-top: 3rem; }
    .wrap_txt_po .title-default-02 .item {
      font-size: 2rem;
      padding-top: 1rem;
      padding-bottom: 1.5rem;
      max-width: 4.8rem;
      display: flex;
      align-items: center; }
      .wrap_txt_po .title-default-02 .item .sub.vz-02 {
        font-size: 2rem;
        letter-spacing: 0; }
      .wrap_txt_po .title-default-02 .item:not(:last-child) {
        margin-right: 1rem; } }
.page_service--civil {
  width: 168.5rem;
  margin-left: auto;
  margin-right: 0;
  display: flex;
  margin-bottom: 8.6rem; }
  .page_service--civil h3 {
    position: relative;
    padding-left: 5rem;
    margin-bottom: .8rem;
    color: #284256;
    font-size: 5rem;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0rem; }
    .page_service--civil h3::before {
      content: "";
      position: absolute;
      left: 0;
      top: 50%;
      width: 3.3rem;
      height: .5rem;
      background-color: #37c1bb;
      transform: translateY(-50%); }
  .page_service--civil---item {
    width: 96rem; }
    .page_service--civil---item:first-child {
      width: calc(100% - 96rem);
      padding-right: 10rem;
      padding-top: 7.7rem; }
.page_service .title-center {
  text-align: center;
  display: block;
  color: #284256;
  font-size: 3rem;
  font-weight: 700;
  line-height: 175%;
  letter-spacing: 0rem; }
.page_service-one {
  padding-top: 18rem;
  margin-bottom: 10rem; }
  .page_service-one--process {
    width: 100%;
    max-width: 130.8rem;
    margin-left: auto;
    margin-right: auto; }
    .page_service-one--process_box {
      width: 100%;
      margin-top: 3.7rem; }
      .page_service-one--process_box--item {
        display: flex;
        align-items: center;
        border: 1rem solid #37c1bb;
        width: 100%; }
        .page_service-one--process_box--item:not(:last-child) {
          margin-bottom: 2.5rem; }
        .page_service-one--process_box--item > div {
          width: 65.4rem; }
          .page_service-one--process_box--item > div:first-child {
            padding-left: 7rem;
            padding-right: 9rem;
            width: calc(100% - 65.4rem); }
            @media (max-width: 1280px) and (min-width: 960.5px) {
              .page_service-one--process_box--item > div:first-child {
                padding-left: 4rem;
                padding-right: 4rem; } }
        .page_service-one--process_box--item .title-center {
          text-align: left; }
        .page_service-one--process_box--item .title_process span {
          display: block;
          font-family: "Roboto", sans-serif;
          margin-bottom: 1rem;
          color: #284256;
          font-size: 9.8rem;
          font-weight: 900;
          line-height: 105%;
          letter-spacing: 0rem; }
        .page_service-one--process_box--item img {
          width: 100%;
          height: 36.6rem;
          object-fit: cover; }
          @media (max-width: 1280px) and (min-width: 960.5px) {
            .page_service-one--process_box--item img {
              height: 44rem; } }
.page_service-two {
  padding-bottom: 24.5rem; }
  .page_service-two--examples {
    width: 100%;
    max-width: 168.5rem;
    margin-bottom: 9.2rem;
    margin-left: auto;
    margin-right: 0; }
    @media (min-width: 960.5px) {
      .page_service-two--examples .title-center {
        width: 100%;
        max-width: 145rem;
        margin-left: 0;
        margin-right: auto; } }
    .page_service-two--examples ul {
      width: 100%;
      display: flex;
      gap: 2.5rem;
      align-items: flex-start;
      margin-top: 4rem; }
      @media (min-width: 960.5px) {
        .page_service-two--examples ul {
          max-width: 145rem;
          margin-left: 0;
          margin-right: auto; } }
    .page_service-two--examples h5 {
      text-align: center;
      display: block;
      margin-top: 1.2rem;
      color: #284256;
      font-size: 1.8rem;
      font-weight: 700;
      line-height: 175%;
      letter-spacing: 0rem; }
      @media (max-width: 1280px) and (min-width: 960.5px) {
        .page_service-two--examples h5 {
          font-size: 2.5rem; } }
  .page_service-two--iso {
    width: 168.5rem;
    min-height: 56.8rem;
    padding-top: 10rem;
    padding-bottom: 10rem;
    margin-left: auto;
    margin-right: 0;
    background-color: #284256;
    position: relative;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    align-items: center; }
    .page_service-two--iso h4 {
      margin-top: -1.4rem;
      color: #ffffff;
      font-size: 3rem;
      font-weight: 700;
      line-height: 175%;
      letter-spacing: 0rem; }
    .page_service-two--iso .box {
      display: flex; }
      .page_service-two--iso .box > div {
        width: 23.2rem;
        z-index: 2;
        position: relative; }
        .page_service-two--iso .box > div:first-child {
          text-align: right; }
        .page_service-two--iso .box > div:last-child {
          padding-left: 5.5rem;
          width: calc(100% - 23.2rem); }
        @media (max-width: 1280px) and (min-width: 960.5px) {
          .page_service-two--iso .box > div {
            width: 32.2rem; }
            .page_service-two--iso .box > div:last-child {
              padding-left: 7.5rem;
              width: calc(100% - 32.2rem); } }
    .page_service-two--iso ul {
      width: 100%;
      max-width: 98.5rem;
      margin-top: 7rem; }
      @media (max-width: 1280px) and (min-width: 960.5px) {
        .page_service-two--iso ul {
          max-width: 110.5rem; } }
      .page_service-two--iso ul li {
        width: 100%;
        display: flex;
        align-items: center;
        background-color: #ffffff;
        position: relative;
        padding-top: 2.4rem;
        padding-bottom: 2.4rem; }
        .page_service-two--iso ul li:not(:last-child) {
          margin-bottom: 4rem; }
        .page_service-two--iso ul li strong {
          width: 23rem;
          font-size: 3rem;
          font-weight: bold;
          line-height: 150%;
          padding-left: 4.5rem; }
        .page_service-two--iso ul li p {
          width: calc(100% - 23rem);
          padding-left: 4.5rem;
          padding-right: 7rem; }
        .page_service-two--iso ul li::before {
          content: "";
          position: absolute;
          left: 23rem;
          top: 0;
          width: 1px;
          height: 100%;
          background-color: #333333; }
    .page_service-two--iso::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.4); }
  .page_service-two--colums {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    margin-top: 10rem;
    gap: 8rem; }
    @media (max-width: 1280px) and (min-width: 960.5px) {
      .page_service-two--colums {
        max-width: 168.5rem;
        margin-right: 0; } }
    @media (min-width: 960.5px) {
      .page_service-two--colums {
        max-width: 168.5rem;
        margin-right: 0; } }
    .page_service-two--colums---item {
      width: 68.5rem; }
    .page_service-two--colums h4 {
      display: block;
      margin-top: 3.6rem;
      margin-bottom: 2rem;
      color: #284256;
      font-size: 3rem;
      font-weight: 700;
      line-height: 117%;
      letter-spacing: 0rem; }
    .page_service-two--colums ul {
      display: flex;
      flex-wrap: wrap;
      margin-bottom: -0.3rem; }
      .page_service-two--colums ul li {
        width: 32.2rem;
        display: flex;
        align-items: center;
        margin-bottom: .3rem;
        color: #333333;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 195%;
        letter-spacing: 0.089rem; }
        .page_service-two--colums ul li:nth-child(2n) {
          width: calc(100% - 32.2rem); }
        .page_service-two--colums ul li span {
          width: 20.7rem; }
          .page_service-two--colums ul li span:last-child {
            width: calc(100% - 20.7rem); }
        @media (max-width: 1280px) and (min-width: 960.5px) {
          .page_service-two--colums ul li {
            font-size: 2.4rem;
            width: 100% !important; }
            .page_service-two--colums ul li span {
              width: 40.7rem; }
              .page_service-two--colums ul li span:last-child {
                width: calc(100% - 40.7rem); } }

@media (max-width: 960px) {
  .page_service {
    overflow: hidden; }
    .page_service--civil {
      width: 100%;
      margin-right: auto;
      flex-wrap: wrap;
      position: relative;
      margin-bottom: 8.1rem; }
      .page_service--civil h3 {
        padding-left: 5rem;
        margin-bottom: .8rem;
        font-size: 3rem;
        line-height: 130%;
        margin-bottom: 25.5rem; } }
      @media (max-width: 960px) and (min-width: 767.5px) {
        .page_service--civil h3 {
          margin-bottom: 26.8rem; } }
@media (max-width: 960px) {
        .page_service--civil h3::before {
          height: .2rem; }
      .page_service--civil---item {
        width: 100%; }
        .page_service--civil---item:first-child {
          width: 100%;
          padding-right: 0;
          padding-top: 4.2rem; }
        .page_service--civil---item:last-child {
          position: absolute;
          left: 0;
          top: 11.3rem; }
        .page_service--civil---item p {
          padding-left: 3rem;
          padding-right: 3rem; }
    .page_service .title-center {
      font-size: 2.5rem; }
    .page_service-one {
      padding-top: 5rem;
      margin-bottom: 5rem; }
      .page_service-one--process {
        max-width: 100%;
        padding-left: 2rem;
        padding-right: 2rem; }
        .page_service-one--process_box {
          width: 100%;
          margin-top: 2rem; }
          .page_service-one--process_box--item {
            border: 0.3rem solid #37c1bb;
            flex-wrap: wrap; }
            .page_service-one--process_box--item:not(:last-child) {
              margin-bottom: 2.5rem; }
            .page_service-one--process_box--item > div {
              width: 100%;
              order: 0; }
              .page_service-one--process_box--item > div:first-child {
                padding: 3rem 2rem;
                width: 100%;
                order: 1; }
            .page_service-one--process_box--item .title-center {
              text-align: left;
              margin-bottom: .8rem; }
            .page_service-one--process_box--item .title_process span {
              margin-bottom: 0em;
              font-size: 7rem; }
            .page_service-one--process_box--item img {
              height: auto; }
    .page_service-two {
      padding-bottom: 11.7rem; }
      .page_service-two--examples {
        max-width: 100%;
        margin-bottom: 4.5rem; }
        .page_service-two--examples ul {
          padding-left: 3rem;
          padding-right: 3rem;
          flex-wrap: wrap;
          gap: 3.4rem;
          margin-top: 2.1rem; }
          .page_service-two--examples ul li {
            width: 100%; }
          .page_service-two--examples ul img {
            width: 100%;
            display: block; }
        .page_service-two--examples h5 {
          margin-top: 1.1rem;
          font-size: 1.8rem;
          letter-spacing: .1rem; }
      .page_service-two--iso {
        width: 100%;
        height: auto;
        margin-right: auto;
        padding-top: 5rem;
        padding-left: 2rem;
        padding-right: 2rem;
        padding-bottom: 5rem; }
        .page_service-two--iso h4 {
          margin-top: 0rem;
          font-size: 2.5rem;
          padding-left: 12rem; }
        .page_service-two--iso .box {
          flex-wrap: wrap; }
          .page_service-two--iso .box > div:first-child {
            text-align: left; }
            .page_service-two--iso .box > div:first-child img {
              width: 10rem; }
          .page_service-two--iso .box > div:last-child {
            padding-left: 0;
            padding-right: 0;
            width: 100%;
            margin-top: -13.6rem; } }
          @media (max-width: 960px) and (min-width: 767.5px) {
            .page_service-two--iso .box > div:last-child {
              margin-top: -3.6rem; } }
@media (max-width: 960px) {
        .page_service-two--iso ul {
          max-width: 100%;
          margin-top: 4rem; }
          .page_service-two--iso ul li {
            flex-wrap: wrap;
            padding: 2.5rem; }
            .page_service-two--iso ul li:not(:last-child) {
              margin-bottom: 2rem; }
            .page_service-two--iso ul li strong {
              width: 100%;
              font-size: 2.5rem;
              padding-left: 0rem;
              margin-bottom: 1rem; }
            .page_service-two--iso ul li p {
              width: 100%;
              padding-left: 0rem;
              padding-right: 0rem; }
            .page_service-two--iso ul li::before {
              content: none; }
      .page_service-two--colums {
        max-width: 100%;
        padding-left: 3rem;
        padding-right: 3rem;
        margin-top: 5rem;
        flex-wrap: wrap;
        gap: 4.2rem; }
        .page_service-two--colums---item {
          width: 100%; }
        .page_service-two--colums h4 {
          margin-top: 2.6rem;
          margin-bottom: 1.5rem;
          font-size: 2.5rem; }
        .page_service-two--colums ul {
          margin-bottom: -0.6rem; }
          .page_service-two--colums ul li {
            width: 100%;
            margin-bottom: .6rem; }
            .page_service-two--colums ul li:nth-child(2n) {
              width: 100%; }
            .page_service-two--colums ul li span {
              width: 25rem; }
              .page_service-two--colums ul li span:last-child {
                text-align: right;
                width: calc(100% - 25rem); } }
h1.hide {
  display: none !important; }

/*# sourceMappingURL=style.min.css.map */
