
/* ==========================
   point-to-check
========================== */

picture img {
  display: block;
  margin: 0 auto;
}

.top-img{
    margin-bottom:25px;
}

.top-img img {
  display: block;
  width: 100%;
  height: auto;
}

.top-img picture {
  display: block;
}

.m-contents{
    margin-bottom:25px;
    padding:10px;
}

.m-contents-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  max-width:850px;
  margin:0 auto;
}

.p-pointCheckCard {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.m-contents-grid > div {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #e5e5e5;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  text-align: center;
}

.m-contents-grid img {
  width: 100%;
  height: auto;
  display: block;
}

.m-contents-grid h2 {
  
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.5;
}

.m-contents-grid > div > div {
  padding: 0 16px 20px;
  font-size: 1.4rem;
  line-height: 1.8;
  color: #666;
}

.p-pointCheckCard p {
    font-size: 1rem;
  }

.p-pointCheckCard__body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.p-pointCheckCard__body p {
  margin-top: auto;
}



/* SP */
@media (max-width: 768px) {
  .m-contents-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .m-contents-grid > div {
    border-radius: 12px;
  }

  .m-contents-grid h2 {
    padding: 12px 12px 6px;
    font-size: 1.5rem;
  }

  .m-contents-grid > div > div {
    padding: 0 12px 16px;
    font-size: 1.3rem;
  }
}

.m-contents-point {
  max-width: 850px;
  margin: 0 auto;
  
}

.m-point {
  margin-bottom: 24px;
  padding: 24px;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.m-point img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

.m-point p {
  margin-top: 20px;
  line-height: 1.8;
}



.l-container-sm{
    max-width:850px;
    margin:0 auto;
}

.cta-button{
    max-width:850px;
    margin: 0 auto;
}

.cta-button img {
    display: block;
}

/* 工事の流れ */
/* ==========================
   construction-flow.php
========================== */
.flow__wrap{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    align-items:stretch;
    max-width:850px;
    margin:0 auto;
}

.flow-step__head{
    display:flex;
    align-items:center;
    gap:12px;

    margin-bottom:12px;
}

.flow-step__head::before{
    content:"";

    width:50px;
    height:50px;

    flex-shrink:0;

    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;
}

/* ==========================
   STEP画像
========================== */

.flow-step--01 .flow-step__head::before{
    background-image:url('../img/flow/step01.png');
}

.flow-step--02 .flow-step__head::before{
    background-image:url('../img/flow/step02.png');
}

.flow-step--03 .flow-step__head::before{
    background-image:url('../img/flow/step03.png');
}

.flow-step--04 .flow-step__head::before{
    background-image:url('../img/flow/step04.png');
}

.flow-step--05 .flow-step__head::before{
    background-image:url('../img/flow/step05.png');
}

.flow-step--06 .flow-step__head::before{
    background-image:url('../img/flow/step06.png');
}

/* ==========================
   イラスト
========================== */

.flow-step--01 .flow-step__image{
    background-image:url('../img/flow/flow01.webp');
}

.flow-step--02 .flow-step__image{
    background-image:url('../img/flow/flow02.webp');
}

.flow-step--03 .flow-step__image{
    background-image:url('../img/flow/flow03.webp');
}

.flow-step--04 .flow-step__image{
    background-image:url('../img/flow/flow04.webp');
}

.flow-step--05 .flow-step__image{
    background-image:url('../img/flow/flow05.webp');
}

.flow-step--06 .flow-step__image{
    background-image:url('../img/flow/flow06.webp');
}

/* ==========================
   カード
========================== */

.flow-step{

    padding:0;

    background:#fff;

    border-radius:16px;

    overflow:hidden;

    box-shadow:
        0 4px 12px rgba(0,0,0,.05),
        0 1px 3px rgba(0,0,0,.08);

    transition:.3s;
}

.flow-step:hover{

    transform:translateY(-4px);

    box-shadow:
        0 12px 30px rgba(0,0,0,.10),
        0 4px 10px rgba(0,0,0,.06);
}



/* タイトル */

.flow-step__title{

    color:#2f9d2f;

    font-size:1rem;
    font-weight:700;

    line-height:1.4;

    margin-bottom:12px;
}

/* 本文 */

.flow-step__text{

    font-size:1rem;

    line-height:1.8;

    color:#333;

    margin-bottom:16px;
}

/* イラスト */

.flow-step__image{
    
    min-height:360px;
    padding:20px;
    background-repeat:no-repeat;
    background-position:center bottom;
    background-size:contain;
    position:relative;
    border-radius:12px;
}

.flow-step__image::before{

    content:"";

    position:absolute;

    top:0;
    left:0;
    right:0;

    height:45%;

    background:rgba(255,255,255,.30);

    border-radius:12px 12px 0 0;
}

.flow-step__title,
.flow-step__text{

    position:relative;
    z-index:1;
}

/* ==========================
   SP
========================== */

@media (max-width:767px){

    .flow{
        overflow:hidden;
    }

    .flow__wrap{

        display:flex;

        gap:16px;

        overflow-x:auto;

        scroll-padding-left:20px;

        scroll-snap-type:x mandatory;

        -webkit-overflow-scrolling:touch;
        overscroll-behavior-x:contain;
    }

    .flow__wrap::-webkit-scrollbar{
        display:none;
    }

    .flow-step{

        width:300px;
        min-width:300px;

        flex:none;

        scroll-snap-align:center;
    }

    .flow__scroll{

        display:block;

        margin-top:12px;

        text-align:center;

        font-size:1.2rem;

        color:#888;
    }

}

/* ==========================
   PC
========================== */

@media (min-width:768px){

    .flow__scroll{
        display:none;
    }

}


/* ==========================
   pdf-viewwer
========================== */

.p-document{

    max-width:900px;

    margin:80px auto;

}

.p-document__box{

    background:#fff;

    border-radius:24px;

    padding:48px;

    text-align:center;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

}

.p-document__icon{

    font-size:72px;

    margin-bottom:24px;

}

.p-document__title{

    font-size:28px;

    font-weight:700;

}

.p-document__text{

    margin:20px auto 40px;

    line-height:2;

    color:#666;

}

.p-document__buttons{
    display:flex;
    justify-content:center;
    gap:16px;
    margin-top:32px;
    flex-wrap:wrap;
}

.p-document__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:220px;
    height:54px;
    padding:0 28px;
    border-radius:999px;
    background:#00A9E0;
    color:#fff;
    font-size:16px;
    font-weight:700;
    text-decoration:none;
    transition:.2s;
}

.p-document__button:hover{
    background:#008fc0;
    transform:translateY(-2px);
}

.p-document__button.is-download{
    background:#444;
}

.p-document__button.is-download:hover{
    background:#222;
}

/* Payment */
.p-payment{
    padding: 0 0 80px;
}

.p-payment > picture{
    display: block;
}

.p-payment > picture img{
    display: block;
    width: 100%;
    height: auto;
}

.p-payment__inner{
    max-width: 850px;
    margin: 60px auto 0;
}

.p-payment__inner picture{
    display: block;
}

.p-payment__inner picture + picture{
    margin-top: 40px;
}

.p-payment__inner img{
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 768px){

    .p-payment{
        padding-bottom: 40px;
    }

    .p-payment__inner{
        max-width: none;
        margin: 30px 10px 0;
    }

    .p-payment__inner picture + picture{
        margin-top: 20px;
    }

}

/* ランキング */

.lp-ranking{
    padding:0 30px;
}

.lp-ranking .p-card{
    border: 2px solid #ffa600;
}

.p-rankingNote{

    margin: -10px 0 24px;
    text-align: center;
    font-size: 13px;
    line-height: 1.8;
    color: #777;

}
