body {
  font-size: 16px;
  line-height: 1.725;
}

.fnt-serif {
  font-family: "Noto Serif JP", serif;
}

@media screen and (min-width: 769px) {
  .spOnly {
    display: none !important;
  }
}

@media screen and (max-width: 768px) {
  .pcOnly {
    display: none !important;
  }

  a:active,
  a:hover {
    opacity: 1 !important;
  }
}

.container {
  padding-left: 20px;
  padding-right: 20px;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}

.container--medium {
  max-width: 1020px;
}

#main {
  min-height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

#main footer {
  margin-top: auto;
  position: relative;
}

#main #content {
  -webkit-box-flex: 1;
  -ms-flex: 1 1;
  flex: 1 1;
  position: relative;
}

#content {
  padding-bottom: 65px;
}

@media screen and (max-width: 768px) {
  #content {
    padding-bottom: 50px;
  }
}

:focus-visible {
  outline: #08f auto 1px;
}

select:focus-visible {
  outline: #08f auto 1px;
}

@media screen and (min-width: 768px){
.br-sp {display: none; }
}

/* =========================================================
header
========================================================= */
header {
  background: #fff;
  border-bottom: 1px solid #cecece;
}

header .header-wrap {
  position: relative;
  height: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

header .logo {
  margin-left: 30px;
}

@media screen and (max-width: 768px) {
  header .logo {
    margin-left: 20px;
  }
}

#menuBtn {
  width: 80px;
  height: 80px;
  background: #8cb43d;
  color: #fff;
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
  text-align: center;
  padding-top: 50px;
  font-weight: 500;
  line-height: 1;
  font-size: 14px;
}

@media screen and (max-width: 768px) {
  #menuBtn {
    position: fixed;
    z-index: 99;
  }
}

#menuBtn:hover {
  opacity: 0.8;
}

#menuBtn>span {
  width: 32px;
  height: 2px;
  margin: 0 auto;
  position: absolute;
  top: 29px;
  right: 0;
  left: 0;
  background: #fff;
}

#menuBtn>span:before,
#menuBtn>span:after {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
  height: 2px;
  background: #fff;
}

#menuBtn>span:before {
  top: -8px;
}

#menuBtn>span:after {
  top: 8px;
}

.menuOpen .menuOverlay {
  opacity: 1;
  visibility: visible;
  pointer-events: visible;
}

.menuOpen #menu {
  transform: translate(0, 0);
  visibility: visible;
  pointer-events: visible;
}

.menuOverlay {
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  position: fixed;
  z-index: 90;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  visibility: hidden;
  pointer-events: none;
}

#menuClose {
  width: 80px;
  height: 80px;
  position: relative;
  z-index: 1;
  cursor: pointer;
  background: #fff;
  display: block;
  margin-left: auto;
}

#menuClose:before,
#menuClose:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  width: 40px;
  height: 2px;
  background: #333333;
  margin: auto;
}

#menuClose::before {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

#menuClose::after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

#menu {
  position: fixed;
  z-index: 99;
  right: 0;
  top: 0;
  bottom: 0;
  background: #fff;
  width: 375px;
  max-width: 100%;
  font-size: 14px;
  transform: translate(100%, 0);
  -webkit-transition: 0.3s;
  transition: 0.3s;
  visibility: hidden;
  pointer-events: none;
}

#menu .menu-wrap {
  padding: 0 20px;
}

#menu .menu-inner {
  overflow-y: auto;
  height: 100%;
  scrollbar-width: none;
  padding: 0 0 20px;
}

#menu .menu-inner::-webkit-scrollbar {
  display: none;
}

#menu .menu-inner .menu-ttl {
  text-align: center;
  font-size: 28px;
}

#menu .menu-inner .menu-ttl .ico {
  width: 30px;
  margin-right: 5px;
  vertical-align: -4px;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

#menu .menu-inner .menu-subTtl {
  font-size: 18px;
  font-weight: bold;
  text-align: left;
  letter-spacing: 0.05em;
}

#menu a {
  display: block;
  text-decoration: none;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

#menu a:hover {
  opacity: 0.8;
}

#menu .menu-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  border-top: 1px solid #cecece;
  border-bottom: 1px solid #cecece;
  font-size: 18px;
  line-height: 40px;
  font-weight: bold;
  text-align: center;
}

#menu .menu-tab li {
  width: 50%;
}

/*
#menu .menu-tab li:nth-child(1) {
  background-color: #8cb43d;
  color: #fff;
}*/

#menu .menu-tab .on_color {
  background-color: #8cb43d;
  color: #fff;
}

#menu .menu-category {
  text-align: center;
  margin: 13px 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  position: relative;
}

#menu .menu-category:after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 10px;
  background: #fff;
}

