@charset "UTF-8";

/*****************************
  top
*****************************/
.topmain{
  margin-top: 74px;
}

/*****************************
topsec-fv
*****************************/
.topsec-fv{
  padding: 13rem 0 6rem;
}
.topsec-fv .fimgbox{
  margin: 0 auto;
}
.topsec-fv .fimgbox1{
  width: 31%;
}
.topsec-fv .fimgbox2{
  width: 66%;
}
.topsec-fv .maincatch{
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.topsec-fv .maincatch h1{
  color: #790028;
  font-size: 10vw;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 2px;
  position: absolute;
  top: -10rem;
  right: 0;
  text-align: right;
}
.topsec-fv .maincatch p{
  font-size: 1.5vw;
  font-weight: 500;
  line-height: 1.6;
  position: absolute;
  top: 33%;
  left: 3rem;
  transform: translateY(-50%);
}
@media only screen and (max-width: 1180px) {
  .topsec-fv .maincatch p {
    font-size: 1.8rem;
  }
}
@media only screen and (max-width: 1024px) {
  
}
@media only screen and (max-width: 820px) {
  
}
@media only screen and (max-width: 768px) {
  
}
@media only screen and (max-width: 767px) {
  .topsec-fv {
    padding: 10rem 0 6rem;
  }
  .topsec-fv .maincatch h1 {
    top: -8rem;
  }
  .topsec-fv .maincatch p{
    top: -3rem;
    text-shadow: 1px 1px 0px #fff, -2px 1px 0px #fff, 1px -2px 0px #fff, -2px -2px 0px #fff, 1px -1px 0px #fff, -1px 1px 0px #fff, -2px -1px 0px #fff, -1px -2px 0px #fff, 2px 2px 1px #fff, -2px 2px 1px #fff, 2px -2px 1px #fff, -2px -2px 1px #fff, 2px 0px 1px #fff, -1px 2px 1px #fff, -2px -1px 1px #fff, -1px -2px 1px #fff;
    transform: none;
  }
  .topsec-fv .fimgbox1{
    display: none;
  }
  .topsec-fv .fimgbox2{
    width: 100%;
  }
}

/*****************************
topsec-philosophy
*****************************/
.topsec-philosophy{
  padding: 0 0 10rem ;
}
.topsec-philosophy .linettl{
  margin-bottom: 5rem;
  text-align: center;
}
.topsec-philosophy .linettl::before{
  content: "";
  background: #790028;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  height: 1px;
  width: 100%;
}
.topsec-philosophy .linettl .ttl{
  background: #fff;
  display: inline-block;
  font-size: 3rem;
  font-weight: bold;
  padding: 1rem;
  position: relative;
}
.topsec-philosophy .box{
  margin-left: auto;
  width: 92%;
}
.topsec-philosophy .ftxtbox{
  width: 40%;
}
.topsec-philosophy .fimgbox{
  border-radius: 10px;
  overflow: hidden;
  width: 55%;
}
.topsec-philosophy .ftxtbox .inbox{
  margin-top: 2rem;
}
.topsec-philosophy .ftxtbox .subttl1{
  margin-bottom: 2rem;
}
.topsec-philosophy .ftxtbox .txtbox{
  line-height: 2;
}

@media only screen and (max-width: 1440px) {
  .topsec-philosophy .ttlbox1 .enttl{
    font-size: 8rem;
  }
}
@media only screen and (max-width: 1350px) {
  .topsec-philosophy .box {
    width: 97%;
  }
  .topsec-philosophy .ftxtbox {
    width: 43%;
  }
  .topsec-philosophy .fimgbox {
    width: 53%;
  }
}
@media only screen and (max-width: 1180px) {
  
}
@media only screen and (max-width: 1024px) {
  
}
@media only screen and (max-width: 1023px) {
  .topsec-philosophy {
    padding: 0 0 20rem;
  }
  .topsec-philosophy .box {
    padding-top: 0;
  }
  .topsec-philosophy .ftxtbox {
    width: 80%;
    z-index: 1;
  }
  .topsec-philosophy .ftxtbox .inbox{
    text-shadow: 1px 1px 0px #fff, -2px 1px 0px #fff, 1px -2px 0px #fff, -2px -2px 0px #fff, 1px -1px 0px #fff, -1px 1px 0px #fff, -2px -1px 0px #fff, -1px -2px 0px #fff, 2px 2px 1px #fff, -2px 2px 1px #fff, 2px -2px 1px #fff, -2px -2px 1px #fff, 2px 0px 1px #fff, -1px 2px 1px #fff, -2px -1px 1px #fff, -1px -2px 1px #fff;
  }
  .topsec-philosophy .fimgbox {
    position: absolute;
    right: 0;
    bottom: -15rem;
  }
}
@media only screen and (max-width: 820px) {
  .topsec-philosophy .box {
    width: calc(100% - 4rem);
    margin-right: auto;
  }
  .topsec-philosophy .linettl{
    margin: 0;
  }
  .topsec-philosophy .linettl .ttl{
    font-size: 2.4rem;
  }
  .topsec-philosophy .ftxtbox {
    background: rgba(255, 255, 255, .8);
    padding: 2rem;
    width: 90%;
  }
  .topsec-philosophy .fimgbox {
    width: 70%;
  }
}
@media only screen and (max-width: 768px) {
  
}
@media only screen and (max-width: 767px) {
  .topsec-philosophy {
    padding: 0 0 8rem;
  }
  .topsec-philosophy .linettl .ttl {
    font-size: 2rem;
  }
  .topsec-philosophy .ttlbox1 .enttl {
    font-size: 16vw;
  }
  .topsec-philosophy .ftxtbox,
  .topsec-philosophy .fimgbox{
    padding: 0;
    width: 100%;
  }
  .topsec-philosophy .fimgbox{
    position: static;
    margin-top: 2rem;
  }
}

/*****************************
topsec-links
*****************************/
.topsec-links .bg1{
  background: url(../images/top/bg1.webp) no-repeat center / cover;
  height: 385px;
}
.topsec-links .bg2{
  background: #F8EEEB;
  height: 850px;
}

.topsec-links .linkgr{
  position: absolute;
  top: 20rem;
  left: 0;
  width: 100%;
  z-index: 1;
}
.topsec-links .linkgr .fbox{
  background: #fff;
  border-radius: 10px;
  box-shadow: 10px 10px 10px rgba(0, 0, 0, .1);
  max-width: 570px;
  margin: 0 2rem;
  padding: 2rem 5rem;
}
.topsec-links .linkgr .ttlbox .fimgbox{
  width: 160px;
}
.topsec-links .linkgr .ttlbox .ftxtbox{
  text-align: right;
  width: calc(100% - 160px);
}
.topsec-links .linkgr .ttlbox1 .enttl{
  position: absolute;
  top: -4rem;
  right: -2rem;
}
.topsec-links .linkgr .ttlbox1 .ttl{
  font-size: 2.9rem;
  margin-top: 0;
}
.topsec-links .linkgr .txtbox{
  height: 90px;
}
.topsec-links .linkgr .morebtn1{
  margin: 1rem 0;
  text-align: right;
}

.topsec-links .bg2 .ob{
  position: absolute;
}
.topsec-links .bg2 .ob1{
  aspect-ratio: 227 / 704;
  background: url(../images/top/bg2_ob1.webp) no-repeat top left / contain;
  top: 0;
  left: 0;
  width: 11%;
}
.topsec-links .bg2 .ob2{
  aspect-ratio: 779 / 277;
  background: url(../images/top/bg2_ob2.webp) no-repeat bottom left / contain;
  bottom: 0;
  left: 0;
  width: 40%;
}
.topsec-links .bg2 .ob3{
  aspect-ratio: 321 / 224;
  background: url(../images/top/bg2_ob3.webp) no-repeat top right / contain;
  top: 0;
  right: 0;
  width: 33%;
}
.topsec-links .bg2 .ob4{
  aspect-ratio: 41 / 36;
  background: url(../images/top/bg2_ob4.webp) no-repeat bottom right / contain;
  right: 0;
  bottom: 0;
  width: 17%;
}
.topsec-links .linkbox {
  position: absolute;
  bottom: 10rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}
.topsec-links .linkbox .flexbox3{
  max-width: 1000px;
  margin: 0 auto;
}
.topsec-links .linkbox .fimgbox{
  margin: 0 auto;
  width: 33%;
}


@media only screen and (max-width: 1440px) {

}
@media only screen and (max-width: 1240px) {
  .topsec-links .linkgr .fbox{
    margin: 0 1%;
  }
}
@media only screen and (max-width: 1180px) {
  .topsec-links .linkgr .ttlbox1 .enttl{
    font-size: 8rem;
  }
  .topsec-links .linkgr .ttlbox1 .ttl {
    font-size: 2.6rem;
  }
}
@media only screen and (max-width: 1080px) {
  .topsec-links .linkgr .ttlbox .fimgbox {
    width: 120px;
  }
  .topsec-links .linkgr .ttlbox .ftxtbox {
    width: calc(100% - 120px);
  }
  .topsec-links .bg2 {
    height: 800px;
  }
  .topsec-links .linkbox{
    padding: 0 2rem;
  }
}
@media only screen and (max-width: 1024px) {
  
}
@media only screen and (max-width: 820px) {
  .topsec-links .linkgr .fbox {
    margin: 1rem auto;
    width: 80%;
  }
  .topsec-links .bg2 {
    height: 1080px;
  }
}
@media only screen and (max-width: 768px) {
  
}
@media only screen and (max-width: 767px) {
  .topsec-links .linkgr .fbox {
    padding: 2rem;
    width: 90%;
  }
  .topsec-links .linkgr .ttlbox{
    padding: 5rem 0 1.5rem;
    position: relative;
    z-index: 1;
  }
  .topsec-links .linkgr .ttlbox .fimgbox {
    position: absolute;
    top: 0;
    width: 100px;
    z-index: -1;
  }
  .topsec-links .linkgr .ttlbox .ftxtbox{
    width: 100%;
  }
  .topsec-links .linkgr .ttlbox1 .enttl {
    font-size: 7rem;
  }
  .topsec-links .linkgr .ttlbox1 .ttl{
    font-size: 2.2rem;
    text-shadow: 1px 1px 0px #fff, -2px 1px 0px #fff, 1px -2px 0px #fff, -2px -2px 0px #fff, 1px -1px 0px #fff, -1px 1px 0px #fff, -2px -1px 0px #fff, -1px -2px 0px #fff, 2px 2px 1px #fff, -2px 2px 1px #fff, 2px -2px 1px #fff, -2px -2px 1px #fff, 2px 0px 1px #fff, -1px 2px 1px #fff, -2px -1px 1px #fff, -1px -2px 1px #fff;
  }
  .topsec-links .linkgr .txtbox{
    height: auto;
  }
  .topsec-links .bg2 {
    height: 800px;
  }
  .topsec-links .linkbox {
    padding: 0;
    bottom: 6rem;
  }
  .topsec-links .linkbox ,ttlbox{
    margin: 0 auto 1rem;
    width: 90%;
  }
  .topsec-links .linkbox .morebtn2{
    margin-top: 2rem;
  }
}
@media only screen and (max-width: 360px) {
  .topsec-links .linkgr .ttlbox .ftxtbox{
    margin-top: 5rem;
  }
  .topsec-links .bg2 {
    height: 950px;
  }
}

/*****************************
topsec-staff
*****************************/
.topsec-staff{
  padding: 10rem 0 0;
}
.topsec-staff .fbox{
  width: calc(100% / 3);
}
.topsec-staff .fbox a{
  aspect-ratio: 5/3;
  display: block;
  opacity: 1 !important;
  width: 100%;
}
.topsec-staff .fbox a::before,
.topsec-staff .fbox a::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  transition: .5s;
}
.topsec-staff .fbox a::before{
  background: url(../images/top/voice1.webp) no-repeat center / cover;
  filter: grayscale(1);
}
.topsec-staff .fbox2 a::before{
  background: url(../images/top/voice2.webp) no-repeat center / cover;
}
.topsec-staff .fbox3 a::before{
  background: url(../images/top/voice3.webp) no-repeat center / cover;
}
.topsec-staff .fbox a::after{
  background: #274B83;
  opacity: .7;
}
.topsec-staff .fbox2 a::after{
  background: #73213C;
}
.topsec-staff .fbox3 a::after{
  background: linear-gradient(90deg,#73213C,#274B83);
  background: linear-gradient(90deg,#274B83,#73213C);
}
.topsec-staff .fbox a:hover::before{
  filter: grayscale(0);
}
.topsec-staff .fbox a:hover::after{
  opacity: 0;
}
.topsec-staff .staff{
  background: #fff;
  border-radius: 10px;
  color: #274B83;
  padding: 2rem 4rem;
  position: absolute;
  bottom: 5%;
  left: 10%;
  z-index: 1;
}
.topsec-staff .staff2{
  color: #790028;
  left: auto;
  right: 10%;
}
.topsec-staff .staff3{
  color: #790028;
  left: 50%;
  transform: translateX(-50%);
  max-width: 65%;
  width: 100%;
}
.topsec-staff .staff .position{
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 1.4;
}
.topsec-staff .staff .name{
  font-size: 1.8rem;
}

@media only screen and (max-width: 1440px) {
  .topsec-staff .staff{
    padding: 1rem 2.5rem;
  }
  .topsec-staff .staff .position {
    font-size: 2.2rem;
  }
  .topsec-staff .staff .name {
    font-size: 1.6rem;
  }
}
@media only screen and (max-width: 1280px) {
  .topsec-staff .fbox a{
    height: 330px;
  }
}
@media only screen and (max-width: 1180px) {
  .topsec-staff .fbox a {
    height: 300px;
  }
  .topsec-staff .ttlbox1 .enttl{
    font-size: 8rem;
  }
  .topsec-staff .staff .position {
    font-size: 2rem;
  }
}
@media only screen and (max-width: 1024px) {
  .topsec-staff .staff {
    padding: 1rem 1.5rem;
  }
  .topsec-staff .staff3 {
    max-width: 70%;
  }
}
@media only screen and (max-width: 820px) {

  .topsec-staff .staff {
    padding: .8rem 2rem;
  }
  .topsec-staff .staff1{
    left: 2%;
  }
  .topsec-staff .staff2{
    right: 2%;
  }
  .topsec-staff .fbox {
    width: 80%;
    margin: 0rem auto 2rem;
  }
  .topsec-staff .staff3 {
    max-width: 50%;
  }
}
@media only screen and (max-width: 768px) {
  .topsec-staff .staff3 {
    max-width: 55%;
  }
}
@media only screen and (max-width: 767px) {
  .topsec-staff{
    padding: 10rem 2rem 5rem ;
  }
  .topsec-staff .box{
    padding-top: 0;
  }
  .topsec-staff .fbox {
    margin: 1rem 0;
    width: 100%;
  }
  .topsec-staff .fbox a {
    height: 200px;
  }
  .topsec-staff .staff {
    border-radius: 5px;
    right: 1rem;
    left: auto;
    bottom: 5px;
    transform: none;
    padding: .8rem 1.5rem ;
  }
  .topsec-staff .ttlbox1 .enttl{
    font-size: 5rem;
  }
  .topsec-staff .staff3 {
    max-width: 250px;
  }
}

/*****************************
topsec-jd
*****************************/
.topsec-jd{
  background: #790028;
  padding: 10rem 0;
  text-align: center;
}
.topsec-jd .ttlbox1{
  display: inline-block;
  opacity: 1 !important;
}
.topsec-jd .ttlbox1::before{
  content: "";
  aspect-ratio: 197/98;
  background: url(../images/top/jdob.svg) no-repeat center / contain;
  opacity: .3;
  position: absolute;
  top: 45%;
  right: -30%;
  transform: translateY(-50%);
  width: 40%;
}
.topsec-jd .jobbtn a{
  background: linear-gradient(90deg,#73213C,#274B83);
  border-radius: 3px;
  color: #fff;
  display: inline-block;
  font-size: 2.4rem;
  max-width: 250px;
  opacity: 1 !important;
  padding: .5rem 2rem;
  width: 100%;
  transition: .5s;
}
.topsec-jd .jobbtn a:hover{
  background: #fff;
  color: #73213C;
}

@media only screen and (max-width: 1180px) {
.topsec-jd .ttlbox1::before{
    top: 40%;
    right: -15%;
    width: 30%;
  }
  .topsec-jd .ttlbox1 .enttl{
    font-size: 8rem;
  }
}
@media only screen and (max-width: 1024px) {
  
}
@media only screen and (max-width: 820px) {
  
}
@media only screen and (max-width: 768px) {
  
}
@media only screen and (max-width: 767px) {
  .topsec-jd {
    padding: 5rem 0;
  }
  .topsec-jd .ttlbox1 .enttl {
    font-size: 5rem;
    margin-bottom: 1rem;
  }
  .topsec-jd .ttlbox1::before {
    top: 50%;
    right: -15%;
    width: 60%;
  }
  .topsec-jd .jobbtn a{
    font-size: 1.8rem;
    max-width: 160px;
  }
}