@charset 'UTF-8';

@font-face{
  font-family: 'Yu Gothic';
  src: local('Yu Gothic Medium');
  font-weight: 100;
}
@font-face{
  font-family: 'Yu Gothic';
  src: local('Yu Gothic Medium');
  font-weight: 200;
}
@font-face{
  font-family: 'Yu Gothic';
  src: local('Yu Gothic Medium');
  font-weight: 300;
}
@font-face{
  font-family: 'Yu Gothic';
  src: local('Yu Gothic Medium');
  font-weight: 400;
}
@font-face{
  font-family: 'Yu Gothic';
  src: local('Yu Gothic Bold');
  font-weight: bold;
}
html{
  min-width: 320px;
  font-size: 62.5%;
}
body{
  font-family: 'Noto Sans JP', 'Yu Gothic', YuGothic, Meiryo, sans-serif;
  font-size: 1.6rem;
  color: rgb(0, 104, 61);
  background: rgb(255, 255, 255);
  overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6{
  color: rgb(86, 182, 0);
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}
section p{
  text-align: justify;
  text-justify: inter-ideograph;
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}
a{
  text-decoration: none;
  color: inherit;
  transition: color .4s;
}
a:hover{
  color: rgb(86, 182, 0);
}
img, video, object, canvas{
  max-width: 100%;
  height: auto;
}
img{
  vertical-align: middle;
}
nav ul{
  padding: 0;
  margin: 0;
  list-style: none;
}
@media screen and (min-width: 768px){
  html{
    font-size: 0.520833vw;
  }
  a[href^='tel:']{
    pointer-events: none;
  }
}
@media screen and (min-width: 1920px){
  html{
    font-size: 62.5%;
  }
}

/*  expand class  */
.clearfix::after{
  content: '';
  display: block;
  clear: both;
}
.wrapper{
  padding: 0 calc(25 / 375 * 100vw);
  margin: 0 auto;
  max-width: 110.0rem;
}
.button{
  position: relative;
  border: solid 1px rgb(86, 182, 0);
  border-radius: 24px;
  box-sizing: border-box;
  background-color: rgb(255, 255, 255);
  overflow: hidden;
}
.button::before{
  content: '';
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 100%;
  background-color: rgb(186, 225, 152);
  transition: right .4s;
}
.button:hover::before{
  right: 0;
}
.button a{
  position: relative;
  display: block;
  padding: calc(12 / 16 * 1em);
  line-height: 1.5;
  letter-spacing: calc(0.8 / 16 * 1em);
  text-align: center;
  color: rgb(86, 182, 0);
  background-image: url(../images/ico_button.svg);
  background-repeat: no-repeat;
  background-position: right 1.8rem top 50%;
}
br.hidden{
  display: none;
}
@media screen and (min-width: 768px){
  .wrapper{
    padding: 0 1.6rem;
  }
  br.hidden{
    display: inline;
  }
  br.show{
    display: none;
  }
}

/* fadein_article @common.js */
.fadein{
  transition : opacity 1s ease-out, -webkit-transform 1s ease-out;
  transition : opacity 1s ease-out, transform 1s ease-out;
  transition : opacity 1s ease-out, transform 1s ease-out, -webkit-transform 1s ease-out;
}
.fadein.toleft, .fadein.toright{
  transition-delay: .4s;
}
.fadein.outside{
  opacity : 0.001;
}
.fadein.outside.toleft{
  -webkit-transform : translate(160px, 0);
  transform : translate(160px, 0);
}
.fadein.outside.toright{
  -webkit-transform : translate(-160px, 0);
  transform : translate(-160px, 0);
}
.fadein.outside.totop{
  -webkit-transform : translate(0, 80px);
  transform : translate(0, 80px);
}

/* loaded in @common.js */
.dropin{
  overflow-y: hidden;
}
.dropin span{
  -webkit-transform : translate(0, -150%);
  transform : translate(0, -150%);
  transition: -webkit-transform 1.6s;
  transition: transform 1.6s;
  transition: transform 1.6s, -webkit-transform 1.6s;
}
.dropin span:nth-of-type(1){
  transition-delay: 1.6s;
}
.dropin span:nth-of-type(2){
  transition-delay: 2.6s;
}
.dropin span:nth-of-type(3){
  transition-delay: 3.6s;
}
.dropin span:nth-of-type(1).fast{
  transition-delay: .4s;
}
.dropin span:nth-of-type(2).fast{
  transition-delay: .8s;
}
html.loaded .dropin span{
  -webkit-transform : translate(0, 0);
  transform : translate(0, 0);
}
.slidein{
  overflow-x: hidden;
}
.slidein span{
  -webkit-transform : translate(-150%, 0);
  transform : translate(-150%, 0);
  transition: -webkit-transform 1.6s;
  transition: transform 1.6s;
  transition: transform 1.6s, -webkit-transform 1.6s;
}
html.loaded .slidein span{
  -webkit-transform : translate(0, 0);
  transform : translate(0, 0);
}

/* header */
body>header{
  padding: 1.0rem calc(25 / 375 * 100vw) .6rem calc(25 / 375 * 100vw);
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
}
body>header .title{
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  -webkit-box-align: start;
  align-items: flex-start;
}
body>header h1{
  padding: .5rem 0;
  margin: 0;
  max-width: 17.2rem;
}
body>header h1 img{
  vertical-align: top;
}
body>header .desc{
  padding: 0;
  margin: 0;
  -webkit-box-ordinal-group: 0;
  order: -1;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  color: rgb(0, 151, 75);
  font-size: 1.1rem;
  line-height: 1.55;
}
body>header .designated{
  padding: 0 1em;
  margin: .8rem calc(45 / 1920 * 100vw);
  list-style: none;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  letter-spacing: calc(0.75 / 15 * 1em);
  text-align: center;
  color: rgb(86, 182, 0);
  background: url(../images/bg_laurel_l.svg) no-repeat 0 50%,
    url(../images/bg_laurel_r.svg) no-repeat 100% 50%;
  background-size: contain;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  font-size: 1.1rem;
  line-height: 1.55;
  white-space: nowrap;
  align-self: center;
}
body>header .designated li{
  padding: .1rem 2.0rem;
}
body>header .designated li:first-of-type{
  padding-top: 0;
}
body>header .designated li:last-of-type{
  padding-bottom: 0;
}
body>header .desc br.hidden, body>header .designated br.hidden{
  display: none;
}
body>header .call{
  position: fixed;
  right: calc(25 / 375 * 100vw);
  bottom: 1.8rem;
  z-index: 10;
}
body>header .call p{
  margin: 0;
}
body>header .call p:first-of-type{
  display: none;
}
body>header .call a{
  display: block;
  width: 5.7rem;
  height: 5.7rem;
  background-color: rgb(86, 182, 0);
  border-radius: 50%;
  white-space: nowrap;
  overflow: hidden;
  transition: box-shadow .4s, -webkit-transform .4s;
  transition: box-shadow .4s, transform .4s;
  transition: box-shadow .4s, transform .4s, -webkit-transform .4s;
}
body>header .call a:hover{
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
  -webkit-transform: scale(1.01);
  transform: scale(1.01);
}
body>header .call a::before{
  content: '';
  display: inline-block;
  vertical-align: text-top;
  width: 100%;
  padding-top: 100%;
  background:url(../images/ico_call_white.svg) no-repeat 50% 50%;
}
@media screen and (min-width: 768px){
  body>header{
    padding: 0 1.6rem;
    min-height: 11.7rem;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    justify-content: space-around;
    -webkit-box-align: center;
    align-items: center;
  }
  body>header .title{
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    -webkit-box-align: center;
    align-items: center;
  }
  body>header h1{
    max-width: calc(330 * 0.9 * 0.1rem);
  }
  body>header .desc{
    padding: 0 3.7rem;
    min-height: 5.8rem;
    font-size: 1.7rem;
    line-height: 1.47;
    background: url(../images/bg_desc_l.svg) no-repeat 0 50%,
      url(../images/bg_desc_r.svg) no-repeat 100% 50%;
  }
  @media screen and (-ms-high-contrast:none){
    body>header .desc{
      height: 5.8rem;
    }
  }
  body>header .designated{
    margin-top: 0;
    margin-bottom: 0;
    margin-right: 0;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    align-self: auto;
    min-height: 5.9rem;
    font-size: 1.5rem;
    line-height: 1.47;
  }
  body>header .designated li{
    padding-top: .4rem;
    padding-bottom: .4rem;
  }
  body>header .designated li:first-of-type{
    padding-top: .4rem;
  }
  body>header .designated li:last-of-type{
    padding-bottom: .4rem;
  }
  body>header .designated li:not(:last-of-type){
    border-right: solid 1px rgb(0, 104, 61);
  }
  body>header .designated br.hidden{
    display: inline;
  }
  body>header .call{
    position: static;
    bottom: auto;
    right: auto;
  }
  body>header .call p{
    font-size: 1.5rem;
    line-height: 1.47;
    letter-spacing: calc(0.75 / 15 * 1em);
    color: rgb(0, 104, 61);
  }
  body>header .call p:first-of-type{
    display: block;
  }
  body>header .call a{
    font-family: 'Josefin Sans';
    font-size: 3.3rem;
    line-height: 1.21;
    letter-spacing: calc(0.99 / 33 * 1em);
    color: rgb(86, 182, 0);
    display: inline;
    width: auto;
    height: auto;
    background-color: transparent;
    border-radius: 0;
    overflow: visible;
    transition: none;
  }
  body>header .call a:hover{
    box-shadow: none;
    -webkit-transform: none;
    transform: none;
  }
  body>header .call a::before{
    padding-top: 0;
    margin-right: .6rem;
    width: 2.3rem;
    height: 2.8rem;
    background:url(../images/ico_call.svg) no-repeat 50% 50%;
    background-size: contain;
  }
}
@media screen and (min-width: 768px) and (-ms-high-contrast:none){
  body>header{
    height: 11.7rem;
  }
}

/*  globalnav  */
body>header nav{
  position: fixed;
  top: 0;
  right: calc(25 / 375 * 100vw);
  z-index: 10;
}
#drawer{
  display: none;
}
#drawer+label{
  padding-bottom: .7rem;
  display: block;
  width: 5.5rem;
  font-family: 'Josefin Sans';
  font-size: 1.1rem;
  line-height: 1.18;
  letter-spacing: calc(0.33 / 11 * 1em);
  text-align: center;
  color: rgb(255, 255, 255);
  background-color: rgb(0, 104, 61);
  border-radius: 0 0 9px 9px;
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
  transition: background-color .4s;
}
#drawer+label:hover{
  background-color: rgb(86, 182, 0);
}
#drawer+label div{
  position: relative;
  margin: 1.7rem auto .9rem auto;
  width: 2.6rem;
  height: 2.0rem;
}
#drawer+label div span{
  position: absolute;
  left: 0;
  right: 0;
  height: .2rem;
  background-color: #fff;
  transition: all 0.4s;
}
#drawer+label div span:nth-of-type(1){
  top: 0;
}
#drawer+label div span:nth-of-type(2){
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
#drawer+label div span:nth-of-type(3){
  bottom: 0;
}
#drawer:checked+label div span:nth-of-type(1) {
  -webkit-transform: translateY(.9rem) rotate(-45deg);
  transform: translateY(.9rem) rotate(-45deg);
}
#drawer:checked+label div span:nth-of-type(2) {
  opacity: 0;
}
#drawer:checked+label div span:nth-of-type(3) {
  -webkit-transform: translateY(-.9rem) rotate(45deg);
  transform: translateY(-.9rem) rotate(45deg);
}
#drawer:checked+label>span{
  white-space: nowrap;
  overflow: hidden;
}
#drawer:checked+label>span::before{
  content: 'CLOSE';
  display: inline-block;
  width: 100%;
}
#globalnav{
  display: none;
}
#drawer:checked+label+#globalnav{
  display: block;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -10;
  margin: auto;
  padding: calc(1.0rem + (1.1rem * 1.55) ) calc(25 / 375 * 100vw);
  overflow-y: auto;
  background-color: rgba(239, 248, 231, 0.95);
}
#globalnav .image{
  max-width: 17.2rem;
}
#globalnav>ul{
  padding: 1.2rem 0;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  flex-wrap: wrap;
  max-height: 64.9rem;
}
@media all and (-ms-high-contrast: none){
  #globalnav>ul{
    height: 40.0rem;
  }
}
#globalnav>ul>li{
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: calc(0.9 / 18 * 1em);
  text-align: left;
}
#globalnav>ul>.treatment{
  -webkit-box-ordinal-group: 2;
  order: 1;
}
#globalnav>ul>li>a{
  display: block;
  padding: 1.3rem calc(30 / 375 * 100vw) 1.3rem 1.0rem;
}
#globalnav>ul>li>a>span{
  display: none;
}
#globalnav li input[type='checkbox']{
  display: none;
}
#globalnav li input[type='checkbox']+.submenu label{
  display: none;
}
#globalnav li ul{
  line-height: 2.5;
  letter-spacing: calc(0.8 / 16 * 1em);
  text-align: left;
  font-size: 1.4rem;
  font-weight: normal;
}
#globalnav li li a{
  display: block;
  padding: 0 1.0rem;
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}
#globalnav li li a::before{
  content: '';
  display: inline-block;
  vertical-align: middle;
  margin-top: -.2rem;
  margin-right: 1.1rem;
  width: .9rem;
  border-top: solid 1px rgb(112, 112, 112);
}
#globalnav .hours table{
  margin: 2.3rem 0 1.0rem 0;
  width: 100%;
  box-sizing: border-box;
  border-top: solid 1px rgb(0, 104, 61);
  border-left: solid 1px rgb(0, 104, 61);
  border-collapse: collapse;
  letter-spacing: calc(0.8 / 16 * 1em);
  font-size: 1.3rem;
  line-height: 1.46;
}
#globalnav .hours table th, #globalnav .hours table td{
  padding: calc(8 / 513 * 100%) calc(8 / 513 * 100%);
  border-right: solid 1px rgb(0, 104, 61);
  border-bottom: solid 1px rgb(0, 104, 61);
  vertical-align: middle;
  text-align: center;
  font-weight: normal;
}
#globalnav .hours table th:first-of-type{
  padding: calc(8 / 513 * 100%) 0 calc(8 / 513 * 100%) calc(18 / 513 * 100%);
  text-align: left;
}
#globalnav .hours table td{
  padding: calc(8 / 513 * 100%) calc(8 / 513 * 100%);
}
#globalnav .hours table thead th:first-of-type{
  font-weight: 500;
}
#globalnav .hours p{
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.5;
  line-height: 1.9;
  letter-spacing:calc(0.8 / 16 * 1em);
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}
#globalnav .hours .closed{
  font-size: 1.3rem;
  line-height: 1.46;
  text-align: right;
}
#globalnav .hours .closed+.notes{
  margin-top: -.6em;
}
#globalnav .call_nav{
  padding-top: 0.8rem;
}
#globalnav .call_nav p{
  margin: 0;
}
#globalnav .call_nav a{
  padding-top: .9rem;
  padding-bottom: .1rem;
  display: block;
  font-family: 'Josefin Sans';
  font-size: 2.7rem;
  font-weight: lighter;
  line-height: 1.19;
  letter-spacing: calc(0.81 / 27 * 1em);
  color: rgb(255, 255, 255);
  text-align: center;
  border-radius: 6px;
  background-color: rgb(0, 104, 61);
  transition: background-color .4s;
}
#globalnav .call_nav a:hover{
  background-color: rgb(86, 182, 0);
}
#globalnav .call_nav a::before{
  content: '';
  display: inline-block;
  vertical-align: text-top;
  margin-right: .5rem;
  width: 2.2rem;
  height: 2.3rem;
  background:url(../images/ico_call_white.svg) no-repeat 50% 50%;
  background-size: contain;
}
@media screen and (min-width: 768px){
  body>header nav{
    bottom: 0;
    left: 0;
    right: auto;
    margin-top: 11.7rem;
    width: 19.0rem;
    background-color: rgb(255, 255, 255);
  }
  #drawer+label{
    display: none;
  }
  #globalnav{
    display: block;
    background-color: rgb(255, 255, 255);
  }
  #drawer:checked+label+#globalnav{
    position: static;
    padding: 0;
    margin: 0;
    overflow-y: visible;
    background-color: rgb(255, 255, 255);
  }
  #globalnav .sp{
    display: none;
  }
  #globalnav>ul{
    padding: 0;
    display: block;
    max-height: none;
  }
  #globalnav>ul>li{
    position: relative;
    font-size: 1.8rem;
    font-weight: normal;
    text-align: center;
    background-size: 0;
    transition: background-size .4s;
  }
  #globalnav>ul>.treatment{
    -webkit-box-ordinal-group: 1;
    order: 0;
  }
  #globalnav>ul>li::after{
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 2.8rem;
    border-bottom: solid 1px rgb(0, 104, 61);
  }
  #globalnav>ul:not(:hover)>li.current{
    background: url(../images/bg_current.svg) no-repeat 50% 50%;
    background-size: 7.9rem auto;
  }
  #globalnav>ul>li:hover{
    background: url(../images/bg_current.svg) no-repeat 50% 50%;
    background-size: 7.9rem auto;
  }
  #globalnav>ul>li>a{
    padding: 2.9rem 0;
  }
  #globalnav>ul>li>a>span{
    display: block;
    padding: .6rem 0 .4rem 0;
    font-family: 'Josefin Sans';
    font-size: 1.3rem;
    font-weight: lighter;
    line-height: 1.23;
    letter-spacing: calc(0.65 / 13 * 1em);
    color: rgb(86, 182, 0);
  }
  #globalnav li input:checked+.submenu{
    position: absolute;
    top: 50%;
    right: 0;
    -webkit-transform: translate(92%, -50%);
    transform: translate(92%, -50%);
    min-width: 23.3rem;
  }
  #globalnav li input[type='checkbox']+.submenu label{
    display: inline;
    position: absolute;
    z-index: 10;
    text-align: left;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer;
  }
  #globalnav li input[type='checkbox']:not(:checked)+.submenu label{
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
  #globalnav li input[type='checkbox']+.submenu label::before{
    content: '';
    display: inline-block;
    vertical-align: top;
    width: 100%;
  }
  #globalnav li input:checked+.submenu label{
    top: 2.2rem;
    right: 2.2rem;
    width: 1.6rem;
  }
  #globalnav li input:checked+.submenu label:hover{
    opacity: 0.75;
  }
  #globalnav li input:checked+.submenu label::before{
    height: 1.6rem;
    background: url(../images/ico_close.svg) no-repeat 50% 50%;
  }
  #globalnav li ul{
    display: none;
    padding: 1.8rem 3.0rem;
    font-size: 1.6rem;
    box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);
    background-color: rgba(255, 251, 222, 0.9);
    border-radius: 15px;
  }
  #globalnav li ul::before{
    content: '';
    display: inline-block;
    vertical-align: middle;
    position: absolute;
    top: 50%;
    left: 0;
    -webkit-transform: translate(-100%, -50%);
    transform: translate(-100%, -50%);
    width: 22px;
    height: 34px;
    background: url(../images/bg_balloontail.svg) no-repeat 0 50%;
  }
  #globalnav li li a{
    padding: 0;
  }
  #globalnav li li a::before{
    content: none;
  }
  #globalnav li input:checked+.submenu label+ul{
    display: block;
    -webkit-animation: fadein .4s;
    animation: fadein .4s;
  }
  @-webkit-keyframes fadein{
    0%{
      opacity: 0;
    }
    100%{
      opacity: 1;
    }
  }
  @keyframes fadein{
    0%{
      opacity: 0;
    }
    100%{
      opacity: 1;
    }
  }
}
@media screen and (min-width: 768px) and (-ms-high-contrast: none){
  #globalnav>ul{
    height: auto;
  }
}

