@charset "UTF-8";
/*** function ***/
/* ###################### */
/* ######## 変数 ######## */
/* ###################### */
/* カラー */
/* 書式 */
/* ###################### */
/* ######## 関数 ######## */
/* ###################### */
/* ###################### */
/* ######## 共通 ######## */
/* ###################### */
/* ボタン */
/*******/
/************/
/*切り替え用*/
/************/
.pc {
  display: block;
}

.sp {
  display: none;
}

/********共通********/
.cont {
  width: 1080px;
}

div[class^=contents],
article[class^=contents] {
  padding: 100px 0;
}

div.contents1,
article.contents1 {
  padding-top: 120px;
}

.table {
  line-height: 1.875;
}
.table th {
  width: 230px;
  padding: 14px 30px;
  border-bottom: dashed 1px #fff;
}
.table td {
  padding: 14px 30px;
  border-bottom: dashed 1px #7ebd68;
  border-right: solid 1px #7ebd68;
}
.table tr:first-of-type th {
  border-top: solid 1px #7ebd68;
  border-radius: 15px 0 0 0;
}
.table tr:first-of-type td {
  border-top: solid 1px #7ebd68;
  border-radius: 0 15px 0 0;
}
.table tr:last-of-type th {
  border-bottom: solid 1px #7ebd68;
  border-radius: 0 0 0 15px;
}
.table tr:last-of-type td {
  border-bottom: solid 1px #7ebd68;
  border-radius: 0 0 15px 0;
}

.h2_1 {
  font-size: 4.5rem;
}
.h2_1::after {
  height: 4px;
  margin-top: 25px;
}
.h2_1.le {
  text-align: left;
}
.h2_1.le::after {
  background-position: left center;
}

.h2_2 div {
  font-size: 4.5rem;
  padding: 0 12px 3px;
}
.h2_2::before, .h2_2::after {
  width: 18px;
  height: 30px;
}

.h2_ttl_box {
  height: 150px;
  margin-bottom: 80px;
}
.h2_ttl_box::before {
  height: calc(100% - 12px);
  top: 6px;
}
.h2_ttl_box h2 div {
  font-size: 4.5rem;
  padding: 0 12px 3px;
}
.h2_ttl_box h2::before, .h2_ttl_box h2::after {
  width: 18px;
  height: 30px;
}

.h3_style {
  font-size: 2.5rem;
  line-height: 1.92;
}

.box_style {
  border-width: 4px;
}
.box_style::before {
  width: calc(100% - 12px);
  height: calc(100% - 12px);
  top: 6px;
  left: 6px;
}

/*********voice***********/
.voice .contents1 {
  padding-bottom: 145px;
}
.voice .contents1 h2 {
  margin-bottom: 50px;
}
.voice .contents1 .box {
  padding: 50px;
  border-radius: 15px;
  margin-bottom: 60px;
}
.voice .contents1 .box::after {
  width: 256px;
  padding-top: 277px;
  top: -40px;
  right: -60px;
}
.voice .contents1 .box figure div {
  border-radius: 10px;
}
.voice .contents1 .box .txt {
  padding: 22px 30px;
  border-radius: 10px;
  margin-top: 40px;
}
.voice .contents1 .no-txt {
  font-size: 2rem;
  line-height: 1.5;
}

