/* 共通箇所 */
html {
    visibility: hidden;
}
html.wf-active,
html.loading-delay {
    visibility: visible;
}
:root{
    --white:#fffffa;
    --base__color:#F9F9E0;
    --light__base:#FFFFF6;
    --heavy__base:#CCCCA0;
    --heavy__base2:#9a9a7e;
    --red:#E60A14;
    --deep__red:#BE191E;
    --logo__font:#585757;
    --font__color:#212121;
    --light__gray:#f2f2f2;
    --orange:#FFBC88;
    --heavy__orange:#EF7212;
    --pink:#EEB8B8;
    --heavy__pink:#E57575;
    --blue:#9CC0D1;
    --heavy__blue:#4D8098;
    --green:#ADD2A4;
    --heavy__green:#6BA25E;
    --box__shadow:rgba(135, 135, 135, 0.5);
}
h1{
    font-size: 3.052rem;
    line-height: 1.8em;
}
h2{
    font-size: 2.441rem;
    line-height: 1.3em;
}
h3{
    font-size: 1.953rem;
    line-height: 1.8em;
}
h4{
    font-size: 1.563rem;
    line-height: 1.8em;
}
h5{
    font-size: 1.25rem;
    line-height: 1.8em;
}
p{
    font-size: 1rem;
    line-height: 1.8em;
    letter-spacing: 0.04em;
}
small{
    font-size: 0.8rem;
    line-height: 1.8em;
}
.small{
    font-size: 0.8em;
    line-height: 1.8em;
}

body{
    font-family: "noto-sans-cjk-jp", sans-serif;
    font-weight: 500;
    font-style: normal;
    line-height: 1.8em;
    color:var(--font__color);
}
.title__wrap{
    width:100%;
    max-width: 1500px;
    padding:1em 0;
    margin:0 auto;
}
.title{
    width:fit-content;
    max-width: 80vw;
    padding:0.5em 2em;
    font-size: 1.8em;
    font-weight: 700;
    letter-spacing: 0.2em;
    z-index: 1;
    position: relative;
    margin:0 auto;
    color:var(--logo__font);
    background:var(--heavy__base);
    border-radius: 2em;
    text-align: center;
}

.left__button{
    display:flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color:var(--logo__font);
    width:50px; height: 50px;
    border-radius: 50%;
    background:rgba(250, 250, 250, 0.8);
    position:absolute;
    top:45%; left:-10px;
    z-index:1;
}
.right__button{
    display:flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color:var(--logo__font);
    width:50px; height: 50px;
    border-radius: 50%;
    background:rgba(250, 250, 250, 0.8);
    position:absolute;
    top:45%; right:-10px;
    z-index:1;
}
.scroll{
    -webkit-overflow-scrolling: touch;
}
.c-txt {
    cursor: pointer;
    transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}
.c-txt.line {
    padding-bottom: 2px;
    position: relative;
}
.c-txt.line::before {
    background: var(--deep__red);
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    bottom: 0;
    margin: auto;
    transform-origin: center top;
    transform: scale(0, 1);
    transition: transform .3s;
}
.c-txt.line:hover::before {
    transform-origin: center top;
    transform: scale(1, 1);
}

.c-txt.line2 {
    padding-bottom: 2px;
    position: relative;
}
.c-txt.line2::before {
    background: var(--red);
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    bottom: 0;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform .3s;
}
.c-txt.line2:hover::before {
    transform-origin: left top;
    transform: scale(1, 1);
}

