@charset "UTF-8";
/* ========================================================
	reset.css
	Format,Font Reset
======================================================== */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP&family=Zen+Kaku+Gothic+New:wght@500&family=Zen+Maru+Gothic:wght@500;700&display=swap");
*,
*::before,
*::after {
  box-sizing: border-box; }

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd,
figure {
  margin: 0;
  padding: 0; }

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none; }

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed; }

a:not([class]) {
  text-decoration-skip-ink: auto; }

img,
picture {
  max-width: 100%;
  border: 0; }

input,
button,
textarea,
select {
  margin: 0;
  padding: 0;
  font: inherit; }

address,
caption,
cite,
code,
dfn,
em,
th,
var {
  font-style: normal;
  font-weight: normal; }

sup {
  vertical-align: text-top; }

sub {
  vertical-align: text-bottom; }

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important; } }
html {
  font-family: "Zen Maru Gothic", "Zen Kaku Gothic New", 'Noto Sans JP', '游ゴシック', 'Yu Gothic', 'Yu Gothic UI', 'Meiryo UI', 'ヒラギノ角ゴシック', 'Hiragino Sans', 'Arial', 'Helvetica', sans-serif;
  font-weight: 500;
  font-size: 62.5%;
  overflow-x: hidden; }

body {
  font-family: "Zen Maru Gothic", "Zen Kaku Gothic New", 'Noto Sans JP', '游ゴシック', 'Yu Gothic', 'Yu Gothic UI', 'Meiryo UI', 'ヒラギノ角ゴシック', 'Hiragino Sans', 'Arial', 'Helvetica', sans-serif;
  margin: 0;
  color: #005920;
  font-size: 2.0rem;
  line-height: 1.6;
  width: 100%;
  overflow-x: hidden;
  position: relative;
  background: url("../img/common/bg_pt.jpg"); }
  @media (max-width: 768px) {
    body {
      font-size: 1.6rem; } }

a, a:link, a:visited {
  color: #005920;
  text-decoration: none;
  transition: 0.5s; }
  a:hover, a:link:hover, a:visited:hover {
    opacity: .7; }

img {
  max-width: 100%;
  width: auto;
  height: auto;
  vertical-align: bottom;
  transition: 0.5s; }

.container {
  margin: auto;
  width: 90%;
  max-width: 1100px;
  height: auto;
  box-sizing: border-box; }
  .container.inner {
    max-width: 926px; }

article {
  position: relative; }

.commonTtl {
  font-size: clamp(26.6px, 3.9585vw, 38px);
  font-weight: 700;
  text-align: center;
  position: relative;
  max-width: 926px;
  width: 100%;
  margin: 0 auto 25px;
  padding: 12px 0; }
  @media (max-width: 480px) {
    .commonTtl {
      font-size: 2.4rem; } }
  .commonTtl::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 3px;
    background: url("../img/common/dash_line.svg") no-repeat center center/contain; }

/*============================================================================
	header
=============================================================================*/
header {
  width: 100%;
  height: auto;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 998;
  padding: min(40px,4.167vw) 0; }
  header h1 {
    width: 12%;
    text-align: center;
    padding: 0 10px; }
    header h1 a {
      display: inline-block;
      max-width: 92px; }
  @media (max-width: 480px) {
    header {
      padding: 15px 0; }
      header h1 {
        width: 20%; } }

#naviWrap {
  position: relative;
  z-index: 9997; }
  #naviWrap .headerNav {
    z-index: 9998;
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    text-align: right;
    margin: min(32px,3.333vw) 35px 0;
    justify-content: flex-end;
    align-items: center; }
    #naviWrap .headerNav > span {
      margin-left: 23px;
      width: 35px; }
  @media (max-width: 480px) {
    #naviWrap .headerNav {
      margin: 20px 20px 0; } }

