@charset "UTF-8";

/* ユーティリティー */
a {
  zoom: 1;
  text-decoration: none;
  color: #3b4043;
  transition: opacity 0.7s;
  display: block;
}

a:hover {
  opacity: 0.8;
}
.page {
  width: 100%;
  max-width: 1150px;
  margin: 0 auto;
  padding: 0 20px;
}
.page_s {
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
}

img {
  width: 100%;
  height: auto;
  display: block;
}

/* a.sptel {
  cursor: default;
  pointer-events: none;
} */

.nolink {
  pointer-events: none;
  cursor: default;
}

.sp {
  display: none;
}

img[src*="_sp"] {
  display: none;
}

body {
  color: #3b4043;
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-weight: 500; /* 400,700 */
  font-style: normal;
  font-size: 14px;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  font-feature-settings: "palt";
  position: relative;
}
body.fixed {
  overflow: hidden;
}
main {
  overflow: hidden;
}
.fmin {
  font-family: "Noto Serif JP", serif;
}
.dnp {
  font-family: "dnp-shuei-mgothic-std", sans-serif;
  font-weight: 600;
  font-style: normal;
}
/* -------------------------------------
header
------------------------------------- */
body.hidden {
  overflow-y: hidden;
}
header {
  width: 100%;
  padding: 16px 0;
  background-color: rgba(255, 255, 255, 1);
  box-shadow: rgba(000, 000, 000, 0.12) 2px 2px 6px 3px;
  z-index: 10;
  transition: all 0.4s;
}
header.fixed {
  position: fixed;
}
#head {
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin: 0 auto;
  transition: all 0.4s;
}
#head .head_top {
  width: 36%;
  max-width: 395px;
  min-width: 213px;
  position: relative;
  z-index: 2;
  transition: all 0.7s;
}
#head .logo {
  width: 100%;
  transition: all 0.6s;
}
#head .spnav {
  width: 60%;
  max-width: 614px;
}
#head nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

#head nav #gnav {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 0 10px;
}
#head nav #gnav > li a {
  padding: 14px;
}
#head nav #gnav > li a span {
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  padding-left: 20px;
  display: block;
  background: url(../imgs/common/h_arrow.svg) no-repeat left center/6px;
}
#head nav #gnav .tel {
  font-size: 15px;
}
#head nav #gnav .tel span {
  font-size: 30px;
  color: #279fba;
  line-height: 1;
  letter-spacing: 2px;
  display: block;
  padding-left: 32px;
  background: url(../imgs/common/ic_tel_pc.svg) no-repeat left center/23px;
}

#head a#menu_btn,
#head a#menu_btn span {
  display: inline-block;
  transition: all 0.4s;
}

#head a#menu_btn {
  width: 33px;
  height: 35px;
  display: none;
  position: relative;
  position: absolute;
  top: 50%;
  right: 20px;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 10;
}

#head a#menu_btn span {
  width: 33px;
  height: 5px;
  margin: 0 auto;
  border-radius: 10px;
  background-color: #279fba;
  position: absolute;
  left: 0;
  right: 0;
}

#head a#menu_btn span:nth-of-type(1) {
  top: 4px;
}

#head a#menu_btn span:nth-of-type(2) {
  top: 14px;
}

#head a#menu_btn span:nth-of-type(3) {
  top: 25px;
}

#head a#menu_btn.active {
  opacity: 1;
}
#head a#menu_btn.active span {
  background-color: #279fba;
}

#head a#menu_btn.active span:nth-of-type(1) {
  transform: translateY(11px) rotate(-315deg);
}

#head a#menu_btn.active span:nth-of-type(2) {
  opacity: 0;
}