/*  main  */
@media screen and (min-width: 768px){
  body>main{
    margin-left: 19.0rem;
  }
}

/*  article hero  */
#hero{
}
#hero>div{
  position: relative;
  padding-bottom: 1.8rem;
  margin: 0 auto;
  box-sizing: border-box;
}
#hero>div h2{
  margin: 0;
  display: inline-block;
  position: absolute;
  top: 0;
  right: calc( 25 / 375 * 100%);
}
#hero>div h2 span{
  padding: 2.1rem 1.0rem;
  display: inline-block;
  background-color: rgba(255, 255, 255, 0.75);
}
#hero>div h2 img{
  width: 2.3rem;
}
#hero>div .slidein{
  position: absolute;
  padding-left: calc(29 / 375 * 100%);
  left: 0;
  bottom: calc( 22 / 303 * 100% + 1.8rem);
  font-family: 'Josefin Sans';
  font-size: 2.6rem;
  font-weight: lighter;
  line-height: 1.2;
  letter-spacing: calc(3.05 / 61 * 1em);
}
#hero>div .slidein span{
  display: inline-block;
}
#hero>div .image{
  position: relative;
  vertical-align: middle;
  z-index: -10;
}
#hero>div .image::after{
  position: absolute;
  content: '';
  display: block;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -10;
  margin: auto;
  background: url(../images/bg_header_home.svg) no-repeat 50% 50%;
  background-size: cover;
  -webkit-transform: translate(0, 1.8rem);
  transform: translate(0, 1.8rem);
}
#hero>div .image img{
  min-height: calc(303 / 375 * 100vw);
  -o-object-fit: cover;
  object-fit: cover;
}
@media screen and (-ms-high-contrast:none){
  #hero>div .image img{
    min-height: 0;
    -o-object-fit: fill;
    object-fit: fill;
  }
}
@media screen and (min-width: 768px){
  #hero{
    padding: 0 1.6rem;
  }
  #hero>div{
    padding-right: 1.8rem;
    max-width: 151.6rem;
  }
  #hero>div h2{
    right: calc( (54 / 1516 * 100%) + 1.8rem);
  }
  #hero>div h2 span{
    padding: 3.1rem 1.6rem;
  }
  #hero>div h2 img{
    width: 3.4rem;
  }
  #hero>div .slidein{
    padding-left: calc(62 / 1516 * 100%);
    bottom: calc( (38 / 676 * 100%) + 1.8rem);

    font-size: 6.1rem;
  }
  #hero>div .image::after{
    border-radius: 38px;
    -webkit-transform: translate(1.8rem, 1.8rem);
    transform: translate(1.8rem, 1.8rem);
  }
  #hero>div .image img{
    border-radius: 38px;
    min-height: 0;
  }
}

