@charset "UTF-8";

:root {
  --primary: #c8e100;
  --secondary: #4bb64b;
  --tertiary: #4bb64b;

  --bg: #eef6b2;
  --circle: 220px;
}

/*==================================
Utility
==================================*/
/* 調整用 */
body {
  background: #fbfaef url(/assets/images/common/cardboard-flat.png) repeat;
}

.c-breadCrumb {
  margin-top: 120px;
}
@media only screen and (max-width: 768px) {
  .c-breadCrumb {
    margin-top: 60px;
  }
}

/* separate forest */
.p-bgForest {
  position: relative;
}
.p-bgForest:after {
  content: "";
  position: absolute;
  bottom: -1%;
  background: url(/ouchi/assets/images/bg_forest1.svg) no-repeat bottom/contain;
  width: 100%;
  height: 100%;
}
.p-bgForest > *:last-child {
  padding-bottom: 60px;
}

@media only screen and (max-width: 768px) {
  .p-bgForest > *:last-child {
    padding-bottom: 0px;
  }
}

.p-bgForest > * {
  position: relative;
  z-index: 2;
}

/* arrow */
.arrow {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  text-decoration: none;
}
.arrow::before,
.arrow::after {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "";
  vertical-align: middle;
}

/* right-arrow */
.arrow1-1 {
  padding-right: 1em;
}
.arrow1-1::before {
  right: 0px;
  width: 0.5em;
  height: 0.5em;
  border-top: 3px solid var(--tertiary);
  border-right: 3px solid var(--tertiary);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

/* moreBtn */
.c-morebtn {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}

/*==================================
Header
==================================*/
.l-header {
  background: var(--primary);
}
.l-header_inr {
  background: var(--primary);
  justify-content: flex-end;
}
.l-header_inr:before {
  content: "";
  position: absolute;
  top: -40px;
  left: 120px;
  width: var(--circle);
  height: var(--circle);
  border-radius: 50%;
  box-shadow: 0 0px 10px #ccc;
  z-index: -1;
}

.l-header_logo {
  position: absolute;
  top: -40px;
  left: 120px;
  width: var(--circle);
  height: var(--circle);
  border-radius: 50%;
  background: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.l-header_logo:before {
  content: "\e905";
  color: #fff;
  font-size: 80px;

  position: absolute;
  top: calc(50% + 10px);
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

.l-header_logo a {
  display: block;
  width: 100%;
  padding: 30px;
  border-radius: 50%;
}
.l-header_logo a img {
  width: 100%;
  position: relative;
  z-index: 2;
}

@media only screen and (max-width: 768px) {
  .l-header_inr {
    height: var(--header_sp);
  }
  .l-header_inr:before,
  .l-header_logo {
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    width: calc(var(--circle) / 1.8);
    height: calc(var(--circle) / 1.8);
  }
  .l-header_logo:before {
    font-size: 40px;
  }
  .l-header_logo a {
    padding: 10px;
  }
}

@media only screen and (max-width: 1200px) {
  #nav-toggle span {
    background: #fff;
  }
  .l-header_utility_nav_item > a {
    color: #313131;
  }
}
@media only screen and (min-width: 1200px) {
  .l-header_utility_nav_item > a .border {
    background: #fff;
  }
}

/*==================================
Footer
==================================*/
/* 調整用 */
main {
  padding-bottom: 110px;
}
.l-footer:before {
  content: "";
  position: absolute;
  top: -110px;
  background: url(/ouchi/assets/images/bg_forest1.svg) no-repeat bottom/contain;
  width: 100%;
  height: 120px;
}

.l-footer_info {
  display: flex;
  justify-content: space-between;
}

.l-footer_logo a {
  padding-left: 66px;
  color: #313131;
  font-size: 30px;
  font-size: 3rem;
  font-weight: 500;
}
.l-footer_logo a:before {
  content: "";
  background: #fff;
  border-radius: 50%;
  width: 54px;
  height: 54px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}
.l-footer_logo a:after {
  content: "\e905";
  color: var(--primary);
  position: absolute;
  top: 50%;
  left: 12px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);

  font-size: 30px;
  font-size: 3rem;
  line-height: 1;
}

.l-footer_logo a:hover {
  opacity: 0.8;
}

.l-footer_logo_small {
  display: block;
  line-height: 1;
  font-size: 18px;
  font-size: 1.8rem;
}

.l-footer_link a {
  width: 100%;
  max-width: 410px;
  display: block;
  background: #fff;
  border-radius: 50px;
  color: #313131;
  font-weight: 500;
  padding: 20px 70px 20px 40px;
  text-decoration: none;
  letter-spacing: 0;
}
.l-footer_link a:after {
  /* chervon-icon */
  content: "\e900";
  display: inline-block;
  color: var(--tertiary);
  font-size: 30px;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  line-height: 1;
}
.l-footer_link a:hover {
  background: rgba(255, 255, 255, 0.7);
}
.l-footer_link_small {
  font-size: 90%;
}

@media only screen and (max-width: 768px) {
  .l-footer_info {
    display: block;
  }
  .l-footer_logo a {
    font-size: 2.2rem;
  }
  .l-footer_link a {
    margin: 0 auto;
  }
  .l-footer_link {
    margin-top: 20px;
  }
}

/*==================================
TOP - MainVisual
==================================*/
/* slick-slider */
.slick-dots li.slick-active button:before {
  color: var(--primary);
  font-size: 16px;
}

/* visual */
.p-mainVisual {
  position: relative;
  height: 600px;
}

.p-mainVisual:before,
.p-mainVisual:after {
  content: "";
  position: absolute;
  width: 20px;
  height: 100%;
  top: 0;
  background: url(/ouchi/assets/images/line_ouchi.svg) repeat-y;
  z-index: 3;
}
.p-mainVisual:before {
  left: 20px;
}
.p-mainVisual:after {
  right: 20px;
}

.p-mainVisual_slick img {
  height: 600px;
  object-fit: cover;
}

/*==================================
Title
==================================*/
.p-secTtl {
  font-size: 36px;
  font-size: 3.6rem;
  font-weight: 500;
}
.p-secTtl > span {
  display: block;
  font-size: 20px;
  font-size: 2rem;
  color: var(--primary);
  font-weight: 700;
}

@media only screen and (max-width: 768px) {
  .p-secTtl {
    font-size: 2.8rem;
  }
  .p-secTtl > span {
    font-size: 1.6rem;
  }
}

.c-pageTtl {
  font-size: 36px;
  font-size: 3.6rem;
  font-weight: 500;
  text-align: center;
  position: relative;
  padding-bottom: 30px;
}
.c-pageTtl:before {
  position: absolute;
  bottom: 0;
  left: calc(50% - 45px);
  width: 90px;
  height: 8px;
  content: "";
  background-size: 35px 8px;
  background-image: linear-gradient(to right, var(--primary), var(--primary) 20px, transparent 20px, transparent 35px);
  background-repeat: repeat-x;
}

@media only screen and (max-width: 768px) {
  .c-pageTtl {
    font-size: 2.8rem;
    padding-bottom: 20px;
  }

  .c-pageTtl:before {
    left: calc(50% - 30px);
    width: 60px;
    height: 4px;
    background-size: 23px 4px;
    background-image: linear-gradient(to right, var(--primary), var(--primary) 14px, transparent 14px, transparent 23px);
  }
}

/*==================================
TOP - Preface
==================================*/
.p-preface {
  display: flex;
}
.p-preface_img {
  width: 380px;
  padding: 0 60px;
}
.p-preface_info {
  width: 100%;
  max-width: 800px;
  padding: 0 20px;
  margin-left: 60px;
}
.p-prefaceTtl {
  font-size: 32px;
  font-size: 3.2rem;
  font-weight: 500;
  color: var(--tertiary);
}

@media only screen and (max-width: 768px) {
  .p-preface {
    display: block;
  }
  .p-preface_img {
    width: 80%;
    margin: 0 auto;
  }
  .p-preface_info {
    margin-left: 0;
    margin-top: 20px;
  }
  .p-prefaceTtl {
    font-size: 2.4rem;
  }
}

/*==================================
TOP - Information
==================================*/
.p-information {
  justify-content: space-between;
}
.p-information_news {
  margin-left: 40px;
  width: 100%;
  max-width: 800px;
}

@media only screen and (max-width: 1200px) {
  .p-information {
    max-width: 800px;
    margin: 0 auto;
  }
  .p-information_news {
    margin-left: 0;
    margin-top: 20px;
  }
}

/*==================================
TOP - Panel Navigation
==================================*/
.p-panelList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.p-panelList_item {
  background: #fff;
  padding: 10px;
  border-radius: 20px;
  width: calc(100% / 2 - 20px);
}
.p-panelList_item:nth-child(n + 3) {
  margin-top: 40px;
}

.p-panelList_item figure {
  position: relative;
  border-radius: 20px 20px 0 20px;
  overflow: hidden;
}
.p-panelList_item figure img {
  width: 100%;
}
.p-panelList_item figure img:hover {
  opacity: 1;
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.p-panelList_item figure figcaption {
  position: absolute;
  bottom: 0;
  right: 0;
  background: #fff;
  border-radius: 30px 0 0 0;
  width: 40vw;
  max-width: 360px;
}

.p-panetList_item_ttl {
  font-size: 28px;
  font-size: 2.8rem;
  font-weight: 500;
  color: #313131;
  position: relative;
  padding: 5px 60px 5px 90px;
}
.p-panetList_item_ttl:before {
  /* leaf-icon */
  content: "\e903";
  color: var(--tertiary);
  font-size: 40px;
  position: absolute;
  top: -2px;
  left: 30px;
}
.p-panetList_item_ttl:after {
  /* chervon-icon */
  content: "\e900";
  color: var(--tertiary);
  font-size: 30px;
  position: absolute;
  top: 4px;
  right: 20px;
}

.p-separate {
  width: 100%;
  max-width: 680px;
  margin: 0 auto;
}
@media only screen and (max-width: 768px) {
  .p-panelList_item {
    width: 100%;
  }
  .p-panelList_item:nth-child(n + 2) {
    margin-top: 20px;
  }
  .p-panelList_item figure {
    position: relative;
  }
  .p-panelList_item figure figcaption {
    width: auto;
  }
  .p-panetList_item_ttl {
    font-size: 2.2rem;
    padding: 5px 60px 5px 80px;
  }
  .p-panetList_item_ttl:before {
    font-size: 34px;
  }
  .p-panetList_item_ttl:after {
    font-size: 24px;
  }
}
/*==================================
TOP - Public
==================================*/
.p-public {
  border: 2px dashed var(--primary);
  border-radius: 10px;
  padding: 60px 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.p-public > div {
  flex: 1;
  width: 100%;
  max-width: 460px;
}

.p-publicTtl {
  font-size: 36px;
  font-size: 3.6rem;
  font-weight: 500;
  text-align: center;
}
.p-publicTtl:before {
  content: "\e904";
  font-size: 120px;
  font-size: 12rem;
  display: block;
  color: var(--primary);
  line-height: 1;
}

.p-publicList {
  margin-left: 40px;
}

.p-publicList_item a {
  display: block;
  padding: 20px;
  border-top: 2px dashed #ccc;
  position: relative;
}
.p-publicList_item:last-of-type a {
  border-bottom: 2px dashed #ccc;
}
.p-publicList_item a:before {
  content: "\e900";
  color: var(--tertiary);
  font-size: 40px;
  position: absolute;
  top: 3px;
  right: 20px;
}

.p-publicList_pdf a:before{
  content: "";
  position: absolute;
  top: 10px;
  right: 20px;
  width: 38px;
  height: 46px;
  background: url(/assets/images/common/i_pdf.svg) no-repeat center/cover;
}

@media only screen and (max-width: 768px) {
  .p-public {
    display: block;
    padding: 30px 40px;
  }
  .p-public > div {
    max-width: none;
  }
  .p-publicList {
    margin-left: 0;
  }
  .p-publicTtl {
    font-size: 2.8rem;
  }
  .p-public_type {
    margin-top: 20px;
  }
  .p-publicList_item a:before {
    font-size: 30px;
    top: 9px;
  }
  .p-publicList_pdf a:before{
  top: 12px;
  width: 30px;
  height: 38px;
  }
}

/*==================================
TOP - textBanner
==================================*/
.p-textbnrList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.p-textbnrList_item {
  width: calc(100% / 2 - 20px);
}
.p-textbnrList_item:nth-child(n + 3) {
  margin-top: 20px;
}

.p-textbnrList_item a {
  display: block;
  padding: 20px 40px 20px 90px;
  text-decoration: none;
  font-size: 24px;
  font-size: 2.4rem;
  font-weight: 500;
  color: #313131;
  background: #fff;
  border: 3px solid var(--tertiary);
  border-radius: 20px;
  position: relative;
}

.p-textbnrList_item a:before {
  /* leaf-icon */
  content: "\e903";
  color: var(--tertiary);
  font-size: 40px;
  font-size: 4rem;
  line-height: 1;
  position: absolute;
  top: 50%;
  left: 30px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}
.p-textbnrList_item a > span {
  display: block;
}

/* hover */
.p-textbnrList_item a:hover {
  background: rgba(75, 182, 75, 0.2);
}

@media only screen and (max-width: 768px) {
  .p-textbnrList_item {
    width: 100%;
  }
  .p-textbnrList_item a {
    padding: 20px 20px 20px 75px;
    font-size: 2rem;
  }
  .p-textbnrList_item:nth-child(n + 2) {
    margin-top: 10px;
  }
  .p-textbnrList_item a:before {
    left: 20px;
  }
}

/*==================================
News
==================================*/
.c-newsList_item {
  padding: 20px;
  border-top: 2px dashed #ccc;
}
.c-newsList_item:last-of-type {
  border-bottom: 2px dashed #ccc;
}
.c-newsList_item:last-of-type {
  margin-bottom: 0;
}
.c-newsList_item_head {
  display: flex;
  margin-bottom: 12px;
  align-items: center;
}
.c-newsList_item_head > :not(:first-child) {
  margin-left: 1em;
}
.c-newsList_item_date {
  font-size: 16px;
  font-size: 1.6rem;
}
.c-newsList_item_body a {
  font-weight: 500;
}
@media only screen and (max-width: 768px) {
  .c-newsList_item_date {
    font-size: 1.4rem;
  }
}

/* ICON - Category */
.c-label {
  display: inline-block;
  background: var(--primary);
  border-radius: 12px;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 500;
  padding: 0 1em;
  min-width: 100px;
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .c-label {
    font-size: 1.2rem;
  }
}

/* ICON - New */
.c-label01 {
  display: inline-block;
  background: #e71240;
  color: #fff;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 500;
  padding: 0 1em;
  margin-left: 1em;
  text-align: center;
}

/* pager */
.c-paging {
}
.c-paging_list {
  display: flex;
  justify-content: center;
  text-align: center;
}
.c-paging_list li:not(:first-of-type) {
  margin-left: 6px;
}
.c-paging_list li a {
  display: block;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--primary);
  background: #fff;
  color: #313131;
  text-decoration: none;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  font-weight: 500;
  border-radius: 5px;
}
.c-paging_list li a.is-current,
.c-paging_list li a:hover {
  background: var(--primary);
}

/* Tab button */
.c-tabList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: -10px;
  margin-left: -20px;
}
.c-tabList_item {
  width: 9em;
  text-align: center;
  margin-top: 10px;
}
.c-tabList_item {
  margin-left: 20px;
}

.c-tabList_item a {
  display: block;
  color: #313131;
  font-weight: 500;
  background: #fff;
  text-decoration: none;
  border: 2px solid var(--tertiary);
  border-radius: 10px;
  padding: 6px 1em;
}
.c-tabList_item a:hover,
.c-tabList_item a.is-active {
  background: var(--tertiary);
}

@media only screen and (max-width: 768px) {
  .c-tabList_item a {
    padding: 3px 1em;
  }
}
/*==================================
Page - about
==================================*/
.c-about_target {
  background: url(/tanpopo/assets/images/about-bg.svg) no-repeat center/contain;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 40px;
}
@media only screen and (max-width: 768px) {
  .c-about_target {
    flex-direction: column;
  }
}
.c-about_target dl {
  width: 45%;
  padding: 60px;
}
@media only screen and (max-width: 768px) {
  .c-about_target dl {
    width: 100%;
    padding: 20px;
  }
}
.c-about_target dt {
  text-align: center;
  font-size: 28px;
  font-size: 2.8rem;
  border-bottom: 3px dashed var(--secondary);
  padding-bottom: 20px;
}
@media only screen and (max-width: 768px) {
  .c-about_target dt {
    font-size: 2rem;
    padding-bottom: 16px;
  }
}
.c-about_target dd {
  margin-top: 20px;
}

/*==================================
Page - Schedule
==================================*/
.c-monthList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.c-monthList:after {
  content: "";
  display: block;
  width: calc(100% / 3 - 20px);
}
.c-monthList_item {
  width: calc(100% / 3 - 20px);
  background: var(--bg);
  border: 3px dashed var(--primary);
  border-radius: 10px;
  padding: 20px;
  display: flex;
  flex-direction: column;
}
.c-monthList_item:nth-child(n + 4) {
  margin-top: 40px;
}
.c-monthList_det {
  margin-top: 20px;
  background: #fff;
  border: 3px solid var(--primary);
  border-radius: 10px;
  padding: 20px;
  height: 100%;
  min-height: 230px;
}
.c-monthList_det li:not(:first-of-type) {
  margin-top: 10px;
}

.c-monthTtl {
  font-size: 24px;
  font-size: 2.8rem;
  font-weight: 700;
  padding-left: 40px;
  position: relative;
}
.c-monthTtl:before {
  content: "\e905";
  color: var(--secondary);
  position: absolute;
  top: 8px;
  left: 0;
  font-size: 30px;
  line-height: 1;
}
.c-monthList_det {
  margin-top: 20px;
  background: no-repeat bottom 10px right/40% 45%;
  background-color: #fff;
  border: 3px solid var(--primary);
  border-radius: 10px;
  padding: 20px;
  height: 100%;
  min-height: 230px;
}
.c-monthList_item:nth-of-type(1) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month01.svg);
}
.c-monthList_item:nth-of-type(2) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month02.svg);
}
.c-monthList_item:nth-of-type(3) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month03.svg);
}
.c-monthList_item:nth-of-type(4) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month04.svg);
}
.c-monthList_item:nth-of-type(5) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month05.svg);
}
.c-monthList_item:nth-of-type(6) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month06.svg);
}
.c-monthList_item:nth-of-type(7) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month07.svg);
}
.c-monthList_item:nth-of-type(8) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month08.svg);
}
.c-monthList_item:nth-of-type(9) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month09.svg);
}
.c-monthList_item:nth-of-type(10) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month10.svg);
}
.c-monthList_item:nth-of-type(11) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month11.svg);
}
.c-monthList_item:nth-of-type(12) .c-monthList_det {
  background-image: url(/tanpopo/assets/images/month12.svg);
}