#head a#menu_btn.active span:nth-of-type(3) {
  transform: translateY(-10px) rotate(315deg);
}
#head aside {
  display: none;
}
/* -------------------------------------
mv
------------------------------------- */
#mv {
  margin-bottom: 34px;
  position: relative;
}
#mv .catchblk {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
#mv .catchblk .catch {
  font-size: 36px;
  font-weight: 600;
  color: #fff;
  text-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
}
#mv .slick-dots {
  bottom: 1%;
}
#mv .slick-dots li button:before {
  content: "■";
  color: #fff;
}
/* -------------------------------------
common
------------------------------------- */
.flex {
  display: flex;
  flex-wrap: wrap;
}

.inv_mov {
  opacity: 0;
  transition: opacity 1s, transform 1s;
}

.tl_yb {
  transform: translate(0, 60px);
}

.tl_yt {
  transform: translate(0, -60px);
}

.tl_xl {
  transform: translate(-60px, 0);
}

.tl_xr {
  transform: translate(60px, 0);
}

.tl_rol {
  transform: rotate(-10deg);
}

.tl_ror {
  transform: rotate(10deg);
}

.mov {
  opacity: 1;
  transform: translate(0, 0) rotate(0deg);
  transition: opacity 1s, transform 1s;
}

.mov.delay100 {
  transition-delay: 100ms;
}

.mov.delay200 {
  transition-delay: 200ms;
}

.mov.delay300 {
  transition-delay: 300ms;
}

.mov.delay400 {
  transition-delay: 400ms;
}

.mov.delay500 {
  transition-delay: 500ms;
}
.secttl {
  width: 100%;
  height: 33px;
  position: relative;
  background-color: #fcd800;
}
.secttl span {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #fff;
  display: block;
  width: 31.5%;
  min-width: 244px;
  padding: 4px 20px;
  background: url(../imgs/common/bg_ttl.svg) no-repeat right center/cover;
}
.blk {
  padding: 25px 0;
}
/* -------------------------------------
pankuzu
------------------------------------- */
.pankuzu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.pankuzu li {
  font-size: 13px;
  color: #21759b;
  line-height: 1.2;
  display: inline-block;
  padding: 0 10px;
}
.pankuzu li:first-child {
  border-right: 1px solid #21759b;
}
.pankuzu li a {
  font-size: 13px;
  color: #21759b;
  text-decoration: underline;
}
/*search*/
.search-box {
  width: calc(100% - 230px);
  height: 52px;
  max-width: 233px;
  min-width: 140px;
}
.news .search-box {
  margin: 0 0 20px auto;
}
.search-box #form {
  position: relative;
}
.search-box #sbox {
  width: 100%;
  height: 52px;
  padding: 0 10px;
  position: absolute;
  right: 0;
  top: 0;
  border-radius: 2px;
  outline: 0 !important;
  background: #fff;
}
.search-box #sbtn {
  height: 52px;
  position: absolute;
  right: 0px; /*アイコン左右の位置調整*/
  top: 0;
  background: none;
  color: #98a6b5;
  border: none;
  font-size: 20px; /*アイコンサイズ*/
}
.search-box #sbtn:hover {
  color: #7fbfff;
}

