@charset = "utf-8";

html, body {
  min-width: 1200px;
  font-size: 14px;
}

body {
  border-top: solid 3px #84ae60;
}

.wrap {
  width: 1200px;
  min-width: 1200px;
  margin: 0 auto;
  position: relative;
}

.contents { padding-bottom: 40px; }

ul li {
  list-style: none;
}

a { transition: all 0.3s ease; }
a:hover { opacity: 0.7; }

a[href*="tel:"] {
  pointer-events: none;
  color: #333;
  text-decoration: none;
}

svg.svg { display: none; }
.sp { display: none !important; }

@media only screen and (max-width: 767px) {
  html, body { min-width: auto; }
  body { padding-top: 58px; }
  body.fixed {
    width: 100%;
    height: 100%;
    position: fixed;
  }

  img { max-width: 100%; height: auto; }
  a { word-break: break-all; }

  .wrap {
    width: 100%;
    min-width: auto;
    padding: 0 20px;
  }

  a[href*="tel:"] {
    pointer-events: auto;
    text-decoration: underline;
  }

  .pc { display: none !important; }
  .sp { display: block !important; }
}

/*---------------------------------

  header

---------------------------------*/

header {
  position: relative;
}
header .wrap {
  padding: 1px 0;
}

header .logo {
  margin: 25px 0 0;
}

header .sub-menu {
  position: absolute;
  top: 30px;
  right: 0;
}
header .sub-menu ul {
  display: flex;
  justify-content: flex-start;
}
header .sub-menu li {
  margin-left: 2px;
}
header .sub-menu li > a {
  display: block;
  width: 141px;
  height: 50px;
  line-height: 50px;
  background: #84ae60;
  letter-spacing: 1px;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  font-size: 16px;
  color: #fff;
  text-align: center;
  text-decoration: none;
}
header .sub-menu li.search {
  display: flex;
}
header .sub-menu li.search > a {
  width: 50px;
  height: 50px;
  margin-left: -1px;
  order: 2;
}
header .sub-menu li.search > a img {
  vertical-align: middle;
}


header .sub-menu li.search #___gcse_0 {
  width: 1px;
  order: 1;
  overflow: hidden;
  transition: all 0.2s ease;
}
header .sub-menu li.search > a.on ~ #___gcse_0 {
  width: 220px;
}

header .sub-menu li.search .gsc-control-cse {
  padding: 0;
  border: none;
}
header .sub-menu li.search .gsc-search-button {
  display: none;
}
header .sub-menu li.search .gsc-search-box {
  margin: 0;
}
header .sub-menu li.search .gsc-input {
  padding: 0;
  width: 220px;
  height: 39px !important;
  border: none;
  margin: 0;
}
header .sub-menu li.search .gsc-input th,
header .sub-menu li.search .gsc-input td {
  border: none;
}
header .sub-menu li.search a.gsst_a {
  width: auto;
  height: auto;
  line-height: normal;
  margin-right: 3px;
  background: none;
  color: #84ae60;
}
header .sub-menu li.search a.gsst_a .gscb_a {
  color: #84ae60;
}

header .g-navi ul {
  display: flex;
  justify-content: space-between;
  margin: -10px 0 0;
}
header .g-navi ul li.nest { position: relative; }
header .g-navi ul li a {
  display: block;
  height: 70px;
  line-height: 70px;
  padding: 0 20px;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  font-size: 16px;
  color: #333;
  text-decoration: none;
}

header .g-navi ul li.nest ul {
  display: none;
  width: 275px;
  position: absolute;
  top: 70px;
  left: 15px;
  z-index: 999;
}

header .g-navi ul li.nest:hover > ul,
header .g-navi ul li.nest:hover > a + ul {
  display: block;
}

header .g-navi ul li.nest ul li {
  background: #84ae60;
  border-top: solid 1px #fff;
  position: relative;
}
header .g-navi ul li.nest ul li a {
  height: auto;
  line-height: normal;
  padding: 15px 0 15px 20px;
  font-size: 13px;
  color: #fff;
}