/*================================================================
	humburger
================================================================*/
.hum {
  height: 26px;
  cursor: pointer;
  position: absolute;
  top: 40px;
  right: 3%;
  z-index: 9999;
  display: block;
  width: 35px;
  height: 35px; }
  @media (max-width: 480px) {
    .hum {
      top: 15px;
      width: 30px;
      height: 30px; } }
  .hum .burger {
    position: absolute;
    transition: 0.5s;
    width: 35px;
    height: 2px;
    top: 0;
    right: 0;
    background-color: #005920; }
    @media (max-width: 480px) {
      .hum .burger {
        width: 30px; } }
    .hum .burger:nth-child(2) {
      top: 12px; }
      @media (max-width: 480px) {
        .hum .burger:nth-child(2) {
          top: 10px; } }
    .hum .burger:nth-child(3) {
      top: 24px; }
      @media (max-width: 480px) {
        .hum .burger:nth-child(3) {
          top: 20px; } }

.hum.tapped .burger:nth-child(1) {
  top: 12px;
  transform: rotate(135deg); }
  @media (max-width: 480px) {
    .hum.tapped .burger:nth-child(1) {
      width: 30px; } }
.hum.tapped .burger:nth-child(2) {
  display: none; }
.hum.tapped .burger:nth-child(3) {
  top: 12px;
  transform: rotate(-135deg); }
  @media (max-width: 480px) {
    .hum.tapped .burger:nth-child(3) {
      width: 30px; } }

/*================================================================
	menu
================================================================*/
.nav_wrap {
  position: fixed;
  background-color: #FDDA5E;
  right: -100%;
  top: 0;
  z-index: 9997;
  max-width: 840px;
  width: 45%;
  height: 100vh;
  padding: 80px 50px;
  margin-right: 0;
  box-sizing: border-box;
  transition: 0.5s;
  clear: both;
  overflow-y: auto; }
  @media (max-width: 480px) {
    .nav_wrap {
      width: 80%;
      padding: 35px 8% 80px; } }
  .nav_wrap.tapped {
    right: 0; }
  .nav_wrap ul {
    margin-top: 2em; }
    .nav_wrap ul li + li {
      margin-top: 1.5em; }
    .nav_wrap ul li a {
      background: #005920;
      color: #fff;
      border-radius: 50px;
      padding: 0.5rem 1em; }

.nav-bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  z-index: 100;
  background: #9F9B81;
  opacity: 0;
  visibility: hidden;
  transition: all 0.6s;
  cursor: pointer;
  mix-blend-mode: multiply; }
  .nav-bg.tapped {
    opacity: 0.6;
    visibility: visible; }

/*============================================================================
	footer
=============================================================================*/
footer {
  position: relative; }
  footer .ftLogo {
    text-align: center;
    padding: 55px 0; }
    @media (max-width: 480px) {
      footer .ftLogo a img {
        max-width: 120px; } }
  footer .ftAddress {
    background: #fff;
    text-align: center;
    padding: 55px 0;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    letter-spacing: 0.1rem; }
    footer .ftAddress p:first-of-type {
      font-size: 3.0rem;
      margin-bottom: 25px;
      line-height: 1.4; }
    @media (max-width: 480px) {
      footer .ftAddress {
        padding: 35px 0;
        font-size: 1.4rem; }
        footer .ftAddress p:first-of-type {
          font-size: 2.0rem; } }
  footer .ftCopy {
    padding: 30px 0; }
    footer .ftCopy figure {
      margin-left: min(55px,5.7285vw); }
    @media (max-width: 480px) {
      footer .ftCopy {
        text-align: center; }
        footer .ftCopy figure {
          margin-left: 0;
          margin-top: 20px; } }

/*============================================================================
	back_to_top
=============================================================================*/
#back_to_top .backTop.sc {
  opacity: 1; }

#back_to_top {
  margin: 0 auto;
  width: 50px;
  height: 50px;
  position: fixed;
  bottom: 50px;
  right: 4.86vw;
  z-index: 200; }
  @media (max-width: 768px) {
    #back_to_top {
      bottom: 25px;
      right: 25px; } }
  @media (max-width: 480px) {
    #back_to_top {
      width: 45px;
      height: 45px;
      bottom: 20px;
      right: 20px; } }
  #back_to_top .backTop {
    opacity: 0;
    transition: all .3s; }
  #back_to_top button {
    display: block;
    background: #005920;
    width: 50px;
    height: 50px;
    border-radius: 15px;
    position: relative;
    border: none;
    cursor: pointer;
    transition: 0.3s; }
    #back_to_top button::before {
      content: '';
      position: absolute;
      top: 45%;
      left: 55%;
      transform: rotate(-45deg) translate(-50%, -50%);
      display: block;
      width: 12px;
      height: 12px;
      border-top: solid 1px #fff;
      border-right: solid 1px #fff;
      transition: all .3s; }
    #back_to_top button:hover span::before {
      top: -13px; }

