/* header */
h1 img {
    width: 70px;
}

.header-inner {
    display: flex;
    justify-content: space-between;
    max-width: 1100px;
    margin: 0 auto;
    padding: 15px 15px;
}
@media screen  and (max-width:560px) {
    .header-inner {
        padding-top: 45px;
    }
    
}

.header-name,
.header-tel,.header-tel_sub {
    color: var(--main-color);
    font-weight: bold;
}

.header-name {
    font-size: 2.6rem;
}

.header-tel {
    font-size: 2.4rem;
}
.header-tel img{
    width: 31px;
    display: inline;
    margin-right: 7px;
}
.header-tel_sub{
    font-size: 1.6rem;
}
address{
    line-height: 1.2;
}
/* ハンバーガーメニュー部分 */
.drawer_hidden {
    display: none;
  }
@media screen and (max-width:560px) {
  /* ハンバーガーアイコンの設置スペース */
.drawer_open {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 29px;
    right: 30px;
    z-index: 100;/* 重なり順を一番上にする */
    cursor: pointer;
  }
  /* ハンバーガーメニューのアイコン */
.drawer_open span,
.drawer_open span:before,
.drawer_open span:after {
  content: '';
  display: block;
  height: 3px;
  width: 25px;
  border-radius: 3px;
  background: #333;
  transition: 0.5s;
  position: absolute;
}
/* 三本線の一番上の棒の位置調整 */
.drawer_open span:before {
    bottom: 8px;
  }
  
  /* 三本線の一番下の棒の位置調整 */
  .drawer_open span:after {
    top: 8px;
  }
  
  /* アイコンがクリックされたら真ん中の線を透明にする */
  #drawer_input:checked ~ .drawer_open span {
    background: rgba(255, 255, 255, 0);
  }
  
  /* アイコンがクリックされたらアイコンが×印になるように上下の線を回転 */
  #drawer_input:checked ~ .drawer_open span::before {
    bottom: 0;
    transform: rotate(45deg);
  }
  
  #drawer_input:checked ~ .drawer_open span::after {
    top: 0;
    transform: rotate(-45deg);
  }
    
  /* メニューのデザイン*/
  .main-nav {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 100%; /* メニューを画面の外に飛ばす */
    z-index: 99;
    transition: .5s;
    text-align: center;
    padding-top: 20px;
  }
/* アイコンがクリックされたらメニューを表示 */
#drawer_input:checked ~ .main-nav {
    left: 0;/* メニューを画面に入れる */
  }
}

@media screen and (min-width:560px) and (max-width:1023px) {
    .header-name {
        font-size: 2.8vw;
    }

    .header-tel {
        font-size: 2.6vw;
    }
    .header-tel img{
        width: 2.6vw;
    }
    .header-tel_sub{
        font-size: 1.6vw;
    }
}
@media screen and (max-width:560px) {
    .header-name {
        font-size: 2.2rem;
    }

    .header-tel {
        font-size: 2.2rem;
    }
    .header-tel img{
        width: 2.2rem;
    }
    .header-tel_sub{
        font-size: 1.4rem;
    }
    h1 img {
        width: 60px;
    }
}
/* main */
.main-nav {
    background-color: var(--main-color);
    overscroll-behavior-y: contain;
    overflow-y: auto;
}

.main-nav ul {
    display: flex;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
}

.main-nav ul li {
    width: calc(100% / 7);
    text-align: center;
    position: relative;
}

.main-nav ul li:not(:last-child):after {
    content: "";
    display: block;
    width: 1px;
    height: 23px;
    transform: translateY(-50%);
    background-color: #fff;
    position: absolute;
    top: 50%;
    left: 100%;
}

