@charset "UTF-8";
/* CSS Document */ :root {
  /* txt-color */
  --basic-color: #BEA735;
  --sub-color: #DDD4A7;
  --txt-color: #003876;
  --basic-txt-size: 1rem;
}
@media screen and (max-width: 768px) {
  :root {
    /* txt-size */
    --logo-txt-size: 3.4vw;
  }
}
@media screen and (max-width: 425px) {
  :root {}
}
body {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: #1B3145;
  font-size: 16px;
}
.wrapper {
  width: 100%;
}
p {
  line-height: 1.8;
  font-size: 1rem;
}
h3 {
    text-align: center;
    margin-block: 0;
}
.sp_break {
  display: none;
}
div, ul, li, a, header {
  box-sizing: border-box;
}
img {
  display: block;
  width: 100%;
}
a {
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}
header {
  width: 100%;
  position: relative;
  z-index: 10;
  -webkit-transition: all 0.6s;
  -moz-transition: all 0.6s;
  -ms-transition: all 0.6s;
  -o-transition: all 0.6s;
  transition: all 0.6s;
  left: 50%;
  transform: translateX(-50%);
  background: transparent;
}
.h_logo {
  position: relative;
}
.h_logo img {
  margin-block-start: 0.4em;
  max-width: 140px;
}
.h_logo > .tagline {
  position: relative;
  font-size: 12px;
  margin: 0;
  white-space: nowrap;
  color: #595959;
  font-weight: normal;
}
.headerInner {
  display: flex;
  padding: 20px 20px;
  justify-content: space-between;
  align-items: center;
}
.gNav {
  display: flex;
  column-gap: 2rem;
  align-items: center;
  margin-block: 0;
}
.gNav a {
  color: #1b3145;
}
.gNav a {
  background:
    linear-gradient(rgb(30 136 229 / 41%) 0 0) 0 100% /var(--d, 0) 2px no-repeat, linear-gradient(rgb(30 136 229 / 41%) 0 0) 100% calc(100% - 6px) /var(--d, 0) 2px no-repeat;
  transition: 0s 0.5s, background-size 0.5s;
  padding-block-end: 0.3em;
}
.gNav a:hover {
  --d: 100%;
  background-position: 0% calc(100% - 2px), 100% calc(100% - 2px);
  transition: 0.3s, background-position 0.3s 0.3s;
}
a.contactBtn {
  background: #ffc402;
  padding: 1rem 2.5rem;
  border-radius: 3px;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 380px;
  color: #077ac2;
  font-weight: bold;
  position: relative;
  column-gap: 0.5rem;
  transition-duration: .4s;
}
a.contactBtn:hover {
  transform: scale(1.1);
}
a.contactBtn::before {
  content: "";
  background: url("../img/icon_contact.svg") no-repeat;
  background-size: 100% auto;
  width: 23px;
  height: auto;
  aspect-ratio: 4 / 3;
  display: inline-block;
  position: relative;
}
a.contactBtn.spVisible {
  display: none;
}
a.returnBtn.spVisible {
    display: none;
}
@media screen and (max-width:768px) {
  p {
    font-size: clamp(14px, 3.5vw, 16px);
    line-height: 1.8;
  }
  a.contactBtn.spVisible {
    display: flex;
    flex-direction: column;
    padding: 10px 3vw 6px;
    font-size: 10px;
    justify-content: center;
    row-gap: 2px;
  }
  a.returnBtn.spVisible {
    display: block;
    background: #57b1ff;
    color: #fff;
    padding: 0.5em;
    border-radius: 4px;
    font-size: 13px;
  }
}
/* ------------------------
  header
--------------------------- */
.logo_box {
  display: block;
  padding-inline-start: 3vw;
}
.sp_break {
  display: none;
}
@media screen and (max-width: 768px) {
  .sp_break {
    display: inline-block;
  }
}
@media screen and (max-width: 768px) {
  .pc-visible {
    display: none;
  }
}
/* top */
.top_group {
  overflow: hidden;
}
.topMain {
  height: auto;
  width: 100vw;
  aspect-ratio: 2615 / 1528;
  background: url("../img/mainV.png") no-repeat top left;
  background-size: cover;
  opacity: 0;
  transform: scale(1.3, 1.3);
  transition: 1.6s ease;
}
.topMain.active {
  opacity: 1;
  transform: scale(1, 1);
}
.top_inner {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
.top_txt_box {
  display: flex;
  align-items: center;
  color: #fff;
  font-weight: 700;
  margin-block: 0;
  text-shadow: 0px 0px 12px #1b3145, 0px 0px 12px #1b3145;
  margin-block-start: 3vw;
  font-size: 30px;
}
.top_txt_box_inner {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}
.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 20;
  background-color: rgb(199 235 255);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeOut 1.5s 2.5s forwards;
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}
.loading__logo {
  opacity: 0;
  animation: logo_fade 2s 0.5s forwards;
  width: 175px;
}
@keyframes logo_fade {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  60% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
  }
}
@media screen and (max-width:768px) {
  .headerInner {
    display: flex;
    padding: 2vw 3vw 3vw;
    align-items: flex-end;
  }
  .h_logo > .tagline {
    font-size: 8px;
  }
  .h_logo img {
    margin-block-start: 0.4em;
    max-width: 120px;
    width: 28vw;
  }
  .topMain {
    height: auto;
    width: 100%;
    background: url(../img/mainV_sp.png) no-repeat center right;
    background-size: cover;
    aspect-ratio: 1123 / 1090;
  }
  img.main_logo {
    width: 56vw;
  }
  .top_txt_box {
    font-size: 7vw;
  }
  nav {
    display: none;
  }
}
/* -------------------------------
    top section style
-------------------------------- */
section {}
.top_secTtl {
  font-size: clamp(20px, calc(19px + 0.3125vw), 24px);
  color: #334454;
  letter-spacing: 0.1em;
  font-weight: 600;
  margin-block: 1rem 4rem;
  position: relative;
}
.top_secTtl::after {
  content: "";
  width: 2.5vw;
  height: 6px;
  background: #ffc402;
  position: absolute;
  bottom: -20px;
  left: 0;
}
.subTtl {
  color: rgb(255 255 255);
  font-size: 80px;
  position: relative;
  top: 0;
  left: -7px;
  line-height: 0.9;
  font-family: "Roboto Condensed", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  opacity: 0.3;
}
.recruit .subTtl {
    color: #fff;
    opacity: 1;
}
.secInner {
  max-width: 1200px;
  margin-inline: auto;
  padding-block: 5vw;
}
section#philosophy {
    background: rgb(199 235 255 / 50%);
}
.mission .sec_inner {
  display: flex;
  justify-content: center;
}
.mission .subTtl {
  background: linear-gradient(5deg, #072cad5c 0%, #077ac2 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.mission .twoColumn {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  column-gap: 4vw;
}
.mission .twoColumn .txtBox {
  width: 60%;
}
.mission .twoColumn .imgBox {
  width: 40%;
}
.mission .twoColumn .imgBox img {
  width: 100%;
  display: inline-block;
}
/*.mission .sec_inner .imgArea {
  width: 100%;
  background: url("../img/top_sec1.jpg") no-repeat;
  background-size: cover;
}*/
.mission .sec_inner .txtArea {
  width: 100%;
  padding: 7vw;
  background: rgb(199 235 255 / 50%);
}
p.signature {
  line-height: 1.6;
  text-align: right;
  font-size: 14px;
  margin-block-start: 2rem;
}
.signature img {
  max-width: 140px;
  display: inline-block;
  margin-block-start: 0.5rem;
  width: 30vw;
}
.about {
  background: url("../img/about_bg.jpg") repeat-y #d4dce6;
  background-size: 100% auto;
}
.about .subTtl {
  color: rgb(171 185 196 / 52%);
  mix-blend-mode: luminosity;
  background: linear-gradient(5deg, #072cad5c 0%, #077ac2 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.two-columns {
  display: block;
  background: #fff;
  border-radius: 10px;
  box-shadow: 2px 3px 13px -5px rgb(16 35 60 / 26%);
}
.about_info {
  width: 100%;
  display: flex;
  /*background: #fff;
  border-radius: 10px;
  box-shadow: 2px 3px 13px -5px rgb(16 35 60 / 26%);*/
  padding: 6vw 3vw 1vw;
  column-gap: 4vw;
}
.about_info dl {
  width: 50%;
  padding: 0;
  /*padding: 6vw 5vw;*/
  box-shadow: none;
}
.address {
  line-height: 1.3;
  margin-block: 0.2em 0.4em;
}
dl {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  column-gap: 2%;
  padding: 2vw 5vw;
  margin-block: 0;
  box-shadow: 2px 3px 13px -5px rgb(16 35 60 / 26%);
}
dt {
  width: 25%;
  display: block;
  position: relative;
  padding: 0.3em 0.5em;
  color: #3d5972;
  font-weight: 600;
  border-bottom: 2px solid #ffc402;
  margin-block-end: 15px;
}
dd {
  width: 70%;
  display: block;
  margin-inline-start: 0;
  margin-block-end: 15px;
  position: relative;
  padding: 0.3em 0.5em;
  border-bottom: 1px solid #acacac;
}
dl.timeLine {
  max-width: 900px;
  margin-inline: auto;
  box-shadow: none;
}
dl.timeLine dt {
  border-bottom: none;
  display: flex;
  align-items: center;
  background: #ffeaa4;
  justify-content: flex-end;
  font-size: clamp(12px, calc(11.25px + 0.234375vw), 15px);
}
.recruit dl.timeLine dt {
  background: #fff;
}
dl.timeLine dd {
  border-bottom: none;
  display: flex;
  align-items: center;
  background: rgb(239 239 239);
  font-size: clamp(12px, calc(11.25px + 0.234375vw), 15px);
}
.place {
  display: inline-block;
  font-size: 13px;
  padding: 0.1em 0;
  color: #334554;
  line-height: 1.4;
  position: relative;
  font-weight: bold;
}
.place::before {
  content: "■";
  font-size: 13px;
  position: relative;
  display: inline-block;
  margin-inline-end: 0.4em;
}
.group .subTtl {
  font-size: 80px;
}
.map {
  background: #fff;
  border-radius: 10px;
  /*box-shadow: 2px 3px 13px -5px rgb(16 35 60 / 26%);*/
  padding: 3vw 3vw 6vw;
  display: flex;
  justify-content: center;
  column-gap: 2%;
  /*margin-block-start: 3rem;*/
}
.mapInner {
  width: 32%;
}
.map iframe {
  display: block;
  width: 100%;
  border-radius: 6px;
  height: auto;
  aspect-ratio: 3 / 2;
  margin-block-start: 0.5rem;
}
.teaser {
  width: 100%;
  height: 30vw;
  background: url("../img/teaser_01.jpg") no-repeat;
  background-size: cover;
}
.group {
  background: url("../img/group_bg.png") no-repeat right bottom #f1f1f1;
  background-size: 33%;
}
.group .subTtl {
  font-size: 60px;
  color: #334354;
  mix-blend-mode: luminosity;
  background: linear-gradient(5deg, #072cad5c 0%, #077ac2 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.groupInfo {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  column-gap: 4%;
  row-gap: 3rem;
}
.groupItem {
  width: 48%;
  height: auto;
  background: #fff;
  border-radius: 10px;
}
.history {
  background: url("../img/history_bg.png") no-repeat top right;
  background-size: 80% auto;
}
@media screen and (max-width:1200px) {
  .secInner {
    padding-inline: 4vw;
  }
}
@media screen and (max-width:768px) {
  .secInner {
    padding-inline: 4vw;
    padding-block: 13vw;
  }
  .fade_in#philosophy {
    opacity: 1;
  }
  .mission .twoColumn {
    flex-wrap: wrap;
    row-gap: 2rem;
  }
  .mission .twoColumn .txtBox {
    width: 100%;
  }
  .mission .twoColumn .imgBox {
    width: 100%;
  }
  .history .secInner {
    padding-block: 11vw 5vw;
  }
  .group {
    background: url(../img/group_bg.png) no-repeat right bottom #f1f1f1;
    background-size: 57vw;
  }
  .group .secInner {
    padding-block-end: 10rem;
  }
  .subTtl {
    font-size: 12vw;
  }
  .group .subTtl, .property .subTtl {
    font-size: 11vw;
  }
  .top_secTtl {
    /*font-size: 6.5vw;*/
    margin-block: 3vw 2rem;
  }
  .top_secTtl::after {
    content: "";
    width: 6.5vw;
    height: 5px;
    position: absolute;
    bottom: -15px;
    left: 0;
  }
  .mission .sec_inner {
    flex-wrap: wrap;
    flex-direction: column-reverse;
  }
  .two-columns {
    flex-wrap: wrap;
  }
  .about_info {
    width: 100%;
    flex-wrap: wrap;
  }
  .about_info dl {
    width: 100%;
  }
  dt {
    font-size: clamp(13px, calc(10.857142857142858px + 0.6696428571428571vw), 16px);
    padding: 0.3em 0.2em;
  }
  dd {
    font-size: clamp(13px, calc(10.857142857142858px + 0.6696428571428571vw), 16px);
  }
  .map {
    width: 100%;
    flex-wrap: wrap;
    row-gap: 2rem;
    margin-block-start: 2rem;
  }
  .mapInner {
    width: 100%;
  }
  .groupInfo {
    flex-wrap: wrap;
    row-gap: 5vw;
  }
  .groupItem {
    width: 100%;
  }
  dl.timeLine {
    padding: 1rem 0;
  }
  .teaser {
    height: 50vw;
    background: url("../img/teaser_01_sp.jpg") no-repeat;
    background-size: cover;
  }
  .teaser img {
    width: 100%;
    display: inline-block;
  }
  .contact h2.top_secTtl {
    margin-block: 2vw 2.8rem;
  }
}
/* -------------------------------
    footer
-------------------------------- */
footer {
  background: url("../img/footer_bg.jpg") no-repeat;
  background-size: cover;
  position: relative;
  color: #fff;
  width: 100%;
  height: 50vw;
}
.footer_logo {
  width: 18vw;
  margin-block-start: 6rem;
}
.footer_logo img {
  width: 100%;
  display: inline-block;
}
.footer_inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}
.footer_subInfo {
  background: #3d5972;
}
.subInfo_inner {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 2rem;
  padding: 2rem;
}
.c-name {
  position: relative;
  padding-block: 0.3em;
}
.c-name::after {
  content: "";
  width: 2px;
  height: 100%;
  background: #fff;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -17px;
}
.c-info p {
  line-height: 1.4;
  margin-block: 0;
  font-size: 12px;
}
.copyright {
  font-family: sans-serif;
  color: #fff;
  font-size: 12px;
  margin-block: 0;
  text-align: center;
  padding: 0.5em;
}
@media screen and (max-width: 768px) {
  footer {
    background: url(../img/footer_bg_sp.jpg) no-repeat center;
    background-size: cover;
    position: relative;
    color: #fff;
    width: 100%;
    height: 100vw;
  }
  .footer_logo {
    width: 40vw;
    margin-block-start: 4rem;
  }
  .subInfo_inner {
    padding: 4vw;
  }
  .subInfo_link, .copyright {
    padding: 0;
  }
  .copyright {
    padding: 0 0 0.5rem;
    font-size: 10px;
  }
}
.contents {
  border-bottom: 20px solid var(--basic-color);
  background: url("../img/sns_corner_1.svg") no-repeat bottom -1px left;
  background-size: 20vw auto;
  padding-block-end: 5vw;
}
.subpageHeader_cover {
  padding-block: clamp(125px, 10vw, 150px);
  background: url("../img/subPage_bg.svg") no-repeat left top;
  background-size: auto 100%;
}
.subpageHeader {
  font-size: 18px;
  color: var(--txt-color);
}
.subHeader {
  color: #0a79c1;
  font-size: clamp(18px, calc(17.5px + 0.15625vw), 20px);
  font-weight: bold;
  margin-block-end: 0.5rem;
}
.sec.inner {
  margin-block-end: 80px;
}
.flexbox {
  display: flex;
  justify-content: space-between;
}
.flex-reverse {
  flex-direction: row-reverse;
}
.txtColumn {
  width: 60%;
}
.imgColumn {
  width: 47%;
  padding: 0 2vw;
}
.imgColumn img {
  display: inline-block;
  width: 100%;
}
p.logoEx_txt {
  font-size: 18px;
  padding-inline-start: 7vw;
}
.org_table dl {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  align-items: center;
}
.org_table dt {
  width: 20%;
  color: var(--txt-color);
  font-weight: 700;
  padding-block: 0.8em;
}
.org_table dd {
  width: 70%;
  margin-inline-start: 0;
  line-height: 1.4;
  padding-block: 0.8em;
}
.org_table dd a {
  color: var(--basic-color);
  text-decoration: underline;
}
/* -------------
page-members
-------------- */
.members_secCover {
  background: #ebece2;
  border-radius: 10px;
  padding: 5rem 4rem;
  margin-top: 2rem;
}
.chairmanImg {
  width: 40%;
  padding: 50px 0 0 4vw;
}
.chairmanImg img {
  display: inline-block;
  width: 100%;
}
.chairmanGreeting {
  width: 70%;
}
.sign {
  color: var(--txt-color);
  font-weight: bold;
  font-size: 18px;
  text-align: right;
}
.flexbox.managerList {
  flex-wrap: wrap;
  row-gap: 4rem;
}
.managerItem {
  width: 27%;
}
.managerItem > img {
  width: 100%;
  display: inline-block;
  margin-block-end: 1.3rem;
}
.managerName {
  font-size: 18px;
  font-weight: 700;
}
.managerName .position {
  color: var(--txt-color);
  font-weight: bold;
  display: inline-block;
  margin-inline-end: 1rem;
  font-size: 18px;
}
.flexbox.memberList {
  flex-wrap: wrap;
  row-gap: 2rem;
  justify-content: flex-start;
}
.memberItem {
  width: 25%;
}
.coName {
  color: var(--txt-color);
  font-size: 17px;
  margin-block-end: 0.5em;
}

section.recruit {
    background: url(../img/about_bg.jpg) repeat-y #d4dce6;
    background-size: 100% auto;
}


.fade_in {
  transition: 1s ease-in-out;
  transform: translateY(20px);
  opacity: 0;
}
.fade_in.on {
  transform: translateY(0);
  opacity: 1.0;
}
.fade_in2 {
  transition: 0.7s ease;
  opacity: 0;
  transform: translateX(-100vw);
}
.fade_in2.on {
  opacity: 1.0;
  transform: translateX(0);
}
.delay02 {
  transition-delay: .3s;
}
.delay03 {
  transition-delay: .6s;
}
.delay04 {
  transition-delay: .9s;
}
.delay05 {
  transition-delay: 1.2s;
}
.delay06 {
  transition-delay: 1.5s;
}
.delay07 {
  transition-delay: 1.8s;
}
@media screen and (max-width:768px) {}
.history .subTtl {
  background: linear-gradient(5deg, #072cad5c 0%, #077ac2 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.contact {
  background: #0a79c1;
  text-align: center;
}
.contact h2.top_secTtl {
  color: #fff;
  margin-block: 2rem 3rem;
}
.contact .subTtl {
  left: 0;
}
.contact .top_secTtl::after {
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
}
.contact p {
  color: #fff;
  line-height: 1.6;
}
a.btn {
  transition-duration: .4s;
  background: #ffc402;
  padding: 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 380px;
  margin-inline: auto;
  border-radius: 3px;
  width: 80%;
  color: #077ac2;
  font-weight: bold;
  position: relative;
  column-gap: 1rem;
}
a.btn::before {
  content: "";
  background: url("../img/icon_contact.svg") no-repeat;
  background-size: 100% auto;
  width: 35px;
  height: auto;
  aspect-ratio: 4 / 3;
  display: inline-block;
  position: relative;
}
a.btn:hover {
  transform: scale(1.1);
}
.titleSec {
  background: #1e88e5;
  padding: 4rem;
}
h1.subPageHeader {
  color: #fff;
  text-align: center;
  font-size: clamp(20px, calc(17.5px + 0.78125vw), 30px);
}
.contactPage.contentWrapper {
  background: #f5f5f5;
}
p.lead {
  text-align: center;
  line-height: 1.6;
  color: #1b3145;
}
p.apdx {
    font-size: 13px;
    margin-block-end: 2rem;
}
section.formSec .apdx {
    text-align: center;
}
@media screen and (max-width:768px) {
  a.btn {
    width: 90%;
  }
  .titleSec {
    padding: 2rem;
  }
  .contactPage section.secInner {
    padding-block: 3vw;
  }
}