/* -------------------------------------
menu
------------------------------------- */
.catlist {
  display: flex;
  justify-content: space-between;
  position: relative;
}
.catlist:before {
  content: "";
  width: 1px;
  height: calc(100% - 36px);
  display: block;
  position: absolute;
  bottom: 0;
  left: calc(33% - 1px);
  background: url(../imgs/common/menu_dashed.svg) repeat-y center bottom;
}
.catlist:after {
  content: "";
  width: 1px;
  height: calc(100% - 36px);
  display: block;
  position: absolute;
  bottom: 0;
  right: calc(33% - 1px);
  background: url(../imgs/common/menu_dashed.svg) repeat-y center bottom;
}
.catlist dl {
  width: 32%;
  max-width: 332px;
}
.catlist dt {
  font-size: 23px;
  line-height: 1;
  letter-spacing: 0.1em;
  margin-bottom: 13px;
}
.catlist dd {
  width: 100%;
  margin-bottom: 13px;
}
.catlist dd:last-child {
  margin-bottom: 0;
}
.catlist dd a {
  padding: 10px;
  display: flex;
  align-items: center;
  background: url(../imgs/common/menu_arrow.svg) no-repeat right 13px center;
  border-radius: 5px;
}
.catlist dd a .imgblk {
  width: 30%;
  max-width: 112px;
}
.catlist dd a .imgblk img {
  width: 90%;
  max-width: 63px;
  margin: 0 auto;
}
.catlist dd a p {
  font-size: 18px;
  color: #fff;
  padding-right: 12px;
}
.catlist dd.menu1 a {
  background-color: #279fba;
}
.catlist dd.menu2 a {
  background-color: #4a78b4;
}
.catlist dd.menu3 a {
  background-color: #6bc4c4;
}
.catlist dd.menu4 a {
  background-color: #dd8a7f;
}
.catlist dd.menu5 a {
  background-color: #71a3d4;
}
.catlist dd.menu6 a {
  background-color: #be94cc;
}
.catlist dd.menu7 a {
  background-color: #e09b67;
}
/* -------------------------------------
footer
------------------------------------- */
footer {
  color: #fff;
  background-color: #279fba;
  padding: 77px 0;
}
footer a {
  color: #fff;
}
footer #flogo {
  width: 77%;
  max-width: 392px;
  min-width: 265px;
  margin-bottom: 30px;
}
footer .flex {
  justify-content: space-between;
  flex-wrap: nowrap;
}
footer .flex .fttl {
  font-size: 13px;
  font-weight: 700;
  min-width: 73px;
  margin-right: 5px;
}
footer .flex .linklist li {
  margin-bottom: 10px;
}
footer .flex .linklist li:last-child {
  margin-bottom: 0;
}
footer .flex .linklist li a {
  font-size: 13px;
  display: inline-block;
}
footer .flex .linklist li a span {
  display: inline-block;
}
footer .category {
  width: 27%;
  max-width: 295px;
}

footer .aside {
  width: 40%;
  max-width: 434px;
}
footer .other {
  width: 300px;
  position: relative;
}
footer .other .copyblk {
  position: absolute;
  bottom: 0;
  left: 0;
}
footer .other .copyblk a {
  display: inline-block;
  /*margin-bottom: 10px;*/
}

footer .other .copyblk #sns {
	display:flex;
	justify-content:space-between;
	align-items:center;
	width:82px;
	margin-bottom: 10px;
}
footer .other .copyblk #sns li {
	width:30px;
}


footer .other .copyblk #copy {
  font-size: 11px;
  font-weight: 400;
}

#totop {
  width: 40px;
  position: fixed;
  bottom: 40px;
  right: 20px;
  z-index: 10;
}

/* -------------------------------------
404 Not found
------------------------------------- */
.notfound {
  text-align: center;
  padding: 70px 0 120px;
}

.notfound .ttl {
  text-align: center;
  font-size: 32px;
  margin-bottom: 30px;
}

.notfound p {
  font-size: 16px;
  margin-bottom: 15px;
}

.notfound p strong {
  font-size: 20px;
  font-weight: bold;
  display: block;
  margin-bottom: 10px;
}

.notfound a {
  text-decoration: underline;
  display: inline-block;
}

@media screen and (max-width: 1270px) {
  /* -------------------------------------
	mv
	------------------------------------- */
  #mv .catchblk .catch {
    font-size: 30px;
  }
}
@media screen and (max-width: 1150px) {
}

@media screen and (max-width: 1080px) {
  /* -------------------------------------
	header
	------------------------------------- */

  /* -------------------------------------
	common
	------------------------------------- */

  /* -------------------------------------
	footer
	------------------------------------- */
  footer .contblk.flex {
    flex-wrap: wrap;
    max-width: 830px;
    margin: 0 auto;
  }
  footer .category {
    width: 47%;
  }
  footer .aside {
    width: 51%;
  }
  footer .aside {
    margin-bottom: 45px;
  }
  footer .other,
  footer .other .copyblk {
    width: 100%;
    position: static;
  }
  footer .other .linklist {
    margin-bottom: 15px;
  }
  footer .flex .linklist li:last-child {
    margin-bottom: 10px;
  }
}