/*********trivia***********/
.trivia .contents1 h2 {
  margin-bottom: 50px;
}
.trivia .contents1 .box {
  width: 960px;
  padding: 57px 48px 40px;
  margin: 0 auto;
}
.trivia .contents1 .box::after {
  content: "";
  background: url(../images/trivia/con01-deco.png) no-repeat bottom right/contain;
  width: 193px;
  height: 198px;
  position: absolute;
  right: 15px;
  bottom: 7px;
  z-index: -2;
}
.trivia .contents1 .box h3 {
  margin-bottom: 32px;
}
.trivia .contents1 .box p {
  text-align: center;
  margin-bottom: 28px;
}
.trivia .contents2::before {
  min-width: 1560px;
}
.trivia .contents2 h2 {
  margin-bottom: 40px;
}
.trivia .contents2 .txt {
  text-align: center;
  margin-bottom: 44px;
}
.trivia .contents2 .list {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
  margin-top: -60px;
}
.trivia .contents2 .list .box {
  width: 510px;
  padding: 0 50px 44px;
  margin-top: 60px;
}
.trivia .contents2 .list .box::before {
  height: calc(100% - 33px);
  border-radius: 15px;
}
.trivia .contents2 .list .box h3 {
  height: 65px;
  font-size: 3rem;
  text-shadow: 0 0 11px rgba(135, 197, 115, 0.65), 0 0 11px rgba(135, 197, 115, 0.65), 0 0 11px rgba(135, 197, 115, 0.65);
  margin-bottom: 40px;
}
.trivia .contents2 .list .box figure {
  margin-bottom: 24px;
}
.trivia .contents2 .list .box figure div {
  border-radius: 10px;
}
.trivia .contents3 {
  padding: 80px 0 145px;
}
.trivia .contents3::before {
  width: 110%;
  max-width: 1484px;
  height: 396px;
  top: 83px;
  left: calc(50% + 12px);
}
.trivia .contents3 .box {
  width: 808px;
  padding: 56px 58px 52px;
}
.trivia .contents3 .box::after {
  content: "";
  background: url(../images/trivia/con03-box-deco.png) no-repeat bottom right/contain;
  width: 144px;
  height: 155px;
  position: absolute;
  right: -20px;
  bottom: -30px;
  z-index: 1;
}
.trivia .contents3 .box h2 {
  margin-bottom: 32px;
}
.trivia .contents3 .box p {
  text-align: center;
}

/*********partial***********/
.partial .leadBox {
  padding-bottom: 110px;
}
.partial .leadBox figure div {
  border-radius: 15px;
}
.partial .leadBox figure div::before {
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  top: 10px;
  left: 10px;
  border-radius: 10px;
}
.partial .leadBox .text {
  width: 520px;
}
.partial .subBox {
  padding: 90px 0 100px;
}
.partial .subBox h3 {
  margin-bottom: 45px;
}
.partial .subBox h3 .min {
  font-size: 3.5rem;
  margin-bottom: 10px;
}
.partial .subBox .in {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-direction: row-reverse;
}
.partial .subBox .in figure {
  margin-top: -20px;
}
.partial .subBox .in .text {
  width: 660px;
}
.partial .subBox .in .text .list {
  margin-top: -30px;
}
.partial .subBox .in .text .list li {
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(50% - 15px);
  height: 117px;
  border-radius: 10px;
  margin-top: 30px;
  text-align: center;
  font-size: 2.5rem;
  line-height: 1.4;
  letter-spacing: 0;
}
.partial .subBox .in .text .txt {
  padding: 16px 23px;
  border-radius: 15px;
  margin-top: 40px;
}
.partial .subBox .efficacy {
  padding-top: 100px;
}
.partial .subBox .efficacy h4 {
  margin-bottom: 50px;
}
.partial .subBox .efficacy figure div {
  border-radius: 15px;
}
.partial .subBox .efficacy figure div::before {
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  top: 10px;
  left: 10px;
  border-radius: 10px;
}
.partial .subBox .efficacy .list {
  width: 520px;
}
.partial .subBox .efficacy .list li {
  width: 100%;
  padding: 25px 30px;
  border-radius: 10px;
  font-size: 2.5rem;
  line-height: 1.2;
  margin-bottom: 30px;
}
.partial .contents1 .box {
  padding: 50px 56px 56px;
}
.partial .contents1 p {
  text-align: center;
}
.partial .contents1 .links {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 44px;
}
.partial .contents1 .links li {
  width: 300px;
}
.partial .contents2 .subBox::before {
  min-width: 1500px;
  background-size: 17.76042%;
  background-position: left top 10.12007%, right top 19.38251%;
}
.partial .contents3 .subBox::before {
  min-width: 1500px;
  background-size: 17.76042%;
  background-position: left center, right bottom 36.59421%;
}
.partial .contents4 .subBox::before {
  min-width: 1500px;
  background-size: 17.76042%;
  background-position: left top 36.59421%, right center;
}
.partial .contents5 {
  padding: 80px 0 125px;
}
.partial .contents5::before {
  width: 110%;
  max-width: 1244px;
  height: 165px;
  background-size: 145px, 146px;
  top: 28px;
  left: calc(50% - 32px);
}
.partial .contents5 .btn {
  width: 586px;
  margin: 0 auto;
}
.partial .contents5 .btn a {
  padding-right: 11px;
}
.partial .contents5 .btn a::before {
  width: 21px;
  height: 21px;
  margin-right: 10px;
}

