body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  line-height: 1.8;
  background-color: #fff;
}

.inr {
  width: 1080px;
  margin: 0 auto;
}

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

a {
  color: black;
}

a:hover {
  color: #005bac;
  font-weight: bold;
}

a img:hover {
  opacity: 0.8;
}

strong,
.bold {
  font-weight: bold;
}

.semi_bold {
  font-weight: 500;
}

[x-cloak] {
  display: none !important;
}

.youtube {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}
.youtube iframe {
  width: 100%;
  height: 100%;
  transform: scale(1.01);
}

header {
  width: 100%;
  background-color: #fff;
  margin-bottom: 30px;
}
header .news_top {
  background: #f3630c;
  font-weight: bold;
  text-align: center;
  font-size: 1.2em;
  padding: 3px 0;
}
header .news_top a {
  color: #fff;
  text-decoration: underline;
}
header .header__top {
  background-color: #efefef;
  padding: 3px 0;
}
header .header__top h1 {
  font-weight: normal;
  font-size: 0.9em;
}
header .header__middle {
  padding: 15px 0;
}
header .header__middle .logo {
  width: 20%;
}
header .header__middle .estimate_sample_btn {
  gap: 20px;
  align-items: center;
  margin-left: auto;
}
header .header__middle .estimate_sample_btn li a {
  font-size: 1.1em;
  display: block;
  padding: 10px 15px;
  border: 3px #b7e2f9 solid;
  border-radius: 3px;
  position: relative;
  padding-left: 60px;
  font-weight: 500;
}
header .header__middle .estimate_sample_btn li a:hover {
  background-color: #e4f2f9;
}
header .header__middle .estimate_sample_btn li a::before {
  content: "";
  position: absolute;
  left: 0;
  top: -8px;
  width: 50px;
  height: 50px;
}
header .header__middle .estimate_sample_btn li:nth-child(1) a::before {
  background: url("../images/common/header_sample.png") no-repeat left center;
  background-size: contain;
}
header .header__middle .estimate_sample_btn li:nth-child(2) a::before {
  background: url("../images/common/header_estimate.png") no-repeat left center;
  background-size: contain;
}
header .header__middle .member_sec {
  margin-left: auto;
  width: 24%;
}
header .header__middle .member_sec ul {
  padding-top: 3px;
  display: flex;
  align-items: center;
  gap: 10px;
}
header .header__middle .member_sec ul li {
  width: 100%;
  background: #005bac;
  border-radius: 5px;
}
header .header__middle .member_sec ul li.mypage_btn {
  background-color: #f3630c;
}
header .header__middle .member_sec ul li a {
  display: block;
  padding: 2px 10px;
  text-align: center;
  color: #fff;
}
header .header__middle .member_sec ul li a svg {
  height: auto;
  width: 20px;
}
header .header__middle .contact {
  margin-left: auto;
}
header .header__middle .contact dt {
  font-size: 1.6em;
  line-height: 1.2;
  font-weight: bold;
  letter-spacing: 1px;
}
header .header__middle .contact dd {
  font-size: 0.9em;
}
header .main_navi {
  background-color: #005bac;
  padding: 10px;
}
header .main_navi ul {
  display: flex;
  align-items: stretch;
}
header .main_navi li {
  flex-grow: 1;
}
header .main_navi li span {
  position: relative;
}
header .main_navi li span:before {
  content: "";
  position: absolute;
  left: -30px;
  top: -2px;
  width: 25px;
  height: 25px;
}
header .main_navi li:nth-child(2) span::before {
  background: url("../images/common/header_nev_icon001.png") no-repeat left center;
  background-size: contain;
}
header .main_navi li:nth-child(3) span::before {
  background: url("../images/common/header_nev_icon002.png") no-repeat left center;
  background-size: contain;
}
header .main_navi li:nth-child(4) span::before {
  background: url("../images/common/header_nev_icon003.png") no-repeat left center;
  background-size: contain;
}
header .main_navi li:nth-child(5) span::before {
  background: url("../images/common/header_nev_icon004.png") no-repeat left center;
  background-size: contain;
}
header .main_navi li:nth-child(6) span::before {
  background: url("../images/common/header_nev_icon005.png") no-repeat left center;
  background-size: contain;
}
header .main_navi li:nth-child(7) span::before {
  background: url("../images/common/header_nev_icon006.png") no-repeat left center;
  background-size: contain;
}
header .main_navi li a {
  width: 100%;
  font-size: 1em;
  font-weight: bold;
  display: block;
  text-align: center;
  color: #fff;
}
header .main_navi li a:hover {
  color: #bafffa;
  font-weight: bold;
}
header .main_navi li.sub {
  position: relative;
}
header .main_navi li.sub ul {
  width: 100%;
  display: none;
  background-color: #005bac;
  position: absolute;
  box-sizing: border-box;
  z-index: 10;
  padding: 15px 10px;
}
header .main_navi li.sub ul li:not(:last-child) {
  margin-bottom: 8px;
}
header .main_navi li.sub:hover ul {
  display: block;
}