/* お問い合わせの切り替え ＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊*/
.contact__main{
    min-height: 100vh;
    padding:100px 1em 0 1em;
    background:var(--base__color);
}
.change__buttons{
    width:100%;
    max-width: 600px;
    text-align: center;
    margin:2em auto;
}
.contact__change__button{
    display:grid;
    grid-template-columns: 1fr 1fr;
    padding:1em;
    gap:1em;
}
.change__buttons form{
    width:fit-content;
    background:var(--white);
    border-radius: 1em;
    padding:1em ;
    margin:1em auto;
    box-shadow: 0px 0px 20px var(--box__shadow);
}
.change__button{
    width:100%;
    padding:0.5em 1em;
    border-radius: 2em;
    box-shadow: 0px 0px 10px var(--box__shadow);
    font-weight: 700;
    color:var(--white);
    transition: all 0.3s;
}
.change__button:nth-child(1){
    background:var(--deep__red);
}
.change__button:nth-child(1):hover{
    background:var(--heavy__base);
    color:var(--deep__red);
    box-shadow: none;
}
.change__button:nth-child(2){
    background:var(--heavy__orange);
}
.change__button:nth-child(2):hover{
    background:var(--heavy__base);
    color:var(--heavy__orange);
    box-shadow: none;
}
.contact__main .change__button{
    font-size: 1.8rem;
}
/* お問い合わせのページ＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊ */
.contact__mv{
    width:100%;
    background:var(--base__color);
    padding:2em 1em;
}
.ask__tel__inner{
    width:50%;
    max-width: 500px;
    margin:0 auto;
    padding:1em 2em;
    text-align: center;
    position: relative;
    z-index: 1;
    background:var(--white);
    border-radius: 100px;
    box-shadow: 0px 0px 20px var(--box__shadow);
}
.ask__tel__inner a{
    font-size: 2rem;
    margin:1em;
    line-height: 2em;
    z-index: 1;
}
.ask__wrap{
    width:100%;
    background: var(--base__color);
    padding:2em 0;
}
.form__wrap{
    padding:0 1em;
}
.form__wrap form{
    width:100%;
    max-width: 1000px;
    margin:2em auto;
    padding:2em 0;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap:1em;
    border-radius: 2em;
    box-shadow: 0px 0px 20px var(--box__shadow);
}
.ask__item{
    width:80%;
    padding:0 1em;
}
.ask__line{
    width:100%;
    height: 10px;
    background-image: linear-gradient(to right, var(--heavy__base), var(--heavy__base) 10px, transparent 10px);
    background-size: 20px 3px;
    background-position: left bottom;
    background-repeat: repeat-x;
}
input[type=text],input[type=email],input[type=tel]{
    width:20em;
    border:1px solid var(--logo__font);
    border-radius: 5px;
    padding:0.5em;
    white-space: wrap;
}
textarea{
    width:100%;
    height:20em;
    border: 1px solid var(--logo__font);
    border-radius: 5px;
    padding:0.5em;
}
.max{
    color:var(--deep__red);
}
.check__btn{
    width:fit-content;
    background: var(--deep__red);
    color:#fff;
    padding:0.5em;
    margin:0 auto;
    border-radius: 5px;
    box-shadow: 0px 0px 10px var(--box__shadow);
    text-align: center;
    transition: all 0.3s;
}
.check__btn:hover{
    transform: translateY(5px);
    box-shadow: none;
}
.submit{
    width:fit-content;
    background:var(--logo__font);
    color:#fff;
    padding:0.5em;
    margin:0 auto;
    border-radius: 5px;
    box-shadow: 0px 0px 10px var(--box__shadow);
    text-align: center;
    transition: all 0.3s;
}
.submit__able{
    background: var(--deep__red);
}
.submit__able:hover{
    transform: translateY(5px);
    box-shadow: none;
}
.form__title{
    display:flex;
    align-items: center;
    font-size: 1.563rem;
    line-height: 1.8em;
    gap:0.5em;
}
.form__title label{
    display: flex;
    gap:0.5em;
    align-items: center;
}
.require{
    line-height: 1em;
    padding:0.1em 0.5em 0.2em 0.4em;
    font-size: 0.8rem;
    background:var(--deep__red);
    color: var(--white);
    border-radius: 1em;
}
input:invalid{
    border:1px solid var(--red);
}
.form__alert{
    background:var(--pink);
}
.form__alert::placeholder{
    color: var(--deep__red);
}
.modal{
    width:80%;
    max-width: 1500px;
    padding:1em;
    border-radius: 2em;
}
.modal__inner{
    width:fit-content;
    margin:0 auto;
}
.modal h3{
    text-align: center;
}
.modal h4{
    width:fit-content;
}
.modal p{
    width:fit-content;
    word-break: break-word;
    background:var(--base__color);
    padding:0.5em 1em;
    border-radius: 10px;
}
.modal form{
    margin:1em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap:1em;
}
.privacy__check{
    display: flex;
    align-items: center;
    justify-content: center;
}
.form__button{
    display:flex;
    gap:1em;
}
.close__modal{
    width:fit-content;
    background: var(--light__gray);
    color:var(--font__color);
    padding:0.5em;
    margin:0 auto;
    border-radius: 5px;
    box-shadow: 0px 0px 10px var(--box__shadow);
    text-align: center;
    transition: all 0.3s;
}
.close__modal:hover{
    transform: translateY(5px);
    box-shadow: none;
}
.check__main .contact__mv{
    padding:2em 1em;
}