/*  article section  */
article>.wrapper>section{
  padding: 3.8rem 0;
}
article section h3{
  padding: 1.8rem 0;
  margin: 0;
  font-size: 2.2rem;
  line-height: 1.5;
  font-weight: normal;
  letter-spacing: calc(1.7 / 34 * 1em);
  text-align: center;
  color: rgb(86, 182, 0);
}
article section h3 span{
  font-weight: lighter;
  color: rgb(0, 104, 61);
}
article section h3 span:first-of-type{
  padding-right: .5em;
}
article section h3 span:last-of-type{
  padding-left: .5em;
}
article section .text p{
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.88;
  letter-spacing: calc(0.8 / 16 * 1em);
}
@media screen and (min-width: 768px){
  article>.wrapper>section{
    padding: 10.0rem 0;
  }
  article section h3{
    padding: 4.0rem 0;
    font-size: 3.4rem;
    line-height: 1.47;
  }
  article section .text p{
    font-size: 1.6rem;
  }
}

/*  footer  */
body>footer{
  background: url(../images/bg_footer.svg) repeat-x 0 0;
}
body>footer .wrapper{
  padding-top: 5.2rem;
}
@media screen and (min-width: 768px){
  body>footer{
    position: relative;
    margin-left: 19.0rem;
  }
  body>footer .wrapper{
    padding-top: 7.3rem;
    padding-bottom: 3.0rem;
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 513fr calc(105 / 1100 * 100%) 482fr;
    grid-template-columns: 513fr 482fr;
    -ms-grid-rows: auto;
    grid-template-rows: auto;
    grid-gap: 0 calc(105 / 1100 * 100%);
  }
}