/*********whole***********/
.whole .contents1::before {
  min-width: 1360px;
  padding-top: 19.4792%;
}
.whole .contents1 .cont {
  min-height: 330px;
  position: relative;
  z-index: 0;
}
.whole .contents1 .box {
  width: 520px;
}
.whole .contents1 .box h2 {
  margin-bottom: 35px;
}
.whole .contents1 figure {
  position: absolute;
  top: 0;
  right: 0;
}
.whole .contents1 figure div {
  border-radius: 15px;
}
.whole .contents1 figure div::before {
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  top: 10px;
  left: 10px;
  border-radius: 10px;
}
.whole .contents2::before {
  min-width: 1500px;
  background-size: 17.76042%;
  background-position: left bottom 45.749%, right bottom 34.8179%;
}
.whole .contents2 .h2_ttl_box h2 .min {
  font-size: 3.5rem;
  margin-bottom: 10px;
}
.whole .contents2 .in {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-direction: row-reverse;
}
.whole .contents2 .in figure {
  margin-top: -20px;
}
.whole .contents2 .in .text {
  width: 660px;
}
.whole .contents2 .in .text .list {
  margin-top: -30px;
}
.whole .contents2 .in .text .list li {
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(50% - 15px);
  height: 117px;
  border-radius: 10px;
  margin-top: 30px;
  text-align: center;
  font-size: 2.5rem;
  line-height: 1.4;
  letter-spacing: 0;
}
.whole .contents2 .in .text .txt {
  padding: 16px 23px;
  border-radius: 15px;
  margin-top: 40px;
}
.whole .contents2 .subBox {
  padding-top: 100px;
}
.whole .contents2 .subBox h3 {
  margin-bottom: 50px;
}
.whole .contents2 .subBox figure div {
  border-radius: 15px;
}
.whole .contents2 .subBox figure div::before {
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  top: 10px;
  left: 10px;
  border-radius: 10px;
}
.whole .contents2 .subBox .list {
  width: 520px;
}
.whole .contents2 .subBox .list li {
  width: 100%;
  padding: 25px 30px;
  border-radius: 10px;
  font-size: 2.5rem;
  line-height: 1.2;
  margin-bottom: 30px;
}
.whole .contents3 {
  padding-bottom: 145px;
}
.whole .contents3::before {
  width: 110%;
  max-width: 1484px;
  height: 396px;
  top: 83px;
  left: calc(50% + 12px);
}
.whole .contents3 .box {
  width: 808px;
  padding: 50px 0 56px;
}
.whole .contents3 .box::after {
  content: "";
  width: calc(100% + 150px);
  height: calc(100% + 118px);
  background: url(../images/common/flower-deco1_1.png) no-repeat top right, url(../images/common/flower-deco1_2.png) no-repeat bottom left;
  position: absolute;
  top: -58px;
  left: -72px;
  z-index: -1;
}
.whole .contents3 .box p {
  text-align: center;
}
.whole .contents3 .box .btn {
  width: 586px;
  margin: 44px auto 0;
}
.whole .contents3 .box .btn a {
  padding-right: 11px;
}
.whole .contents3 .box .btn a::before {
  width: 21px;
  height: 21px;
  margin-right: 10px;
}