@media screen and (max-width: 980px) {
  /* -------------------------------------
  header
  ------------------------------------- */
  #head .spnav {
    display: block;
    width: 100%;
    margin: 0 auto;
  }
  /* -------------------------------------
	mv
	------------------------------------- */
  #mv .catchblk .catch {
    font-size: 26px;
  }
  /* -------------------------------------
  category
  ------------------------------------- */
  .catlist dt {
    font-size: 20px;
  }
  .catlist dd a p {
    font-size: 16px;
  }
  /* -------------------------------------
	footer
  ------------------------------------- */

  #totop {
    width: 50px;
    bottom: 30px;
  }
  /* -------------------------------------
	404 Not found
	------------------------------------- */
  .notfound .content p {
    font-size: 15px;
  }

  .notfound .content p strong {
    font-size: 19px;
  }
}

@media screen and (max-width: 880px) {
  /* -------------------------------------
	mv
	------------------------------------- */
  #mv .catchblk .catch {
    font-size: 22px;
  }
  /* -------------------------------------
  menu
  ------------------------------------- */
  .catlist dd a p {
    font-size: 15px;
  }
}

@media screen and (max-width: 768px) {
  /* -------------------------------------
  header
  ------------------------------------- */
  #head .logo {
    width: 263px;
  }
  /* -------------------------------------
  search
  ------------------------------------- */
  .search-box,
  .search-box #sbox,
  .search-box #sbtn {
    height: 47px;
  }
  /* -------------------------------------
	mv
	------------------------------------- */
  #mv .catchblk .catch {
    font-size: 22px;
  }
  /* -------------------------------------
  menu
  ------------------------------------- */
  .catlist {
    flex-wrap: wrap;
  }
  .catlist:before {
    left: 50%;
  }
  .catlist:after {
    content: none;
  }
  .catlist dl {
    width: 48%;
  }
  .catlist dl.lst1 {
    margin-bottom: 26px;
  }
  .catlist dd a p {
    font-size: 18px;
  }
}
@media screen and (max-width: 700px) {
  /* a.sptel {
    cursor: pointer;
    pointer-events: auto;
  } */
}

