/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin:0;
  padding:0;
  border:0;
  outline:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}

body {
  line-height:1;
  overflow-x: hidden;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
  display:block;
}

nav ul {
  list-style:none;
}

blockquote, q {
  quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content:'';
  content:none;
}

a {
  margin:0;
  padding:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}

/* change colours to suit your needs */
ins {
  background-color:#ff9;
  color:#000;
  text-decoration:none;
}

/* change colours to suit your needs */
mark {
  background-color:#ff9;
  color:#000; 
  font-style:italic;
  font-weight:bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom:1px dotted;
  cursor:help;
}

table {
  border-collapse:collapse;
  border-spacing:0;
}

/* change border colour to suit your needs */
hr {
  display:block;
  border:0;   
}

input, select {
    vertical-align:middle;
}





/* ■■■ common ■■■ */

:root {
  --main-color: #6b8e23;
  --sub-color1: #d8dab8;
  --sub-color2: #f5f5dc;
  --sub-color3: #556b2f;
  --gray-color1: #323232;
}

body {
  display: flex;
  flex-flow: column;
  min-height: 100vh;
}

main {
  flex: 1;
}
@media screen and (max-width: 768px) {
  main {
    padding-top: 55px;
  }
}


html {
  font-size: 62.5%;
  overflow-y: scroll;
}

body {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: #222;
}

.header,
main {
  width: 100%;
  max-width: 1000px;
  margin: auto;
} 

main a,
.subnavi a {
  color: var(--main-color);
  color: #007b43;
}
main a:hover,
.subnavi a:hover {
  color: #007b43;
  text-decoration: underline;
  cursor: pointer;
}
main a:visited,
.subnavi a:visited {
  color: #551b8c;
}

main a img:hover {
  opacity: 0.8;
}



/* ■ Content box ■ */

article {
  margin-bottom: 8rem;
}
@media screen and (max-width: 768px) {
  article img {
    max-width: 100%;
    height: auto;
  }
}
section {
  line-height: 2;
  margin-bottom: 6rem;
}
section p {
  margin-bottom: 15px;
}
section ul,
section ol {
  margin: 0 0 0 30px;
}
section img {
  max-width: 1000px;
}
@media screen and (max-width: 768px) {
  section {
    margin: 1rem 1.5rem 5rem 1.5rem;
  }
  section img {
    max-width: 100%;
    height: auto;
  }
}



/* ■ midashi ■ */

h1 {
  font-size: 3.4rem;
  font-weight: 400;
  color: var(--gray-color1);
  letter-spacing: 0.05em;
  text-align: center;
  border-bottom: var(--main-color) solid 1px;
  padding: 4.5rem 0 2rem 0;
  margin: 0 calc(50% - 50vw);
  margin-bottom: 30px;
  width: 100vw;
}
@media screen and (max-width: 768px) {
  h1 {
    font-size: 2.5rem;
    padding: 2.5rem 0;
  }
}
h2 {
  color: var(--gray-color1);
  font-size: 24px;
  position: relative;
  font-weight: normal;
  margin-bottom: 35px;
  border-bottom: solid 4px var(--sub-color1);
  border-radius: 0px 0px 160px 180px/0px 0px 20px 4px;
  clear: both;
}
h3 {
  font-size: 2rem;
  line-height: 1;
  border-bottom: #999 solid 1px;
  margin: 20px 0;
  padding: 20px 0;
}
h4 {
  font-size: 1.8rem;
  line-height: 1.5;
  margin: 20px 0;
  padding: 20px 0 0 0;
}
h5 {
  font-size: 1.8rem;
  line-height: 1;
  margin: 20px 0;
  padding: 20px 0;
}
h6 {
  font-size: 1.8rem;
  line-height: 1;
  margin: 20px 0;
  padding: 20px 0;
}



/* ■ General purpose ■ */

/* button */
.btn01 a::before {
  content: "▶ ";
  font-size: 1rem;
}
.btn01 a,
.btn01 a:visited {
  display: inline-block;
  background-color: var(--main-color);
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  padding: 5px 30px;
}
.btn01 a:hover {
  opacity: 0.8;
  color: #fff;
}

/* list */
.li01 {
  list-style: none;
  margin: 0;
}
.li01 li {
  margin: 0 0 2rem 0;
  padding: 0 0 1.5rem 1rem;
  border-bottom: #666 dotted 1px;
}

.li02 {
  list-style: none;
}
.li02 li::before {
  content: "▶ ";
  color: #bdd6e7;
  font-size: 1rem;
}

.nolistmark {
  list-style-type: none;
  margin: 0;
}
.nolistmark li {
  margin-bottom: 10px;
}

.dllist01 div {
  display: flex;
  margin: 0 0 30px 0;
  padding: 0 0 30px 0;
  border-bottom: #887f7a dotted 1px;
}
.dllist01 dt {
  margin: 0 30px 0 0;
}
@media screen and (max-width: 768px) {
  .dllist01 div {
    display: block;
  }
}



