@charset "UTF-8";

/* =======================================
our policy 私たちの考え方
======================================= */
#policy {
position: relative;
}
#policy figure:before {
content: "";
display: block;
height: 100%;
width: 60%;
position: absolute;
top: 0%;
left: -30%;
background: #FAF2D5;
z-index: -1;
}
#policy .flexBox {
justify-content: space-between;
position: relative;
max-width: 1280px;
margin: 7vh auto 0;
flex-direction: row-reverse;
flex-wrap: nowrap;
width: 94%;
}
#policy figure {
margin-right: 4%;
box-sizing: border-box;
}

#policy figure {
padding-top: 7%;
}

#policy figure img {
width: 100%;
height: 500px;
object-fit: cover;
}

#policy h3 + h4 {
font-size: 2rem;
color: #333;
font-family: 'Yu Mincho Light','YuMincho','Yu Mincho','游明朝体','ヒラギノ明朝 ProN','Hiragino Mincho ProN',sans-serif;
line-height: 170%;
margin-bottom: 3rem;
}

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

}
@media screen and (max-width: 1024px) {
#policy h3 + h4 {
font-size: 1.7rem;
}
#policy .txtArea {
width:49%;
}

#policy figure img {
height: 520px;
}

#policy figure:before {
max-height: 670px;
}
}
@media screen and (max-width: 812px){
#policy .flexBox {
flex-direction: column-reverse;
}
#policy .txtArea {
width:100%;
padding: 5% 5% 0 10%;
}
#policy figure {
width: 90%;
max-width: 580px;
margin-right: 0;
}
#policy figure img {
height: 400px;
}
}
@media screen and (max-width: 480px) {
#policy figure {
width: 90%;
}
#policy figure img {
height: 300px;
}
#policy h3 + h4 br {
display: none;
}
}




/* =======================================
info 会社概要 歩み
======================================= */
#info {
width: 92%;
max-width: 1500px;
margin: 20vh auto 0;
display: flex;
justify-content: space-between;
flex-wrap:nowrap;
}

#info div {
width: 100%;
}
#info div:nth-child(2) {
margin-left: 4%;
}

#info table {
margin-top: 5vh;
border-collapse: collapse;
}

#info table tr {
border-bottom: 1px dashed #999;
}

#info table th {
width: 30%;
text-align: left;
padding: 3vh 1vh;
vertical-align: top;
}

#info table td {
padding: 3vh 1vh;
}


@media screen and (max-width: 1280px) {
#info table th {
width: 20%;
}
}
@media screen and (max-width: 812px) {
#info table th,
#info table td {
width: 100%;
display: block;
}
#info table th {
padding: 2vh 1vh .5vh 1vh;
font-weight: 700;
font-size: 1.1rem;
}
#info table td {
padding: 0vh 1vh 2vh 1vh;
}
}
@media screen and (max-width: 480px) {
#info div {
width: 100%;
}
#info {
flex-wrap:wrap;
}
#info table {
margin-bottom: 10vh;
}
#info div:nth-child(2) {
margin-left: 0;
}
}


/* =======================================
surroundings
======================================= */

#surroundings .grid {
display: grid;
height: 500px;
grid-template-rows: 50% 50%;
grid-template-columns: 50% 50%;
background: #fff;
}
#surroundings .grid p img {
width: 100%;
height: 100%;
object-fit: cover;
}
#surroundings .grid p:first-of-type {
grid-row:1/3;
grid-column:1;
padding-right: 5px;
}

#surroundings .grid p:nth-of-type(2) {
grid-row:1;
grid-column:2;
padding-bottom: 5px;
}

#surroundings .grid p:nth-of-type(3) {
grid-row:2;
grid-column:2;
}

.bgWhite {
background: #fff;
padding: 5rem 0 8rem;
}
#surroundings .bgWhite > .flexBox {
max-width: 1080px;
width: 100%;
margin: 0 auto;
text-align: left;
align-items: center;
background: #fff;
}

#surroundings .bgWhite > .flexBox dl {
width: 35%;
}