/*  footer .designated  */
body>footer .designated{
  margin: 0 auto;
  max-width: 48.2rem;
}
body>footer .designated ul{
  padding: 0;
  margin: 0;
  font-size: 1.3rem;
  line-height: 2;
  list-style: none;
  letter-spacing: calc(0.8 / 16 * 1em);
  text-align: center;
  color: rgb(86, 182, 0);
  border-left: solid 1px rgb(0, 104, 61);
  border-right: solid 1px rgb(0, 104, 61);
}
@media screen and (min-width: 768px){
  body>footer .designated{
    margin: 0;
    max-width: none;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
    grid-column: 1/2;
    -ms-grid-row: 1;
    -ms-grid-row-span: 1;
    grid-row: 1/2;
  }
  body>footer .designated ul{
    padding: 0 0 1.8rem 0;
    font-size: 1.6rem;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
    line-height: 1.63;
    border-left: none;
    border-right: none;
  }
  body>footer .designated li{
    -webkit-box-flex: 1;
    flex-grow: 1;
    border-right: solid 1px rgb(0, 104, 61);
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    align-items: center;
  }
  body>footer .designated li:first-of-type{
    border-left: solid 1px rgb(0, 104, 61);
  }
}

/*  footer .desc + .addr  */
body>footer .desc{
  padding: .2rem 0;
  margin: 2.2rem 0 0 0;
  font-size: 1.3rem;
  line-height: 2.15;
  letter-spacing: calc(0.85 / 17 * 1em);
  text-align: center;
}
body>footer .addr a{
  display: block;
  padding: .7rem 0;
  margin: 0 auto;
  max-width: 25.6rem;
}
body>footer .addr p{
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.77;
  letter-spacing: calc(0.75 / 15 * 1em);
  text-align: center;
}
@media screen and (min-width: 768px){
  body>footer .desc{
    padding: 1.1rem 0;
    margin: 0;
    display: -webkit-box;
    display: flex;
    -webkit-box-align: end;
    align-items: flex-end;
    font-size: 1.7rem;
    line-height: 1.65;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
    grid-column: 1/2;
    -ms-grid-row: 2;
    -ms-grid-row-span: 1;
    grid-row: 2/3;
  }
  body>footer .addr{
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
    grid-column: 1/2;
    -ms-grid-row: 3;
    -ms-grid-row-span: 1;
    grid-row: 3/4;
  }
  body>footer .addr a{
    display: inline;
    padding: 0;
    margin: 0;
    max-width: none;
  }
  body>footer .addr p{
    padding: 1.0rem 0;
    font-size: 1.5rem;
    line-height: 1.47;
    text-align: left;
  }
}

