/*
Theme Name: 
Theme URI: https://
Author: hamanosp.com
Author URI: https://hamanosp.com/
Description: これはオリジナルのWordPressテーマです
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
@charset "utf-8";
/* A Modern CSS Reset */

*,*::before,*::after{
    box-sizing:border-box;
}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{
    margin:0
}
ul[role="list"],ol[role="list"]{
    list-style:none
}
html:focus-within{
    scroll-behavior:smooth
}
body{
    min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5
}
a:not([class]){
    text-decoration-skip-ink:auto
}
img,picture{
    max-width:100%;display:block
}
input,button,textarea,select{
    font:inherit
}
@media(prefers-reduced-motion:reduce){
    html:focus-within{
        scroll-behavior:auto
    }
    /* *,*::before,*::after{
        animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important
    } */
}
table{
    border-collapse:collapse
}

/* グローバル変数の定義（色の変数など） */
:root {
    --white: #fff;
    --black: #211715;
    --green: #00AE9C;
    --dark_green: #006357;
    --ash_green: #6B8A87;
    --gray: #9B9B9B;
    --light_gray: #EBF3F2;
    --border_gray: #dce0e4;
    --base_text: #333333;
    --btn_green: linear-gradient(151deg, #c6e049 7%, #01ac97 51%);
    --main-font: "Noto Sans JP", sans-serif;
    --mincho:"Zen Old Mincho", serif;
    --roboto: "Roboto", serif;
    --montserrat: "Montserrat", sans-serif;
    --oswald: "Oswald", sans-serif;
}
*{
    margin: 0;
    padding: 0;
}
html { 
    font-size: 62.5%; 
}
body { 
    font-size: 1.6rem; /*font-size : 16px と同等*/
    font-family: var(--main-font);
    font-optical-sizing: auto;
    font-style: normal;
    color: var(--base_text);
    /* position: relative; */
} 

h2{
    font-size: 3rem;
    letter-spacing: 0.06em;
}
h3{
    font-size: 2rem;
}
li{
    list-style: none;
}
a{
    text-decoration: none;
    color: var(--black);
}

/* --------------------------------
    共通パーツ
-------------------------------- */
.bg_white{
    background-color: var(--white);
}
.bg_light_green{
    background-color: var(--light_green);
}
.text_color_green{
    color: var(--green);
}
.text_color_white{
    color: var(--white);
}
.flex_box{
    display: flex;
    align-items: center;
}
.vertical_contents{
    flex-direction: column;
}
.wrap_contents{
    flex-wrap: wrap;
}
.notes_info{
    flex-direction: column;
}
.pc_only{
    display: block;
}
.sp_only{
    display: none;
}
.page_link_btn{
    /* background-image: var(--btn_green); */
    background: var(--btn_green);
    padding: 8px 38px;
    border-radius: 10px;
    /* max-width: 140px; */
    width: 100%;
    margin: 10px 0 0;
}
.page_link_btn:hover{
    opacity: .7;
}
/* .page_link_btn a{
    color: var(--white);
    font-size: 1.6rem;
} */
.page_link_btn p{
    color: var(--white);
    font-size: 1.6rem;
}
.scrollbar_text {
    display: inline-block;
    position: absolute;
    /* bottom: 30%;
    left: 46px;
    transform: translateX(-50%); */
    padding: 80px 10px 10px;
    font-size: 1rem;
    font-family: var(--montserrat);
    line-height: 1;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    writing-mode: vertical-lr;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.scrollbar_text span{
    font-weight: 600;
    letter-spacing: 0.06em;

    order: 1; /* 文字を上に */
}
.scrollbar {
    position: absolute;
    right: 50%;
    transform: translateX(-50%);
    top: 0;
    /* bottom: 1px; */
    background-color: var(--white);
    width: 1px;
    height: 72px;

    order: 2; /* 線を下に */
}
.scrollbar::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 1px;
    height: 72px;
    background-color: var(--green);
    animation: liner 2.5s cubic-bezier(1, 0, 0, 1) infinite;
}
/* スクロールダウンアニメーション */
@keyframes liner {
    0% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }
    30% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }
    70% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }
    100% {
        transform: scale(1, 0);
        transform-origin: 0 100%;
    }
}