#menu .menu-category .ico {
  display: block;
  margin-bottom: 20px;
  width: 100px;
  margin: 0 auto;
  padding: 5px 0 7px;
}

#menu .menu-category a {
  padding-bottom: 15px;
  padding-top: 7px;
  position: relative;
  z-index: 1;
}

#menu .menu-category li {
  width: 32.5%;
  border-bottom: 1px dashed #cecece;
}

#menu .menu-category li:nth-child(3n+2) {
  width: 35%;
  border-left: 1px dashed #cecece;
  border-right: 1px dashed #cecece;
}

#menu .menu-category li:nth-child(1) a,
#menu .menu-category li:nth-child(2) a,
#menu .menu-category li:nth-child(3) a {
  padding-top: 0;
}

#menu .checkbox01,
#menu .checkbox02 {
  padding-left: 20px;
}

#menu .checkbox01 input[type=checkbox],
#menu .checkbox02 input[type=checkbox] {
  width: 18px;
  height: 18px;
}

#menu .btnLink {
  font-size: 18px;
  padding: 9px 30px;
}

#menu .btnLink+.btnLink {
  margin-top: 15px;
}

#menu .menu-keyword {
  margin: 3px 0 30px;
}

#menu .listBadge {
  gap: 10px;
}

#menu .listBadge .badge {
  padding: 0 10px;
  line-height: 30px;
}

#menu .menu-row1 {
  padding-top: 18px;
  padding-bottom: 30px;
}

#menu .menu-row2 {
  background: #f3f3f3;
  padding-top: 30px;
}

#menu .menu-row2 .menu-ttl .ico {
  width: 20px;
}

#menu .menu-row2 .row2__button {
  background: #fff;
  padding: 30px 20px 15px;
  margin: 30px -20px 0;
}

#menu .menu-row3 .sub {
  font-size: 16px;
  text-align: center;
  color: #65511a;
}

#menu .menuClose-bottom {
  margin: 25px auto 5px;
  padding: 10px;
  text-align: center;
  width: 150px;
  display: block;
}

#breadcrumb {
  padding: 25px 0;
}

#breadcrumb ul li {
  display: inline-block;
  position: relative;
  font-size: 14px;
  padding-right: 20px;
}

#breadcrumb ul li:after {
  content: ">";
  position: absolute;
  right: 4px;
}

#breadcrumb ul li:last-child {
  padding-right: 0;
}

#breadcrumb ul li:last-child::after {
  content: none;
}

@media screen and (max-width: 768px) {
  #breadcrumb {
    padding: 20px 0;
  }
}

/* =========================================================
footer
========================================================= */
footer .copyright {
  text-align: center;
  color: #fff;
  background: #8cb43d;
  font-size: 12px;
  padding: 10px 0 10px;
  display: block;
  position: relative;
  z-index: 1;
}

footer .logo {
  text-align: center;
}

footer .footerNav {
  background: #fbf6f0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 22px 20px;
}

footer .footerNav nav {
  max-width: calc(100% - 195px);
  padding-left: 52px;
  margin-top: 9px;
}

footer .footerNav nav ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -20px;
}

footer .footerNav nav li {
  position: relative;
  padding: 0 18px;
}

footer .footerNav nav li+li:before {
  content: "";
  height: 20px;
  background: #ddd9d4;
  width: 1px;
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -10px;
}

footer .footerNav nav a {
  font-size: 16px;
}

@media screen and (max-width: 768px) {
  footer .copyright {
    padding: 15px 0;
  }

  footer .footerNav {
    display: block;
    padding: 30px 0 0;
    border-top: 1px solid #ddd9d4;
  }

  footer .footerNav nav {
    max-width: 100%;
    margin-top: 28px;
    padding-left: 0;
  }

  footer .footerNav nav ul {
    margin: 0;
  }

  footer .footerNav nav a {
    display: block;
    padding: 6px 0;
  }

  footer .footerNav nav li {
    width: 50%;
    padding: 0 20px;
    border-bottom: 1px solid #ddd9d4;
  }

  footer .footerNav nav li+li:before {
    content: none;
  }

  footer .footerNav nav li:nth-child(odd):after {
    content: "";
    background: #ddd9d4;
    width: 1px;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
  }

  footer .footerNav nav li:nth-last-child(0n+1),
  footer .footerNav nav li:nth-last-child(0n+2) {
    border-bottom: none;
  }

  footer .footerNav nav li:nth-child(1),
  footer .footerNav nav li:nth-child(2) {
    border-top: 1px solid #ddd9d4;
  }

  footer #pagetop {
    bottom: calc(100% + 10px);
  }
}

#pageNavi {
  z-index: 1;
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  line-height: 1;
}

#pageNavi #pageTop {
  position: absolute;
  bottom: 17px;
  right: 20px;
}

