/* ============================
Google Fonts
---------------------------- */
@import url('//fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700;800;900&display=swap');
@import url('//fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;600;700;800;900&display=swap');
@import url('//fonts.googleapis.com/css2?family=Darumadrop+One&display=swap');

/* ============================
root
---------------------------- */
:root {
  --Roboto: 'Roboto', sans-serif;
  --ZenMaruGothic: 'Zen Maru Gothic', sans-serif;
  --DarumadropOne: 'Darumadrop One', cursive;
  --Regular: 400;
  --Medium: 500;
  --SemiBold: 600;
  --Bold: 700;
  --ExtraBold: 800;
  --Black: 900;
  --radius: 3.2rem;
  --body-bgcol: #469559;
  --main-bgcol: #FFF3DE;
}

/* ============================
*
---------------------------- */
* {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
}

/* ============================
dn
---------------------------- */
.dn {
  display: none;
}

/* ============================
pc sp
---------------------------- */
.pc {
  display: block;
}
.pc_i {
  display: inline;
}
.pc_ib {
  display: inline-block;
}
.sp {
  display: none;
}
.sp_i {
  display: none;
}
.sp_ib {
  display: none;
}
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .pc_i {
    display: none;
  }
  .pc_ib {
    display: none;
  }
  .sp {
    display: block;
  }
  .sp_i {
    display: inline;
  }
  .sp_ib {
    display: inline-block;
  }
}

/* ============================
html body
---------------------------- */
html {
  font-size: 10px;
  scroll-padding-top: 12rem;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  padding: 0;
  position: relative;
  font-size: 1.6rem;
  font-family: var(--ZenMaruGothic);
  font-weight: var(--Regular);
  line-height: 1.6;
  color: #333333;
  background-color: var(--body-bgcol);
}

/* ============================
a
---------------------------- */
a {
  text-decoration: none;
}

/* ============================
cover
---------------------------- */
#cover {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  overflow: hidden;
  z-index: 10100;
  display: none;
  transition: all 0.3s ease;
}
#cover.active {
  display: block;
}

/* ============================
loading-screen
---------------------------- */
#loading-screen {
	position: fixed;
	z-index: 10000;
	display: flex;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	padding: 0;
	margin: 0;
	pointer-events: none;
}
#loading-screen > .obi {
	width: 20%;
	-webkit-transform: scaleY(0);
	transform: scaleY(0);
}
#loading-screen > .obi:nth-child(n+6) {
	display: none;
}
#loading-screen > .obi.col_g {
  background-color: #479559;
}
#loading-screen > .obi.col_y {
  background-color: #EEB141;
}
#loading-screen > .obi.col_b {
  background-color: #5AA2B7;
}

/* ============================
margin-top
---------------------------- */
.mt0 {
  margin-top: 0;
}
.mt8 {
  margin-top: 0.8rem;
}
.mt16 {
  margin-top: 1.6rem;
}
.mt24 {
  margin-top: 2.4rem;
}
.mt32 {
  margin-top: 3.2rem;
}
.mt40 {
  margin-top: 4.0rem;
}
.mt48 {
  margin-top: 4.8rem;
}
.mt56 {
  margin-top: 5.6rem;
}
.mt64 {
  margin-top: 6.4rem;
}
.mt72 {
  margin-top: 7.2rem;
}
.mt80 {
  margin-top: 8.0rem;
}

/* ============================
margin-bottom
---------------------------- */
.mb0 {
  margin-bottom: 0;
}
.mb8 {
  margin-bottom: 0.8rem;
}
.mb16 {
  margin-bottom: 1.6rem;
}
.mb24 {
  margin-bottom: 2.4rem;
}
.mb32 {
  margin-bottom: 3.2rem;
}
.mb40 {
  margin-bottom: 4.0rem;
}
.mb48 {
  margin-bottom: 4.8rem;
}
.mb56 {
  margin-bottom: 5.6rem;
}
.mb64 {
  margin-bottom: 6.4rem;
}
.mb72 {
  margin-bottom: 7.2rem;
}
.mb80 {
  margin-bottom: 8.0rem;
}

/* ============================
text-align
---------------------------- */
.tl {
  text-align: left;
}
.tc {
  text-align: center;
}
.tr {
  text-align: right;
}

