:root {
  color: #333;
  font-size: 62.5%;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3",
    メイリオ, Meiryo, "ＭＳ Ｐゴシック", sans-serif;
}

body {
  background-color: #fff;
  padding-bottom:0;
  position: relative;
}

a,
button {transition : all 0.2s ease 0s;}

/* common
---------------------------------------------------------- */
section.main-area {
  padding-top:6rem;
  background: url(../images/common/bg.png) no-repeat;
  background-position: top right;
}
  
.inner {
  width:100%;
  max-width:120rem;
  margin: auto;
  font-size:1.6rem;
  padding:0 5rem
}

h2 {
  font-size:3.6rem;
  font-weight: bold;
  text-align: center;
}

.pc {display: block;}
.sp {display: none;}

div.tel a[href^="tel:"] {
  pointer-events: none; /* クリック不可 */
  cursor: default; /* カーソルをデフォルトに戻す */
}

/* headder
---------------------------------------------------------- */
.header_Wrap {
  width:100%;
  position: absolute;
  top:0;
}

.header_Wrap-inner {
  width: 100%;
  height: 6rem;
  padding: 3rem 3rem;
  display: flex;
  align-items: center;
  position: relative;
}

.header_Wrap h1 img,
.header_Wrap p img{
  width: 10rem;
  height: 3.6rem;
  transition : all 0.2s ease 0s;
}

.header_Wrap h1 a.hover img,
.header_Wrap p a.hover img {opacity: 0.7;}


