/*

  全体レイアウト

================================================================
*/
#wrapper {
  position: relative;
  max-width: 2000px;
  min-width: 1300px;
  margin: 0 auto;}
.inner {
  position: relative;
  width: 1100px;
  height: 100%;
  margin: 0 auto;}
#container {
  position: relative;
  margin-top: 90px;}
.pcn {
  display: none;}
.spn {
  display: inline-block;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#wrapper {
  max-width: 100%;
  min-width: 100%;}
.inner {
  width: 100%;}
#container {
  margin-top: 0;}
.pcn {
  display: inline-block;}
.spn {
  display: none;}}

/*

  ヘッダー構成

================================================================
*/
#header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  min-width: 1300px;
  height: 90px;
  padding: 0 40px;
  background-color: #fff;
  z-index: 10;}
#header .hwrap {
  display: flex;
  align-items: center;
  height: 100%;}
#header .hwrap .logo img {
  width: auto;
  height: 60px;}
#header .hwrap .nav {
  flex: 1;
  height: 40px;
  margin-left: 30px;
  border-left: 2px solid #5A4A37;
  border-radius: 2px;}
#header .hwrap .nav ul {
  display: flex;
  height: 40px;
  margin-left: 13px;
  font-size: 15px;
  font-weight: 600;}
#header .hwrap .nav ul li {
  height: 100%;}
#header .hwrap .nav ul li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 13px;}
#header .hwrap .nav .burger {
  display: none;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#header {
  min-width: 100%;
  height: 22vw;
  padding: 0 5vw;
  background-color: transparent;
  transition: .2s;}
#header.mix {
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 1), rgba(254, 254, 255, 0.96) 20%, rgba(233, 240, 250, 0) 70%), linear-gradient(90deg, rgba(255, 255, 255, 1) 9%, rgba(233, 240, 250, 0));
  background-color: rgba(255, 255, 255, .2);
  backdrop-filter: blur(1vw);}
#header .hwrap {
  justify-content: space-between;}
#header .hwrap .logo img {
  height: 13vw;
  transition: .2s;}
#header.mix .hwrap .logo img {
  filter: brightness(0);}
#header .hwrap .nav {
  flex: unset;
  height: auto;
  margin-left: 0;
  border-left: 0;
  border-radius: 0;}
#header .hwrap .nav ul {
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  margin-left: 0;
  font-size: 3.7vw;}
#header .hwrap .nav ul li {
  height: auto;}
#header .hwrap .nav ul li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 12vw;
  padding: 0;
  color: #fff;}
#header.under {
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 1), rgba(254, 254, 255, 0.96) 20%, rgba(233, 240, 250, 0) 70%), linear-gradient(90deg, rgba(255, 255, 255, 1) 9%, rgba(233, 240, 250, 0));
  background-color: rgba(255, 255, 255, .2);
  backdrop-filter: blur(1vw);}
#header.under .hwrap .logo img {
  filter: brightness(0);}}

/*

  ナビゲーション構成

================================================================
*/
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#header .hwrap .nav .burger {
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  width: 15vw;
  height: 14vw;
  padding-bottom: 2vw;
  background: url(../img/common/iburger.png) no-repeat top center / 100% auto;}
#header .hwrap .nav .spmenu {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 76vw;
  height: 100vh;
  padding-top: 20vw;
  background-color: #E2B649;
  transform: translateX(-75vw);
  transition: all .2s linear;
  opacity: 0;
  z-index: 10;}
#header .hwrap .nav .spmenu.active {
  transform: translateX(0);
  opacity: 1;}
.menu-trigger,
.menu-trigger span {
  display: inline-block;
  transition: all .25s;}
.menu-trigger {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 7vw;
  height: 4vw;
  background: none;
  border: none;
  appearance: none;}
.menu-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
  border-radius: .2vw;}
.menu-trigger span:nth-of-type(1) {
  top: 0;}
.menu-trigger span:nth-of-type(2) {
  top: calc(50% - 1px);}
.menu-trigger span:nth-of-type(3) {
  bottom: 0;
  left: auto;
  right: 0;
  width: 80%;}
.menu-trigger.active span:nth-of-type(1) {
  transform: translateY(2vw) rotate(-40deg);
  top: -1px;}
.menu-trigger.active span:nth-of-type(2) {
  opacity: 0;}
.menu-trigger.active span:nth-of-type(3) {
  transform: translateY(-2vw) rotate(40deg);
  width: 100%;
  bottom: -1px;}}

/*

  フッター構成

================================================================
*/
#footer {
  overflow: hidden;
  position: relative;
  background-color: #fff;}
#footer .inner {
  width: 1200px;}
#footer .ftop {
  position: relative;
  padding: 140px 0 80px;}