/*  footer .call  */
body>footer .call p{
  margin: 0;
}
body>footer .call p:not(:last-of-type){
  display: none;
}
body>footer .call a{
  display: block;
  font-size: 1.3rem;
  line-height: 1.77;
  letter-spacing: calc(0.65 / 13 * 1em);
  text-align: center;
}
body>footer .call a::before{
  content: 'TEL. ';
}
@media screen and (min-width: 768px){
  body>footer .call{
    display: -webkit-box;
    display: flex;
    -webkit-box-align: center;
    align-items: center;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
    grid-column: 1/2;
    -ms-grid-row: 4;
    -ms-grid-row-span: 1;
    grid-row: 4/5;
  }
  body>footer .call p{
    font-size: 1.5rem;
    line-height: 1.47;
    letter-spacing: calc(0.75 / 15 * 1em);
  }
  body>footer .call p:not(:last-of-type){
    display: block;
  }
  body>footer .call a{
    display: inline-block;
    font-family: 'Josefin Sans';
    font-size: 5.5rem;
    font-weight: lighter;
    line-height: 1.2;
    letter-spacing: calc(1.65 / 55 * 1em);
    -webkit-text-stroke: 1px rgb(0, 104, 61);
    padding: .12em 1.6rem 0 1.6rem;
    white-space: nowrap;
  }
  body>footer .call a::before{
    content: '';
    display: inline-block;
    vertical-align: text-top;
    margin: 0 .3rem;
    width: 3.5rem;
    height: 4.8rem;
    background: url(../images/ico_call_dark.svg) no-repeat 50% 50%;
    background-size: contain;
  }
}