.main-nav ul li a {
    color: #fff;
    padding: 15px 20px;
    display: inline-block;
    font-size: 1.8rem;
}
@media screen and (max-width:560px){
    .main-nav ul{
        flex-direction: column;
        padding-top: 60px;
    }
    .main-nav ul li{
        width: 100%;
    }
    .main-nav ul li a{
        padding: 20px 20px;
        font-size: 2.2rem;
    }
    .main-nav ul li:not(:last-child):after {
        width: 280px;
        height: 1px;
        transform: translatex(-50%);
        top: 100%;
        left: 50%;
    }
}

@media screen and (min-width:560px) and (max-width:1024px) {
    .main-nav ul {
        max-width: 900px;
    }

    .main-nav ul li a {
        padding: 15% 4%;
        font-size: 1.6vw;
    }
}

.slider {
    margin-bottom: 80px!important;
}
.slick-slide img{
    display: block;
    width: 100%;
}
.update-area {
    max-width: 950px;
    height: 280px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    margin-bottom: 120px;
}
.news{
    width: 70%;
}
ul#newsList li {
    margin-bottom: 20px;
}
ul#newsList li span.catName{
  font-weight: bold;
  color: #F37D7F;
}
.twitter-tl{
    width: 30%;
    text-align: center;
    margin: 0 0 0 90px;
    overflow: hidden;
}
.info-area ul{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 40px;
    justify-items: center;
    align-items: center;
}
.info-area_item{
    background-color: var(--sub-color);
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.info-area_item a{
    color: var(--main-color);
    padding: 50px 80px 50px 50px;
    display: block;
    width: 100%;
    text-align: center;
    position: relative;
}
.info-area_item a::after{
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 80px;
    width: 11px;
    height: 11px;
    border-top: 2px solid var(--main-color);
    border-right: 2px solid var(--main-color);
    transform: rotate(45deg);
}
.info-area_item:hover{
    background-color: var(--main-color);
}
.info-area_item a:hover{
    color: #fff;
}
.info-area_item a:hover::after{
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}

@media screen and (max-width:1023px) {
    .update-area {
        padding: 0 30px;
        height: auto;
        flex-direction: column;
    }
    .news{
        width: 100%;
        height:250px;
        overflow-y: hidden;
    }
    .twitter-tl{
        width: 70%;
        height:460px;
        margin: 0 auto;
    }
}
@media screen and (max-width:767px) {
    .twitter-tl{
        width: 100%;
    }
    .info-area ul{
        grid-template-columns: auto;
    }

}
/* privacy policy */
.privacypolicy p {
margin-bottom: 60px;
}
/* footer */
.footer {
    background-color: var(--main-color);
    color: #fff;
    padding: 25px 0 0 0;
}

.footer-inner {
    max-width: 1040px;
    margin: 0 auto;
    padding: 80px 20px 40px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.footer-logo {
    text-align: center;
}

.footer-logo img {
    display: inline-block;
    width: 70px;
}

.footer .sns {
    display: flex;
    flex: 1;
}

.footer .sns a {
    margin-right: 15px;
}

.footer .sns img {
    width: 60px;
}

.footer-address-area {
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.footer-tel-area {
    text-align: right;
    flex: 1;
    line-height: 1.2;
}
.footer-tel-area a{
    color:#fff;
}

.footer-name,
.footer-tel {
    font-size: 2.9rem;
    font-weight: bold;
}
.footer-tel img{
    width: 30px;
    display: inline;
    margin-right: 7px;
}
.footer-tel_sub{
    font-size: 1.6rem;
}
.footer-nav {
    display: flex;
    justify-content: space-between;
    max-width: 1040px;
    margin: 0 auto 40px;
}

.footer-nav li {
    text-align: center;
    width: calc(100% / 7);
    position: relative;
}

.footer-nav li a {
    color: #fff;
    padding: 17px;
}

.footer-nav li:not(:last-child):after {
    content: "";
    display: block;
    width: 1px;
    height: 23px;
    transform: translateY(-50%);
    background-color: #fff;
    position: absolute;
    top: 50%;
    left: 100%;
}

.privacy-policy-link {
    color: #fff;
    text-align: center;
    margin-bottom: 50px;
}

.privacy-policy-link a {
    color: #fff;
    padding: 10px 65px 10px 45px;
    border: solid 1px #fff;
    display: inline-block;
    position: relative;
}

.privacy-policy-link a:after {
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 40px;
    width: 11px;
    /* くの字を山なりに見た時、左側の長さ */
    height: 11px;
    /* くの字を山なりに見た時、右側の長さ */
    border-top: 2px solid #fff;
    /* くの字を山なりに見た時、左側の太さと色 */
    border-right: 2px solid #fff;
    /* くの字を山なりに見た時、右側の太さと色 */
    transform: rotate(45deg);
    /* くの字の向き */
}

.footer-bottom {
    background-color: var(--sub-color);
    color: #999999;
    font-size: 1.2rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding: 25px 80px;
}

.footer-bottom_right {
    text-align: right;
}

@media screen and (min-width:560px) and (max-width:1023px) {

    .footer-inner .sns,
    .footer-inner .footer-address-area,
    .footer-inner .footer-tel-area {
        flex: 1;
    }

    .sns img {
        width: 7vw;
    }

    .footer-name,
    .footer-tel {
        font-size: 2.2rem;
    }
    .footer-tel_sub{
        font-size: 1.6vw;
    }
    .footer-adress{
        font-size: 1.6vw;
    }

    .footer-nav li a {
        padding: 15% 5%;
        font-size: 1.7vw;
    }

    .footer-bottom {
        padding: 25px 20px;
    }

}
@media screen and (max-width:559px) {
    .footer-inner{
        flex-direction: column-reverse;
        align-items: center;
        padding-top: 30px;
    }
    .footer-inner div{
        margin-bottom: 20px;
    }
    .footer .sns{
        justify-content: space-between;
        width: 45%;
    }
    .footer .sns a{
        margin-right: 0;
    }
    .footer-nav{
        flex-direction: column;
    }
    .footer-nav li {
        width: 100%;
        text-align-last: left;
        padding: 15px 30px;
    }
    .footer-nav li:not(:last-child):after{
    width: 100%;
    height: 1px;
    transform: translatex(50%);
    top: 100%;
    left: -50%;
    }
    .footer-bottom{
        padding: 25px 15px;
        flex-direction: column-reverse;
    }
}
/* 会社案内 */
.company-profile .section-inner{
max-width: 640px;
}
.president-image {
    text-align: center;
    padding-bottom: 30px;
}

.president-image img {
    display: inline;
}

.president-name {
    text-align: right;
}
.company-info .section-inner{
    max-width: 800px;
}
.company-info dl {
    display: flex;
    flex-wrap: wrap;
}

.company-info dt {
    width: 20%;
    text-align: right;
    padding: 15px 20px;
}

.company-info dd {
    width: 80%;
    padding: 15px 20px;
}
@media screen and (max-width:560px) {
    .company-info dl {
        flex-direction: column;
    }
    .company-info dt{
        width: 100%;
        text-align: left;
        padding-bottom: 5px;
    }
    .company-info dd{
        width: 100%;
        padding-top: 5px;
    }
}


.iframe-wrap {
    position: relative;
    width: 100%;
    padding-top: 47%;
    /* = height ÷ width × 100 */
}

.iframe-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.access {
    margin-bottom: 120px;
}

/* 取扱商品一覧 */
.products {
    text-align: center;
}

.products-note {
    text-align: center;
    margin-bottom: 120px;
}

.products-list {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 60px;
}

.products-list li {
    width: 100%;
    text-align: center;
    border: solid 1px #999999;
}

.products-list li p {
    padding-bottom: 15px;
}
@media screen and (max-width:560px) {
    .products-list {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* お問い合わせ */
.contact-form{
    display: flex;
    flex-wrap: wrap;
}
.form-item{
    display: flex;
    margin-bottom: 30px;
}
.form-label{
    width: 30%;
    text-align: right;
    padding-right: 20px;
}
.form-label_required{
    background: #c00;
    display: inline-block;
    margin-left: 0.5em;
    padding: 0.3em 0.5em;
    border-radius: 4px;
    color: #fff;
    font-size: 0.7em;
    font-weight: normal;
    line-height: 1;
}
.form-boby{
    width: 70%;
}
.form-boby input{
    width: 100%;
    padding: 10px 15px;
}
.form-boby textarea{
    width: 100%;
    min-height: 500px;
    max-width: 960px;
    padding: 15px 20px;
    resize: vertical;
    outline:none
}
.contact-note{
    text-align: center;
    margin-bottom: 120px;
}
.form_btn-area{
    margin-top: 50px;
    text-align: center;
}
@media screen and (max-width:560px) {
    .form-item{
        flex-direction: column;
    }
    .form-label{
        width: 100%;
        text-align: left;
    }
    .form-boby{
        width: 100%;
    }
    .contact-note{
        width: 80%;
        margin: 0 auto 120px;
    }
}
.submitBtn{
    -webkit-appearance: none;
    appearance: none;
    width: 90%;
    max-width: 300px;
    margin: 0 0 60px;
    padding: 15px;
    border: 0;
    border-radius: 50px;
    background: var(--main-color);
    color: #fff;
    cursor: pointer;
    transition: opacity .3s;
}
.submitBtn:hover {
    opacity: 0.7;
}
/* スタッフ */
.staff_list{
    display: grid;
    gap:40px 20px;
    grid-template-columns: repeat(4, 1fr);
    text-align: center;
}
.staff_list_item{
    margin-bottom: 40px;
}
.staff_list_item_name{
    font-size: 1.8rem;
    font-weight: bold;
    margin-bottom: 10px;
}
.staff_list_item_tx{
    text-align: justify;
}
.staff_list_item_imgctn{
    background-color: #aaa;
    margin-bottom: 20px;
}
.staff_list_item_imgctn img{
    object-fit: cover;
   aspect-ratio: 1/1.25;
    width: 100%;
}
@media screen and (max-width:560px){
    .staff_list{
        grid-template-columns: repeat(2, 1fr);
        gap:20px 10px;
    }
}

/* 施工事例 */
ul#gallery_list.products {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 60px 20px;
    margin:0 0 0 -20px;
}
ul#gallery_list.products li:nth-child(4n+2){ 
    margin-right: 40px;
}
ul#gallery_list .img-container{
    object-fit: cover;
    aspect-ratio: 1/1.25;
    width: 100%;
    height: 280px;
    margin-bottom: 10px;
}
ul#gallery_list .img-container img{
    width: 100%;
    height: auto;
    aspect-ratio: 1/1.25;
    object-fit: cover;
}
ul#gallery_list .detail_text{
text-align: center;
}
@media screen and (max-width:560px) {
    ul#gallery_list{
        grid-template-columns: repeat(2,1fr);
        margin: 0;
    }
    ul#gallery_list li:nth-child(4n+2){ 
        margin-right: 0;
    }
    ul#gallery_list .img-container{
        height:auto;
    }
}
/* ウイルス対策 */
.measure .section-inner{
    max-width: 640px;
}
.measure h3{
    text-align: center;
    margin-bottom: 30px;
}
.measure ul{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap:40px 20px;
    min-height: 600px;
}
.measure ul li img{
width: 100%;
height: 100%;
object-fit: cover;
}
@media screen and (max-width:767px) {
    .measure ul{
        grid-template-columns: repeat(2,1fr);
        min-height: 800px;
}
}
span.newMark {
    display: inline-block;
    background-color: red;
    color: #fff;
    padding: 0px 5px;
    border-radius: 7px;
    font-size: 1.4rem;
    margin-left: 4px;
}