@media only screen and (max-width: 768px) {
  .c-monthList_item {
    width: 100%;
  }
  .c-monthList_item:nth-child(n + 2) {
    margin-top: 20px;
  }
}

/*==================================
Page - Flow
==================================*/
.c-timeline {
  display: flex;
}

.c-timeline_side {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 20px 0;

  width: 120px;
}

.c-timeline_list {
  width: 100%;
  margin-left: 60px;
  padding-top: 20px;
}
.c-timeline_list > li {
  position: relative;
  margin-left: 1rem;
  display: flex;
  align-items: center;
  padding-left: 30px;
}
.c-timeline_list > li:before,
.c-timeline_list > li:after {
  content: "";
  display: block;
  position: absolute;
}
.c-timeline_list > li:before {
  top: 8px;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--tertiary);
}
.c-timeline_list > li:after {
  top: 8px;
  left: -9px;
  width: 18px;
  height: 18px;
  background: #fff;
  border: 2px solid var(--tertiary);
  border-radius: 100%;
}
.c-timeline_list > li:not(:first-child) {
  padding-top: 40px;
}
.c-timeline_list > li:not(:first-child):before {
  top: 0;
}
.c-timeline_list > li:not(:first-child):after {
  top: 50px;
}
.c-timeline_list > li:last-child:before {
  height: 50px;
}
.c-timeline_list header {
  line-height: 2;
  font-weight: 500;
  min-width: 120px;
  white-space: nowrap;
}
.c-timeline_list ul {
  margin-left: 40px;
}
@media screen and (max-width: 768px) {
  .c-timeline {
    flex-wrap: wrap;
  }
  .c-timeline_side {
    width: 100%;
    flex-direction: row;
    justify-content: space-between;
    padding: 0 20px;
  }
  .c-timeline_side > img {
    width: calc(100% / 5 - 10px);
  }
  .c-timeline_list {
    margin-left: 0;
  }
  .c-timeline_list > li {
    align-items: flex-start;
  }
  .c-timeline_list > li:before,
  .c-timeline_list > li:after {
    top: 6px;
  }
  .c-timeline_list > li:not(:first-child):after {
    top: 46px;
  }
  .c-timeline_list ul {
    margin-left: 20px;
  }
  .c-timeline_list header {
    min-width: 80px;
  }
}