/*  footer .hours  */
body>footer .hours{
  padding: 2.5em 0;
  margin: 0 auto;
  max-width: 48.2rem;
}
body>footer .hours table{
  margin: .8rem 0;
  width: 100%;
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: calc(0.8 / 16 * 1em);
  box-sizing: border-box;
  border-top: solid 1px rgb(0, 104, 61);
  border-left: solid 1px rgb(0, 104, 61);
  border-collapse: collapse;
}
body>footer .hours table th, body>footer .hours table td{
  padding: calc(8 / 513 * 100%) calc(8 / 513 * 100%);
  border-right: solid 1px rgb(0, 104, 61);
  border-bottom: solid 1px rgb(0, 104, 61);
  vertical-align: middle;
  text-align: center;
  font-weight: normal;
}
body>footer .hours table th{
  background-color: rgba(86, 182, 0, 0.15);
}
body>footer .hours table th:first-of-type{
  padding: calc(8 / 513 * 100%) 0 calc(8 / 513 * 100%) calc(18 / 513 * 100%);
  text-align: left;
}
body>footer .hours table thead th:first-of-type{
  font-weight: 500;
}
body>footer .hours p{
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.9;
  letter-spacing:calc(0.8 / 16 * 1em);
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}
body>footer .hours .closed{
  color: rgb(217, 7, 7);
  text-align: right;
}
body>footer .hours .closed+.notes{
  margin-top: -1em;
}
@media screen and (min-width: 768px){
  body>footer .hours{
    padding: 0;
    margin: 0;
    max-width: none;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
    grid-column: 1/2;
    -ms-grid-row: 5;
    -ms-grid-row-span: 1;
    grid-row: 5/6;
  }
  body>footer .hours table{
    font-size: 1.6rem;
    line-height: 1.5;
  }
  body>footer .hours p{
    font-size: 1.6rem;
    line-height: 1.5;
  }
}