/* --------------------------------
    header
-------------------------------- */
.header{
    width: 100%;
    height: auto;
}
.header_inner{
    width: 96%;
    border-radius: 14px;
    justify-content: space-between;
    background-color: var(--white);
    position: fixed;
    z-index: 99999;
    top: 16px;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    padding: 16px 24px 16px 20px;
    /* box-shadow: 2px 2px 4px var(--light_gray); */
}
/* 共通：最初はSP用を非表示に */
.contact_spmenu {
    display: none;
}


/* --------------------------------
    共通パーツ
-------------------------------- */
/* .page_link_btn{
    background-image: var(--btn_green);
    padding: 8px 38px;
    border-radius: 10px;
    max-width: 140px;
    width: 100%;
    margin: 10px 0 0;
}
.page_link_btn a{
    color: var(--white);
    font-size: 1.6rem;
} */
/* .pdf_btn{
    max-width: 1080px;
    width: 100%;
    margin: 0 auto;
    justify-content: space-between;
    padding: 0 0 50px;
}
.poster_btn{
    border: 1px solid var(--btn_green);
    border-radius: 20px;
    max-width: 492px;
    width: 100%;
    padding: 26px 0 30px;
    justify-content: center;
}
.poster_btn a{
    color: var(--btn_green);
    font-size: 2.2rem;
} */
/* .flex_box{
    display: flex;
    align-items: center;
}
.notes_info{
    flex-direction: column;
}
.vertical_contents{
    flex-direction: column;
} */
.cta_block{
    max-width: 1000px;
    width: 100%;
    margin: 94px auto 0;
}
.contact_header{
    max-width: 1036px;
    width: 100%;
    background-color: var(--dark_green);
    border-radius: 30px 30px 0 0;
    justify-content: center;
    padding: 30px 0 28px;
    /* margin: 0 auto 36px; */
    position: relative;
}
.contact_header p{
    color: var(--white);
    font-size: 2rem;
    margin: 0 10px;
}
.contact_header img{
    position: absolute;
    bottom: 0;
}
.contact_header .worker{
    max-width: 96px;
    width: 100%;
    left: 196px;
    /* left: 16%; */
}
.contact_header .salesman{
    max-width: 104px;
    width: 100%;
    right: 196px;
    /* right: 16%; */
}
/* まずはお気軽にお問い合わせください！ */
.contact_info{
    /* max-width: 1068px; */
    width: 100%;
    border-radius: 20px;
    background-color: var(--white);
    padding: 14px 16px 48px;
    margin: 96px auto 0;
}
.shop_list{
    /* max-width: 958px; */
    width: 100%;
    justify-content: space-between;
    margin: 0 auto;
    background-color: var(--white);
    padding: 24px 74px 28px;
}
.shop{
    max-width: 300px;
    width: 100%;
    align-items: flex-start;
    padding: 0 0 0 2em;
    border-left: 2px solid var(--light_gray);
}
.shop_name{
    font-weight: bold;
    letter-spacing: 0.08em;
}
.tel_number{
    width: 100%;
}
.tel_number img{
    max-width: 27px;
    width: 100%;
}
.tel_number p{
    font-size: 3.6rem;
    font-family: var(--roboto);
    font-weight: bold;
}
.opening_hours{
    font-weight: 300;
    font-size: 1.5rem;
}
.include_banner{
    max-width: 530px;
    width: 100%;
    justify-content: space-between;
    padding: 0 1em 0 0;
}
.include_banner .shop{
    padding: 0;
    border: none;
}
.line_banner{
    max-width: 190px;
    width: 100%;
}
.line_banner.sp{
    display: none;
}
.is_bottom{
    width: 100%;
    background-color: var(--light_gray);
    justify-content: center;
    padding: 24px 0 22px;
    border-radius: 0 0 30px 30px;
}
.is_bottom a{
    display: contents;
}
.page_link_btn.for_contact{
    margin: 0;
}
.for_contact{
    max-width: 485px;
    width: 100%;
    border-radius: 50px;
    padding: 24px;
    justify-content: space-between;
}
.for_contact .mail_icon{
    max-width: 40px;
    width: 100%;
}
.for_contact p{
    padding: 0 .5em 0;
}
.for_contact .arrow_icon{
    max-width: 6px;
    width: 100%;
}