/*============================================================================
	regulation
=============================================================================*/
/*============================================================================
	調整用
=============================================================================*/
.fl {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex; }

.fl-tab {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex; }
  @media (max-width: 768px) {
    .fl-tab {
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      flex-direction: column; } }

.fl-smp {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex; }
  @media (max-width: 480px) {
    .fl-smp {
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      flex-direction: column; } }

.fl-jst {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between; }

.fl-cen {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center; }

.fl-end {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end; }

.fl-wrap {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }

.fl-col {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column; }

.fl-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse; }

.mt0 {
  margin-top: min(0vw,0px); }

.mb0 {
  margin-bottom: min(0vw,0px); }

.pt0 {
  padding-top: min(0vw,0px); }

.pb0 {
  padding-bottom: min(0vw,0px); }

.mt40 {
  margin-top: min(3vw,40px); }

.mb40 {
  margin-bottom: min(3vw,40px); }

.pt40 {
  padding-top: min(3vw,40px); }

.pb40 {
  padding-bottom: min(3vw,40px); }

.mt80 {
  margin-top: min(6vw,80px); }

.mb80 {
  margin-bottom: min(6vw,80px); }

.pt80 {
  padding-top: min(6vw,80px); }

.pb80 {
  padding-bottom: min(6vw,80px); }

.mt120 {
  margin-top: min(9vw,120px); }

.mb120 {
  margin-bottom: min(9vw,120px); }

.pt120 {
  padding-top: min(9vw,120px); }

.pb120 {
  padding-bottom: min(9vw,120px); }

.mt160 {
  margin-top: min(12vw,160px); }

.mb160 {
  margin-bottom: min(12vw,160px); }

.pt160 {
  padding-top: min(12vw,160px); }

.pb160 {
  padding-bottom: min(12vw,160px); }

.mt200 {
  margin-top: min(15vw,200px); }

.mb200 {
  margin-bottom: min(15vw,200px); }

.pt200 {
  padding-top: min(15vw,200px); }

.pb200 {
  padding-bottom: min(15vw,200px); }

.mt240 {
  margin-top: min(18vw,240px); }

.mb240 {
  margin-bottom: min(18vw,240px); }

.pt240 {
  padding-top: min(18vw,240px); }

.pb240 {
  padding-bottom: min(18vw,240px); }

.mt280 {
  margin-top: min(21vw,280px); }

.mb280 {
  margin-bottom: min(21vw,280px); }

.pt280 {
  padding-top: min(21vw,280px); }

.pb280 {
  padding-bottom: min(21vw,280px); }

.mt320 {
  margin-top: min(24vw,320px); }

.mb320 {
  margin-bottom: min(24vw,320px); }

.pt320 {
  padding-top: min(24vw,320px); }

.pb320 {
  padding-bottom: min(24vw,320px); }

.mt360 {
  margin-top: min(27vw,360px); }

.mb360 {
  margin-bottom: min(27vw,360px); }

.pt360 {
  padding-top: min(27vw,360px); }

.pb360 {
  padding-bottom: min(27vw,360px); }

.mt400 {
  margin-top: min(30vw,400px); }

.mb400 {
  margin-bottom: min(30vw,400px); }

.pt400 {
  padding-top: min(30vw,400px); }

.pb400 {
  padding-bottom: min(30vw,400px); }

br {
  display: inline; }
  @media (min-width: calc(1024px + 1px)) {
    br.showPC {
      display: none !important; } }
  @media (min-width: calc(768px + 1px)) {
    br.showTab {
      display: none !important; } }
  @media (min-width: calc(480px + 1px)) {
    br.showSP {
      display: none !important; } }
  @media (max-width: 1024px) {
    br.hdnPC {
      display: none; }
    br.showPC {
      display: inherit; } }
  @media (max-width: 768px) {
    br.hdnTab {
      display: none; }
    br.showTab {
      display: inherit; } }
  @media (max-width: 480px) {
    br.hdnSP {
      display: none; }
    br.showSP {
      display: inherit; } }