/*  footer .news + .access  */
body>footer #news{
  padding: 2.8rem 0;
  margin: 0 auto;
  max-width: 48.2rem;
}
body>footer #news h2{
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.63;
  font-weight: normal;
  letter-spacing: calc(0.9 / 18 * 1em);
}
body>footer #news ul{
  padding: .3rem 0;
  margin: 0;
  list-style: none;
  font-size: 1.4rem;
  line-height: 1.4;
  letter-spacing: calc(0.85 / 17 * 1em);
  word-wrap: break-word;
}
body>footer #news li{
  padding: .5rem 0;
}
body>footer #news li time{
  padding-right: .5em;
}
body>footer .access{
  text-align: center;
}
@media screen and (min-width: 768px){
  body>footer #news{
    padding: 0;
    margin: 0;
    position: relative;
    max-width: none;
    -ms-grid-column: 3;
    -ms-grid-column-span: 1;
    grid-column: 2/3;
    -ms-grid-row: 1;
    -ms-grid-row-span: 2;
    grid-row: 1/3;
  }
  body>footer #news::after{
    content: '';
    display: block;
    height: 1.76em;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(rgba(255, 255, 255, 0), rgb(255, 255, 255));
  }
  body>footer #news h2{
    font-size: 1.8rem;
    line-height: 1.44;
  }
  body>footer #news ul{
    padding: 1.0rem 0;
    font-size: 1.7rem;
    max-height: calc(3em * 1.76 + 1.0rem + (1.7rem * 0.76 / 2) );
    overflow-y: auto;
  }
  body>footer #news li{
    padding: .3rem 0;
  }
  body>footer .access{
    display: -webkit-box;
    display: flex;
    -webkit-box-align: end;
    align-items: flex-end;
    -ms-grid-column: 3;
    -ms-grid-column-span: 1;
    grid-column: 2/3;
    -ms-grid-row: 3;
    -ms-grid-row-span: 3;
    grid-row: 3/6;
  }
  body>footer .access .image{
    width: 100%;
  }
}