/* --------------------------------
    footer
-------------------------------- */
.footer{
    width: 100%;
    height: auto;
    /* margin: 60px auto; */
    padding: 60px 0 0;
    background: linear-gradient(
        to right,
        #FFFFFF 0%,
        #F1FCFB 40%,
        #E4FDFF 89%
    );
    position: relative;
}
.footer_wrapper{
    max-width: 1160px;
    width: 100%;
    margin: 0 auto;
    padding: 0 24px;
}
.footer_contents{
    padding: 0 0 20px;
}
.footer_info{
    width: 70%;
    align-items: flex-start;
}
.footer_logo{
    max-width: 240px;
    width: 100%;
}
.footer_info .comapny_name{
    font-weight: bold;
    letter-spacing: 0.06em;
}
.footer_info .shop_detail{
    width: 50%;
    align-items: flex-start;
    padding: 14px 0 0;
}
.footer_info .shop_detail p{
    font-weight: 300;
    font-size: 1.5rem;
    letter-spacing: 0.06em;
}
.footer_info .address{
    padding: 0;
}
.footer_link{
    width: 30%;
    align-items: flex-end;
    padding: 120px 0 0;
}
.footer_link ul{
    align-items: flex-end;
}
.footer_link li{
    line-height: 2.2;
    letter-spacing: 0.08em;
    font-weight: bold;
}
.footer_info .instagram_link img{
    max-width: 16px;
    width: 100%;
}
.footer_banner{
    max-width: 194px;
    width: 100%;
    margin: 24px 0 0;
}
.privacy_plicy,
.copyright{
    font-size: 1.3rem;
    color: var(--black);
    line-height: 2.2;
}
.privacy_plicy{
    border-bottom: 1px solid var(--black);
}
.town_illustration{
    padding: 46px 0 0;
}
#to_top_btn{
    max-width: 68px;
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 100;
}


/* 404ページ */
.error{
    margin: 0 auto;
    max-width: 768px;
    padding: 6em 2em 2em;
}
.error a{
    border-bottom: 1px solid var(--green);
    color: var(--green);
    margin: 0.5em 0 0;
    display: inline-block;
}

@media screen and (max-width: 1200px) {
    .contact_header .worker {
        left: 12px;
    }
    .contact_header .salesman {
        right: 12px;
    }
}

@media screen and (max-width: 1024px) {
    .pc_only{
        display: none;
    }
    .sp_only{
        display: block;
    }

    .contact_info {
        padding: 0 0 48px;
    }
    .contact_header {
        border-radius: 10px;
    }
    .contact_header .sp_flex_box{
        text-align: center;
        font-size: 1.6rem;
    }
    .contact_header .sp_flex_box span{
        display: block;
    }
    .contact_header .worker {
        max-width: 76px;
        left: 12px;
    }
    .contact_header .salesman {
        max-width: 80px;
        right: 12px;
    }
    .contact_header::after{
        /* 擬似要素のスタイル */
        content: '';
        position: absolute;
        /* 親要素の真下に配置 */
        bottom: -15px;
        left: 50%;
        transform: translateX(-50%);
        /* 三角形を作成 */
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 16px 16px 0 16px;
        border-color: var(--dark_green) transparent transparent transparent;
    }
    .shop_list {
        flex-direction: column;
        padding: 24px 34px 28px;
    }
    .shop {
        padding: 1em 0 0;
        border-left: none;
        border-top: 2px solid var(--light_gray);
    }
    .include_banner {
        padding: 0 0 1em;
        flex-direction: column;
    }
    .line_banner{
        display: none;
    }
    .line_banner.sp{
        display: block;
        max-width: 240px;
        width: 100%;
        margin: 1em 0 0;
    }
    .is_bottom {
        padding: 24px 20px 22px;
    }

    .footer_contents{
        flex-direction: column;
    }
    .footer_contents .contens_box{
        flex-direction: column;
    }
}

