.btndiv1 { margin: 0px auto; padding: 30px 0px 0px; width: 90%; max-width: 215px; }
.btndiv1 a { position: relative; display: block; padding: 15px 0px; text-align: center; text-decoration: none; line-height: 100%; border: 1px solid #85a725; color: #85a725; }
.btndiv1 a::after { content: ""; position: absolute; top: 50%; right: 5px; width: 0px; height: 0px; border-width: 6px; border-style: solid; border-color: transparent transparent transparent #85a725; transform: translateY(-50%); }
.btndiv2 a { position: relative; display: block; margin: 15px 0px 0px; padding: 2px 0px; width: 90%; max-width: 110px; text-align: center; text-decoration: none; line-height: 100%; }
.btndiv2 a::after { content: ""; position: absolute; top: 50%; right: 5px; width: 0px; height: 0px; border-width: 6px; border-style: solid; border-color: transparent transparent transparent #ffffff; transform: translateY(-50%); }
.div01 { position: relative; margin: 0px auto; max-width: 1450px; }
.div01 .mbgcolor { position: relative; margin: 0px auto; padding: 0px; width: 92%; max-width: 1080px; }
.div01 .cntrol { position: absolute; top: -38px; left: 0px; width: 100%; height: 40px; z-index: 20; }
#nxbtn { margin: 0px 0px 0px auto; width: 120px; display: flex; flex-flow: wrap; }
#nxbtn div { position: relative; width: 50%; cursor: pointer; }
#nxbtn div::before { content: ""; position: absolute; top: 9px; left: 0px; width: 1px; height: 20px; border-left: 1px solid #aaaaaa; z-index: 5; }
#nxbtn img { margin: 0px auto; max-width: 40px; }
.div01 .topi_jbx { position: absolute; top: 18px; left: 15px; width: 200px; display: flex; flex-flow: wrap; justify-content: flex-start; }
.div01 .topi_jbx div { margin: 0px 5px 0px 0px; width: 18px; height: 5px; background-color: #cccccc; }
.div01 .moji { margin: 0px auto; padding: 0px 0px 50px; max-width: 88%; }
.div01 h2 { margin: 0px; padding: 20px 0px 40px; font-size: calc(0.3581rem + 6.3vw); line-height: 100%; font-weight: normal; text-align: center; }
.div01 .pht1 { display: none; }
.div01 .pht2 { margin: 0px auto; width: 92%; }
.div01 .wk img { width: 100%; }
.div02 { flex-flow: wrap; justify-content: space-between; }
.div02 .wk { position: relative; margin: 20px 0px 0px; padding: 20px 0px 0px 40%; flex-basis: 30%; }
.div02 .pht { position: absolute; top: 20px; left: 1%; width: 35%; max-width: 210px; }
.div02 img { position: absolute; top: 0px; left: 0px; width: 100%; }
.div02 h3 { margin: 0px; padding: 10px 0px 15px; font-size: 1.5rem; line-height: 100%; font-weight: normal; border-bottom: 1px solid #777777; }
.div02 .wk > p { padding: 15px 0px 0px; font-size: 0.93rem; line-height: 200%; }
.div03 { padding: 40px 0px 0px; }
.div03 .wk { position: relative; padding: 30px 20px 50px; }
.div03 .mark { position: absolute; top: 10px; right: 10px; width: 25%; z-index: 5; }
.div03 .mark img { width: 100%; }
.div03 .pht img { width: 100%; }
.div03 h3 { margin: 0px; padding: 0px 0px 20px; font-size: 1.8rem; line-height: 175%; font-weight: normal; }
.div03 .grn { color: #2a8695; }
.div03 .btndiv1 a { color: #2a8695; border: 1px solid #2a8695; }
.div03 .btndiv1 a::after { border-left-color: #2a8695; }
.pad50 { padding-bottom: 50px; }
.pad30 { padding-bottom: 50px; }
.hx01 { margin: 0px auto; padding: 30px 0px 0px; width: 200px; text-align: center; }
.hx01 div { font-size: 2rem; line-height: 100%; }
.hx01 h3 { margin: 10px 0px 0px; padding: 10px 0px 0px; font-size: 0.9rem; line-height: 100%; font-weight: normal; border-top: 1px solid #999999; }
.nwk5 { margin: 0px auto; width: 96%; max-width: 1080px; }
.nwk6 { margin: 0px auto 0px 0px; width: 96%; max-width: 1060px; }
.nwk7 { margin: 0px auto; width: 94%; max-width: 1080px; }
.news { padding: 0px 5px 10px; flex-flow: wrap; justify-content: space-between; }
.news img { width: 100%; }
.topnews { margin: 20px 0px 0px; flex-basis: 48%; }
.topnews a { display: block; padding: 7px; height: 100%; background-color: #ffffff; text-decoration: none; box-sizing: border-box; }
.topnews .hx02 { padding: 15px 10px 8px; font-size: 1.2rem; line-height: 175%; }
.topnews p { padding: 0px 10px 10px; min-height: 70px; font-size: 0.9rem; line-height: 250%; }
.subnews { flex-basis: 48%; }
.subnews ul { margin: 0px; padding: 0px; list-style-type: none; display: flex; flex-flow: wrap; justify-content: space-between; }
.subnews li { margin: 20px 0px 0px; flex-basis: 48%; }
.subnews a { display: block; padding: 7px; height: 100%; background-color: #ffffff; text-decoration: none; box-sizing: border-box; }
.subnews p { padding: 10px 5px; min-height: 40px; font-size: 1rem; line-height: 175%; }
.works { margin: 0px; padding: 0px; list-style-type: none; display: flex; flex-flow: wrap; justify-content: space-between; }
.works li { margin: 30px 0px 0px; flex-basis: 48%; }
.works li a { display: block; width: 100%; text-decoration: none; }
.works li a > div { position: relative; width: 100%; height: 0px; padding-bottom: 67%; }
.works p { padding: 8px 0px 0px; font-size: 0.93rem; line-height: 200%; text-align: center; }
.prof { position: relative; margin: 0px; padding: 60px 0px; width: 100%; }
.prof .bgp { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; background-color: #000000; z-index: -1; }
.prof .bgp img { width: 100%; height: 100%; opacity: 0.7; object-fit: cover; }
.prof .wk1 { padding: 0px 10px 40px; background-color: rgba(255, 255, 255, 0.9); box-sizing: border-box; }
.prof .wk2 { flex-flow: wrap; justify-content: space-between; align-items: flex-start; }
.prof .wk2 .pht { position: relative; margin: 30px 0px 0px; flex-basis: 35%; }
.prof .wk2 .pht img { width: 100%; }
.prof .wk2 .moji { margin: 30px 0px 0px; flex-basis: 60%; }
.prof .deftab { font-size: 0.9rem; line-height: 175%; }
.prof .deftab th, .prof .deftab td { background-color: rgba(255, 255, 255, 0.4); }
.snsbnr { margin: 0px auto; padding: 40px 0px; list-style-type: none; width: 100%; display: flex; flex-flow: wrap; justify-content: space-between; }
.snsbnr li { margin: 20px 0px 0px; padding: 0px; flex-basis: 48%; border: 1px solid #cccccc; box-sizing: border-box; }
.snsbnr li img { margin: 0px auto; width: 100%; max-width: 257px; }
.bun03 { margin: 0px auto; padding: 0px; width: 100%; max-width: 800px; font-size: 0.9rem; line-height: 225%; }
#access { position: relative; width: 100%; height: 430px; overflow: hidden; }
#access iframe { display: block; width: 100%; }
#access > img { position: absolute; top: 0px; left: 0px; width: 100%; min-width: 1370px; height: 100%; }
@media print, screen and (min-width: 510px) {
  .div03 .mark { top: 20px; right: 20px; width: 130px; }
  .div01 h2 { font-size: 2.5rem; line-height: 100%; }
  .prof .wk1 { padding: 0px 20px 40px; }
}
@media print, screen and (min-width: 720px) {
  .nwk6 { margin: 0px auto; padding: 0px 0px 40px; width: 92%; }
  .div02 { padding: 40px 0px; display: flex; }
  .div02 h3 { position: relative; padding-bottom: 20px; text-align: center; font-size: 1.7rem; line-height: 100%; border: 0px; }
  .div02 h3::before, .div02 h3::after { content: ""; position: absolute; top: 24px; width: 27%; border-top: 1px solid #aaaaaa; }
  .div02 h3::before { left: 0px; }
  .div02 h3::after { right: 0px; }
  .div02 .wk { padding: 0px; }
  .div02 .pht { position: static; width: 100%; max-width: 100%; }
  .div02 img { position: relative; margin: 0px auto; width: 80%; max-width: 210px; }
  .div02 .wk > p { padding: 17px 0px 0px; font-size: 0.9rem; line-height: 250%; }
}
@media screen and (min-width: 510px) and (max-width: 719px) {
  .div02 .wk { position: relative; margin: 20px 0px 0px; padding: 20px 0px 0px 27%; flex-basis: 30%; }
  .div02 .pht { position: absolute; top: 20px; left: 2%; width: 22%; max-width: 210px; }
}
@media print, screen and (min-width: 768px) {
  .btndiv1 { padding: 50px 0px 0px; max-width: 300px; }
  .lftrbtn { margin-left: 0px; max-width: 215px; }
  .hx01 { padding-top: 60px; }
  .mgn50 { margin-top: 60px; }
  .pad50 { padding-bottom: 80px; }
  .news { display: flex; padding: 20px 0px 10px; }
  .topnews .hx02 { padding: 15px 18px 8px; }
  .topnews p { padding: 0px 18px 10px; }
  .subnews p { padding: 15px 11px 10px; min-height: 60px; }
  .nwk6 { margin: 0px auto; padding: 0px 0px 40px; }
  .div01 .wk { margin: 0px 6%; padding: 60px 0px; width: 88%; display: flex; flex-flow: wrap; justify-content: space-between; }
  .div01 .moji { margin: 0px; min-height: 530px; flex-basis: 44%; }
  .div01 .pht1 { flex-basis: 50%; display: block; }
  .div01 .pht1 > div { width: 90%; height: 90%; }
  .div01 .pht2 { position: absolute; top: 45%; left: 68%; margin: 0px; padding: 0px; width: 32%; height: 50%; z-index: 5; }
  .div01 img { height: 100%; object-fit: cover; }
  .div01 h2 { text-align: left; }
  .btndiv2 a { margin: 20px auto 0px; padding: 5px 0px; width: 90%; max-width: 130px; }
  .div03 { position: relative; padding: 20px 0px; }
  .div03 .pht { position: absolute; top: 0px; left: 0px; width: 60%; height: 100%; z-index: -1; }
  .div03 .pht img { height: 100%; object-fit: cover; }
  .div03 .wk { margin: 0px 0px 0px auto; padding: 80px 0px 60px; width: 55%; }
  .div03 .wk .naka { margin: 0px auto; width: 90%; max-width: 500px; }
  .div03 h3 { font-size: 1.8rem; line-height: 175%; }
  .works { padding-top: 20px; }
  .works li { flex-basis: 31%; }
  .prof .wk1 { padding: 0px 40px 40px; }
  .snsbnr li { flex-basis: 24%; }
}
@media screen and (min-width: 768px) and (max-width: 1090px) {
  .div01 h2 { font-size: calc(-0.366rem + 4.2vw); line-height: 100%; }
}
@media print, screen and (min-width: 870px) {
  .prof .wk2 { display: flex; }
  .div03 h3 { font-size: 2rem; line-height: 175%; }
}