/* ============================
flex
---------------------------- */
.flex,
.flex-i {
  list-style-type: none;
  margin: 0;
  padding: 0;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.flex {
  display: -webkit-flex;
  display: flex;
}
.flex-i {
  display: -webkit-inline-flex;
  display: inline-flex;
}
.jc-st {
  justify-content: start;
}
.jc-en {
  justify-content: end;
}
.jc-c {
  justify-content: center;
}
.jc-fs {
  justify-content: flex-start;
}
.jc-fe {
  justify-content: flex-end;
}
.jc-l {
  justify-content: left;
}
.jc-r {
  justify-content: right;
}
.jc-sb {
  justify-content: space-between;
}
.jc-sa {
  justify-content: space-around;
}
.jc-se {
  justify-content: space-evenly;
}
.jc-sc {
  justify-content: stretch;
}
.fw-nw {
  flex-wrap: nowrap;
}
.fw-wr {
  flex-wrap: wrap-reverse;
}
.fd-rr {
  flex-direction: row-reverse;
}
.fd-cm {
  flex-direction: column;
}
.ff-cm {
  flex-flow: column;
}
.ai-s {
  align-items: start;
}
.ai-c {
  align-items: center;
}
.ai-e {
  align-items: end;
}
.ai-fe {
  align-items: flex-end;
}
.ai-b {
  align-items: baseline;
}
.ai-st {
  align-items: stretch;
}
.wfit {
  width: fit-content;
}
.hfit {
  height: fit-content;
}

/* ============================
main
---------------------------- */
main {
  background-image: url(../img/bg_main.webp);
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: contain;
  background-color: var(--main-bgcol);
}

/* ============================
section
---------------------------- */
section {
  margin: 0;
  padding: 6.5rem 0;
}
section.outer {
  width: 100%;
  overflow: visible;
}

/* ============================
article
---------------------------- */
article {}
article.inner {
  width: 100%;
  max-width: 144rem;
  margin: 0 auto;
  overflow: visible;
}

/* ============================
header
---------------------------- */
header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  padding: 1.6rem;
  z-index: 10000;
}
header .inner {
  width: 100%;
  max-width: 140rem;
  margin: 0 auto;
  overflow: hidden;
  width: 100%;
  height: 7.5rem;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 0 4.8rem;
  border-radius: 6.4em;
}
header nav ul.main-menu {
  gap: 3.0rem;
}
header nav ul.main-menu li {
}
header nav ul.main-menu li a {
  color: #333333;
  font-weight: var(--Medium);
}
header nav span.menu-btn {
  display: none;
  position: relative;
  width: 3.0rem;
  height: 2.0rem;
  cursor: pointer;
}
header nav span.menu-btn span:nth-child(1),
header nav span.menu-btn span:nth-child(2),
header nav span.menu-btn span:nth-child(3) {
  display: block;
  width: 100%;
  height: 0.2rem;
  background-color: #479559;
  position: absolute;
  left: 0;
  transition: all 0.3s ease;
}
header nav span.menu-btn span:nth-child(1) {
  top: 0;
}
header nav span.menu-btn span:nth-child(2) {
  top: 0.9rem;
}
header nav span.menu-btn span:nth-child(3) {
  top: 1.8rem;
}

header nav.active span.menu-btn span:nth-child(1) {
  transform: rotate(45deg);
  top: 0.9rem;
}
header nav.active span.menu-btn span:nth-child(2) {
  opacity: 0;
}
header nav.active span.menu-btn span:nth-child(3) {
  transform: rotate(-45deg);
  top: 0.9rem;
}

@media screen and (max-width: 1080px) {
  header nav ul.main-menu {
    display: flex;
    position: fixed;
    width: calc(100% - 3.2rem);
    height: auto;
    background-color: rgba(255, 255, 255, 0.9);
    top: -50.0rem;
    left: 1.6rem;
    padding: 2.4rem 0;
    border-radius: var(--radius);
    flex-direction: column;
    gap: 1.6rem;
    transition: all 0.3s ease;
  }
  header nav.active ul.main-menu {
    top: 11.0rem;
  }
  header nav span.menu-btn {
    display: block;
  }
  header nav span.menu-btn.active span:nth-child(1) {
    transform: rotate(45deg);
    top: 1.2rem;
  }
  header nav span.menu-btn.active span:nth-child(2) {
    opacity: 0;
  }
  header nav span.menu-btn.active span:nth-child(3) {
    transform: rotate(-45deg);
    top: 1.2rem;
  }
  header nav ul.main-menu.active {
    display: flex;
    position: absolute;
    top: 7.5rem;
    right: 0;
    width: 100%;
    height: auto;
    background-color: rgba(255, 255, 255, 0.9);
    padding: 1.6rem 0;
    border-radius: 0 0 var(--radius) var(--radius);
    flex-direction: column;
    gap: 1.6rem;
  }
  header nav ul.main-menu.active li {
    width: 100%;
    text-align: center;
  }
}