@media screen and (min-width: 1025px) {
    .header_logo{
        display: block;
    }
    .header_logo img{
        max-width: 180px;
        width: 100%;
    }
    .global_nav{
        max-width: 694px;
        width: 100%;
        justify-content: space-between;
    }
    .global_nav ul{
        max-width: 414px;
        width: 100%;
        justify-content: space-between;
    }
    .contact_pcmenu{
        max-width: 176px;
        width: 100%;
        max-width: 244px;
        width: 100%;
        display: flex; /* PCでは表示 */
        justify-content: space-between;
        border-radius: 50px;
        background: linear-gradient(151deg, #c6e049 7%, #01ac97 51%);
        padding: 10px 26px;
    }
    .contact_pcmenu:hover{
        cursor: pointer;
        opacity: .7;
    }
    .contact_pcmenu img{
        max-width: 16px;
        width: 100%;
        height: 12px;
        /* margin: 6px 0 0; */
    }
    .contact_pcmenu a{
        color: var(--white);
    }
    .contact_spmenu {
        display: none; /* SP用は非表示 */
    }
    .global_nav .sp_header_text{
        display: none; /* SP用は非表示 */
    }
}

@media screen and (max-width: 1024px) {
    .header_inner{
        border-radius: 6px;
        background-color: rgba(255, 255, 255, 0);
        top: 14px;
        padding: 0;
    }
    .header_logo img{
        max-width: 114px;
    }
    .header.open{
        width: 100%;
        /* height: 100vh; */
        height: 100%;
        background: rgba(255, 255, 255, 0.3); /* 半透明にする */
        backdrop-filter: blur(10px);          /* 背景をぼかす */
        -webkit-backdrop-filter: blur(10px);  /* Safari対応 */
        overflow: scroll;
        overflow-y: scroll;
        background-color: rgba(255, 255, 255, 0.7);
        position: fixed;
        z-index: 99999;
        top: 0;
        background-image: url(../img/menu_glass.png);
        background-position: top center;
        background-repeat: no-repeat;
        background-size: contain;
    }
    .sp_header_menu{
        width: 100%;
        justify-content: space-between;
        border-radius: 6px;
        justify-content: space-between;
        background-color: var(--white);
        padding: 1em;
    }
    .hamburger_btn{
        /* display: block; */
        position: fixed;
        position: relative;
        position: initial;
        /* top: 0;
        right: 0; */
        /* z-index: 999; */
        /* width: 72px;
        height: 72px; */
        transition: all .5s;
        cursor: pointer;
        background-color: #fff;
    }
    /* .hamburger_btn.open{
        position: relative;
    } */
    .hamburger_btn span {
        /* display: block; */
        /* position: absolute;
        top: 26px;
        left: 50%;
        transform: translateX(-50%); */
        width: 28px;
        height: 2px;
        transition: all .5s;
        background-color: var(--base_text);
        margin: 3px;
        
        /* position: relative; */
    }
    .hamburger_btn.open span{
        transform: translate(0px, 10px) rotate(45deg);
    }
    .hamburger_btn span:nth-child(2) {
        top: 36px;
    }
    .hamburger_btn.open span:nth-child(2){
        opacity: 0;
    }
    .hamburger_btn span:nth-child(3) {
        top: 46px;
    }
    .hamburger_btn.open span:nth-child(3) {
        transform: translate(0px, -6px)  rotate(-45deg);
    }
    .header_inner.open{
        width: 96%;
        margin: 0 auto;
        padding: 8px 8px 6px 8px;
        width: 100%;
        padding: 0 1%;
        background-color: rgba(255, 255, 255, 0.3);
        height: 100%;
        overflow-y: scroll;
    }
    .global_nav{
        display: none;
    }
    .global_nav.open{
        width: 100%;
        display: flex;
        align-items: flex-start;
        /* padding: 0 0 0 50px; */
        flex-direction: column;
        height: auto;
        overflow-y: auto;
    }
    .global_nav.open ul{
        width: 100%;
        align-items: flex-start;
        flex-direction: column;
        background: rgba(255, 255, 255, 0); /* 半透明にする */
        margin: 40px auto;
        padding: 0 0 0 30px;
    }
    .global_nav.open li{
        padding: 12px;
        font-weight: 600;
        letter-spacing: 0.06em;
    }
    .contact_pcmenu {
        display: none; /* PC用は非表示 */
    }
    .global_nav.open .contact_spmenu {
        display: block; /* ハンバーガー開いたときだけ表示 */
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        background-color: var(--white);
        border-radius: 6px 6px 0 0;
        padding: 28px 28px 32px 32px;
    }
    .contact_spmenu .vertical_text{
        writing-mode: vertical-rl;
        font-size: 1.8rem;
        font-weight: 500;
        letter-spacing: 0.2em;
        margin: 0 .4em 0 0;
    }
    .contact_spmenu .tel_number img{
        max-width: 22px;
        width: 100%;
    }
    .global_nav.open .sp_header_text{
        padding: 16px 0;
        width: 100%;
    }
    .notes_info{
        align-items: flex-start;
        width: 90%;
    }
    .notes_info .vertical_contents {
        align-items: flex-start;
    }
    .notes_info .vertical_contents.tokachi_area{
        margin: 30px 0 0;
    }
    .shop_name {
        font-size: 1.4rem;
    }
    .tel_number p {
        font-size: 3rem;
    }
    .contact_spmenu .opening_hours {
        font-size: 1.2rem;
    }
    .contact_spmenu .for_contact {
        padding: 16px 24px;
    }
    .for_contact p {
        font-size: 1.4rem;
    }
    .global_nav.open .contact_spmenu.lower{
        background: var(--btn_green);
        border-radius: 0 0 6px 6px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .global_nav.open .contact_spmenu.lower .page_link_btn{
        background: var(--white);
        width: 268px;
        
    }
    .global_nav.open .contact_spmenu.lower .page_link_btn p{
        color: var(--base_text);
    }
}

@media screen and (max-width: 1024px) {
    .hamburger_menu{
        /* display: none; */
        visibility: hidden;
        transition: .5s ease;
        width: 100%;
        height: 100vh;
        /* height: 100%; */
        background-color: var(--white);
        position: fixed;
        top: 0;
        right: -100%;
        /* overflow: scroll; */
        overflow-y: scroll;
        z-index: 998;
    }
    .hamburger_menu.open{
        z-index: 998;
        top: 0;
        right: 0;
        visibility: visible;
    }

    /* .footer_wrapper {
        padding: 0;
    } */
    .footer_info {
        width: 100%;
    }
    .footer_info .shop_detail {
        width: 100%;
    }
    .footer_info p {
        font-size: 1.6rem;
    }
    .footer_info .big {
        font-size: 2rem;
    }
    .footer_contents .address{
        text-align: start;
    }
    .footer_link{
        width: 100%;
        padding: 60px 0 0;
    }
    .footer_link ul {
        display: none;
    }
    .footer_banner {
        margin: 0 auto;
    }
    .privacy_plicy,
    .copyright{
        text-align: center;
    }
    .copyright{
        font-size: 1.2rem;
    }

}

@media screen and (max-width: 768px) {
    .contact_info {
        padding: 0 0 48px;
    }
    .contact_header {
        border-radius: 10px;
    }
    .contact_header .sp_flex_box{
        text-align: center;
        font-size: 1.6rem;
    }
    .contact_header .sp_flex_box span{
        display: block;
    }
    .contact_header .worker {
        max-width: 76px;
        left: 12px;
    }
    .contact_header .salesman {
        max-width: 80px;
        right: 12px;
    }
    .shop_list {
        flex-direction: column;
    }
}

@media screen and (max-width: 440px) {
    /* .contact_spmenu .mail_icon{
        max-width: 60px;
        width: 100%;
    } */
    .contact_header .sp_flex_box{
        font-size: 1.4rem;
    }
    .contact_header .worker {
        max-width: 56px;
        left: 0;
    }
    .contact_header .salesman {
        max-width: 60px;
        right: 8px;
    }
}

@media screen and (max-width: 390px) {
    .footer .footer_contents .text p {
        font-size: 1.2rem;
    }
    .footer .footer_contents .text .big {
        font-size: 1.4rem;
    }

    #to_top_btn {
        bottom: 6px;
    }
}