/*********index***********/
.index .contents1 .box {
  width: 808px;
  padding: 56px 0 50px;
}
.index .contents1 h2 {
  margin-bottom: 40px;
}
.index .contents1 h2 .min {
  font-size: 3.5rem;
  margin-bottom: 10px;
}
.index .contents1 p {
  text-align: center;
  margin-bottom: 28px;
}
.index .contents2 {
  padding-bottom: 110px;
}
.index .contents2::before {
  background-size: 17.76042%;
  background-position: left bottom 4.70086%, right bottom 35.186%;
}
.index .contents2 .box {
  display: flex;
  justify-content: center;
  align-items: stretch;
  padding: 66px 0;
  border-width: 4px;
}
.index .contents2 .box::before {
  width: calc(100% - 12px);
  height: calc(100% - 12px);
  top: 6px;
  left: 6px;
}
.index .contents2 .box::after {
  content: "";
  width: calc(100% + 150px);
  height: calc(100% + 118px);
  background: url(../images/common/flower-deco1_1.png) no-repeat top right, url(../images/common/flower-deco1_2.png) no-repeat bottom left;
  position: absolute;
  top: -58px;
  left: -72px;
  z-index: -1;
}
.index .contents2 .box .text {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-direction: column;
  width: 458px;
  margin-left: 20px;
}
.index .contents2 .box .text > * {
  width: 100%;
}
.index .contents2 .box .text .txt {
  border-radius: 15px;
  padding: 17px 21px;
}
.index .contents2 .box .text .list dl {
  margin-bottom: 32px;
}
.index .contents2 .box .text .list dl dt {
  padding-left: 28px;
  margin-bottom: 6px;
}
.index .contents2 .box .text .list dl dd {
  height: 60px;
}
.index .contents2 .box .text .list dl dd a {
  border-radius: 30px;
  padding: 0 32px 0 28px;
  font-size: 2rem;
  letter-spacing: 0.02em;
}
.index .contents3 .list {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 40px;
  margin-bottom: 60px;
}
.index .contents3 .list li {
  width: calc(50% - 20px);
}
.index .contents3 .list li a {
  padding: 13.55556% 0;
  border-radius: 15px;
}
.index .contents3 .list li a::after {
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  border-radius: 10px;
  top: 10px;
  left: 10px;
}
.index .contents3 .list li p {
  width: calc(100% - 100px);
  text-align: center;
}
.index .contents3 .list li p img {
  max-width: 100%;
}
.index .contents3 .text {
  width: 900px;
  padding: 40px 40px 34px;
  border-radius: 10px;
  margin: 0 auto;
}
.index .contents3 .text h2 {
  margin-bottom: 19px;
}
.index .contents3 .text p {
  text-align: center;
}
.index .contents4 {
  padding: 80px 0 60px;
}
.index .contents4 .ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 302px;
  height: 308px;
  background: url(../images/index/con04-ttl-bg.png) no-repeat center/contain;
  margin-left: -13px;
  margin-top: -21px;
}
.index .contents4 .ttl h2 {
  font-size: 3.5rem;
  margin-bottom: 20px;
}
.index .contents4 .ttl h2::after {
  margin-top: 16px;
}
.index .contents4 .ttl .btn {
  width: 144px;
  height: 38px;
}
.index .contents4 .ttl .btn a {
  border-radius: 19px;
  font-size: 1.5rem;
}
.index .contents4 .ttl .btn a::after {
  right: 14px;
}
.index .contents4 .list {
  width: 730px;
  padding-top: 16px;
}
.index .contents4 .list dl {
  padding-bottom: 12px;
  margin-bottom: 19px;
}
.index .contents4 .list dl:nth-of-type(3) {
  padding-bottom: 0;
  border-bottom: none;
}
.index .contents4 .list dl dt {
  margin-right: 19px;
}
.index .contents4 .list dl .tag span {
  min-width: 88px;
  padding: 1px 12px;
  border-radius: 15px;
  margin-right: 8px;
}
.index .contents4 .list dl .txt {
  padding-top: 5px;
}
.index .contents5 {
  padding: calc(100px + 1.04167%) 0 145px;
}
.index .contents5::before {
  padding-top: 25.10517%;
  margin-top: -3.125%;
}
.index .contents5 h2 {
  margin-bottom: 50px;
}
.index .contents5 .table {
  margin-bottom: 60px;
}
.index .contents5 .table td dl {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.index .contents5 .table td dl dt {
  margin-right: 16px;
}
.index .contents5 .table td span {
  margin-right: 16px;
}
.index .contents5 .imgs {
  margin-bottom: 60px;
}
.index .contents5 .imgs li div {
  border-radius: 15px;
}
.index .contents5 .map {
  height: 380px;
  border-radius: 15px;
  background: #fff;
}

/****エラーページ*****/
.error .contents1 {
  padding-bottom: 145px;
}

/*==================================================
プライバシーポリシー
================================================== */
.privacy .contents1 {
  padding-bottom: 145px;
}
.privacy .contents1 h2 {
  margin-bottom: 72px;
}
.privacy .contents1 .h3_1 {
  font-size: 2.4rem;
  line-height: 1.33334;
  padding-bottom: 12px;
  margin-bottom: 20px;
}
.privacy .contents1 .item-box {
  margin-bottom: 64px;
}
.privacy .contents1 .item-box:last-child {
  margin-bottom: 0;
}

/*==================================================
 サイトマップ
================================================== */
.site .contents1 {
  padding-bottom: 145px;
}
.site .contents1 h2 {
  margin-bottom: 50px;
}
.site .contents1 .site_list {
  width: 800px;
}
.site .contents1 .site_list ul {
  padding: 40px;
}
.site .contents1 .site_list ul li a {
  padding: 12px 16px;
}

/*==================================================
 ニュース
================================================== */
.news .contents1 {
  padding-bottom: 145px;
}
.news .contents1 .list-box dl {
  padding-bottom: 16px;
  margin-bottom: 20px;
}
.news .contents1 .list-box dl dt {
  margin-right: 19px;
}
.news .contents1 .list-box dl .tag span {
  min-width: 88px;
  padding: 1px 12px;
  border-radius: 15px;
  margin-right: 8px;
}
.news .contents1 .list-box dl .txt {
  padding-top: 5px;
}

/*==================================================
 news詳細
================================================== */
.news_detail .contents1 {
  padding-bottom: 145px;
}
.news_detail .contents1 .h3_1 {
  font-size: 2.4rem;
  line-height: 1.33334;
  padding-bottom: 12px;
  margin-bottom: 20px;
}
.news_detail .contents1 .post-data {
  font-size: 1.4rem;
  line-height: 1.42858;
  margin-bottom: 20px;
}
.news_detail .contents1 .item-box {
  padding: 50px;
}

/*==================================================
 お問い合わせ
================================================== */
.contact .contents1 {
  padding-bottom: 145px;
}
.contact .contents1 h2 {
  margin-bottom: 50px;
}
.contact .contents1 .table {
  margin-bottom: 40px;
}
.contact .contents1 .table th {
  width: 350px;
  text-align: left;
}
.contact .contents1 .table td {
  vertical-align: middle;
}
.contact .contents1 .table td input[type=radio] + label,
.contact .contents1 .table td input[type=checkbox] + label {
  font-size: 1.5rem;
  line-height: 2;
  padding-left: 18px;
  margin-right: 24px;
}
.contact .contents1 .table td input[type=radio] + label:after,
.contact .contents1 .table td input[type=checkbox] + label:after {
  width: 4px;
  height: 9px;
  bottom: 12px;
}
.contact .contents1 .table td .select-css-box::after {
  top: 4px;
}
.contact .contents1 .table td .select-css-box select {
  height: 26px;
  line-height: 1.2;
}

form input {
  font-size: 1.6rem;
  line-height: 1.375;
}
form textarea {
  height: 180px;
  font-size: 1.6rem;
  line-height: 1.375;
}

.contact-recaptcha-wrap {
  margin-bottom: 32px;
}

/* 必須マーク
-------------------------------------------------- */
.required-mark {
  line-height: 1.66667;
  padding: 3px 6px;
  margin-top: 2px;
}

/* 確認、バック、送信ボタン
-------------------------------------------------- */
.contact-submits input,
.contact-submits button {
  font-size: 1.6rem;
  line-height: 1.625;
  margin: 0 15px;
  width: 250px;
  height: 60px;
  border-radius: 30px;
}

.contact-submits-wrap input {
  font-size: 1.6rem;
  line-height: 1.625;
  width: 250px;
  height: 60px;
  border-radius: 30px;
}