@media screen and (max-width: 640px) {
  /* -------------------------------------
  header
  ------------------------------------- */
  header {
    padding: 0;
  }
  header .page {
    padding: 0;
  }
  header.fixed {
    padding: 0;
  }
  #head .head_top {
    width: 100%;
    max-width: 100%;
    padding: 12px 20px;
  }
  #head a#menu_btn {
    display: block;
  }
  #head .spnav {
    display: none;
    max-width: initial;
    margin: 0;
  }
  #head nav {
    background-color: #279fba;
  }
  #head nav #gnav {
    padding: 0;
    display: block;
  }
  #head nav #gnav > li {
    display: block;
    border-bottom: 1px solid #fff;
  }
  #head nav #gnav > li:last-child {
    border: none;
  }
  #head nav #gnav > li a {
    color: #fff;
    line-height: 1;
    text-align: left;
    padding: 20px 20px 20px 12%;
  }

  #head nav #gnav > li a:hover {
    color: #fff;
    text-decoration: none;
  }
  #head nav #gnav > li a span {
    background: url(../imgs/common/h_arrow_wh.svg) no-repeat left center/6px;
  }
  #head nav #gnav .tel {
    color: #fff;
    line-height: 1;
    text-align: left;
    padding: 20px 20px 20px calc(12% + 30px);
  }
  #head nav #gnav .tel span {
    font-size: 21px;
    line-height: 27px;
    color: #fff;
    margin-top: 10px;
    background: url(../imgs/common/ic_tel_sp.svg) no-repeat left center/21px;
  }
  header.active #head aside {
    display: block;
  }
  #head aside {
    width: 78%;
    max-width: 520px;
    padding: 30px 20px;
    margin: 0 auto;
  }
  #head aside dt {
    font-size: 12px;
    margin-bottom: 10px;
  }
  #head aside dt:before {
    content: "■";
  }
  #head aside dl div {
    min-height: 59px;
    border-top: 1px solid #d0cece;
    display: flex;
    align-items: center;
    justify-content: space-around;
  }
  #head aside dl.commit div {
    justify-content: start;
  }
  #head aside dl.commit dt {
    width: 82px;
  }
  #head aside dd {
    padding: 0 5px;
  }
  /* -------------------------------------
	mv
	------------------------------------- */
  #mv .catchblk .catch {
    font-size: 18px;
  }

  /* -------------------------------------
	common
	------------------------------------- */
  img[src*="_sp"] {
    display: block;
  }

  img[src*="_pc"] {
    display: none;
  }
  .blk {
    padding: 15px 0;
  }

  /* -------------------------------------
	menu
	------------------------------------- */
  .catlist dd a p {
    font-size: 16px;
  }
  /* -------------------------------------
  search
  ------------------------------------- */
  .search-box,
  .search-box #sbox,
  .search-box #sbtn {
    height: 40px;
  }
  /* -------------------------------------
	footer
	------------------------------------- */
  footer {
    padding: 38px 0;
  }

  footer .flex {
    justify-content: start;
  }
  footer .contblk.flex {
    display: block;
  }
  footer .category,
  footer .aside,
  footer .other {
    width: 100%;
    max-width: 434px;
    margin: 0 auto;
  }
  footer .category {
    margin-bottom: 17px;
  }
  footer .aside {
    margin-bottom: 45px;
  }
  #totop {
    bottom: 20px;
  }

  /* -------------------------------------
    404 Not found
    ------------------------------------- */
  .notfound .content p {
    font-size: 14px;
  }

  .notfound .content p strong {
    font-size: 18px;
  }
}
@media screen and (max-width: 550px) {
  .catlist {
    display: block;
  }
  .catlist:before {
    content: none;
  }
  .catlist dl {
    width: 100%;
    margin: 0 auto 26px;
  }
  .catlist dd a p {
    font-size: 18px;
  }
}
@media screen and (max-width: 500px) {
  /* -------------------------------------
	common
	------------------------------------- */
  .page {
    padding: 0 15px;
  }

  .spbr {
    display: block;
  }

  /*bg_line*/
  .bg_line {
    width: calc(100% - 30px);
  }

  /* -------------------------------------
	footer
	------------------------------------- */
}
@media screen and (max-width: 480px) {
  body {
    font-size: 16px;
  }
  /* -------------------------------------
	mv
	------------------------------------- */
  #mv .catchblk .catch {
    font-size: 16px;
  }

  /* -------------------------------------
	footer
	------------------------------------- */
  #totop {
    right: 10px;
    bottom: 10px;
  }
}
@media screen and (max-width: 400px) {
  body {
    font-size: 15px;
  }
}
@media screen and (max-width: 375px) {
  /* -------------------------------------
  header
  ------------------------------------- */
  #head .logo {
    width: 80%;
    max-width: 263px;
  }
  #head aside {
    width: 100%;
    max-width: 289px;
  }

  /* -------------------------------------
	mv
	------------------------------------- */
  #mv .catchblk .catch {
    font-size: 15px;
  }
  /* -------------------------------------
  pankuzu
  ------------------------------------- */
  .pankuzu {
    display: block;
    margin-bottom: 10px;
  }
  .pankuzu ul {
    margin-bottom: 10px;
  }
  /*search*/
  .search-box {
    width: 45%;
  }
  .news .search-box {
    margin: 0 0 10px;
  }
  .search-box #sbox {
    position: static;
  }
  .search-box #sbtn {
    right: -20px;
  }
  .search-box #sbtn {
    font-size: 15px; /*アイコンサイズ*/
  }
}

@media screen and (max-width: 300px) {
  footer #flogo {
    width: 100%;
    min-width: initial;
  }
}
@media screen and (min-width: 769px) {
  #head .nav {
    display: flex !important;
  }
}