.contents {
  margin: 20px 0;
}
.contents .left_sec {
  width: 20%;
}
.contents .right_sec {
  width: 75%;
}
.contents .center_sec {
  width: 100%;
}

.left_sec nav {
  box-shadow: 0 0 2px #aaa;
}
.left_sec nav dl dt {
  background-color: #005bac;
  color: #fff;
  text-align: center;
  font-weight: bold;
  padding: 5px 0;
}
.left_sec nav dl dd a {
  display: block;
  border-bottom: 1px solid #ccc;
  padding: 6px 10px;
}
.left_sec nav dl dd a:hover {
  background-color: #b7e2f9;
}
.left_sec nav dl dd:last-child a {
  border-bottom: none;
}
.left_sec .calendar .info {
  text-align: center;
}
.left_sec .calendar .info span {
  position: relative;
  padding-left: 20px;
}
.left_sec .calendar .info span::before {
  content: "";
  position: absolute;
  left: -3px;
  top: 0;
  width: 18px;
  height: 18px;
  background-color: #f45498;
  font-size: 1.2em;
  border-radius: 10px;
}
.left_sec .calendar p {
  text-align: center;
  font-weight: 500;
  font-size: 1.1em;
  margin-bottom: 5px;
}
.left_sec .calendar dl {
  margin-bottom: 10px;
}
.left_sec .calendar dl dt {
  text-align: center;
  font-weight: 500;
  font-size: 1.1em;
  color: #005bac;
  margin-bottom: 5px;
}

.footer_link_btn {
  margin-top: 20px;
  padding: 30px 0 30px 0;
  background-color: #dfe6eb;
}
.footer_link_btn ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.footer_link_btn ul li {
  width: 23%;
  margin-bottom: 10px;
}
.footer_link_btn ul li p {
  text-align: center;
  margin-top: 8px;
  font-size: 0.75rem;
  line-height: 1.5;
}
.footer_link_btn ul li img {
  border: 1px solid #ccc;
}

footer {
  background-color: #efefef;
  position: relative;
}
footer .page_top {
  color: #005bac;
  text-align: center;
  position: absolute;
  top: 40px;
  z-index: 1;
  left: 0;
  right: 0;
}
footer .page_top img {
  width: 30px;
  margin: 0 auto;
}
footer .page_top p {
  padding: 0;
  margin: 0;
  display: block;
}
footer .inr {
  padding: 40px 0;
}
footer .shop {
  width: 22%;
  text-align: center;
}
footer .shop dl {
  margin: 10px 0;
}
footer .shop dl dt {
  font-weight: bold;
  font-size: 1.3em;
}
footer .sns_sec {
  justify-content: center;
  gap: 20px;
  margin: 10px 0;
}
footer .sns_sec li {
  width: 35px;
}
footer .main_navi {
  width: 75%;
}
footer .main_navi ul.top {
  gap: 1%;
  box-sizing: border-box;
  flex-wrap: wrap;
  justify-content: space-between;
  text-align: center;
  border-radius: 3px;
}
footer .main_navi ul.top li {
  margin-bottom: 5px;
  background-color: #f9f9f9;
  width: 24%;
}
footer .main_navi ul.top::after {
  width: 24%;
  content: "";
}
footer .sub_navi {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #999;
}
footer .sub_navi dl dt {
  font-size: 0.95em;
  margin-bottom: 5px;
}
footer .sub_navi dl dd {
  font-size: 0.85em;
}
footer .copyright {
  padding: 20px 0 30px;
  font-size: 0.8em;
  background-color: #005bac;
  text-align: center;
  color: #fff;
}

@media screen and (max-width: 1080px) {
  .inr {
    width: 100%;
    padding: 0 2%;
    box-sizing: border-box;
  }
  body {
    font-size: 12px;
  }
  header .header__top {
    font-size: 0.8em;
  }
  header .header__middle .estimate_sample_btn li a {
    font-size: 0.9em;
    padding-left: 50px;
  }
  header .header__middle .estimate_sample_btn li a::before {
    top: -3px;
    width: 40px;
    height: 40px;
  }
  header .header__middle .contact dt {
    font-size: 1.5em;
  }
  header .header__middle .contact dd {
    font-size: 0.8em;
  }
}