/* お問い合わせの確認ページ（送信）＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊ */
.check__guide{
    width:100%;
    padding:100px 1em 2em 1em;
    background:var(--base__color);
}
.check__guide h3{
    text-align: center;
    margin:0.5em 0 ;
}
.check__guide__inner{
    width:fit-content;
    padding:1em;
    margin:2em auto;
    background:#fff;
    border-radius: 1em;
}
.check__wrap{
    width:100%;
    max-width: 1500px;
    margin:2em auto;
    padding:1em;
    border-radius: 2em;
}
.check__inner{
    width:100%;
    max-width: 1000px;
    margin:0 auto;
}
.check__inner h4{
    width:fit-content;
}
.check__inner p{
    width:fit-content;
    word-break: break-word;
    background:var(--base__color);
    padding:0.5em 1em;
    border-radius: 10px;
    margin-bottom:1em;
}
.under__line5{
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-decoration-skip-ink: none;
    text-underline-offset: 3px;
    text-decoration-color: var(--deep__red);
}
/* 相見積もり請求フォーム＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊ */
.contact__flex{
    display: flex;
    flex-wrap: wrap;
    gap:1em;
    margin:1em 0;
    align-items:center ;
    justify-content: center;
}
.contact__grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:1em;
    margin:1em 0;
}
.flex__column{
    height: 100%;
    display:flex;
    flex-direction: column;
    gap:1em;
    align-items: center;
}
.align__left{
    justify-content: start;
}
.checkbox__box{
    appearance: none;
    display:none;
}
.checkbox__label div{
    border:2px solid var(--heavy__base);
    padding:1em;
    border-radius: 1em;
    cursor: pointer;
}
.checkbox__label:hover div{
    background:var(--heavy__base);
}
.checkbox__label .checkbox__box:checked + div{
    border:2px solid var(--orange);
    background:var(--orange);
}
.checkbox__button{
    position: relative;
    margin-right: 0.5em;
    width: 16px;
    height: 16px;
    border: 1px solid var(--logo__font);
    border-radius: 50%;
    vertical-align: -2px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.checkbox__button:checked::before{
    position: absolute;
    top:50%; left:50%;
    transform:translate(-50%, -50%);
    width:12px;
    height:12px;
    border-radius: 50%;
    background:var(--heavy__orange);
    content:"";
}
.checkbox__img{
    width:100%;
    min-width: 200px;
    max-height: 100px;
    object-fit:fill;
}
/* 画像のアップロード */
.upload__drop__box{
    width:100%;
    border:3px dashed var(--orange);
    border-radius: 1em;
    background:var(--light__base);
    margin:1em 0;
    padding:1em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 0.3s;
}
.dragover{
    background:var(--base__color);
    border:3px solid var(--heavy__orange);
}
.upload__img{
    padding:0.5em 0;
    cursor: pointer;
}
.upload__img::file-selector-button{
    color:var(--font__color);
    width:fit-content;
    padding:0.5em 1em;
    background:var(--orange);
    border: none;
    border-radius: 0.5em;
    box-shadow: 3px 3px 3px var(--heavy__base);
    transition: all 0.3s;
}
.upload__img::file-selector-button:hover{
    box-shadow: none;
    transform: translateY(3px);
}
.remove__btn{
    cursor: pointer;
    color:var(--font__color);
    width:fit-content;
    padding:0.5em 1em;
    background:var(--blue);
    border-radius: 0.5em;
    box-shadow: 0px 0px 10px var(--box__shadow);
    transition: all 0.3s;
    margin:1em 0;
}
.remove__btn:hover{
    transform: translateY(3px);
    box-shadow: none;
}
.img__preview{
    width:100%;
    padding:1em;
    display:grid;
    grid-template-columns: repeat(auto-fit,minmax(300px,1fr));
}
.img__preview img{
    width:300px;
    margin:1em;
}
.alert{
    width:fit-content;
    color:var(--deep__red);
    background:var(--pink);
    line-height: 2em;
    padding:0.5em 1em;
    border-radius: 0.5em;
    margin:0.5em 0;
}
.modal__inner img{
    width:100%;
    max-width:300px;
    margin:1em;
}
/* 進むと現れるアニメーション */
.form__animation{
    transform: translateY(-200px);
    opacity: 0;
    animation: form__animation 0.6s ease-in forwards;
}
@keyframes form__animation {
    0%{
        opacity: 0;
        transform: translateY(-200px);
    }
    60%{
        opacity: 0;
    }
    100%{
        transform: translateY(0);
        opacity: 1;
    }
}
/* 相見積もりの送信結果表示ページの内容＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊ */
.send__road__images{
    display: grid;
    width:100%;
    padding:1em;
    display:grid;
    grid-template-columns: repeat(auto-fit,minmax(300px,1fr));
}
.send__road__images img{
    width:300px;
    margin:1em;
}

/* 送信時のローディングアニメーション＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊ */
.loading{
    position: fixed;
    top:0; left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.5);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}