#pageNavi a {
  -webkit-transition: 0.2s;
  transition: 0.2s;
  text-decoration: none;
}

#pageNavi a:hover {
  opacity: 0.8;
}

@media screen and (max-width: 768px) {
  #pageNavi {
    height: 50px;
    border-top: 1px solid #ddd9d4;
    background: #fff;
  }

  #pageNavi #pageTop {
    bottom: 13px;
  }
}

.btnBack {
  position: absolute;
  right: 50%;
  z-index: 2;
  width: 50%;
  max-width: 640px;
  bottom: 0;
}

.btnBack #pageBack {
  position: absolute;
  left: 20px;
  bottom: 20px;
}

@media screen and (max-width: 768px) {
  .btnBack {
    height: 50px;
    border-right: 1px solid #ddd9d4;
  }

  .btnBack #pageBack {
    bottom: 13px;
  }
}

#pageBack {
  cursor: pointer;
  display: inline-block;
  font-size: 18px;
  padding-left: 30px;
  line-height: 24px;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  font-weight: bold;
  background: url("../images/icon_back.webp") no-repeat center left;
}

#pageTop {
  cursor: pointer;
  display: inline-block;
  font-size: 18px;
  padding-right: 30px;
  line-height: 24px;
  margin-left: auto;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  font-weight: bold;
  background: url("../images/icon_pagetop.webp") no-repeat center right;
}

/* =========================================================
component
========================================================= */
.flexBox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.flexMiddle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.flexCenter {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

@media screen and (max-width: 768px) {
  .col-sp-full {
    width: 100%;
  }
}

.bg--gray {
  background: url("../images/bg_001.webp") repeat top center;
}

.c--red {
  color: #a20000;
}

.c--grren {
  color: #109b42;
}

.dis--ib {
  display: inline-block;
}

.listGap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  gap: 10px 20px;
}

.badge {
  padding: 0 10px;
  border-radius: 22px;
  line-height: 1.5;
  background: #fff;
  font-size: 14px;
  min-width: 45px;
  text-align: center;
  display: inline-block;
  border: 1px solid #cecece;
}