/*  footer .link  */
body>footer .link{
  overflow: hidden;
}
body>footer .link ul{
  margin: 0;
  list-style: none;
  display: -webkit-box;
  display: flex;
  flex-wrap: wrap;
}
body>footer .link>ul{
  padding: 0;
  margin-left: -1em;
  width: calc(100% + 1em);
  font-size: 1.4rem;
  line-height: 1.43;
  letter-spacing: calc(0.8 / 16 * 1em);
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}
body>footer .link>ul>li{
  padding: 0 calc(1em - 1px);
  margin-top: .5em;
  margin-bottom: .5em;
  border-left: solid 1px rgb(0, 104, 61);
}
body>footer .link>ul>li:last-of-type{
  padding: 0;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  flex-basis: 100%;
}
body>footer .link>ul>li:last-of-type>a{
  padding-left: 1em;
  padding-right: .5em;
  white-space: nowrap;
}
body>footer .link>ul>li:last-of-type>ul{
  padding: 0;
  margin-top: 1em;
  margin-left: calc(.5em + 1px);
  -webkit-box-flex: 1;
  flex-grow: 1;
  color: rgb(112, 112, 112);
}
body>footer .link>ul>li:last-of-type li{
  padding: 0 .5em;
  margin-top: calc(2 / 14 * 1em);
  margin-bottom: 1em;
}
@media screen and (min-width: 768px){
  body>footer .link{
    padding: 2.1rem 0 1.8rem 0;
    -ms-grid-column: 1;
    -ms-grid-column-span: 3;
    grid-column: 1/3;
    -ms-grid-row: 6;
    -ms-grid-row-span: 1;
    grid-row: 6/7;
  }
  body>footer .link>ul{
    font-size: 1.6rem;
    line-height: 1.5;
  }
  body>footer .link>ul>li:last-of-type{
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
  }
  body>footer .link>ul>li:last-of-type ul{
    margin-top: 0;
    margin-left: 0;
    font-size: 1.5rem;
  }
}

/*  footer .map  */
body>footer .map{
  position: relative;
}
body>footer .map::before{
  content: '';
  display: block;
  padding-top: calc(263 / 375 * 100%);
}
body>footer .map iframe{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  height: 100%;
}
@media screen and (min-width: 768px){
  body>footer .map::before{
    padding-top: calc(520 / 1730 * 100%);
  }
}

/*  footer .copy  */
body>footer .copy{
  text-align: center;
}
body>footer .copy small{
  padding: 1.9rem 0;
  font-family: 'Josefin Sans';
  font-size: 1.2rem;
  line-height: 1.17;
  letter-spacing: calc(0.7 / 14 * 1em);
  color: rgb(34, 34, 34);
  display: block;
}
#gotop{
  position: fixed;
  left: calc(25 / 375 * 100vw);
  bottom: 1.8rem;
  z-index: 10;
  width: 5.6rem;
  transition: -webkit-transform ease-out .4s;
  transition: transform ease-out .4s;
  transition: transform ease-out .4s, -webkit-transform ease-out .4s;
}
.hidden #gotop{
  bottom: 0;
  -webkit-transform: translate(0, 100%);
  transform: translate(0, 100%);
}
#gotop::before{
  content: '';
  display: block;
  padding-top: 100%;
}
#gotop a{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  display: block;
  font-size: 1.6rem;
  line-height: calc(56 / 16);
  text-align: center;
  color: rgb(255, 255, 255);
  background-color: rgb(86, 182, 0);
  border-radius: 50%;
  white-space: nowrap;
  overflow: hidden;
  transition: box-shadow .4s, trasform .4s;
}
#gotop a::before{
  content: '';
  display: inline-block;
  vertical-align: top;
  width: 100%;
  padding-top: 100%;
  background: url(../images/ico_gotop.svg) no-repeat 50% 50%;
  background-size: 1.6rem;
}
#gotop a:hover{
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
  -webkit-transform: scale(1.01);
  transform: scale(1.01);
}
@media screen and (min-width: 768px){
  body>footer .copy{
    position: fixed;
    right: 5.0rem;
    bottom: 7.4rem;
    transition: -webkit-transform ease-out .4s;
    transition: transform ease-out .4s;
    transition: transform ease-out .4s, -webkit-transform ease-out .4s;
  }
  body>footer .copy.bottom{
    position: absolute;
    bottom: calc(520 / 1730 * (100vw - 19.0rem) + 7.4rem);
  }
  body>footer .copy.hidden{
    bottom: 0;
    -webkit-transform: translate(0, 100%);
    transform: translate(0, 100%);
  }
  body>footer .copy small{
    padding: 4.0rem 0;
    font-size: 1.4rem;
    line-height: 1.29;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: sideways;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.75),
      -1px -1px 2px rgba(255, 255, 255, 0.75),
      1px -1px 2px rgba(255, 255, 255, 0.75),
      -1px 1px 2px rgba(255, 255, 255, 0.75);
    display: inline;
  }
  #gotop{
    position: relative;
    left: auto;
    bottom: auto;
    transition: none;
  }
  .hidden #gotop{
    bottom: auto;
    -webkit-transform: none;
    transform: none;
  }
}
