:root {
  --vw: 1vw;
}

/* ---------------------------------------------------------
animation
----------------------------------------------------------*/
.fadeAnimeBefore {
  visibility: hidden;
}

.fadeAnime {
  visibility: visible;
  animation-name: fadeAnime;
}

@keyframes fadeAnime {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0px);
  }
}
@keyframes leftRotateAnime {
  0%, 100% {
    transform: rotate(0deg) translateY(0);
  }
  50% {
    transform: rotate(-20deg) translateY(0);
  }
}
@keyframes rotateAnime {
  0%, 100% {
    transform: rotate(-5deg);
  }
  50% {
    transform: rotate(5deg);
  }
}
@keyframes upAnime {
  from {
    transform: translateY(-5px);
  }
  to {
    transform: translateY(5px);
  }
}
/* ---------------------------------------------------------
body
----------------------------------------------------------*/
body {
  background: url(../img/top/bg_upper.jpg) no-repeat center top;
  background-size: 100% auto;
  padding-top: 11.9791666667%;
}
@media screen and (max-width: 1000px) {
  body {
    padding-top: calc(34.66 * var(--vw));
  }
}

/* ---------------------------------------------------------
header
----------------------------------------------------------*/
header .logo {
  width: 14.0104166667%;
  background-color: transparent;
  padding: 0;
  margin: 0.625% 0 0 3.9583333333%;
}
@media screen and (max-width: 1000px) {
  header .logo {
    position: relative;
    width: calc(34.66 * var(--vw));
    padding-top: calc(5.33 * var(--vw));
    margin: 0 0 0 calc(5.33 * var(--vw));
  }
}
header .logo img {
  width: 100%;
  height: auto;
}
header nav {
  margin: 3.8541666667% 10.78125% 0 0;
}
@media screen and (max-width: 1000px) {
  header nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    padding: calc(15.33 * var(--vw)) calc(8 * var(--vw)) calc(10.66 * var(--vw));
    background-color: #fff;
    margin: 0;
    z-index: 10;
    overflow-y: auto;
    transform: translateY(-100%);
    transition: transform 0.3s ease-in-out;
  }
}
header nav > ul {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 1000px) {
  header nav > ul {
    display: block;
    border-top: 1px solid #ccc;
  }
}
header nav > ul > li {
  margin-right: 17px;
}
@media screen and (max-width: 1000px) {
  header nav > ul > li {
    margin-right: 0;
    border-bottom: 1px solid #ccc;
  }
}
header nav > ul > li a, header nav > ul > li span {
  font-size: 20px;
  font-size: clamp(0.813rem, 0.337rem + 0.76vw, 1.25rem);
  font-weight: bold;
  color: #232323;
}
@media screen and (max-width: 1000px) {
  header nav > ul > li a, header nav > ul > li span {
    display: block;
    font-size: calc(3.46 * var(--vw));
    padding: calc(4.26 * var(--vw)) 0;
  }
}
header nav > ul > li.btn a {
  width: auto;
  height: auto;
  font-size: 20px;
  font-size: clamp(0.813rem, 0.337rem + 0.76vw, 1.25rem);
  padding: 5px 36px;
  border-radius: 15px;
}
@media screen and (max-width: 1000px) {
  header nav > ul > li.btn a {
    padding: calc(1.6 * var(--vw)) calc(13.33 * var(--vw));
    border-radius: 100px;
  }
}
@media screen and (max-width: 1000px) {
  header ul ul li a {
    font-size: calc(3.13 * var(--vw));
    font-weight: bold;
    color: #000;
    padding: calc(2.66 * var(--vw)) calc(4.26 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-kv
----------------------------------------------------------*/
.sec-kv {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.sec-kv::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 73.9583333333%;
  background: url(../img/top/bg_map.png) no-repeat;
  background-size: 100% auto;
  padding-top: 86.5625%;
  margin: 0 0 0 11.6145833333%;
  pointer-events: none;
}
@media screen and (max-width: 1000px) {
  .sec-kv::before {
    width: 100%;
    padding-top: 117.0422535211%;
    margin: calc(-8 * var(--vw)) 0 0;
    opacity: 0.3;
  }
}
.sec-kv .wrapper {
  width: 100%;
  padding: 0 40px;
  box-sizing: border-box;
}
@media screen and (max-width: 1000px) {
  .sec-kv .wrapper {
    padding: 0 calc(16 * var(--vw)) 0 calc(8 * var(--vw));
  }
}
.sec-kv .wrapper .pic {
  padding-top: 0.8854166667%;
  margin-right: 2.8645833333%;
}
@media screen and (max-width: 1000px) {
  .sec-kv .wrapper .pic {
    padding-top: calc(2.66 * var(--vw));
    margin-right: calc(5.33 * var(--vw));
  }

  .sec-kv .wrapper.sp-only .pics-container {
    max-width: 65%;
  }

  .sec-kv .wrapper.sp-only .pic {
    width: 90%!important;
    max-height: 82.88vw;
    height: 100%;
    object-fit: cover;
  }

  .sec-kv .wrapper .pic:first-child{
    margin-left: 0 !important;
  }

  .sec-kv .wrapper.sp-only .pic img {
    width: 100%;
  }
}
.sec-kv .wrapper .pic:first-child {
  margin-left: -8.125%;
}
@media screen and (max-width: 1000px) {
  .sec-kv .wrapper .pic:first-child {
    display: none;
  }
}
@media screen and (max-width: 1000px) {
  .sec-kv .wrapper .pic:nth-child(2) {
    display: none;
  }
}
@media screen and (max-width: 1000px) {
  .sec-kv .wrapper .pic:nth-child(3) {
    width: calc(53.33 * var(--vw));
  }
}
.sec-kv .wrapper .pic:last-child {
  margin-right: -3.28125%;
}
@media screen and (max-width: 1000px) {
  .sec-kv .wrapper .pic:last-child {
    display: none;
  }
}
.sec-kv .wrapper .ttl {
  margin: 0 5.6770833333% 0 2.4479166667%;
}
@media screen and (max-width: 1000px) {
  .sec-kv .wrapper .ttl {
    width: calc(26.66 * var(--vw));
  }
}
.sec-kv .statement {
  width: 39.21875%;
  margin: 9.375% 0 0 50%;
}
@media screen and (max-width: 1000px) {
  .sec-kv .statement {
    width: 100%;
    padding: 0 calc(8 * var(--vw));
    margin: calc(32 * var(--vw)) 0 0;
  }
}
.sec-kv .statement .subttl {
  font-size: 48px;
  font-size: clamp(2.375rem, 1.696rem + 1.09vw, 3rem);
  font-weight: bold;
  line-height: 1.6875;
  letter-spacing: -0.05em;
  position: relative;
  z-index: 9;
}
@media screen and (max-width: 1000px) {
  .sec-kv .statement .subttl {
    font-size: calc(6.4 * var(--vw));
  }
}
.sec-kv .statement .txt1, .sec-kv .statement .txt2 {
  font-size: 24px;
  font-size: clamp(0.875rem, 0.196rem + 1.09vw, 1.5rem);
  line-height: 1.775;
  letter-spacing: -0.05em;
  margin-top: 5.577689243%;
}
@media screen and (max-width: 1000px) {
  .sec-kv .statement .txt1, .sec-kv .statement .txt2 {
    font-size: calc(3.73 * var(--vw));
    margin-top: calc(8 * var(--vw));
  }
}
.sec-kv .statement .txt2 {
  margin-top: 1.8em;
}
.sec-kv .statement .link-detail {
  margin-top: 8.764940239%;
}
@media screen and (max-width: 1000px) {
  .sec-kv .statement .link-detail {
    margin-top: calc(8 * var(--vw));
  }
}
.sec-kv .statement .link-detail a {
  transition: opacity 0.3s;
  display: flex;
  align-items: center;
  font-size: 18px;
  letter-spacing: -0.05em;
}
.sec-kv .statement .link-detail a:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-kv .statement .link-detail a {
    justify-content: flex-end;
    font-size: calc(3.46 * var(--vw));
  }
}
.sec-kv .statement .link-detail a img {
  width: 39px;
  margin-left: 40px;
}
@media screen and (max-width: 1000px) {
  .sec-kv .statement .link-detail a img {
    width: calc(10.4 * var(--vw));
    margin-left: calc(5.33 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-service
----------------------------------------------------------*/
.sec-service {
  width: 78.2291666667%;
  margin: 6.7708333333% 0 0 11.09375%;
}
@media screen and (max-width: 1000px) {
  .sec-service {
    width: 100%;
    padding: 0 calc(8 * var(--vw));
    margin: calc(16 * var(--vw)) 0 0;
  }
}
.sec-service .ttl {
  width: 70.6391478029%;
  padding-bottom: 1.5312916112%;
  border-bottom: 2px solid #5b7e96;
}
@media screen and (max-width: 1000px) {
  .sec-service .ttl {
    width: 100%;
    padding-bottom: calc(3.2 * var(--vw));
  }
}
.sec-service .ttl img {
  width: 40.6220546654%;
}
@media screen and (max-width: 1000px) {
  .sec-service .ttl img {
    width: calc(44.2 * var(--vw));
  }
}
.sec-service .lead {
  width: 70.6391478029%;
  font-size: 20px;
  font-size: clamp(0.813rem, 0.337rem + 0.76vw, 1.25rem);
  letter-spacing: -0.05em;
  line-height: 1.8952380952;
  margin-top: 5.0599201065%;
}
@media screen and (max-width: 1000px) {
  .sec-service .lead {
    width: 100%;
    font-size: calc(3.73 * var(--vw));
    margin-top: calc(9.6 * var(--vw));
  }
}
.sec-service .block {
  margin-top: 14.2476697736%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block {
    margin-top: calc(26.66 * var(--vw));
  }
}
.sec-service .block:nth-child(3) {
  margin-top: 8.3888149134%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block:nth-child(3) {
    margin-top: calc(13.33 * var(--vw));
  }
}
@media print, screen and (min-width: 1001px) {
  .sec-service .block:nth-child(3) .point .item p {
    margin: 12.6436781609% 0 11.4942528736%;
  }
}
.sec-service .block .wrapper {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .wrapper {
    display: block;
  }
}
.sec-service .block .wrapper .pic {
  width: 49.9334221039%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .wrapper .pic {
    width: 100%;
  }
}
.sec-service .block .wrapper .right-col {
  width: 44.207723036%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .wrapper .right-col {
    width: 100%;
  }
}
.sec-service .block .wrapper .right-col .subttl {
  display: inline-block;
  font-size: 58px;
  font-size: clamp(3rem, 2.321rem + 1.09vw, 3.625rem);
  line-height: 1;
  padding-bottom: 1.5060240964%;
  border-bottom: 2px solid #5b7e96;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .wrapper .right-col .subttl {
    font-size: calc(7.73 * var(--vw));
    margin: calc(8 * var(--vw)) 0 0;
    padding-bottom: calc(1.6 * var(--vw));
  }
}
.sec-service .block .wrapper .right-col .txt1 {
  font-size: 28px;
  font-size: clamp(1.125rem, 0.446rem + 1.09vw, 1.75rem);
  font-weight: bold;
  line-height: 1.6428571429;
  letter-spacing: -0.05em;
  margin-top: 7.8313253012%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .wrapper .right-col .txt1 {
    font-size: calc(4.26 * var(--vw));
    margin-top: calc(6.93 * var(--vw));
  }
}
.sec-service .block .wrapper .right-col .txt2 {
  font-size: 22px;
  font-size: clamp(0.75rem, 0.071rem + 1.09vw, 1.375rem);
  line-height: 1.7727272727;
  letter-spacing: -0.05em;
  margin-top: 9.0361445783%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .wrapper .right-col .txt2 {
    font-size: calc(3.73 * var(--vw));
    margin-top: calc(8 * var(--vw));
  }
}
.sec-service .block .wrapper .right-col .link-view a {
  transition: opacity 0.3s;
  display: block;
  width: 165px;
  width: 24.8493975904%;
  margin-top: 9.9397590361%;
}
.sec-service .block .wrapper .right-col .link-view a:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .wrapper .right-col .link-view a {
    width: calc(32 * var(--vw));
    margin-top: calc(8 * var(--vw));
    margin-left: auto;
  }
}
.sec-service .block .point {
  display: flex;
  justify-content: space-between;
  margin-top: 6.1251664447%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .point {
    flex-wrap: wrap;
    gap: calc(5.33 * var(--vw)) 0;
    margin-top: calc(16 * var(--vw));
  }
}
.sec-service .block .point .item {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 23.1691078562%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .point .item {
    display: block;
    width: 48%;
  }
}
.sec-service .block .point .item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 3px solid #5b7e96;
  pointer-events: none;
  z-index: -1;
}
.sec-service .block .point .item h4 {
  position: absolute;
  top: 0;
  left: 50%;
  display: flex;
  font-size: 29px;
  font-size: clamp(1.188rem, 0.508rem + 1.09vw, 1.813rem);
  display: inline-block;
  color: #5b7e96;
  background-color: #fff;
  line-height: 1;
  padding: 0 5.7471264368%;
  margin: 0 auto;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 1000px) {
  .sec-service .block .point .item h4 {
    font-size: calc(3.73 * var(--vw));
  }
}
.sec-service .block .point .item h4 .num {
  font-size: 40px;
  font-size: clamp(1.875rem, 1.196rem + 1.09vw, 2.5rem);
  margin-left: 0.1em;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .point .item h4 .num {
    font-size: calc(5.33 * var(--vw));
  }
}
.sec-service .block .point .item .icon {
  width: 31.6091954023%;
  text-align: center;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .point .item .icon {
    width: 40%;
    margin: calc(8 * var(--vw)) auto 0;
  }
}
.sec-service .block .point .item .icon img {
  width: auto;
  max-width: 80%;
}
.sec-service .block .point .item p {
  width: 68.6781609195%;
  font-size: 26px;
  font-size: clamp(1rem, 0.321rem + 1.09vw, 1.625rem);
  line-height: 1.6538461538;
  padding-right: 6px;
  letter-spacing: -0.03em;
  margin: 8.3333333333% 0 7.183908046%;
}
@media screen and (max-width: 1000px) {
  .sec-service .block .point .item p {
    width: 80%;
    font-size: calc(3.73 * var(--vw));
    padding-right: 0;
    margin: calc(3.73 * var(--vw)) auto calc(3.46 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-nav
----------------------------------------------------------*/
.sec-nav {
  display: flex;
  justify-content: space-between;
  background: url(../img/top/bg_nav.jpg) no-repeat;
  background-size: cover;
  padding: 5.3125% 0% 5.7291666667% 11.09375%;
  margin-top: 11.3020833333%;
  border-radius: 15px 0 0 15px;
}
@media screen and (max-width: 1000px) {
  .sec-nav {
    padding: calc(8 * var(--vw)) 0 calc(8 * var(--vw)) calc(8 * var(--vw));
  }
}
.sec-nav .pic {
  width: 31.1475409836%;
}
@media screen and (max-width: 1000px) {
  .sec-nav .pic {
    width: 30%;
  }
}
.sec-nav ul {
  width: 64.81264637%;
}
@media screen and (max-width: 1000px) {
  .sec-nav ul {
    width: 60%;
  }
}
.sec-nav li {
  margin-top: 7.6784101174%;
}
@media screen and (max-width: 1000px) {
  .sec-nav li {
    margin-top: calc(5.33 * var(--vw));
  }
}
.sec-nav li:first-child {
  margin-top: 0;
}
.sec-nav a {
  transition: opacity 0.3s;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-bottom: 1.3550135501%;
  padding-right: 18.6991869919%;
}
.sec-nav a:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-nav a {
    display: block;
    padding: 0 calc(8 * var(--vw)) calc(5.33 * var(--vw)) 0;
  }
}
.sec-nav a:hover {
  opacity: 0.7;
}
.sec-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
}
.sec-nav .txt1 {
  width: 43.9511653718%;
  margin-bottom: 2.3307436182%;
}
@media screen and (max-width: 1000px) {
  .sec-nav .txt1 {
    width: calc(42.24 * var(--vw));
    margin-bottom: calc(2.66 * var(--vw));
  }
}
.sec-nav .txt2 {
  width: 34.628190899%;
  margin-bottom: 2.3307436182%;
}
@media screen and (max-width: 1000px) {
  .sec-nav .txt2 {
    width: calc(33.28 * var(--vw));
    margin-bottom: calc(2.66 * var(--vw));
  }
}
.sec-nav .txt3 {
  width: 38.6237513873%;
  margin-bottom: 2.3307436182%;
}
@media screen and (max-width: 1000px) {
  .sec-nav .txt3 {
    width: calc(37.11 * var(--vw));
    margin-bottom: calc(2.66 * var(--vw));
  }
}
.sec-nav .link-view {
  width: 19.422863485%;
}
@media screen and (max-width: 1000px) {
  .sec-nav .link-view {
    width: calc(22.66 * var(--vw));
    margin-left: auto;
  }
}

.sec-nav + .sec-recruit {
  margin-top: 8.3333333333%;
}
@media screen and (max-width: 1000px) {
  .sec-nav + .sec-recruit {
    margin-top: calc(13.33 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-case
----------------------------------------------------------*/
.sec-case {
  background-color: #f5f6f7;
  padding-top: 6.5625%;
  padding-bottom: 2.6041666667%;
}
@media screen and (max-width: 1000px) {
  .sec-case {
    padding: calc(16 * var(--vw)) 0 calc(6.66 * var(--vw));
  }
}
.sec-case .ttl {
  width: 55.1041666667%;
  padding-bottom: 1.1979166667%;
  margin-left: 11.09375%;
  margin-bottom: 4.53125%;
  border-bottom: 2px solid #5b7e96;
}
@media screen and (max-width: 1000px) {
  .sec-case .ttl {
    width: calc(84 * var(--vw));
    padding-bottom: calc(2.93 * var(--vw));
    margin: 0 auto calc(10.66 * var(--vw));
  }
}
.sec-case .ttl img {
  width: 63.5160680529%;
}
@media screen and (max-width: 1000px) {
  .sec-case .ttl img {
    width: calc(68.92 * var(--vw));
  }
}
.sec-case .swiper {
  padding-left: 3.0208333333%;
  padding-bottom: 2.6041666667%;
}
@media screen and (max-width: 1000px) {
  .sec-case .swiper {
    padding-left: calc(8 * var(--vw));
    padding-bottom: calc(6.66 * var(--vw));
  }
}
.sec-case .swiper-horizontal > .swiper-pagination-bullets,
.sec-case .swiper-pagination-bullets.swiper-pagination-horizontal, .sec-case .swiper-pagination-custom, .sec-case .swiper-pagination-fraction {
  bottom: 0;
}
.sec-case .txt1 {
  display: inline-flex;
  font-size: 18px;
  font-size: clamp(0.625rem, 0.082rem + 0.87vw, 1.125rem);
  line-height: 1.8888888889;
  color: #fff;
  background-color: #000;
  padding: 0.2911208151% 3.6390101892%;
}
@media screen and (max-width: 1000px) {
  .sec-case .txt1 {
    font-size: calc(3.2 * var(--vw));
    padding: calc(0.26 * var(--vw)) calc(3.46 * var(--vw));
  }
}
.sec-case .inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.7278020378%;
}
@media screen and (max-width: 1000px) {
  .sec-case .inner {
    margin-top: calc(4 * var(--vw));
  }
}
.sec-case .inner .txt2,
.sec-case .inner .logo {
  width: 45%;
  flex-grow: 0;
  flex-shrink: 0;
}
.sec-case .inner .txt2 img,
.sec-case .inner .logo img {
  width: auto;
  max-width: 100%;
}
.sec-case .inner .txt2 {
  font-size: 24px;
  font-size: clamp(0.875rem, 0.196rem + 1.09vw, 1.5rem);
  font-weight: bold;
  line-height: 1.4166666667;
}
@media screen and (max-width: 1000px) {
  .sec-case .inner .txt2 {
    font-size: calc(3.73 * var(--vw));
  }
}
.sec-case .txt3 {
  font-size: 20px;
  font-size: clamp(0.625rem, -0.054rem + 1.09vw, 1.25rem);
  line-height: 1.85;
  color: #9a9a9a;
  letter-spacing: -0.03em;
  margin-top: 7.2780203785%;
}
@media screen and (max-width: 1000px) {
  .sec-case .txt3 {
    font-size: calc(3.46 * var(--vw));
    margin-top: calc(5.33 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-recruit
----------------------------------------------------------*/
.sec-recruit {
  width: 78.2291666667%;
  background: url(../img/top/bg_recruit.jpg) no-repeat;
  background-size: cover;
  padding: 2.4479166667% 0 3.59375% 4.84375%;
  margin: 0.2083333333% auto 0;
}
@media screen and (max-width: 1000px) {
  .sec-recruit {
    width: 100%;
    background-position: right top;
    background-size: 100% auto;
    padding: calc(24 * var(--vw)) 0 0 calc(8 * var(--vw));
    margin: calc(1.06 * var(--vw)) auto 0;
  }
}
.sec-recruit .txt-box {
  width: 36.4797728886%;
  color: #fff;
  background-color: #5b7e96;
  padding-top: 4.2583392477%;
  padding-bottom: 4.7551454933%;
}
@media screen and (max-width: 1000px) {
  .sec-recruit .txt-box {
    width: calc(84 * var(--vw));
    padding: calc(8 * var(--vw)) 0;
  }
}
.sec-recruit .ttl {
  width: 68.8715953307%;
  margin-left: 14.2023346304%;
}
@media screen and (max-width: 1000px) {
  .sec-recruit .ttl {
    width: calc(46.66 * var(--vw));
    margin-left: calc(5.33 * var(--vw));
  }
}
.sec-recruit .txt {
  width: 70.4280155642%;
  font-size: 18px;
  font-size: clamp(0.625rem, 0.082rem + 0.87vw, 1.125rem);
  line-height: 1.9444444444;
  margin: 8.3657587549% 0 0 14.2023346304%;
}
@media screen and (max-width: 1000px) {
  .sec-recruit .txt {
    width: auto;
    font-size: calc(3.73 * var(--vw));
    line-height: 1.5;
    margin: calc(5.33 * var(--vw)) calc(5.33 * var(--vw)) 0;
  }
}
.sec-recruit .link {
  margin: 5.2529182879% 13.4241245136% 0 auto;
}
@media screen and (max-width: 1000px) {
  .sec-recruit .link {
    margin: calc(3.73 * var(--vw)) calc(5.33 * var(--vw)) 0 auto;
  }
}
.sec-recruit .link a {
  transition: opacity 0.3s;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  color: #fff;
  font-size: 18px;
  font-size: clamp(0.625rem, 0.082rem + 0.87vw, 1.125rem);
  line-height: 1.8888888889;
}
.sec-recruit .link a:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-recruit .link a {
    font-size: calc(3.46 * var(--vw));
  }
}
.sec-recruit .link a img {
  width: 7.5875486381%;
  margin-left: 5.2529182879%;
}
@media screen and (max-width: 1000px) {
  .sec-recruit .link a img {
    width: calc(5.33 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-news
----------------------------------------------------------*/
.sec-news {
  position: relative;
  width: 78.2291666667%;
  margin: 10.4166666667% auto 0;
}
@media screen and (max-width: 1000px) {
  .sec-news {
    width: calc(84 * var(--vw));
    margin: calc(16 * var(--vw)) auto 0;
  }
}
.sec-news .ttl {
  padding-bottom: 1.5312916112%;
  border-bottom: 2px solid #5b7e96;
}
@media screen and (max-width: 1000px) {
  .sec-news .ttl {
    width: 100%;
  }
}
.sec-news .ttl img {
  width: 22.0372836218%;
}
@media screen and (max-width: 1000px) {
  .sec-news .ttl img {
    width: calc(33.94 * var(--vw));
  }
}
.sec-news .wrapper {
  display: flex;
}
@media screen and (max-width: 1000px) {
  .sec-news .wrapper {
    display: block;
  }
}
.sec-news .left-col {
  width: 26.6977363515%;
  padding-top: 1.7310252996%;
}
@media screen and (max-width: 1000px) {
  .sec-news .left-col {
    display: flex;
    flex-wrap: wrap;
    gap: calc(4.26 * var(--vw)) calc(5.33 * var(--vw));
    width: 100%;
    padding-top: calc(5.33 * var(--vw));
  }
}
.sec-news .left-col a {
  transition: opacity 0.3s;
  display: block;
  font-size: 24px;
  font-size: clamp(0.875rem, 0.196rem + 1.09vw, 1.5rem);
  color: #d9d7d3;
  letter-spacing: -0.03em;
  margin-top: 5.4862842893%;
}
.sec-news .left-col a:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-news .left-col a {
    font-size: calc(3.73 * var(--vw));
    margin: 0;
  }
  .sec-news .left-col a:hover {
    opacity: 1;
  }
}
@media print, screen and (min-width: 1001px) {
  .sec-news .left-col li:first-child a {
    font-size: 50px;
    font-size: clamp(2.5rem, 1.821rem + 1.09vw, 3.125rem);
    font-style: italic;
  }
}
.sec-news .left-col .is-cr a {
  color: #5b7e96;
}
@media screen and (max-width: 1000px) {
  .sec-news .left-col .is-cr a {
    font-size: calc(3.73 * var(--vw));
    font-weight: bold;
  }
}
.sec-news .right-col {
  width: 73.3022636485%;
  margin-top: 3.1957390146%;
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col {
    width: 100%;
    margin-top: calc(10.66 * var(--vw));
  }
}
.sec-news .right-col .block {
  padding-bottom: 1.6348773842%;
  border-bottom: 1px solid #e2e1e0;
  margin-bottom: 2.4523160763%;
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col .block {
    padding-bottom: calc(4.26 * var(--vw));
    margin-bottom: calc(4.26 * var(--vw));
  }
}
.sec-news .right-col .block a {
  transition: opacity 0.3s;
  display: grid;
  grid-template-columns: 23.3424159855% 11.9891008174% 1fr;
  grid-template-rows: 10px auto auto;
}
.sec-news .right-col .block a:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col .block a {
    grid-template-columns: calc(26.66 * var(--vw)) 1fr;
    grid-template-rows: auto;
  }
}
.sec-news .right-col .block a .pic {
  position: relative;
  grid-column: 1/2;
  grid-row: 1/4;
  width: 79.766536965%;
  padding-top: 49.0272373541%;
  border-radius: 7px;
  aspect-ratio: 205/126;
  overflow: hidden;
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col .block a .pic {
    grid-column: 1;
    grid-row: 1/4;
    width: 90%;
  }
}
.sec-news .right-col .block a .pic img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sec-news .right-col .block a .txt-date {
  grid-column: 2;
  grid-row: 2;
  align-self: center;
  font-size: 22px;
  font-size: clamp(0.75rem, 0.071rem + 1.09vw, 1.375rem);
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col .block a .txt-date {
    grid-column: 2;
    grid-row: 1;
    font-size: calc(3.73 * var(--vw));
    padding-bottom: calc(0.8 * var(--vw));
  }
}
.sec-news .right-col .block a .txt-cat {
  grid-column: 3;
  grid-row: 2;
  align-self: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 10px;
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col .block a .txt-cat {
    grid-column: 2;
    grid-row: 2;
    gap: calc(1.6 * var(--vw)) calc(1.6 * var(--vw));
    padding-bottom: calc(1.6 * var(--vw));
  }
}
.sec-news .right-col .block a .txt-cat span {
  display: block;
  line-height: 1;
  font-size: 22px;
  font-size: clamp(0.75rem, 0.071rem + 1.09vw, 1.375rem);
  color: #fff;
  background-color: #5b7e96;
  letter-spacing: -0.05em;
  padding: 0.8426966292% 4.2134831461%;
  border-radius: 11px;
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col .block a .txt-cat span {
    font-size: calc(3.2 * var(--vw));
    padding: calc(1.33 * var(--vw)) calc(2.66 * var(--vw));
  }
}
.sec-news .right-col .block a .txt {
  grid-column: 2/4;
  grid-row: 3;
  font-size: 22px;
  font-size: clamp(0.75rem, 0.071rem + 1.09vw, 1.375rem);
  font-weight: bold;
  letter-spacing: -0.05em;
  margin-top: 1.8957345972%;
}
@media screen and (max-width: 1000px) {
  .sec-news .right-col .block a .txt {
    grid-column: 2;
    grid-row: 3;
    font-size: calc(3.73 * var(--vw));
    margin-top: 0;
  }
}
.sec-news .link {
  transition: opacity 0.3s;
  position: absolute;
  top: 0;
  right: 0;
  width: 10.9853528628%;
  margin-top: 6.3914780293%;
}
.sec-news .link:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-news .link {
    position: relative;
    top: auto;
    right: auto;
    width: calc(21.33 * var(--vw));
    margin: calc(5.33 * var(--vw)) 0 0 auto;
  }
}

.sec-contact {
  position: relative;
  width: 78.2291666667%;
  padding: 27.65625% 0 0 19.7395833333%;
  margin: 10.4166666667% auto 0;
}
@media screen and (max-width: 1000px) {
  .sec-contact {
    width: 100%;
    padding: calc(42.66 * var(--vw)) 0 0 calc(8 * var(--vw));
    margin-top: calc(16 * var(--vw));
  }
}
.sec-contact::before, .sec-contact::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 49.6671105193%;
  background: url(../img/top/bg_contact_effect.png) no-repeat center top;
  background-size: 100% auto;
  padding-top: 48.7350199734%;
  z-index: -1;
  margin: 14.9800266312% 0 0 -11.517976032%;
}
@media screen and (max-width: 1000px) {
  .sec-contact::before, .sec-contact::after {
    margin: calc(26.66 * var(--vw)) 0 0 calc(0 * var(--vw));
  }
}
.sec-contact::after {
  width: 99.6671105193%;
  background: url(../img/top/bg_contact.png) no-repeat center top;
  background-size: 100% auto;
  padding-top: 52.7296937417%;
  margin: 0;
}
@media screen and (max-width: 1000px) {
  .sec-contact::after {
    width: 100%;
  }
}
.sec-contact .txt-box {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  width: 99.82190561%;
  background-color: #fff;
  padding: 7.1237756011% 0 0 8.0142475512%;
  margin: 0 0 0 auto;
  border-radius: 8px;
}
@media screen and (max-width: 1000px) {
  .sec-contact .txt-box {
    display: block;
    width: 100%;
    padding: calc(8 * var(--vw)) calc(8 * var(--vw)) 0;
  }
}
.sec-contact .txt-box .ttl {
  width: 39.6702230844%;
}
@media screen and (max-width: 1000px) {
  .sec-contact .txt-box .ttl {
    width: calc(41.94 * var(--vw));
  }
}
.sec-contact .txt-box .txt {
  width: 56.741028128%;
  font-size: 22px;
  font-size: clamp(0.75rem, 0.071rem + 1.09vw, 1.375rem);
  line-height: 1.9090909091;
  letter-spacing: -0.05em;
  margin: 3.879728419% 0 0 2.8128031038%;
}
@media screen and (max-width: 1000px) {
  .sec-contact .txt-box .txt {
    width: 100%;
    font-size: calc(3.73 * var(--vw));
    margin: calc(5.33 * var(--vw)) 0 0;
  }
}
.sec-contact .txt-box .btn {
  width: 100.0969932105%;
  margin-top: 13.5790494665%;
}
@media screen and (max-width: 1000px) {
  .sec-contact .txt-box .btn {
    width: 100%;
    margin-top: calc(5.33 * var(--vw));
  }
}
.sec-contact .txt-box .btn a {
  transition: opacity 0.3s;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 35px;
  font-size: clamp(1.563rem, 0.883rem + 1.09vw, 2.188rem);
  color: #fff;
  background-color: #5b7e96;
  border-radius: 11px;
  padding: 7.7519379845% 5.3294573643% 7.7519379845% 7.7519379845%;
}
.sec-contact .txt-box .btn a:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1000px) {
  .sec-contact .txt-box .btn a {
    font-size: calc(4.26 * var(--vw));
    padding: calc(4.26 * var(--vw)) calc(5.33 * var(--vw)) calc(4.26 * var(--vw)) calc(8 * var(--vw));
  }
}
.sec-contact .txt-box .btn a:hover {
  opacity: 0.8;
}
.sec-contact .txt-box .btn a::after {
  content: "";
  width: 5.4626532887%;
  background: url(../img/top/icon_arrow_contact.png) no-repeat;
  background-size: contain;
  padding-top: 5.4626532887%;
}
@media screen and (max-width: 1000px) {
  .sec-contact .txt-box .btn a::after {
    width: calc(8 * var(--vw));
    padding-top: calc(8 * var(--vw));
  }
}

/* ---------------------------------------------------------
footer
----------------------------------------------------------*/
footer {
  color: #fff;
  background: #0f318d;
  padding: 5.5416666667% 0 5.5416666667%;
  margin-top: 17.1875%;
}
@media screen and (max-width: 1000px) {
  footer {
    position: relative;
    padding: calc(8 * var(--vw)) calc(8 * var(--vw));
    margin-top: calc(16 * var(--vw));
  }
}
footer .logo {
  font-size: 32px;
  font-size: clamp(1.375rem, 0.696rem + 1.09vw, 2rem);
  font-weight: bold;
}
@media screen and (max-width: 1000px) {
  footer .logo {
    font-size: calc(4.26 * var(--vw));
    margin-left: 0;
  }
}
footer .txt-en {
  font-size: 26px;
  font-size: clamp(1rem, 0.321rem + 1.09vw, 1.625rem);
  margin-bottom: 6.4583333333%;
}
@media screen and (max-width: 1000px) {
  footer .txt-en {
    font-size: calc(3.73 * var(--vw));
    margin: 0 0 calc(5.33 * var(--vw)) 0;
  }
}
footer .wrapper {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
}
@media screen and (max-width: 1000px) {
  footer .wrapper {
    display: block;
  }
}
footer .left-col {
  width: 30.2083333333%;
  margin-left: 6.9791666667%;
}
@media screen and (max-width: 1000px) {
  footer .left-col {
    width: 100%;
    margin: calc(8 * var(--vw)) 0 0;
  }
}
footer .left-col .address {
  margin-bottom: 6.2068965517%;
}
@media screen and (max-width: 1000px) {
  footer .left-col .address {
    margin: 0 0 calc(5.33 * var(--vw));
  }
}
footer .left-col .address + .address {
  padding-top: 5.1724137931%;
  border-top: 1px solid #fff;
}
@media screen and (max-width: 1000px) {
  footer .left-col .address + .address {
    padding-top: calc(5.33 * var(--vw));
  }
}
footer .left-col .txt-address, footer .left-col .tel {
  font-size: 22px;
  font-size: clamp(0.75rem, 0.071rem + 1.09vw, 1.375rem);
  line-height: 1.5909090909;
}
@media screen and (max-width: 1000px) {
  footer .left-col .txt-address, footer .left-col .tel {
    font-size: calc(3.2 * var(--vw));
  }
}
footer .left-col .tel {
  margin-top: 0.8em;
}
footer .right-col {
  display: flex;
  width: 48.75%;
  margin-right: 2.5520833333%;
}
@media screen and (max-width: 1000px) {
  footer .right-col {
    width: 100%;
    margin-right: 0;
  }
}
footer .right-col > ul {
  width: 50%;
}
footer .right-col a {
  font-size: 23px;
  font-size: clamp(0.813rem, 0.133rem + 1.09vw, 1.438rem);
  font-weight: bold;
  line-height: 1.8888888889;
  color: #fff;
}
@media screen and (max-width: 1000px) {
  footer .right-col a {
    font-size: calc(3.46 * var(--vw));
  }
}
footer .right-col .mt {
  margin-top: 14.9572649573%;
}
@media screen and (max-width: 1000px) {
  footer .right-col .mt {
    margin-top: calc(5.33 * var(--vw));
  }
}
footer .right-col .mt2 {
  margin-top: calc(18.6666666667% + 1.6em);
}
@media screen and (max-width: 1000px) {
  footer .right-col .mt2 {
    margin-top: calc(5.33 * var(--vw) + 1.6em);
  }
}
footer .right-col .mt3 {
  margin-top: 1em;
}
footer .copy {
  font-size: 20px;
  font-size: clamp(0.625rem, -0.054rem + 1.09vw, 1.25rem);
  line-height: 1.8888888889;
  margin-top: 3.125%;
  margin-left: 6.9791666667%;
}
@media screen and (max-width: 1000px) {
  footer .copy {
    font-size: calc(2.93 * var(--vw));
    text-align: center;
    margin-top: calc(8 * var(--vw));
    margin-left: 0;
  }
}

.sec-kv {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sec-kv .wrapper {
  width: 100%;
  padding-top:0.8854166667%
}

.sec-kv .swiper {
  overflow: visible;
}

.sec-kv .swiper-wrapper {
  transition-timing-function: linear;
  align-items: center;
}

.sec-kv .swiper-slide {
  height: 35.745vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sec-kv .swiper-slide.slide-title {
  max-width: 200px;
}

.sec-kv .pic {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease;
}

.sec-kv .pic img {
  height: 100%;
  width: auto;
  object-fit: cover;
  max-width: 17.436vw;
  max-height: 35.658vw;
  border-radius: 10px;
}

.sec-kv .ttl {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sec-kv .ttl img {
  height: 100%;
  width: auto;
  max-width: 7.977vw;
  max-height: 35.658vw;
  border-radius: 10px;
}

.pc-only {
  display: block;
}

.sp-only {
  display: none;
}


.fixed-lead-txt {
  position: absolute;
  top: 0;
  right: 26vw;
  z-index: 5;
  background-color: rgba(255, 255, 255, 0.8);
  padding: 1vw;
  box-shadow: 
    inset 100px 0 100px -100px rgba(255, 255, 255, 1),
    inset -100px 0 100px -100px rgba(255, 255, 255, 1),
    inset 0 100px 100px -100px rgba(255, 255, 255, 1),
    inset 0 -100px 100px -100px rgba(255, 255, 255, 1);
}

@media screen and (max-width: 1000px) {
  .sec-kv .swiper-slide {
    height: 78.66vw;
    width: 55% !important;
  }
  .sec-kv .swiper-slide.slide-title {
    max-width: 100px;
  }

  .sec-kv .wrapper .ttl {
    width: calc(26.66 * var(--vw));
}

  .sec-kv .wrapper {
    padding: 0 calc(16 * var(--vw)) 0 calc(8 * var(--vw));
    display: flex;
    justify-content: center;
    position: relative;
}
.sec-kv .wrapper .pic:nth-child(3) {
  width: calc(53.33 * var(--vw));
}

.sec-kv .pic img{
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}
.sec-kv .ttl img{
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}
.pc-only {
  display: none !important;
}

.sp-only {
  display: block;
}

.lead-txt {
  display: none !important;
}

.fixed-lead-txt {
  max-width: 23vw !important;
  right: 20vw !important;
}
.sec-kv .wrapper .pic{
  display: block !important;
  width: 100% !important;
}
}

@media screen and (min-width: 1000px) {

  .lead-txt {
    display: none !important;
  }
}