#footer .ftop:after {
  content: '';
  position: absolute;
  top: -70px;
  left: 50%;
  width: 110%;
  height: 140px;
  margin-left: -55%;
  border-radius: 100%;
  background-color: #F7F4F0;}
#footer .ftop .flex {
  display: flex;
  justify-content: space-between;}
#footer .ftop .flex .left {
  width: 400px;}
.lschedule {
  width: 100%;
  margin-bottom: 30px;}
.lschedule table {
  width: 100%;
  border-bottom: 2px solid #2D0E0E;
  font-size: 15px;
  letter-spacing: 0;}
.lschedule table thead {
  border-bottom: 2px solid #2D0E0E;}
.lschedule table thead th,
.lschedule table thead td {
  text-align: center;
  padding-bottom: 15px;}
.lschedule table tbody tr + tr {
  border-top: 1px solid #2D0E0E;}
.lschedule table tbody th {
  width: 16%;
  font-weight: 500;}
.lschedule table tbody td {
  width: 12%;}
.lschedule table tbody th {
  padding: 15px 0;}
.lschedule table tbody td {
  text-align: center;
  vertical-align: middle;
  padding: 15px 0;}
.lschedule table tbody td img {
  width: 15px;
  height: auto;}
.lend {
  position: relative;}
.lend table {
  width: 100%;
  border-left: 2px solid #5A4A37;
  font-size: 15px;
  line-height: 1.5;}
.lend table th {
  padding: 5px 15px;
  text-align: left;
  vertical-align: top;}
.lend table td {
  padding: 5px 0;}
.lend table td span {
  color: #EA7528;}
.lend .note {
  margin-top: 10px;
  text-align: right;
  font-size: 13px;}
#footer .ftop .flex .left .map {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1/.5;
  margin-top: 30px;
  margin-bottom: 20px;
  border-radius: 10px;}
#footer .ftop .flex .left .map iframe {
  width: 100%;
  height: 100%;}
#footer .ftop .flex .right {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-left: 60px;}
#footer .ftop .flex .right .llist {
  display: flex;
  justify-content: space-between;}
#footer .ftop .flex .right .llist > ul {
  width: 32%;}
#footer .ftop .flex .right .llist > ul > li > a {
  display: inline-block;
  font-weight: 600;
  color: #EA7528;}
#footer .ftop .flex .right .llist > ul > li + li {
  margin-top: 20px;}
#footer .ftop .flex .right .llist > ul > li ul {
  margin-top: 12px;
  padding-left: 1em;
  font-size: 15px;
  line-height: 1.6;}
#footer .ftop .flex .right .llist > ul > li ul li + li {
  margin-top: 5px;}
.ccta {
  position: relative;}
.ccta ul {
  display: flex;
  justify-content: space-between;}
.ccta ul li {
  position: relative;
  overflow: hidden;
  width: 48.5%;
  height: 120px;
  border-radius: 10px;
  box-shadow: 0 5px 5px rgba(0, 0, 0, .15);}
.ccta ul li:hover {
  top: -3px;}
.ccta ul li a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  color: #fff;}
.ccta ul li a .txt {
  font-size: 15px;}
.ccta ul li a .min {
  margin-top: 10px;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: .02em;}
.ccta ul li a .min span {
  display: inline-block;
  padding-left: 45px;
  padding-bottom: 5px;
  background-repeat: no-repeat;
  background-position: left center;
  background-size: auto 90%;
  font-weight: 500;}
.ccta ul li.tel {
  pointer-events: none;
  background-color: #EA7528;}
.ccta ul li.tel a span {
  background-image: url(../img/common/itel.png);}
.ccta ul li.web {
  background-color: #FCC745;}
.ccta ul li.web a span {
  background-image: url(../img/common/ipc.png);}
.ccta ul li.mail {
  background-color: #B4A69C;}
.ccta ul li.mail a span {
  padding: 4px 0 8px 40px;
  font-size: 80%;
  background-image: url(../img/common/imail.png);}
#footer .fbottom {
  position: relative;
  height: 200px;
  background: url(../img/common/wave.svg) no-repeat center top / 2000px auto;}
#footer .fbottom .inner {
  display: flex;
  align-items: center;
  height: 100%;}
#footer .fbottom img {
  width: 260px;
  height: auto;}
#footer .fbottom small {
  position: absolute;
  right: 0;
  bottom: 20px;
  color: #fff;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#footer .inner {
  width: 100%;
  padding: 0 5vw;}
#footer .ftop {
  padding: 15vw 0 10vw;}
#footer .ftop:after {
  top: -23vw;
  width: 140%;
  height: 30vw;
  margin-left: -70%;}
#footer .ftop .flex {
  flex-direction: column-reverse;}
#footer .ftop .flex .left {
  width: 100%;
  padding-bottom: 10vw;}
.lschedule {
  margin: 10vw 0 5vw;}
.lschedule table {
  font-size: 3vw;}