header .g-navi ul li.nest li.add-nest { position: relative; }
header .g-navi ul li.nest li.add-nest::after {
  content: '';
  display: block;
  width: 10px;
  height: 10px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  position: absolute;
  top: 50%;
  right: 15px;
  transform: translateY(-50%) rotate(45deg);
}
header .g-navi ul li.nest li.add-nest > ul {
  margin: 0;
  top: 0;
  left: 275px;
}
header .g-navi ul li.nest li.add-nest:hover > ul,
header .g-navi ul li.nest li.add-nest:hover > a + ul {
  display: block;
}
header .g-navi ul li.nest li.add-nest > ul li {
  background: #fff;
  border: solid 1px #84ae60;
  border-bottom: none;
}
header .g-navi ul li.nest li.add-nest > ul li:last-child { border-bottom: solid 1px #84ae60; }
header .g-navi ul li.nest li.add-nest > ul li a {
  padding: 14px 0 15px 20px;
  color: #84ae60;
}

@media only screen and (max-width: 767px) {
  header {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999;
  }
  header .sub-menu,
  header .g-navi { display: none; }

  header .wrap {
    height: 58px;
    background: #fff;
  }

  header .logo {
    width: 72%;
    max-width: 328px;
    margin: 10px 0 0 10px;
  }
  header .logo img {
    width: 100%;
    height: auto;
  }

  header .hamburger-btn {
    width: 37px;
    height: 40px;
    text-align: center;
    position: absolute;
    top: 10px;
    right: 10px;
  }
  header .hamburger-btn a {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    font-family: 'Lato', sans-serif;
    font-weight: bold;
    font-size: 10px;
    color: #333;
    text-align: center;
    letter-spacing: 2px;
    text-decoration: none;
  }
  header .hamburger-btn .icon {
    display: block;
    width: 100%;
    height: 20px;
    position: relative;
  }
  header .hamburger-btn span {
    display: block;
    width: 100%;
    height: 4px;
    margin-bottom: 6px;
    background: #67ab2f;
  }
  header .hamburger-btn span:last-of-type {
    margin-bottom: 5px;
  }
  header .hamburger-btn .txt::before {
    content: 'MENU';
    white-space: nowrap;
  }

  header .hamburger-btn.on span {
    margin: 0;
    position: absolute;
  }
  header .hamburger-btn.on span:nth-child(1) {
    top: 60%;
    left: 50%;
    transform: translate(-50%,-50%) rotate(45deg);
  }
  header .hamburger-btn.on span:nth-child(2) {
    top: 60%;
    left: 50%;
    transform: translate(-50%,-50%) rotate(-45deg);
  }
  header .hamburger-btn.on span:last-of-type {
    display: none;
  }
  header .hamburger-btn.on .txt::before {
    content: 'CLOSE';
  }

  header .hamburger-menu {
    display: none !important;
    width: 100%;
    height: 100%;
    padding: 0 0 80px;
    position: fixed;
    top: 58px;
    left: 0;
    background: #fff;
    overflow: auto;
    z-index: 99999;
  }
  header .hamburger-menu.on {
    display: block !important;
  }
  header .hamburger-menu .main-menu li {
    height: auto;
    background: #fff;
    border-bottom: solid 1px #9f9f9f;
    position: relative;
  }
  header .hamburger-menu .main-menu li a {
    display: block;
    width: 100%;
    height: auto;
    padding: 15px 25px;
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    color: #333;
    letter-spacing: 1px;
    text-decoration: none;
  }
  header .hamburger-menu .main-menu li.nest,
  header .hamburger-menu .main-menu > li {
    background: #84ae60;
    border-color: #fff;
  }
  header .hamburger-menu .main-menu li.nest > a,
  header .hamburger-menu .main-menu > li > a {
    color: #fff;
    position: relative;
  }
  header .hamburger-menu .main-menu li.nest ul { display: none; }
  header .hamburger-menu .main-menu li.nest.on ul { display: block; }
  header .hamburger-menu .main-menu li.nest ul li:last-child { border: none; }

  header .hamburger-menu .main-menu li.nest .btn {
    display: block;
    width: 50px;
    height: 50px;
    margin: 0 !important;
    border-left: solid 1px #fff;
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    z-index: 99999;
  }
  header .hamburger-menu .main-menu li.nest .btn::after {
    content: '＋';
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    font-family: 'Lato', sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    z-index: 9999;
  }
  header .hamburger-menu .main-menu li.nest.on .btn::after { content: '－'; }
  header .hamburger-menu .main-menu > li > a::before {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    position: absolute;
    top: 50%;
    right: 23px;
    transform: translateY(-50%) rotate(45deg);
  }
  header .hamburger-menu .main-menu li.nest a::before { content: none; }

  header .hamburger-menu .main-menu li.add-nest ul { display: none !important; }
  header .hamburger-menu .main-menu li.add-nest.on ul { display: block !important; }

  header .hamburger-menu .main-menu li.add-nest .btn {
    border-color: #9f9f9f;
  }
  header .hamburger-menu .main-menu li.add-nest .btn::after { content: '＋'!important; color: #9f9f9f; }
  header .hamburger-menu .main-menu li.add-nest.on .btn::after { content: '－'!important; color: #9f9f9f; }
  header .hamburger-menu .main-menu li.add-nest > ul {
    border-top: solid 1px #9f9f9f;
  }
  header .hamburger-menu .main-menu li.add-nest > ul li a {
    padding: 15px 25px 15px 35px;
    font-size: 14px;
  }


  header .hamburger-menu .sns {
    margin: 40px 0 30px;
  }
  header .hamburger-menu .sns ul {
    display: flex;
    justify-content: center;
  }
  header .hamburger-menu .sns ul li { margin: 0 15px; }

  header .hamburger-menu .other-menu {
    display: block;
    width: calc(100% - 40px);
    margin: 0 20px;
    padding: 30px 15px;
    border-top: solid 1px #848486;
    border-bottom: solid 1px #848486;
    position: relative;
    top: auto;
    right: auto;
  }
  header .hamburger-menu .other-menu ul {
    display: flex;
    justify-content: space-between;
  }
  header .hamburger-menu .other-menu a {
    text-decoration: none;
    color: #333;
  }

  header .hamburger-menu .gsc-control-cse {
    margin: 15px 0 0;
    border: none;
    background: none;
    padding: 0;
  }
  header .hamburger-menu .gsc-input-box {
    border: none;
    border-bottom: 4px solid #84ae60;
    border-radius: 0;
    background: none;
  }

  header .hamburger-menu table.gsc-search-box {
    margin: 0;
    border: none;
  }
  header .hamburger-menu table.gsc-search-box tr {
    display: flex;
  }
  header .hamburger-menu table.gsc-search-box .gsc-search-button{
    width: auto;
    background: none;
    border: none;
    order:1;
  }
  header .hamburger-menu table.gsc-search-box .gsc-search-button svg {
    width: 22px;
    height: 22px;
    fill: #84ae60;
  }
  header .hamburger-menu table.gsc-search-box .gsc-input {
    order:2;
  }

  header .hamburger-menu table.gsc-search-box td {
    padding: 0;
    border: none;
  }

  header .hamburger-menu .gsc-search-box-tools .gsc-search-box .gsc-input {
    margin: 0;
    border: none;
  }


  header .hamburger-menu .sp-box {
    display: flex !important;
    justify-content: space-between;
    width: 100%;
    padding: 20px 20px 0;
  }

  header .hamburger-menu .chara {
    display: block;
    width: 100px;
    font-size: 10px;
    text-align: center;
    position: relative;
  }
}

/*---------------------------------

  page-title

---------------------------------*/

.page-title {
  width: 100%;
  min-width: 1200px;
  height: 300px;
  position: relative;
}

.page-title h1 {
  max-width: 50%;
  font-family: 'Playfair Display', serif;
  font-size: 46px;
  letter-spacing: 2px;
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
}
.page-title .page-title_image {
  width: 560px;
  height: 300px;
  position: absolute;
  top: 0;
  right: 0;
}
.page-title .page-title_image img {
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

@media only screen and (max-width: 767px) {
  .page-title {
    display: flex;
    justify-content: flex-start;
    align-content: center;
    align-items: center;
    width: 100%;
    min-width: auto;
    height: auto;
    min-height: 150px;
    padding: 0 10px;
    overflow: hidden;
  }
  .page-title h1 {
    max-width: 100%;
    text-shadow: 3px 3px 1px #000;
    font-size: 32px;
    color: #fff;
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    z-index: 9999;
  }
  .page-title .page-title_image {
    width: 100%;
    height: 100%;
  }
  .page-title .page-title_image img {
    width: 100%;
    height: auto;
  }
}

/*---------------------------------

  breadcrumbs

---------------------------------*/

.breadcrumbs {
  width: 50%;
  position: absolute;
  bottom: 20px;
  left: 2%;
}
.breadcrumbs ul {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  width: 100%;
}
.breadcrumbs li,
.breadcrumbs li a {
  font-family: 'Lato', sans-serif;
  font-size: 13px;
  font-weight: bold;
  text-decoration: none;
  color: #000;
}

.breadcrumbs li {
  margin-right: 25px;
  position: relative;
}
.breadcrumbs li::after {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-top: solid 1px #333;
  border-right: solid 1px #333;
  position: absolute;
  top: 50%;
  right: -14px;
  margin-top: -3px;
  transform: rotate(45deg);
}
.breadcrumbs li:last-child::after { content: none; }
.breadcrumbs li:first-child a { color: #84ae60; }

@media only screen and (max-width: 767px) {
  .breadcrumbs {
    width: 100%;
    padding: 0 15px;
    bottom: 0;
    left: 0;
    transform: translateY(150%);
    z-index: 9999;
  }
}

/*---------------------------------

  local-navigation

---------------------------------*/

.local-navigation {
  display: flex;
  justify-content: flex-start;
  width: 100%;
  min-width: 1200px;
  font-family: 'Lato', sans-serif;
  position: relative;
}
.local-navigation .parent-page {
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  padding: 15px 35px;
  background: #84ae60;
  position: relative;
}
.local-navigation .parent-page a {
  white-space: nowrap;
  font-size: 14px;
  color: #fff;
  letter-spacing: 1px;
  text-decoration: none;
}

.local-navigation .child-pages {
  display: flex;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
  height: auto;
  padding: 15px 20px 15px 60px;
  background: #e6efdf;
  position: relative;
  overflow: hidden;
}
.local-navigation .child-pages::before {
  content: '';
  width: 30px;
  height: 100%;
  background: linear-gradient(to top left, rgba(255,255,255,0) 50%, #84ae60 50.5%) no-repeat top left/100% 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.local-navigation .child-pages li {
  padding-right: 30px;
  position: relative;
}
.local-navigation .child-pages li::after {
  content: "/";
  font-size: 13px;
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
}

.local-navigation .child-pages li a {
  padding-left: 25px;
  font-size: 14px;
  color: #333;
  text-decoration: none;
  letter-spacing: 1px;
  position: relative;
}
.local-navigation .child-pages li a svg {
  width: 21px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

@media only screen and (max-width: 767px) {
  .local-navigation {
    flex-direction: column;
    width: 100%;
    min-width: auto;
    padding: 0 0 40px;
    background: #fff;
  }

  .local-navigation .child-pages {
    flex-direction: column;
    align-content: flex-start;
    align-items: flex-start;
    padding: 15px;
    line-height: 2.2;
  }
  .local-navigation .child-pages::before {
    content: none;
  }

  .local-navigation .child-pages li::after {
    content: none;
  }
}


/*---------------------------------

  footer

---------------------------------*/

footer {
  width: 100%;
  background: #323236;
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #fff;
}
footer a,
footer a[href*="tel:"] {
  text-decoration: none;
  color: #fff;
}

footer .wrap {
  display: flex;
}

footer .infomation {
  width: 300px;
  padding: 60px 0 40px;
  margin-right: 40px;
  text-align: center;
}

footer .infomation .overview {
  margin: 40px 0;
  font-size: 12px;
  color: #848486;
}
footer .infomation .overview address {
  font-style: normal;
}
footer .infomation .overview a[href*="tel:"] {
  color: #848486;
}

footer .infomation .sns ul {
  display: flex;
  justify-content: center;
}
footer .infomation .sns ul li { margin: 0 15px; }
footer .infomation .sns ul li a {
  opacity: 0.4;
  transition: all 0.3s ease;
}
footer .infomation .sns ul li a:hover {
  opacity: 0.2;
}

footer .infomation .copyright {
  margin: 40px 0 30px;
  font-size: 12px;
  color: #848486;
}

footer .infomation .sub-menu {
  padding: 45px 0 0;
  border-top: solid 1px #848486;
}
footer .infomation .sub-menu ul {
  display: flex;
  justify-content: space-between;
}


footer .footer-menu {
  display: flex;
  justify-content: space-between;
  width: 860px;
  padding: 60px 0 40px 105px;
  border-left: solid 1px #848486;
}
footer .footer-menu a {
  transition: all 0.3s ease;
}
footer .footer-menu a:hover {
  opacity: 0.5;
}

footer .footer-menu > div > .parent:nth-child(n+2) { margin-top: 50px; }
footer .footer-menu .parent a {
  font-weight: bold;
}

footer .footer-menu ul li {
  margin-top: 10px;
}

footer .footer-menu .col-3 { position: relative; }
footer .footer-menu .chara {
  display: inline-block;
  position: absolute;
  bottom: 0;
  text-align: center;
  font-size: 12px;
  color: #848486;
}

@media only screen and (max-width: 767px) {
  footer .wrap {
    flex-direction: column;
  }

  footer .infomation {
    width: 100%;
    padding: 50px 0;
  }
  footer .infomation .overview {
    line-height: 1.6;
  }
  footer .infomation .copyright {
    margin: 25px 0;
  }
  footer .infomation .sub-menu {
    padding: 30px 15px;
    border-bottom: solid 1px #848486;
  }

  footer .footer-menu {
    width: 100%;
    border: none;
    padding: 0;
  }
  footer .footer-menu [class*="col-"] {
    display: none;
  }

  footer .gsc-control-cse {
    border: none;
    background: none;
    padding: 0;
  }
  footer .gsc-input-box {
    border: none;
    border-bottom: 4px solid #fff;
    border-radius: 0;
    background: none;
  }

  footer table.gsc-search-box {
    margin: 0;
    border: none;
  }
  footer table.gsc-search-box tr {
    display: flex;
  }
  footer table.gsc-search-box .gsc-search-button{
    width: auto;
    background: none;
    border: none;
    order:1;
  }
  footer table.gsc-search-box .gsc-search-button svg {
    width: 22px;
    height: 22px;
  }
  footer table.gsc-search-box .gsc-input {
    order:2;
  }

  footer table.gsc-search-box td {
    padding: 0;
    border: none;
  }

  footer .gsc-search-box-tools .gsc-search-box .gsc-input {
    margin: 0;
    border: none;
  }


  footer .sp-box {
    display: flex !important;
    justify-content: space-between;
    width: 100%;
    padding: 0 0 40px;
  }

  footer .footer-menu .chara {
    display: block;
    width: 110px;
    font-size: 10px;
    position: relative;
  }
}

/*---------------------------------

  ccm

---------------------------------*/

/* Automatically included across all of c5 - use this file gingerly */
img.ccm-captcha-image {display: block}

/* clear and pagination styles */
*.ccm-spacer {clear: both; font-size:1px; line-height:1px; }
div.ccm-pagination { text-align:center; position: relative}
div.ccm-pagination span.ccm-page-right {position: absolute; top: 0px; right: 0px; margin-right: 0px !important}
div.ccm-pagination span.ccm-page-right span {margin-right: 0px}
div.ccm-pagination span.ccm-page-left {position: absolute; top: 0px; left: 0px}
div.ccm-pagination span {margin-right: 4px}
.ccm-ui div.ccm-pagination span {margin-right: 0px;}

/* Extra pagination styling to make code generated by C5 pagination helper look nice */
div.pagination ul strong, div.pagination ul span.ltgray {
	display:block;
	padding:0 14px;
	float:left;
	line-height:34px;
	border-right:1px solid #DDD;
	text-decoration:none;
}

/* Layout */
/*
.ccm-layout .ccm-layout-cell{ overflow:hidden; }
*/
.ccm-layout-table .ccm-layout-col {float:left}
.ccm-layout .first .ccm-layout-col-spacing { margin-left:0px !important }
.ccm-layout .last .ccm-layout-col-spacing { margin-right:0px !important }

/* global error styles */
.ccm-error {font-weight: bold; color: #f00}
.ccm-required {font-weight: bold; color: #3975AD}

div#ccm-overlay {
	position: fixed;
	z-index:99;
	top: 0px;
	left: 0px;
	background-color:#000;
	filter:alpha(opacity=70);
	-moz-opacity: 0.7;
	opacity: 0.7;
	height:100%;
	width:100%;
	display: none;
}

.ccm-input-time-wrapper select {width: 55px !important; margin-right: 4px !important;}
.ccm-input-date {width: 80px !important; margin-right: 4px !important;}