/* table */
.tbl01 {
  border-collapse: collapse;
}
.tbl01 th {
  background-color: #d7ecfd;
}
.tbl01 th,
.tbl01 td {
  border: #999 solid 1px;
  padding: 7px;
}

.tbl02 {
  border-collapse: collapse;
  width: 100%;
}
.tbl02 th {
  font-weight: normal;
  text-align: left;
}
.tbl02 th,
.tbl02 td {
  border-top: #666 dotted 1px;
  border-bottom: #666 dotted 1px;
  padding: 10px 20px;
  vertical-align: middle;
}
@media screen and (max-width: 768px) {
  .tbl02 th {
    white-space: nowrap;
  }
}



/* float */
.fr {
  float: right;
  margin: 0 0 20px 35px;
}
.fl {
  float: left;
  margin: 0 35px 20px 0;
}
.clr {
  clear: both;
}
@media screen and (max-width: 768px) {
  .fr {
    float: none;
    margin: 0 auto 20px auto;
    display: block;
  }
  .fl {
    float: none;
    margin: 0 auto 20px auto;
  }
}

/* flex */
.flexTwo {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.flexTwo .flexTwoBox {
  width: 47%;
  margin-bottom: 45px;
}
.flexEnd {
  justify-content: flex-end;
}
@media screen and (max-width:768px) {
  .flexTwo .flexTwoBox {
    width: 100%;
    margin-bottom: 30px;
  }
}

/* character alignment */
.cen {
  text-align: center;
}
.tb_cen {
  vertical-align: middle;
}
.rgt_txt {
  text-align: right;
}

/* border */
.bor01 {
  border-bottom: solid 5px var(--sub-color1);
  margin: 0 0 40px 0;
  padding: 2rem 0;
  position: relative;
  z-index: -10;
}
.bor01::after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 5px var(--main-color);
  bottom: -5px;
  width: 20%;
}

/* line spacing */
.ls1 {
  line-height: 1.5;
}

/* letter-spacing */
.les1 {
  letter-spacing: 0;
}

/* indent */
.idt15 {
  padding-left: 1.5em;
  text-indent: -1.5em;
}
.idt2 {
  padding-left: 2em;
  text-indent: -2em;
}
.idt21 {
  padding-left: 2.1em;
  text-indent: -2.1em;
}
.idt28 {
  padding-left: 2.8em;
  text-indent: -2.8em;
}

/* font size */
.fs3 {
  font-size: 3rem;
}

/* font */
.fwb {
  font-weight: bold;
}