/* menu
---------------------------------------------------------- */
.menu-btn {
  position: fixed;
  top: 2rem;
  right: 2rem;
  width: 4rem;
  height: 4rem;
  background: rgba(0, 143, 138, 0.7);
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.menu-btn.hover {background:rgb(0 213 166 / 60%);}

.menu-btn span {
  display: block;
  width: 2.4rem;
  height: 0.1rem;
  background: #fff;
  margin: 0.3rem 0;
  transition: transform 0.3s ease, opacity 0.3s ease;}

.menu-btn.active {background: rgba(255, 255, 255, 1);}
.menu-btn.active span {background: rgba(0, 143, 138, 0.7);}
.menu-btn.active span:nth-child(1) {transform: translateY(0.7rem) rotate(45deg);}
.menu-btn.active span:nth-child(2) {opacity: 0;}
.menu-btn.active span:nth-child(3) {transform: translateY(-0.7rem) rotate(-45deg);}
.menu-btn.active.hover {background: #008f8a;}
.menu-btn.active.hover span {background: rgba(255, 255, 255, 1);}

/* menu */
.menu {z-index: 5;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(119, 201, 190, 0.95);
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s;
}

.menu.active {
  opacity: 1;
  visibility: visible;}

.menu_inner {
  display: flex;
  flex-direction: column;
  width: 80%;
max-width: 120rem;}

.menu_inner .category_ttl img {
  width:22.1rem;
  height:5.3rem;}

.menu_inner ul.category {
  font-size:1.6rem;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 120rem;
  margin: auto;
  padding: 4rem 0;
  border-bottom:2px solid rgba(255, 255, 255,0.75);}

.menu_inner ul.category li {margin: 0 0.5rem 2rem;}

.menu_inner ul.category li a {
  display: block;
  background: #fff;
  padding:1rem 2.6rem;
  border: 1px solid #008f8a;
  font-weight: bold;
  color: #008f8a;
  border-radius: 2.5rem; 
}

.menu_inner ul.category li a.current,
.menu_inner ul.category li a.hover{
  background: #008f8a;
  color: #fff;
}

.menu_inner .menu_contact {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.menu_inner .menu_contact h3 {
  font-size: 2.4rem;
  margin-top: 2rem;
  margin-bottom: 1.8rem;
  font-weight: bold;
}

.menu_inner .menu_contact p {
  font-size: min(4vw,1.6rem);
  line-height: 1.6;
  margin-bottom:4rem;
  text-align: center;
}

/*
.menu_inner .menu_contact div.tel {
  width: 50%;
  font-size:min(4.5vw,6rem);
  font-weight: bold;
  background: url(../images/common/icon_tel.png) no-repeat;
  background-size: 3.622rem 4.562rem;
  margin: 4rem auto 0;
  background-position: 0rem 3.5rem;
  padding: 0 1.5rem 0 5rem;
}
.menu_inner .menu_contact div.tel span {
  font-size:1.6rem;
  display: block;
}

.menu_inner .menu_contact div.tel p {
  font-size:1.6rem;
  font-weight: normal;
  margin:0.6rem 0 3.6rem;
}
*/

.menu_inner .menu_contact a.contact {
/*  background: #3c9896;
  font-size:min(2.3vw,2.5rem);
  width: 45%;*/
  
  display: flex;
  position: relative;
  background: url(../images/common/icon_mail.png) no-repeat #3c9896;
  background-size: 4.4rem 2.893rem;
  background-position: calc(50% - 6em) center;
  padding-left: 2em;
  font-size: 2.5rem;
  font-weight: bold;
  width: 48rem;
  height: 8rem;
  border-radius: 4rem;
  box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.2);
  text-align: center;
  margin: auto;
}

.menu_inner .menu_contact a.contact.hover {
  opacity: 0.8;
  box-shadow:none;
}


/* header
---------------------------------------------------------- */
h1.header {
  width: 100%;
  height: 35rem;
  padding: 0 4rem;
  background: url("../images/common/head.jpg");
  background-size: cover;
}

h1.header .header_inner {
  width:100%;
  max-width: 120rem;
  height: 35rem;
  margin: auto;
  display: flex;
  color: #fff;
  background: url(../images/common/head_works.png) no-repeat;
  background-position: left 55%;
  padding: 10rem 0 8rem;
  align-items: flex-start;
  justify-content: space-between;
  font-size: 2rem;
  font-weight: bold;
  flex-direction: column;
}

h1.header .header_inner span {
  display: block;
}

/* pankuzu
---------------------------------------------------------- */
div.pan {
  width: 100%;
  background: #008f8a;
  margin: auto;
  padding: 1.5rem 1rem 1rem 4rem;}

div.pan ul {
  width: 100%;
  max-width: 120rem;
  margin: auto;
  display: flex;
  flex-wrap: wrap;
}

div.pan ul li {
  font-size: 1.4rem;
  color: #fff;
  position: relative;
  padding-right: 3rem;
  margin-right: 0.8rem;
  margin-bottom: 0.5rem;
}
div.pan ul li a {font-size:1.4rem;color: #fff;}
div.pan ul li a.hover {opacity: 0.8;
  text-decoration: underline;
  
}

div.pan ul li::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 10%;
  width: 8px;
  height: 8px;
  opacity: 0.7;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg) translateY(-50%);
  transition: border-top 0.2s ease, border-right 0.2s ease;
  }

div.pan ul li:last-child::before {
  content: none;}


div.pan ul li.current {font-weight: bold;}



/* category
---------------------------------------------------------- */
.category-wrap {
  width:100%;
  background: #f0f8f7;
}

.category-wrap ul.category {
  font-size:1.6rem;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 120rem;
  margin: auto;
  padding: 5rem 5rem 3rem;
}

.category-wrap ul.category li {margin: 0 0.5rem 2rem;}

.category-wrap ul.category li a {
  display: block;
  background: #fff;
  padding:1rem 2.6rem;
  border: 1px solid #008f8a;
  font-weight: bold;
  color: #008f8a;
  border-radius: 2.5rem; 
}

.category-wrap ul.category li a.current,
.category-wrap ul.category li a.hover{
  background: #008f8a;
  color: #fff;
}

.category-wrap ul.category li a.current {box-shadow:0 0 1rem 0 rgba(0,0,0,0.2);}




/* archive index
---------------------------------------------------------- */
ul.archive_index {
  margin-bottom: 6rem;
  min-height: 30rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;gap: 6px 4px
}

ul.archive_index::after {
display: block;
content:"";
  width: calc(100% / 3);
}

ul.archive_index > li {
  width: calc((100% / 3) - 1rem);
  display: block;
  border-radius: 5px;
  background-color: rgb(252, 252, 252);
  box-shadow: 0 0 1.5rem 0 rgba(0, 0, 0, 0.2);
  margin-bottom: 6rem;}

ul.archive_index > li {opacity: 0;}

ul.archive_index > li a {
  display: block;
  padding: 1rem 1rem 2rem 1rem;}

ul.archive_index > li a.hover {opacity: 0.6;}

ul.archive_index li .thumb img {
  width: 100%;
  height: auto;
  border: 1px solid #f3f3f3;
  margin-bottom: 1.8rem;}

ul.archive_index li .thumb figcaption {
  font-weight: bold;
  font-size:1.8rem;
  margin-bottom:1.2rem;}

ul.archive_index li .thumb figcaption span {
  display: block;
  font-size:1.2rem;
  margin-bottom:0.2rem;}

ul.archive_index li .category_icon {
  display: inline-block;
  background: #3c9896;
  color:#fff;
  font-size:1.2rem;
  padding: 0.3rem 1rem 0.4rem;
  margin-bottom: 1rem;
  border-radius: 1.5rem;}


ul.tag {
  display: flex;
  flex-wrap: wrap;
  font-size:1.2rem;
  color: #999;
}
ul.tag li {margin-right: 1.5rem;
    margin-bottom: 0.2rem;}




/* pager
---------------------------------------------------------- */
ul.pager {
  width: 100%;
  max-width: 120rem;
  display: flex;
  justify-content: center;
  padding-top:3.5rem;
  border-top:1px dotted #b2b2b2;
  margin: auto;
  margin-bottom: 7rem;
  
}

ul.pager li {
  margin: 0.5rem;
}

ul.pager li a {
  font-size:1.6rem;
  display: flex;
  justify-content: center;
  align-items: center;
  width:3rem;
  height: 3rem;
  background: #9ed8d2;
  color:#fff;
}

ul.pager li a.hover {
  background: #1e7481;}

ul.pager li a.current {
  background: #1e7481;
}


/* contact
---------------------------------------------------------- */
.contact {
  width: 100%;
  background: url("../images/common/contents.png") no-repeat,#77c9be;
  background-size: 59rem auto;
  background-position: left -10rem bottom 5rem;
  display: flex;
  justify-content: center;
  align-items: center;
}
.contact_inner {
  width: 100%;
  max-width: 120rem;
  text-align: center;
  padding: 7.5rem 5rem 9rem;
}

.contact_inner h3 {
  font-size: 3.6rem;
  margin-bottom: 1.8rem;
  font-weight: bold;
}

.contact_inner p {
  line-height: 1.6;
    font-size: 2rem;
    margin-bottom: 4rem;}

.contact_inner div.tel {
  width: fit-content;
  font-size:4.2rem;
  font-weight: bold;
  background: url("../images/common/icon_tel.png") no-repeat;
  background-size: 2.7rem 3.521rem;
  margin: auto;
  background-position: 0rem 1rem;
  padding: 0 1.5rem;
}
.contact_inner div.tel p {
  font-size:1.6rem;
  font-weight: normal;
  margin-top: 0.6rem;
  margin-bottom: 3.6rem;
}

.contact_inner a.contact {
  display: flex;
  position: relative;
  background: url(../images/common/icon_mail.png) no-repeat #3c9896;
  background-size: 4.4rem 2.893rem;
  background-position: calc(50% - 6em) center;
  padding-left: 2em;
  font-size: 2.5rem;
  font-weight: bold;
  width: 48rem;
  height: 8rem;
  border-radius: 4rem;
  box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.2);
  text-align: center;
  margin: auto;
}

.contact_inner a.contact.hover {
  opacity: 0.8;
  box-shadow:none;
}



/* footer
---------------------------------------------------------- */
footer{
  color: #fff;
  background: #1b7775;
  position: relative;
  padding: 0;
  width: 100%;
  bottom: 0;
}

footer .footer_inner{
  width: 100%;
  max-width: 120rem;
  padding:3rem 1.5rem 2rem;
  margin: auto;
}

footer a.footer_logo {
  font-size: 1.4rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    margin: auto auto 3.5rem;
    width: fit-content;
}
footer a.footer_logo.hover {opacity:.7;}
footer a.footer_logo img {margin-right:2rem;}

footer p {}

footer ul.footer_nav {
  width: 100%;
  display: flex;
  font-size:1.2rem;
}
footer ul.footer_nav li {margin-right: 6rem;}
footer ul.footer_nav .copyright {
  margin-left: auto;margin-right: 0;
}

footer ul.footer_nav li a.hover {
  text-decoration: underline;
}