span {
  display: inline-block; }
  @media (min-width: calc(1024px + 1px)) {
    span.showPC {
      display: none !important; } }
  @media (min-width: calc(768px + 1px)) {
    span.showTab {
      display: none !important; } }
  @media (min-width: calc(480px + 1px)) {
    span.showSP {
      display: none !important; } }
  @media (max-width: 1024px) {
    span.hdnPC {
      display: none !important; }
    span.showPC {
      display: inherit; } }
  @media (max-width: 768px) {
    span.hdnTab {
      display: none !important; }
    span.showTab {
      display: inherit; } }
  @media (max-width: 480px) {
    span.hdnSP {
      display: none !important; }
    span.showSP {
      display: inherit; } }

p, div, figure, ul {
  display: block; }
  @media (min-width: calc(1024px + 1px)) {
    p.showPC, div.showPC, figure.showPC, ul.showPC {
      display: none !important; } }
  @media (min-width: calc(768px + 1px)) {
    p.showTab, div.showTab, figure.showTab, ul.showTab {
      display: none !important; } }
  @media (min-width: calc(480px + 1px)) {
    p.showSP, div.showSP, figure.showSP, ul.showSP {
      display: none !important; } }
  @media (max-width: 1024px) {
    p.hdnPC, div.hdnPC, figure.hdnPC, ul.hdnPC {
      display: none !important; }
    p.showPC, div.showPC, figure.showPC, ul.showPC {
      display: initial; } }
  @media (max-width: 768px) {
    p.hdnTab, div.hdnTab, figure.hdnTab, ul.hdnTab {
      display: none !important; }
    p.showTab, div.showTab, figure.showTab, ul.showTab {
      display: initial; } }
  @media (max-width: 480px) {
    p.hdnSP, div.hdnSP, figure.hdnSP, ul.hdnSP {
      display: none !important; }
    p.showSP, div.showSP, figure.showSP, ul.showSP {
      display: initial; } }

li {
  display: list-item; }
  @media (min-width: calc(1024px + 1px)) {
    li.showPC {
      display: none !important; } }
  @media (min-width: calc(768px + 1px)) {
    li.showTab {
      display: none !important; } }
  @media (min-width: calc(480px + 1px)) {
    li.showSP {
      display: none !important; } }
  @media (max-width: 1024px) {
    li.hdnPC {
      display: none !important; }
    li.showPC {
      display: initial; } }
  @media (max-width: 768px) {
    li.hdnTab {
      display: none !important; }
    li.showTab {
      display: initial; } }
  @media (max-width: 480px) {
    li.hdnSP {
      display: none !important; }
    li.showSP {
      display: initial; } }

.ta_cnt {
  text-align: center; }

.ta_right {
  text-align: right; }

.clearfix:after {
  content: "";
  display: block;
  clear: both; }

/*============================================================================
	animation
=============================================================================*/
.fadein, .fadein02, .fadein03 {
  opacity: 0;
  transition: all 2s; }

.fadein.show, .fadein02.show, .fadein03.show {
  opacity: 1; }

/* scroll */
.fade {
  opacity: 0;
  transition: all 0.8s; }
  .fade.active {
    opacity: 1; }

.upfade, .upfade1, .upfade2 {
  transform: translate(0, 50px);
  opacity: 0;
  transition: all 0.8s; }
  .upfade.scrollin, .upfade1.scrollin, .upfade2.scrollin {
    transform: translate(0, 0);
    opacity: 1; }

.upfade1 {
  transition: all 0.8s 0.3s; }

.upfade2 {
  transition: all 0.8s 0.6s; }

.downfade {
  transform: translate(0, -50px);
  opacity: 0;
  transition: all 0.8s; }
  .downfade.scrollin {
    transform: translate(0, 0);
    opacity: 1; }

.fade {
  opacity: 0;
  transition: all 1.2s; }

.fade.active {
  opacity: 1; }

.sclinWrap {
  overflow: hidden !important; }

.sclin_right {
  transform: translate(50px, 0);
  opacity: 0;
  transition: all 0.8s; }
  .sclin_right.scrollin {
    transform: translate(0, 0);
    opacity: 1; }

.sclin_left {
  transform: translate(-50px, 0);
  opacity: 0;
  transition: all 0.8s; }
  .sclin_left.scrollin {
    transform: translate(0, 0);
    opacity: 1; }

.listfade li {
  transform: translate(0, 50px);
  opacity: 0.1;
  transition: all 1.0s; }
  .listfade li.scrollin {
    transform: translate(0, 0);
    opacity: 1; }