/* font-family */
.fontmin {
  font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

/* font-color */
.red {
  color: #e6002d;
}

/* margin */
.mb10 {
  margin-bottom: 10px;
}
.mb20 {
  margin-bottom: 20px;
}
.mb30 {
  margin-bottom: 30px;
}
.mb40 {
  margin-bottom: 40px;
}
.mb50 {
  margin-bottom: 50px;
}
.mb80 {
  margin-bottom: 80px;
}
.mb100 {
  margin-bottom: 100px;
}

/* width and height  */
.w70 {
  width: 70%;
}
@media screen and (max-width: 768px) {
  .w70 {
    width: 100%;
  }
}





/* ■■■ top-page ■■■ */

.mainvisual {
  margin: 0 calc(50% - 50vw);
  margin-bottom: 30px;
  width: 100vw;
  position: relative;
  background-color: var(--sub-color2);
}
.mainvisual img {
  max-width: 1000px;
  width: 100%;
  height: auto;
}
@media screen and (max-width:768px) {
}

aside .bnr {
  clear: both;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  padding-top: 30px;
}
aside .bnr div {
  margin-bottom: 20px;
}




/* ■■■ child-page ■■■ */

.subnavi {
}
.subnavi ul {
  margin: 0 auto 40px auto;
  padding: 0;
  font-size: 1.4rem;
  display: flex;
  list-style: none;
}
.subnavi ul li {
  padding: 0;
}
.subnavi ul li::before {
  content: "▼";
  font-size: 0.85rem;
}
.subnavi ul li a {
  text-decoration: none;
  padding: 10px 20px 10px 7px;
}
.subnavi ul li a:hover {
  text-decoration: underline;
}
@media screen and (max-width: 768px) {
  .subnavi ul {
    flex-wrap: wrap;;
  }
  .subnavi ul li {
    padding: 8px 10px;
  }
}



/* ■ project ■ */


/* ■ yauemon-soap ■ */


/* ■ botanical-silica-beads ■ */

.bsb h2 {
  color: #e6002d;
  font-size: 3.4rem;
  font-weight: bold;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  line-height: 100%;
}
.bsb h3 {
  color: #fff;
  text-align: center;
  font-size: 2.2rem;
  background-color: #e6002d;
  background: linear-gradient(to right, #fff, #e6002d 40%, #e6002d 60%, #fff);
  border: none;
  padding: 10px;
}



/* ■ notice ■ */


/* ■ company ■ */

.gmap iframe {
  width: 800px;
  height: 600px;
}
@media screen and (max-width:768px) {
  .gmap iframe {
    width: 100%;
    height: 300px;
  }
}



/* ■ contact ■ */

.contactus {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.contactus section {
  text-align: center;
  background-color: var(--sub-color2);
  width: 43%;
  margin: 10px;
  padding: 20px;
}
.contactus section h2 img {
  vertical-align: middle;
  padding-right: 20px;
}
@media screen and (max-width:768px) {
  .contactus section {
    width: 100%;
  }
}

/* ■ privacy-policy ■ */

/* ■ terms ■ */












/* ■■■ header and global-navi ■■■ */

@media screen and (min-width:768px) {
  header {
    font-size: 1.5rem;
    width: 100%;
    background-color: #fff;
  }
  header .logo {
    padding: 20px 0;
  }
  header .logo img {
    display: block;
    width: 300px;
    margin: auto;
  }
  nav {
    padding: 0 0 0 0;
  }
  nav ul {
    display: flex;
    justify-content: space-between;
  }
  nav ul li {
    height: 100%;
  }
  nav ul li a {
    text-decoration: none;
    color: var(--sub-color3);
    display: block;
    height: 100%;
    font-weight: bold;
    padding: 20px;
    -webkit-transition: all .3s;
    transition: all 1s;
  }
  nav ul li a:hover {
    color: var(--main-color);
    background-color: var(--sub-color2);
    cursor: pointer;
    border-radius: 40px 0 40px 0;
  }
  nav ul .current {
    color: var(--main-color);
    background-color: var(--sub-color2);
    border-radius: 40px 0 40px 0;
  }
}
@media screen and (max-width:768px) {
  header {
    font-size: 1.6rem;
    border-bottom: #999 solid 1px;
    height: 55px;
    width: 100%;
    position: fixed;
    top: 0;
    background-color: #fff;
    z-index: 999;
  }
  header .logo img {
    width: 250px;
    margin-top: 5px;
  }
}





/* ■■■ hamburger-menu ■■■ **/

/*PCメニュー*/
header {
}
header #navi li a {
  text-decoration: none;
}
/*PCメニュー*/
/*SPメニュー*/
@media screen and (max-width: 768px) {
  /* bager menu */
  header #navi {
    transition: all 0.6s;
    overflow-y: auto;
    padding-top: 40px;
    width: 300px;
    height: 100vh;
    z-index: 200;
    top: 0;
    right: -320px;
    background-color: #fff;
    position: fixed;
    flex-direction: column;
    align-items: baseline;
  }
  header #navi li {
    padding: 10px;
  }
  header .nav_btn {
    width: 44px;
    height: 44px;
    z-index: 300;
    top: 7px;
    right: 7px;
    cursor: pointer;
    position: absolute;
  }
  .hamburger_line {
    transition: all 0.6s;
    width: 34px;
    height: 2px;
    left: 5px;
    background-color: #000;
    position: absolute;
  }
  .hamburger_line1 {
    top: 10px;
  }
  .hamburger_line2 {
    top: 21px;
  }
  .hamburger_line3 {
    top: 32px;
  }
  .nav_bg {
    opacity: 0;
    transition: all 0.6s;
    width: 100vw;
    height: 100vh;
    z-index: 100;
    top: 0;
    left: 0;
    visibility: hidden;
    background-color: #000;
    cursor: pointer;
    position: fixed;
  }
  /* 表示された時用のCSS */
  .nav_open header #navi {
    right: 0;
  }
  .nav_open .nav_bg {
    opacity: 0.8;
    visibility: visible;
  }
  .nav_open .hamburger_line1 {
    transform: rotate(45deg);
    top: 20px;
  }
  .nav_open .hamburger_line2 {
    width: 0;
    left: 50%;
  }
  .nav_open .hamburger_line3 {
    transform: rotate(-45deg);
    top: 20px;
  }
}





/* ■■■ footer ■■■ */

footer {
  text-align: center;
}
#footerInner {
  background-color: var(--main-color);
  padding: 20px 0;
}
#footerInner ul {
  margin: 0;
}
#footerInner ul li {
  font-size: 1.3rem;
  display: inline-block;
  margin: 0 15px;
}
#footerInner ul li a {
  color: #fff;
  text-decoration: none;
}
#footerInner ul li a:hover {
  text-decoration: underline;
}
.copyright {
  color: var(--main-color);
  font-size: 1.2rem;
  padding: 10px 0;

}





/* ■■ Top of page ■■ */

#pagetop {
  position: fixed;
  width: 60px;
  height: 60px;
  border-radius: 30px;
  background: var(--sub-color3);
  color: #fff;
  bottom: 50px;
  right: 20px;
  cursor: pointer;
}
#pagetop span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  width: 100%;
  text-align: center;
  font-size: 16px;
}
#pagetop span span {
  display: none;
}
#pagetop:hover {
  opacity: 0.8;
}