.lschedule table thead th,
.lschedule table thead td {
  padding-bottom: 3vw;}
.lschedule table tbody th {
  padding: 2.5vw 0;}
.lschedule table tbody td {
  padding: 2.5vw 0;}
.lschedule table tbody td img {
  width: 3.4vw;}
.lend table {
  font-size: 3.2vw;}
.lend table th {
  padding: 2vw 3.5vw;
  font-weight: 500;}
.lend table td {
  padding: 2vw 0;}
.lend .note {
  margin-top: 2vw;
  font-size: 3vw;}
#footer .ftop .flex .left .map {
  aspect-ratio: 1/.7;
  margin-top: 5vw;
  margin-bottom: 5vw;
  border-radius: 2vw;}
#footer .ftop .flex .right {
  width: 100%;
  margin-left: 0;}
#footer .ftop .flex .right .llist {
  flex-direction: column;}
#footer .ftop .flex .right .llist > ul {
  width: 100%;}
#footer .ftop .flex .right .llist > ul > li > a {
  display: flex;
  align-items: center;
  width: 100%;
  height: 12vw;
  border-top: 1px solid #F7F4F0;
  font-weight: 500;
  font-size: 3.5vw;}
#footer .ftop .flex .right .llist > ul > li + li {
  margin-top: 0;}
#footer .ftop .flex .right .llist > ul > li ul {
  display: none;}
#footer .ccta {
  position: fixed;
  bottom: 3vw;
  left: 0;
  width: 100%;
  padding: 0 3vw;
  z-index: 5;}
.ccta ul li {
  height: 18vw;
  border-radius: 2vw;
  box-shadow: 0 1vw 1vw rgba(0, 0, 0, .1);}
.ccta ul li:hover {
  top: 0;}
.ccta ul li a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  color: #fff;}
.ccta ul li a .txt {
  letter-spacing: .05em;
  font-size: 3vw;}
.ccta ul li a .txt i {
  display: none;}
.ccta ul li a .min {
  margin-top: 1.5vw;
  font-size: 4.7vw;}
.ccta ul li a .min span {
  padding-left: 7vw;
  padding-bottom: 1vw;}
.ccta ul li.tel {
  pointer-events: auto;}
.ccta ul li.tel .min span {
  padding-left: 6.5vw;}
.ccta ul li.mail {
  width: 100%!important;
  margin-top: 2vw;}
.ccta ul li.mail a span {
  padding: 1vw 0 1.5vw 7vw;
  font-size: 90%;}
#footer .fbottom {
  position: relative;
  height: auto;
  background: none;}
#footer .fbottom:before {
  pointer-events: none;
  content: '';
  position: absolute;
  top: -10vw;
  left: 0;
  width: 100%;
  height: 10vw;
  background: url(../img/common/wave.svg) no-repeat center top / 100% auto;}
#footer .fbottom .inner {
  align-items: flex-end;
  justify-content: space-between;
  padding-bottom: 25vw;
  background-color: #5a4a37;}
#footer .fbottom img {
  width: auto;
  height: 13vw;}
#footer .fbottom small {
  position: static;
  font-size: 2.6vw;}}

/*

  wordpress Admin bar

================================================================
*/
#wpadminbar{
    position: fixed !important;
    transition:.3s ease-in-out;
}
html:has(#wpadminbar){
  margin-top:0 !important;
}
html:has(#wpadminbar) #wpadminbar{
  position: fixed;
  z-index: 999;
  top:-32px;
  left:0;
  transition: .3s ease-in-out;
}
html:has(#wpadminbar) #wpadminbar::before{
  content:"";
  position:absolute;
  z-index: 999;
  bottom:-32px;
  left:0;
  width:100%;
  height:0;
  background:transparent;
}
html:has(#wpadminbar) #wpadminbar::after{
  content:"管理メニュー";
  cursor: pointer;
  display:flex;
  justify-content: center;
  align-items: center;
  height:32px;
  position:absolute;
  z-index: 999;
  bottom:-32px;
  left:15px;
  line-height: 1;
  padding:5px 10px;
  color:#fff;
  background:#1d2327;
  box-sizing: border-box;
  border-radius: 0 0 5px 5px;
}
html:has(#wpadminbar) #wpadminbar:hover{
  top:0;
}
html:has(#wpadminbar) #wpadminbar:hover::before{
  height:32px;
}
@media (max-width: 767px){
  html:has(#wpadminbar) #wpadminbar{
    top:-46px;
  }
}

.p-recruit-contact .wpcf7-form-control-wrap > .wpcf7-not-valid-tip{
  display: none;
  margin-top: 10px;
}

.p-recruit-contact .wpcf7-form-control-wrap.is-show > .wpcf7-not-valid-tip{
  display: block;
}

.p-recruit-contact .wpcf7 form .wpcf7-response-output{
  width: 750px;
  margin:2em auto;
}