/*
Theme Name: sprout-theme
Author: BLUE SEVEN
*/

@charset "utf-8";
/* CSS Document */

/*--------------------------------------------------------------
/* reset / base
---------------------------------------------------------------*/
*,
*::before,
*::after {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
}
:root {
  --fs-page-title: clamp( 2rem, calc( 1.851546391752577rem + 0.4123711340206186vw ), 2.4rem );
  --fs-block-title: clamp( 1.8rem, calc( 1.5428571428571429rem + 0.7142857142857143vw ), 2.4rem );
  --fs-large: clamp( 1.6rem, calc( 1.4515463917525773rem + 0.4123711340206186vw ), 2rem );
  --fs-normal: clamp(1.4rem,calc(1.275rem + 0.3vw),1.6rem);
  --fc-base : #494948;
  --key-color: #69B610;
  --bg-green: #F0F9E6;
  --accent-green: #B2D91C;
  --orange: #E9942B;
  --yellow: #FFFBD7;
  --bage: #F9F8F2;
  --grey: #F8F8F8;
}
html{
  font-size: 62.5%;
}
body {
  color: var(--fc-base);
  font-family: 'Noto Sans JP', Meiryo, "メイリオ", YuGothic, sans-serif;
  font-size: 1.6rem;
  line-height: 1.875;
  font-weight: 400;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin:0;
}
h2 {
  font-size: min(calc(1.325rem + 0.9vw),2rem);
}
h3 {
  font-size: min(calc(1.3rem + 0.6vw),1.75rem);
}
h4 {
  font-size: min(calc(1.275rem + 0.3vw),1.5rem);
}
h5{
  font-size: 1.25rem;
}
h6{
  font-size: 1rem;
}
p {
  font-size: var(--fs-normal);
}
ol,
ul,
li,
dl,
dt,
dd,
th,
td,
figcaption{
  font-size: var(--fs-normal);
  margin-top: 0;
  margin-left: 0;
  padding: 0;
}
dt,
th{
  font-weight:700;
}
a{
  color: #008CFF;
  font-size: var(--fs-normal);
  text-decoration: none;
  transition-duration: 0.4s;
}
img {
  max-width:100%;
  height:auto;
}
table {
  border-collapse: collapse;
}
figure{
  margin:0;
}

/* Safari用のハックは、Chromeに適用されないようにする */
body {
  height: 100vh;
}
@supports (-webkit-touch-callout: none) {
  body {
    /* Safari用のハック */
    height: -webkit-fill-available;
  }
}

/*--------------------------------------------------------------
# base-layout
--------------------------------------------------------------*/
.container{
  width: min(100%,130rem);
  padding-right: var(--bs-gutter-x, 1.5rem);
  padding-left: var(--bs-gutter-x, 1.5rem);
  margin-right: auto;
  margin-left: auto;
}
/*--------------------------------------------------------------
# header
--------------------------------------------------------------*/
header {
  width: 100%;
  background: var(--bg-green);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
}
header .inner {
  display: flex;
  justify-content: space-between;
  height: 6rem;
  padding: 0 1.5rem;
}
.gnav {
  display: none;
}

.hamburger {
  align-self: center;

  & summary {
    display: block;
    list-style: none;
    height: 4rem;
    width: 4rem;
    background: linear-gradient(to right,var(--fc-base),var(--fc-base) 100%) no-repeat center / 3rem 0.3rem,#FFF;
    border-radius: 0.5rem;
    position: relative;
    top: 50%;
    filter: drop-shadow(0 0 0.1rem var(--key-color));
    -webkit-transition: 0.4s all ease;
    transition: 0.4s all ease;
    cursor: pointer;

    &::before,
    &::after {
      content: "";
      display: block;
      height: 0.3rem;
      width: 3rem;
      background-color: var(--fc-base);
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      z-index: 3;
      -webkit-transition: 0.4s all ease;
      transition: 0.4s all ease;
    }
    &::before {
      top: 1rem;
      transform-origin: bottom left;
    }
    &::after {
      bottom: 1rem;
      transform-origin: top left;
    }
    & span {
      display: none;
    }
  }
  &[open] summary {
    background: linear-gradient(to right,transparent,transparent 100%) no-repeat center / 3rem 0.3rem,#FFF;
    &::before,
    &::after {
      width: 3rem;
    }
    &::before {
      top: 1.8rem;
      rotate: 45deg;
    }
    &::after {
      bottom: 1.8rem;
      rotate: -45deg;
    }
  }
}
 #sp_nav_list {
  list-style: none;
  color: var(--fc-base);
  width: 100%;
  height: calc(100vh - 6rem);
  margin: 0;
  padding-left: 1em;
  background: var(--bg-green);
  transition: all 0.6s;
  position: absolute;
  top: 100%;
  right: 0;

  > li {
    & a {
      display: block;
      color: inherit;
      font-size: var(--fs-block-title);
      font-weight: 700;
      text-decoration: none;
      padding: 0.7em;
    }
  }
  .sub-menu li {
    display: flex;
    align-items: center;
    margin-left: 1em;
    &::before {
      content:"－";
    }
  }
}

@media (min-width: 992px) {
  header {
    padding: 2rem 0;
  }
  .hamburger {
    display: none;
  }
  .gnav {
    display: block;
    padding: 0.2em 2em;
    background: #FFF;
    border-radius: 999rem;
    filter: drop-shadow(0 0 0.1rem var(--key-color));

    & ul {
      display: flex;
      flex-wrap: wrap;
      list-style: none;
      align-items: center;
      height: 100%;
      margin: 0;
      gap: 2em;

      & li {
        font-size: clamp(1rem, 1.5vw, 1.4rem);
        text-align: center;

        & a {
          color: var(--fc-base);
        }
      }
    }
  }
}
/*--------------------------------------------------------------
# footer
--------------------------------------------------------------*/
footer {
  text-align: center;
  padding: 5rem;
  background: #353C44;
}
.fname_wrap address {
  color: #FFF;
  font-style: normal;
  margin: 1em 0 1.5em;
}
.fnav_wrap ul {
  list-style: none;
  margin: 0;

  & li {
    line-height: 2;

    & a {
      color: #FFF;
    }
  }
}
.fnav_wrap .sub-menu li a::before {
  content:"－";
}
@media (min-width: 768px) {
  footer {
    text-align: left;
  }
  footer .inner {
    display: flex;
    justify-content: space-between;
  }
  .fnav_wrap {
    display: flex;
    justify-content: right;
    gap: 7%;
  }
  .fnav_wrap .menu_list {
    flex-shrink: 0;
  }
}