#surroundings .bgWhite > .flexBox dl dt {
font-weight: 700;
font-size: 1.2rem;
margin-bottom: 1rem;
}

#surroundings .bgWhite > .flexBox > .pop-box {
width: 65%;
}
.swiper-container {
margin-top:3rem;
}

/* ポップアップウインドウの設定 */
.popup {
  background-color: #efefef;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, .8);
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 55vw;
  height: 45vw;
  overflow-y: scroll;
  z-index: 1200;
}
/* チェックボックスの初期設定 */
#popup-on{
  display: none;
}
/* チェックされたらポップアップウインドウを開く */
#popup-on:checked + .popup{
  display: block;
}

/* 閉じるアイコン（右上） */
.icon-close{
  background: #000;
  color: #fff;
  font-size: 30px;
  padding: 0 10px;
  position: absolute;
  right: 0;
}

/* 閉じるボタン */
.btn-close{
  background: #000;
  border-radius: 10px;
  color: #fff;
  padding: 10px;
  cursor: pointer;
  margin: 10px auto;
  width: 95%;
  text-align: center;
}

/* 開くボタン */
.btn-open{
  cursor: pointer;
  margin: 10px auto;
  position: relative;
}

.btn-open:before {
content:'\f00e';
font-family:'Font Awesome 5 Free';
font-weight:900;
color: #fff;
position: absolute;
bottom:0;
right: 0;
width: 50px;
height: 50px;
font-size: 30px;
text-align: center;
line-height: 50px;
background: #ccc;
}

/* ポップアップの内容 */
.popup-content{
  margin: 20px auto 40px auto;
  width: 90%;
}

#gallery {
position: relative;
}

#gallery h4 {
margin-top: -1rem;
}

#gallery:before {
display: block;
content: "";
width: 80%;
max-width: 600px;
margin: -80px auto 0;
background: #f4f4f4;
height: 80px;
}

#gallery li {
background: #fff;
box-shadow: 0 0 15px #ddd;
}
#gallery li p {
padding: 1rem;
text-align: left;
}
#gallery img {
height: 300px;
width: 100%;
object-fit: cover;
}
#gallery > h4 {
margin-bottom: 3rem;
}
.swiper-container {
margin:  4rem auto 0 !important;
}
.swiper-button-prev,
.swiper-button-next {
  width: 32px;
  height: 32px;
  margin-top: -16px;
}
.swiper-button-prev {
    background: url("../img/about/arrow02.svg") no-repeat center center / contain !important;
}
.swiper-button-next {
    background: url("../img/about/arrow03.svg") no-repeat center center / contain !important;
}
@media screen and (max-width: 1400px) {
.popup {
height: 60vw;
width:70vw;
}
}

@media screen and (max-width: 1280px) {
#surroundings .grid {
height: 400px;
}
#surroundings .bgWhite > .flexBox {
width: 94%;
}

}
@media screen and (max-width: 1024px) {
.popup {
height: 80vw;
width:90vw;
}
}
@media screen and (max-width: 480px) {
#surroundings .grid {
height: 200px;
}
#surroundings .bgWhite > .flexBox {
width: 90%;
margin: 0 auto;
}
#surroundings .bgWhite > .flexBox dl {
margin-bottom: 3rem;
}
#surroundings .bgWhite > .flexBox dl,
#surroundings .bgWhite > .flexBox > .pop-box {
width: 90%;
}
}


/* =======================================
overview 園の概要
======================================= */

#overview {
margin: 5rem auto 0;
}

#overview table {
max-width: 800px;
width: 92%;
margin: 0 auto;
text-align: left;
border-collapse: collapse;
}
#overview table tr {
border-bottom: 1px solid #999;
}
#overview table th,
#overview table td {
padding: 1rem;
}
#overview table th {
width: 30%;
vertical-align: top;
}

#overview table td {
width: 70%;
}
#gmap {
margin-top: 5rem;
}
#gmap iframe {
height: 35vw;
}

@media screen and (max-width: 480px) {
#gmap iframe {
height: 80vw;
}
}