.loader {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: solid 8px;
    border-color: var(--heavy__base) var(--deep__red) var(--deep__red);
    position: relative;
    animation-name: spin;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* レスポンシブ */

@media screen and (max-width: 1300px){
    .head h2{
        width:fit-content;
        padding:0.5em 5em;
    }
    .br__hidden1{
        display: block;
    }
    .explain__inner{
        grid-template-columns: 1fr 3rem 1fr 3rem 1fr;
    }
    .explain__inner2{
        grid-template-columns: 1fr 3rem 1fr 3rem 1fr;
    }
    .explain__inner i{
        font-size: 3rem;
    }
    .simuration{
        flex-direction: column;
    }
    .simuration__inner{
        width:90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    .company__info{
        width:80%;
    }
}

@media screen and (max-width:1000px) {
    .br__hidden2{
        display:none;
    }
    .head h2{
        width:fit-content;
        padding:0.5em 3em;
    }
    .head p{
        width:100%;
        padding:1em;
        margin:0 auto;
    }
    .head p::after{
        transform: skewX(0deg);
    }
    .explain__inner{
        grid-template-columns: 1fr 2rem 1fr 2rem 1fr;
    }
    .explain__inner2{
        grid-template-columns: 1fr 2rem 1fr 2rem 1fr;
    }
    .explain__inner i{
        font-size: 2rem;
    }
    .merit{
        width:80%;
        margin:1em auto;
    }
    .buy__mv__wrap{
        flex-direction: column;
    }
    .buy__mv__inner{
        padding:1em 0;
    }
    .buy__point{
        position:static;
        width:fit-content;
        margin:0 auto;
        border-radius: 0 0 20px 20px;
        padding:0 2em;
    }
    .about__company__section{
        width:100%;
        margin: 2em;
    }
    .ask__tel__inner{
        width:100%;
    }
    .ask__item{
        width:100%;
    }
}

@media screen and (max-width:800px){
    .head h2{
        text-align: center;
        margin:0 auto;
        width:100%;
        font-size: 1.8rem;
        padding:1em;
    }
    .head h2::after{
        transform: skewX(0deg);
    }
    .resp__pc{
        display: none;
    }
    .resp__sp{
        display: block;
    }
    .simuration img{
        width:100%;
        margin:0 auto;
    }
    .simuration__inner{
        width:100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    .explain__inner{
        display:grid;
        grid-template-columns: 1fr;
        grid-template-rows: 1fr auto 5rem 1fr auto 5rem 1fr auto;
        padding:1em 2em;
    }
    .explain__inner i{
        font-size: 5rem;
        height:5rem;
        transform: rotate(90deg);
    }
    .remove__table th{
        font-size: 1rem;
    }
    .replace__table th{
        font-size: 1rem;
        padding:0.5em;
    }
    .replace__table td{
        padding:0 0.5em;
    }
    .replace__table i{
        padding:1em 0;
    }
    .merit{
        width:90%;
        margin:1em auto;
    }
    .summary__illust{
        display: none;
    }
    .inspection__mv__inner{
        flex-direction: column;
    }
    .inspection__mv__inner img{
        width:100%;
    }
    .qa__inner{
        display: grid;
        grid-template-columns: 50px 1fr;
        margin:1em 0;
    }
    .question__no , .ans__no{
        width:2rem;
        font-size: 1rem;
        margin:0 auto;
        padding:0.5em;
        border-radius: 10px;
        color:#fff;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .about__company__section h4{
        margin:0;
        width: fit-content;
    }
    .about__company__section p{
        width:fit-content;
        margin:1em;
    }
    .company__info{
        width:98%;
        padding:1em;
    }
    .company__info table{
        width:100%;
    }
    .company__info table th{
        font-size: 1rem;
    }
    .about__company__mv{
        padding:1em;
    }
    .about__company__mv img{
        width:100%;
        margin:1em auto;
    }
    .modal{
        width:98%;
        padding:1em;
        border-radius: 2em;
    }
    .img__preview{
        width:100%;
        padding:1em;
        display:flex;
        flex-direction: column;
    }
    .img__preview img{
        width:100%;
        margin:1em 0;
    }
    .send__road__images{
        width:100%;
        padding:1em;
        display: flex;
        flex-direction: column;
    }
    .send__road__images img{
        width:100%;
        margin:1em 0;
    }
    .form__button{
        display:flex;
        flex-direction: column;
        gap:1em;
    }
    .contact__change__button{
        display:flex;
        flex-direction: column;
    }

}
@media screen and (max-width:550px){
    h1{
        font-size: 1.802rem;
    }
    h2{
        font-size: 1.602rem;
    }
    h3{
        font-size: 1.424rem;
    }
    h4{
        font-size: 1.266rem;
    }
    h5{
        font-size: 1.125rem;
    }
    p{
        font-size: 1rem;
        letter-spacing: 0.04em;
    }
    small{
        font-size: 0.8rem;
    }
    .title{
        padding:0.5em;
        max-width: none;
    }
    input[type=text],input[type=email],input[type=tel]{
        width:100%;
    }
    .form__wrap{
        padding:0;
    }
    .contact__main{
        padding:80px 0.5em;
    }
    .ask__tel__inner a{
        font-size: 1.6rem;
    }
    .modal form{
        flex-direction: column;
    }
    .contact__main .change__button{
        font-size: 1.2rem;
    }
    .contact__grid{
        display:flex;
        flex-direction: column;
    }
}