@media screen and (max-width: 767px) {
  header .inner {
    padding: 0 2.0rem;
  }
}

/* ============================
footer
---------------------------- */
footer {
  width: 100%;
  height: auto;
  background: #469559;
  color: #FFFFFF;
  text-align: center;
  padding: 1.6rem;
}

/* ============================
text marker
---------------------------- */
span.col_b.marker {
  background: linear-gradient(transparent 50%, rgba(90, 162, 183, 0.5) 50%);
}
span.col_y.marker {
  background: linear-gradient(transparent 50%, rgba(238, 177, 65, 0.5) 50%);
}
span.col_g.marker {
  background: linear-gradient(transparent 50%, rgba(71, 149, 89, 0.5) 50%);
}


/* ============================
button
---------------------------- */
a.btnA {
  display: inline-block;
  position: relative;
  width: 100%;
  max-width: 36rem;
  height: 7.0rem;
  border-radius: 3.5rem;
  background-color: #479559;
}
a.btnA > .flex {
  position: relative;
  width: 100%;
  height: 100%;
  color: #FFFFFF;
  text-align: center;
  font-size: 1.8rem;
  font-weight: var(--Bold);
  letter-spacing: 0.108rem;
}
a.btnA > .flex::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #FFFFFF;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%3E%3Ccircle%20cx='15'%20cy='15'%20r='15'%20fill='white'/%3E%3Cpath%20d='M7%2014C6.44772%2014%206%2014.4477%206%2015C6%2015.5523%206.44772%2016%207%2016V14ZM22.7071%2015.7071C23.0976%2015.3166%2023.0976%2014.6834%2022.7071%2014.2929L16.3431%207.92893C15.9526%207.53841%2015.3195%207.53841%2014.9289%207.92893C14.5384%208.31946%2014.5384%208.95262%2014.9289%209.34315L20.5858%2015L14.9289%2020.6569C14.5384%2021.0474%2014.5384%2021.6805%2014.9289%2022.0711C15.3195%2022.4616%2015.9526%2022.4616%2016.3431%2022.0711L22.7071%2015.7071ZM7%2015V16H22V15V14H7V15Z'%20fill='%23479559'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: all 0.3s ease;
  transform: translate(-50%, -50%);
}
a.btnA:hover > .flex::after {
  transform: translate(-50%, -50%) scale(1.2);
}


/* ============================
scroll hint
---------------------------- */
.scroll-hint-icon{
  z-index: 1000;
}


/* ============================
pankuzu
---------------------------- */
#pankuzu {
  margin: 0 auto;
  width: 100%;
  max-width: 1280px;
  font-size: 1.4rem;
  font-weight: var(--Medium);
  line-height: 100%;
}
body.single #pankuzu {
  padding: 12.5rem 0 11.4rem 0;
}
body.home #pankuzu {
  padding: 12.5rem 0 0 0;
}
#pankuzu {
  margin: 0 auto;
  padding: 12.5rem 0 6rem 0;
  width: 100%;
  max-width: 1280px;
  font-size: 1.4rem;
  font-weight: var(--Medium);
  line-height: 100%;
}
#pankuzu .nav {
  gap: 1.0rem;
}
@media screen and (max-width: 1320px) {
  #pankuzu .nav {
    margin-right: 1.6rem;
  }
}
#pankuzu .nav li {
  gap: 1.0rem;
}
#pankuzu .nav li a {
  color: #333333;
}
#pankuzu .nav li::after {
  display: block;
  width: 0.4rem;
  height: 1.4rem;
  content: "";
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='6'%20height='10'%20viewBox='0%200%206%2010'%20fill='none'%3E%3Cpath%20d='M1%201L5%205L1%209'%20stroke='%23333333'%20stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center center;
}
#pankuzu .nav li:last-child:after {
  display: none;
}

/* ============================
link-pending
---------------------------- */
.link-pending {
  pointer-events: none;
  opacity: 0.5;
}