a.badge {
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

a.badge:hover {
  text-decoration: none;
  opacity: 0.8;
}

.tag {
  color: #7a6f5c;
  display: inline-block;
}

.date {
  font-size: 12px;
  color: #7c7f83;
}

.imgFigure img {
  border-radius: 16px 16px 16px 16px;
}

.imgFigure--default {
  width: 100%;
  overflow: hidden;
  padding-top: 66.5%;
  position: relative;
}

.imgFigure--default img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.ttlMain {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.ttlMain .ico {
  margin-right: 20px;
  display: inline-block;
  line-height: 1;
  width: 25px;
}

.p-searchform .ttlMain .ico,
.p-searchresult .ttlMain .ico {
  width: 40px;
}

@media screen and (max-width: 768px) {
  .ttlMain {
    font-size: 27px;
  }

  .ttlMain .ico,
  .p-searchform .ttlMain .ico,
  .p-searchresult .ttlMain .ico {
    margin-right: 10px;
    width: 30px;
  }

  .ttlMain .ico--pin {
    width: 20px;
  }
}

.btnSubBlock {
  margin: 45px 0;
}

.btnSubBlock .sub {
  font-size: 20px;
  text-align: center;
  color: #65511a;
  margin: 0 0 7px;
  font-weight: bold;
}

.btnSubBlock .btnLink {
  width: 440px;
}

@media screen and (max-width: 768px) {
  .btnSubBlock {
    margin: 35px 0;
  }

  .btnSubBlock .sub {
    font-size: 18px;
  }
}

.txtBlock {
  margin-top: 30px;
  margin-bottom: 30px;
}

.btnLink {
  display: block;
  background: #fff;
  width: 400px;
  max-width: 100%;
  margin: 0 auto;
  padding: 15px 30px;
  font-size: 20px;
  text-align: center;
  border-radius: 8px;
  position: relative;
  font-weight: bold;
  border: 1px solid currentColor;
}

.btnLink:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  margin-top: -5px;
  width: 10px;
  height: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.btnLink:hover {
  text-decoration: none;
  opacity: 0.8;
}

.btnLink.red {
  background: #de594a;
  border-color: #de594a;
  color: #fff;
}

.btnLink.red:after {
  content: none;
}

@media screen and (max-width: 768px) {
  .btnLink {
    font-size: 18px;
    padding: 9px 30px;
  }
}

.btnSubmit {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  color: #333333;
  border: 1px solid currentColor;
  background: url("../images/icon_arrow_03.webp") no-repeat center right 30px, #fff;
  padding: 10px 40px;
  height: 64px;
  font-weight: bold;
  font-size: 20px;
  text-align: center;
  width: 400px;
  max-width: 100%;
  border-radius: 40px;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  cursor: pointer;
}

.btnSubmit:hover {
  opacity: 0.8;
}

@media screen and (max-width: 768px) {
  .btnSubmit {
    height: 50px;
    font-size: 18px;
    background-position: center right 20px;
    padding: 10px 30px;
  }
}

.btnClear {
  font-size: 20px;
  display: inline-block;
  font-weight: bold;
  border: none;
  background: none;
  padding: 2px;
  margin: 0;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  cursor: pointer;
  color: #333333;
  border-bottom: 1px solid currentColor;
}

@media screen and (max-width: 768px) {
  .btnClear {
    font-size: 18px;
  }
}

.txtLink {
  font-size: 20px;
  font-weight: bold;
  display: inline-block;
  text-decoration: none;
  padding-right: 30px;
  background: url("../images/icon_arrow_02.webp") no-repeat center right;
  border-bottom: 1px solid currentColor;
}

.txtLink:hover {
  text-decoration: none;
  opacity: 0.8;
}

.js-toggle__link {
  cursor: pointer;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  position: relative;
  z-index: 1;
}

.js-toggle__link.ico_arrow {
  padding-right: 30px;
}

.js-toggle__link.ico_arrow:after {
  content: "";
  margin-top: -5px;
  border-bottom: 2px solid #333333;
  border-right: 2px solid #333333;
  position: absolute;
  top: 50%;
  right: 10px;
  width: 10px;
  height: 10px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.js-toggle.is-active>.js-toggle__link.ico_arrow:after {
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}

.js-toggle__content {
  position: relative;
}

.indentList>* {
  margin-left: 1em;
  text-indent: -1em;
}

.select {
  border: 2px solid #bca57b;
  background: #fff;
  font-size: 18px;
  border-radius: 8px;
  font-weight: bold;
  position: relative;
  width: 100%;
  padding: 20px 50px 20px 30px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url("../images/icon_select.webp") no-repeat center right 22px, #fff;
}

.select:focus {
  border-color: #65511a;
}

@media screen and (max-width: 768px) {
  .select {
    padding: 12px 40px 12px 18px;
    background-position: center right 18px;
    border-radius: 5px;
  }
}

.nobreak {
  word-break: keep-all;
}

.tableStyle01 {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #cecece;
}

.tableStyle01 th,
.tableStyle01 td {
  padding: 15px 20px;
  line-height: 1.6;
}

.tableStyle01 tr {
  border-bottom: 1px solid #cecece;
}

.tableStyle01 th {
  font-weight: bold;
  text-align: center;
  font-size: 18px;
  min-width: 100px;
  background-color: #eff7e0;
}

@media screen and (max-width: 768px) {

  .tableStyle01 th,
  .tableStyle01 td {
    padding: 10px 10px;
  }
}

.tableStyle02 {
  width: 100%;
  border-collapse: collapse;
}

.tableStyle02 th,
.tableStyle02 td {
  padding: 10px 10px;
  line-height: 1.6;
  text-align: center;
  border: 1px solid #cecece;
}

.tableStyle02 th {
  font-weight: bold;
  font-size: 18px;
  min-width: 100px;
  background-color: #eff7e0;
}

/* =========================================================
article
========================================================= */
.postList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}

.postList.column_box-3col .postItem {
  width: calc(376 / 1240 * 100%);
  margin-right: calc(56 / 1240 * 100%);
  margin-bottom: 30px;
}

.postList.column_box-3col .postItem:nth-child(3n) {
  margin-right: 0;
}

@media screen and (max-width: 768px) {
  .postList.column_box-3col .postItem {
    width: 100%;
    margin-right: 0;
  }
}

.postList.column_box-2col .postItem {
  width: calc(580 / 1240 * 100%);
  margin-right: calc(80 / 1240 * 100%);
  margin-bottom: 32px;
}

.postList.column_box-2col .postItem:nth-child(2n) {
  margin-right: 0;
}

@media screen and (max-width: 768px) {
  .postList.column_box-2col .postItem {
    width: 100%;
    margin-right: 0;
  }
}

.listBox_01 .postItem__thumb figure img {
  border-radius: 0 16px;
}

.listBox_01 .postItem__label {
  position: absolute;
  right: 10px;
  bottom: 100%;
  margin-bottom: 10px;
}

.listBox_01 .postItem__details {
  padding-top: 10px;
}

.listBox_02 .postItem {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.listBox_02 .postItem__thumb {
  width: 156px;
  max-width: 40%;
}

.listBox_02 .postItem__thumb figure img {
  border-radius: 8px 8px 0 8px;
}

.listBox_02 .postItem__label {
  margin: 5px 80px 10px 0;
}

.listBox_02 .postItem__details {
  -webkit-box-flex: 1;
  -ms-flex: 1 1;
  flex: 1 1;
  padding-left: 20px;
}

.listBox_02 .postItem__tags {
  width: 100%;
  margin-top: 15px;
}

.listBox_02 .postItem__date {
  position: absolute;
  top: 6px;
  right: 0;
}

.postItem__thumb {
  position: relative;
}

.postItem__thumb .new {
  z-index: 1;
  position: absolute;
  width: 64px;
  top: 0;
  left: 0;
}

.postItem__details {
  position: relative;
}

.postItem__tags li {
  margin-right: 10px;
  display: inline-block;
}

.postItem__date {
  text-align: right;
}

.postItem__title {
  font-size: 18px;
  font-weight: bold;
  margin: 2px 0 5px;
}

.areaBox01 {
  margin-top: 22px;
}

.areaBox01__title {
  font-size: 18px;
  padding-left: 10px;
  line-height: 1.2;
  font-weight: bold;
  position: relative;
}

.areaBox01__title:after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  height: 90%;
  width: 3px;
  background: #8cb43d;
}

.areaBox01__list {
  margin-top: 10px;
}

.searchBox .areaSelect {
  position: relative;
  margin-bottom: 55px;
}

@media screen and (max-width: 768px) {
  .searchBox .areaSelect {
    margin-bottom: 30px;
  }
}

.searchBox .areaList {
  font-size: 18px;
  margin-top: 10px;
}

.searchBox .areaItem {
  background: #fff;
  border-radius: 16px 0;
  padding: 30px 11.54% 40px;
  position: relative;
}

.searchBox .areaItem__name {
  font-weight: bold;
  font-size: 32px;
  line-height: 1.2;
  margin-bottom: 13px;
  text-align: center;
}

.searchBox .areaItem__name em {
  font-size: 50px;
}

.searchBox .areaItem__namesub {
  text-align: center;
  color: #fff;
  background: #bf3439;
  font-size: 18px;
  border-radius: 8px;
  padding: 2px;
  text-align: center;
}

.searchBox .areaItem__label {
  position: absolute;
  top: -22px;
  left: 10px;
  z-index: 1;
  border-radius: 40px;
  padding: 8px 18px;
  display: inline-block;
  background: #eacd42;
  font-size: 24px;
  line-height: 1;
  font-weight: bold;
}

.searchBox .areaItem__title {
  font-size: 24px;
  font-weight: bold;
}

.searchBox .areaItem__photo {
  margin: 5px 0 17px;
}

@media screen and (min-width: 769px) {
  .searchBox .areaItem__photo figure {
    padding-top: 56%;
  }
}

.searchBox .areaItem__btn {
  text-align: right;
  margin-top: 8px;
}

@media screen and (max-width: 768px) {
  .searchBox .areaItem {
    background: rgba(255, 255, 255, 0);
    padding: 0;
    margin-top: 35px;
  }

  .searchBox .areaItem__name {
    font-size: 24px;
    margin-bottom: 10px;
  }

  .searchBox .areaItem__name em {
    font-size: 40px;
  }

  .searchBox .areaItem__label {
    font-size: 22px;
    position: static;
  }

  .searchBox .areaItem__title {
    font-size: 22px;
  }

  .searchBox .areaItem__photo {
    margin: 5px 0 10px;
  }
}

/* =========================================================
Search
========================================================= */
.checkBtn,
.checkbox01,
.checkbox02,
.radioBtn,
.radio01,
.radio02,
input[type=checkbox],
input[type=radio],
button,
select {
  cursor: pointer;
  color: inherit;
}

.checkbox01,
.radio01 {
  accent-color: #a20000;
}

.checkbox02,
.radio02 {
  accent-color: #8cb43d;
}

.checkbox01>input[type=checkbox],
.checkbox02>input[type=checkbox] {
  -webkit-appearance: none;
  width: 24px;
  height: 24px;
  margin: 0;
  background: #fff;
  border-radius: 4px;
  border: 1px solid #cecece;
  margin-right: 5px;
  vertical-align: middle;
}

.checkbox01>span,
.checkbox02>span {
  display: inline-block;
  vertical-align: middle;
}

@media screen and (max-width: 768px) {

  .checkbox01>input[type=checkbox],
  .checkbox02>input[type=checkbox] {
    width: 20px;
    height: 20px;
  }
}

.checkbox01>input[type=checkbox]:checked {
  border: none;
  background: url("../images/checkbox_01_on.webp") no-repeat center/contain;
}

.checkbox02>input[type=checkbox]:checked {
  border: none;
  background: url("../images/checkbox_02_on.webp") no-repeat center/contain;
}

.isDisable,
.isHide {
  pointer-events: none;
}

.isHide input,
.isDisable {
  opacity: 0.3;
}

.radio01>input[type=radio] {
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  outline: none;
  display: inline-block;
  margin: 0 3px 0 0;
  vertical-align: middle;
  border: 1px solid gray;
  background: #fff;
}

.radio01>input[type=radio]:focus-visible {
  outline: 2px solid #08f;
  outline-offset: -1px;
}

.radio01>input[type=radio]:checked {
  border: 4px solid #b41f23;
}

.radio01>span {
  display: inline-block;
  vertical-align: middle;
}

.toggleSearch {
  text-align: center;
}

.toggleSearch>.toggleSearch__link {
  padding: 46px 0;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.toggleSearch>.toggleSearch__link .ico_plus {
  width: 32px;
  height: 32px;
  margin-left: 25px;
  position: relative;
}

.toggleSearch>.toggleSearch__link .ico_plus:before,
.toggleSearch>.toggleSearch__link .ico_plus:after {
  content: "";
  background: #c0c0c0;
  left: 0;
  right: 0;
  height: 4px;
  position: absolute;
  top: 50%;
  margin-top: -2px;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

.toggleSearch>.toggleSearch__link .ico_plus:after {
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
}

.toggleSearch>.toggleSearch__content {
  text-align: left;
  padding: 15px 0 60px;
}

.toggleSearch.is-active>.toggleSearch__link .ico_plus:after {
  -webkit-transform: rotate(0);
  transform: rotate(0);
}

@media screen and (max-width: 768px) {
  .toggleSearch>.toggleSearch__link {
    padding: 18px 0;
  }

  .toggleSearch>.toggleSearch__link .ico_plus {
    width: 22px;
    height: 22px;
    margin-left: 13px;
  }

  .toggleSearch>.toggleSearch__link .ico_plus:before,
  .toggleSearch>.toggleSearch__link .ico_plus:after {
    content: "";
    height: 2px;
    margin-top: -1px;
  }

  .toggleSearch>.toggleSearch__content {
    text-align: left;
    padding: 15px 0 30px;
  }
}

.itemSearch+.itemSearch {
  margin-top: 30px;
}

.itemSearch .js-toggle__link {
  border-bottom: 1px solid #cecece;
  font-weight: bold;
}

.itemSearch .js-toggle__content {
  padding-left: 24px;
  font-size: 18px;
}

.itemSearch .js-toggle .js-toggle__link {
  padding-bottom: 5px;
}

.itemSearch .toggle+.toggle {
  margin-top: 20px;
}

.itemSearch .js-toggle .js-toggle__link {
  font-size: 20px;
}

.itemSearch .row {
  padding: 15px 0;
}

.itemSearch .row+.row {
  margin-top: -15px;
}

.itemSearch .columnBox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}

.itemSearch .columnBox+.columnBox {
  border-top: 1px solid #cecece;
  margin-top: 0 !important;
}

.itemSearch .columnBox .left {
  width: 212px;
  font-weight: bold;
}

.itemSearch .columnBox .right {
  -webkit-box-flex: 1;
  -ms-flex: 1 1;
  flex: 1 1;
}

.itemSearch .search-ttl {
  font-size: 24px;
}

@media screen and (max-width: 768px) {
  .itemSearch+.itemSearch {
    margin-top: 25px;
  }

  .itemSearch .js-toggle__content {
    padding-left: 5px;
    font-size: 14px;
  }

  .itemSearch .toggle+.toggle {
    margin-top: 15px;
  }

  .itemSearch .js-toggle .js-toggle__link {
    font-size: 16px;
    padding-bottom: 5px;
  }

  .itemSearch .row {
    padding: 10px 0;
  }

  .itemSearch .row+.row {
    margin-top: -10px;
  }

  .itemSearch .columnBox .left {
    width: 100%;
    margin-bottom: 10px;
  }

  .itemSearch .columnBox .right {
    width: 100%;
  }

  .itemSearch .search-ttl {
    font-size: 18px;
  }
}

.p-searchform .search-wrap {
  padding: 30px 0;
}

@media screen and (max-width: 768px) {
  .p-searchform .search-wrap {
    padding: 50px 0 50px;
  }

  .p-searchform .button-block {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 20px;
  }
}

.search-wrap {
  background: #f3f3f3;
}

.search-wrap .button-block {
  width: 720px;
  max-width: 100%;
  margin: 40px auto 0;
}

.search-wrap .ttlMain {
  letter-spacing: 0.1em;
}

@media screen and (max-width: 768px) {
  .search-wrap .button-block {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 20px;
  }

  .search-wrap .button-block {
    margin-top: 30px;
  }
}

.p-searchresult .article-wrap {
  margin: 30px 0 60px;
}

.p-searchresult .article-wrap .articleTitle {
  margin-bottom: 30px;
}

.p-searchresult .article-wrap .articleNumber {
  font-size: 20px;
  margin-bottom: 10px;
}

@media screen and (max-width: 768px) {
  .p-searchresult .article-wrap {
    margin: 5px 0 60px;
  }

  .p-searchresult .article-wrap .articleTitle {
    margin-bottom: 20px;
  }

  .p-searchresult .article-wrap .articleNumber {
    font-size: 18px;
    text-align: right;
    margin-bottom: 5px;
  }
}

.mapBlock {
  margin-top: 40px;
}

@media screen and (max-width: 768px) {
  .mapBlock {
    margin-top: 30px;
  }
}

.mapBlock .mapNav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  background: #dbe8f5;
  border-radius: 8px;
  padding: 23px 6.4%;
  margin-bottom: 20px;
}

@media screen and (max-width: 768px) {
  .mapBlock .mapNav {
    padding: 0;
    background: transparent;
  }
}

.mapBlock .mapNav .mapNav_line {
  position: relative;
  width: 1px;
  background: #ffffff;
  margin: 0 5.5%;
}

@media screen and (max-width: 768px) {
  .mapBlock .mapNav .mapNav_line {
    width: 100%;
    height: 1px;
    margin: 20px 0;
  }
}

.mapBlock .mapNav .mapNav_search {
  width: 245px;
  text-align: center;
}

.mapBlock .mapNav .mapNav_search .tit {
  font-size: 20px;
  font-weight: bold;
  padding-left: 28px;
  position: relative;
}

.mapBlock .mapNav .mapNav_search .tit:before {
  content: "";
  background: url("../images/map/ico_map_001.webp") no-repeat center/40px auto;
  width: 20px;
  height: 40px;
  position: absolute;
  top: 0;
  left: 0;
}

.mapBlock .mapNav .mapNav_search .tit em {
  font-size: 30px;
  color: #2057a7;
  letter-spacing: -0.15em;
}

.mapBlock .mapNav .mapNav_search .btn {
  font-size: 20px;
  border-radius: 8px;
  border: 1px solid #2c7cbf;
  font-weight: bold;
  background: #fff;
  text-align: center;
  padding: 6px 0;
  cursor: pointer;
  width: 100%;
  display: block;
}

.mapBlock .mapNav .mapNav_search .btn:hover {
  opacity: 0.8;
}

.mapBlock .mapNav .mapNav_search .btn>span {
  padding-left: 30px;
  display: inline-block;
  background: url("../images/map/ico_search.webp") no-repeat center left;
}

@media screen and (max-width: 768px) {
  .mapBlock .mapNav .mapNav_search {
    width: 100%;
  }

  .mapBlock .mapNav .mapNav_search .tit {
    padding-left: 0;
    font-size: 26px;
  }

  .mapBlock .mapNav .mapNav_search .tit em {
    font-size: 36px;
  }

  .mapBlock .mapNav .mapNav_search .tit::before {
    content: none;
  }

  .mapBlock .mapNav .mapNav_search .btn {
    max-width: 400px;
    margin: 5px auto 0;
    font-size: 18px;
    padding: 8px 0;
  }
}

.mapBlock .mapNav .mapNav_icon {
  -webkit-box-flex: 1;
  -ms-flex: 1 1;
  flex: 1 1;
  width: calc(100% - 245px - 11%);
  text-align: center;
}

.mapBlock .mapNav .mapNav_icon ul {
  gap: 20px 0;
  margin-right: -10%;
}

.mapBlock .mapNav .mapNav_icon li {
  line-height: 40px;
  font-weight: bold;
  font-size: 18px;
  width: 195px;
  text-align: left;
}

.mapBlock .mapNav .mapNav_icon li img {
  margin-right: 6px;
}

@media screen and (max-width: 1020px) and (min-width: 768px) {
  .mapBlock .mapNav .mapNav_icon ul {
    margin-right: -13%;
  }

  .mapBlock .mapNav .mapNav_icon li {
    font-size: 16px;
    width: 180px;
  }
}

@media screen and (max-width: 768px) {
  .mapBlock .mapNav .mapNav_icon {
    width: 100%;
  }

  .mapBlock .mapNav .mapNav_icon ul {
    margin: 0 -2px;
    gap: 10px 0;
  }

  .mapBlock .mapNav .mapNav_icon li {
    font-size: 16px;
    line-height: 32px;
    width: 167px;
  }

  .mapBlock .mapNav .mapNav_icon li img {
    margin-right: 5px;
    width: 32px;
  }

  .mapBlock .mapNav .mapNav_icon li:nth-child(5) {
    -webkit-box-ordinal-group: 7;
    -ms-flex-order: 6;
    order: 6;
  }

  .mapBlock .mapNav .mapNav_icon li:nth-child(6) {
    -webkit-box-ordinal-group: 8;
    -ms-flex-order: 7;
    order: 7;
  }

  .mapBlock .mapNav .mapNav_icon li:nth-child(7) {
    -webkit-box-ordinal-group: 9;
    -ms-flex-order: 8;
    order: 8;
  }
}

.w_100p {
  width: 100%;
}

.w_30p {
  width: 30%;
}

.w_70p {
  width: 70%;
}

.underline {
  text-decoration: underline;
}

@media screen and (max-width: 768px) {
  .youtube {
    height: 350px;
  }
}

@media not screen and (max-width: 768px) {
  .youtube {
    height: 450px;
  }
}

.icon {
  width: 40px;
  height: 40px;
  max-width: none;
}

/*ninki*/

.ninki .nav_area .nav_col2 {
  display: flex;
  gap: 32px;
}


.ninki .nav_area .link_list_area {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 0;
  margin-top: 12px;
}

.ninki .nav_area .link_list_area li {
  position: relative;
}

.ninki .nav_area .link_list_area li:after {
  content: "|";
  width: 2px;
  height: 15px;
  position: absolute;
  color: #C3D2DE;
  right: 0;
  right: auto;
}

.ninki .nav_area .link_list_area li:last-child:after {
  content: none;
}

.ninki .nav_area .link_list_area li a {
  color: #0745AF;
  font-size: 14px;
  font-weight: 500;
  padding: 0 15px;
}

.ninki .nav_area .nav_col1 .link_list_area li:first-child a {
  padding: 0 15px;
}

.ninki .nav_area .nav_col1 .link_list_area li:last-child a {
  padding: 0 0 0 15px;
}

.ninki .nav_area .link_list_area li a:hover {
  text-decoration: underline;
}

.ninki .nav_area .navlist_area .inner,
.ninki .nav_area .trademark_area .inner {
  max-width: 1216px;
  margin: 0 auto;
  padding: 0 8px;
}

.fooninkiter .nav_area .navlist_area {
  padding: 38px 0 32px;
}

.ninki .nav_area .navlist_area .line_half_heading {
  padding: 5px 15px;
  margin: 35px 0 16px;
}

.ninki .nav_area .navlist_area .line_half_heading::before {
  left: 14px;
}

.ninki .nav_area .navlist_area .area_search {
  margin: 7px 15px;
}

.ninki .nav_area .navlist_area .area_search .region_area {
  margin-top: 18px;
  display: flex;
}

.ninki .nav_area .navlist_area .area_search .region_area:first-child {
  margin-top: 0;
}

.ninki .nav_area .navlist_area .area_search .region_area .label {
  font-weight: 500;
  font-size: 16px;
  display: flex;
  width: 120px;
}

.ninki .nav_area .navlist_area .area_search .region_area .area_list_box {
  display: flex;
  flex-direction: column;
  width: calc(100% - 120px);
  gap: 12px 0;
}

.ninki .nav_area .navlist_area .area_search .region_area .area_list_box .link_list_area {
  margin-top: 0;
}




.ninki .nav_area .navlist_area .pointbox {
  background-color: rgb(255 255 255 / 60%);
  border: 1px solid #fff;
  padding: 20px;
  margin: 24px 0 8px;
}

.ninki .nav_area .navlist_area .pointbox .link_list_area {
  margin-top: 0;
}

.ninki .nav_area .trademark_area {
  border-top: 2px solid #fff;
  padding: 26px 0;
}

.ninki .nav_area .trademark_area .nav_col2 .col_area {
  display: flex;
  gap: 12px;
}

.ninki .nav_area .trademark_area .marklogo {
  display: inline-block;
}

.ninki .nav_area .trademark_area .marklogo.mark01 {
  background: #F2F2F2;
  border: 2px solid #fff;
  padding: 8px 10px;
}

.ninki .nav_area .trademark_area .marklogo.mark02 {
  background: #fff;
  padding: 7px 10px;
}

.ninki .nav_area .trademark_area .txt {
  font-size: 9px;
  font-weight: 400;
  line-height: 14px;
}

@media screen and (max-width: 768px) {
  .ninki .nav_area .navlist_area .area_search .region_area .label {
    font-weight: 500;
    font-size: 16px;
    width: 120px;
  }

  .ninki .nav_area .navlist_area .area_search .region_area .area_list_box {
    display: flex;
    flex-direction: column;
    gap: 12px 0;
    width: 100%;
  }

  .ninki .nav_area .link_list_area li a {
    color: #0745AF;
    font-size: 12px;
    font-weight: 500;
    padding: 0 10px;
  }

}