@charset 'UTF-8';

/* ==========================================================================
  TOP 流用
========================================================================== */

/*トップページブログ*/

.blog
{
    position: relative;
    z-index: 10;

    margin: 8% auto;
}

.blog .en
{
    font-family: 'Noto Serif JP', serif;
    font-size: 2.0em;

    position: relative;

    padding: 30px;

    text-align: center;
}

.blog .en::after
{
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    width: 50px;
    margin: auto;

    content: '';

    border-bottom: 2px solid #000;
}

.blog .title
{
    font-family: 'Noto Serif JP', serif;

    padding: 20px;

    text-align: center;
}

.blog .blogwaku
{
    padding: 20px;

    background: #fdf5df;
}

.blog .blogbox
{
    width: 21%;
    max-width: 260px;
    margin: 0 2%;
    padding: 0;

    text-align: center;

    background: #fff;
}

.blog .blogbox img
{
    width: 100%;
    height: auto;
}

.blog .blogbox .Txt
{
    line-height: 1.8em;

    padding: 20px;
}

.blog .blogbox .Txt p
{
    line-height: 1.6em;
}

.blog .blogbox .Txt .cat
{
    font-size: 1.2rem;

    text-align: left;
}

.blog .blogbox .Txt .day
{
    font-size: 1.3rem;

    text-align: left;
}

.blog .blog_btn
{
    width: 70%;
    max-width: 320px;
    margin: 5% auto 3%;
}

.blog .blog_btn a
{
    position: relative;

    display: block;

    margin: 0 auto;
    padding: 10px;

    text-align: center;

    color: #ef857d;
    border: 1px solid #ef857d;
    border-radius: 30px;
}

.blog .blog_btn a::after
{
    position: absolute;
    top: 50%;
    left: 15px;

    width: 16px;
    height: 16px;
    margin-top: -8px;

    content: '';
    transform: rotate(45deg);

    border-top: solid 1px #ef857d;
    border-right: solid 1px #ef857d;
}

.blog .marul
{
    position: absolute;
    z-index: 10;
    top: -30%;
    left: -2%;

    width: 30%;
}

.blog .marur
{
    position: absolute;
    z-index: 10;
    right: 2%;
    bottom: -15%;

    width: 20%;
}

.insta
{
    position: relative;

    margin: 5% auto;

    text-align: center;
}

.insta h2
{
    position: relative;
    z-index: 1;

    margin-bottom: 72px;
}

.insta h2::after
{
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;

    width: 112px;
    height: 99px;

    content: '';

    background: url('../img/top/insta_title_bk.svg') no-repeat center center / contain;

    translate: 60px -50%;
}

.insta .instagram
{
    display: grid;

    width: min(calc(100% - 40px),1143px);
    margin: 0 auto;

    grid-template-columns: repeat(4,1fr);
    gap: calc(calc(44/1143) * 100%);
}

.insta .insta_btn a
{
    font-size: 21px;
    font-weight: 200;

    display: flex;

    width: 358px;
    height: 50px;
    margin: 60px auto 0;
    padding-left: 63px;

    color: #231815;
    background: url('../img/top/insta_btn_bk.png') no-repeat center center / cover;

    align-items: center;
}

.insta .insta_btn a::before
{
    width: 31px;
    height: 31px;
    margin-right: 3px;

    content: '';

    background: url('../img/top/insta_icon.svg') no-repeat center center / cover;

    flex-shrink: 0;
}

@media (max-width: 767px)
{
    .insta
    {
        margin: 15% auto;
    }
    .insta h2
    {
        margin-bottom: 50px;
    }
    .insta h2::after
    {
        translate: 2em -50%;
    }
    .insta .instagram
    {
        grid-template-columns: repeat(2,1fr);
    }
    .insta .insta_btn a
    {
        font-size: 1.7rem;

        width: min(calc(100% - 20px),358px);
        padding-left: 0;

        border-radius: 15px;

        justify-content: center;
    }
}

@media only screen and (min-width:1px) and (max-width: 960px)
{
    .blog .blogwaku
    {
        padding: 15px;
    }
    .blog .blogbox
    {
        width: 23%;
        max-width: 260px;
        margin: 0 1%;
        padding: 0;

        text-align: center;

        background: #fff;
    }
}

@media only screen and (min-width:1px) and (max-width: 768px)
{
    .blog .blogbox
    {
        display: flex;

        width: 98%;
        max-width: inherit;
        margin: 10px 1%;
        padding: 0;

        justify-content: center;
        flex-wrap: wrap;
    }
    .blog .blogbox .photo
    {
        width: 30%;
    }
    .blog .blogbox .Txt
    {
        width: 70%;
    }
    .btnmail a
    {
        max-width: 150px;
    }
    .backhouse
    {
        position: absolute;
        right: -20%;
        bottom: -5%;

        width: 78%;
    }
}

@media only screen and (min-width:1px) and (max-width: 480px)
{
    .blog .blogbox .Txt
    {
        width: 70%;
        padding: 10px;
    }
}

/* ==========================================================================
  TOP
========================================================================== */

.homePage
{
    width: min(calc(100% - 40px),1100px);
    padding-bottom: 75px;

    margin-inline: auto;
}

.homePage .spShow
{
    display: none;
}

.homePage .pcShow
{
    display: inline-block;
}

.homePage img
{
    max-width: 100%;
    height: auto;

    vertical-align: bottom;

    backface-visibility: hidden;
}

.homePage a:hover
{
    opacity: .8;
}

.homePage .topNews
{
    display: flex;

    max-width: 900px;
    margin: 53px auto 0;
    padding: 0 70px 15px;

    background: url('../img/top/news_arrow.svg') no-repeat center bottom / 100% auto;

    justify-content: center;
    align-items: center;
    gap: 0 72px;
}

.homePage .topNews > h2
{
    font-size: 2.5rem;
    line-height: 1;

    letter-spacing: .1em;

    flex-shrink: 0;
}

.homePage .topNews .newsBox a
{
    display: flex;

    color: #231815;

    justify-content: center;
    align-items: center;
}

.homePage .topNews .newsBox a:hover
{
    opacity: .8;
}

.homePage .topNews .newsBox h2
{
    font-size: 1.7rem;

    display: grid;

    height: 38px;
    margin-right: 60px;
    padding: 0 14px;

    border: 1px solid #231815;

    place-content: center;
    flex-shrink: 0;
}

.homePage .topNews .newsBox .time
{
    font-size: 1.7rem;

    margin-right: 1em;

    letter-spacing: .1em;

    flex-shrink: 0;
}

.homePage .topNews .newsBox .text
{
    font-size: 1.7rem;

    letter-spacing: .1em;
}

.homePage .homeSecTitle
{
    font-size: 3.3rem;

    position: relative;

    letter-spacing: .1em;
}

.homePage .homeSecTitle::before
{
    position: absolute;
    z-index: -1;
    left: 50%;

    content: '';

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

.homePage .serviceSec
{
    margin-top: 106px;
}

.homePage .serviceSec .homeSecTitle
{
    margin-bottom: 20px;
}

.homePage .serviceSec .homeSecTitle::before
{
    top: -42px;

    width: 240px;
    height: 154px;
    margin-left: -300px;

    background-image: url('../img/top/service_title_bk.png');
}

.homePage .serviceSec .toptext
{
    font-size: 1.7rem;
    font-weight: 500;
    line-height: 1.76;

    max-width: 859px;

    text-align: center;
    letter-spacing: .075em;

    margin-inline: auto;
}

.homePage .serviceSec .row
{
    display: grid;

    width: -moz-fit-content;
    width:      fit-content;
    margin-top: 40px;

    margin-inline: auto;
    grid-template-columns: repeat(4,1fr);
    gap: 13px;
}

@media (max-width:1000px)
{
    .homePage .serviceSec .row
    {
        grid-template-columns: repeat(2,1fr);
    }
}

.homePage .serviceSec .stationLink
{
    max-width: 263px;
}

.homePage .serviceSec .stationLink a
{
    display: grid;

    height: 100%;

    color: #fff;

    grid-template-columns: 100%;
    grid-template-rows: auto;
}

.homePage .serviceSec .stationLink .imgBox
{
    z-index: 1;

    overflow: hidden;

    border-radius: 12px;

    grid-column: 1;
    grid-row: 1;
}

.homePage .serviceSec .stationLink .imgBox img
{
    width: 100%;
}

.homePage .serviceSec .stationLink .textBox
{
    z-index: 2;

    margin-top: 175px;
    padding: 11px;

    border-radius: 0  0 12px 12px;
    background: #f29600;

    grid-column: 1;
    grid-row: 1;
}

.homePage .serviceSec .stationLink h2
{
    font-size: 2.25rem;
    line-height: 1.16;

    min-height: 2.3em;
    margin-bottom: 12px;

    text-align: center;
    letter-spacing: .075em;
}

.homePage .serviceSec .stationLink .text
{
    font-size: 1.5rem;
    line-height: 1.33;
}

.homePage .stationListSec
{
    margin-top: 97px;
}

.homePage .stationListSec .homeSecTitle
{
    margin-bottom: 50px;
    padding-left: 1em;

    letter-spacing: .2em;
}

.homePage .stationListSec .homeSecTitle::before
{
    top: -60px;

    width: 239px;
    height: 144px;
    margin-left: -158px;

    background-image: url('../img/top/station_title_bk.png');
}

.homePage .stationListSec .row
{
    display: grid;

    max-width: 1092px;

    margin-inline: auto;
    grid-template-columns: repeat(3,1fr);
    gap: 16px 18px;
}

.homePage .stationListSec .stationLinkBox a
{
    display: grid;

    grid-template-columns: 100%;
    grid-template-rows: auto 1fr;
}

.homePage .stationListSec .stationLinkBox .tm
{
    z-index: 1;

    grid-column: 1;
    grid-row: 1;
}

.homePage .stationListSec .stationLinkBox .type
{
    font-size: 1.3rem;
    line-height: 1.23;

    z-index: 2;

    padding: 7px 9px;

    letter-spacing: .08em;

    color: #fff;
    background: rgba(35,24,21,.55);

    grid-column: 1;
    grid-row: 1;
    align-self: end;
}

.homePage .stationListSec .stationLinkBox h2
{
    font-family: 'Noto Sans','Noto Sans JP','Noto Sans CJK JP',sans-serif;
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.17;

    padding: 9px 12px;

    text-align: left;
    letter-spacing: .075em;

    color: #231815;

    grid-column: 1;
    grid-row: 2;
}

.homePage .stationListSec .stationLinkBox h2 span
{
    font-size: 1.2rem;

    display: block;
}

.homePage .stationListSec .more
{
    font-size: 2.2rem;

    display: grid;

    width: 391px;
    height: 48px;
    margin: 55px auto 0;

    text-align: center;
    letter-spacing: .2em;

    color: #70bb2c;
    border: 1px solid #70bb2c;
    border-radius: 23px;

    place-content: center;
}

.homePage .insta
{
    margin-top: 95px;
}

.homePage .insta .homeSecTitle
{
    margin-bottom: 50px;

    letter-spacing: .2em;
}

.homePage .insta .homeSecTitle::before
{
    top: -52px;

    width: 236px;
    height: 133px;
    margin-left: -9px;

    background-image: url('../img/top/insta_title_bk.png');
}

.homePage .insta .homeSecTitle::after
{
    display: none;
}

.homePage .insta .toptext
{
    font-size: 1.7rem;
    line-height: 1.76;

    margin-bottom: 30px;

    text-align: center;
    letter-spacing: .025em;
}

.homePage .blog
{
    margin-top: 120px;
}

.homePage .blog .inner
{
    padding: 0;
}

.homePage .sectionRow
{
    position: relative;
    z-index: 10;

    display: grid;

    margin-top: 58px;

    grid-template-columns: 1fr 1fr;
    gap: 0 20px;
}

.homePage .rowSection
{
    display: flex;

    flex-flow: column;
}

.homePage .rowSection .img
{
    margin-bottom: 34px;

    order: 1;
}

.homePage .rowSection h2
{
    font-size: 2.7rem;

    display: flex;

    margin-bottom: 20px;

    text-align: center;
    letter-spacing: .1em;

    order: 2;
    justify-content: center;
    align-items: center;
    margin-inline: auto;
}

.homePage .rowSection p
{
    font-size: 1.7rem;
    font-weight: 500;
    line-height: 1.76;

    text-align: center;
    letter-spacing: .025em;

    order: 3;
}

.homePage .rowSection .more
{
    font-size: 2.2rem;

    display: grid;

    width: 391px;
    height: 48px;
    margin: 30px auto 0;

    text-align: center;
    letter-spacing: .2em;

    color: #70bb2c;
    border: 1px solid #70bb2c;
    border-radius: 23px;

    order: 4;
    place-content: center;
}

.homePage .omoi h2
{
    width: 349px;
    height: 72px;

    background: url('../img/top/omoi_title_bk.png') no-repeat center center / cover;
}

.homePage .serviseIntroduction h2
{
    width: 345px;
    height: 70px;

    background: url('../img/top/service_intoroduction_title_bk.png') no-repeat center center / cover;
}

.homePage .pageLink
{
    display: grid;

    margin-top: 80px;

    grid-template-columns: repeat(3,1fr);
    gap: 25px clamp( 20px, calc( -259px + 31vw ), 82px );
}

.homePage .pageLink .hasImg
{
    display: grid;

    grid-template-columns: 100%;
    grid-template-rows: auto;
}

.homePage .pageLink .hasImg .img
{
    z-index: 1;

    margin-bottom: 28px;

    grid-column: 1;
    grid-row: 1;
}

.homePage .pageLink .hasImg p
{
    font-size: clamp( 20px, calc( -11.500000000000004px + 3.5000000000000004vw ), 27px );

    z-index: 2;

    display: flex;

    max-width: 284px;
    height: 77px;

    letter-spacing: .025em;

    color: #231815;
    background: url('../img/top/pagelink_bk.png') no-repeat center center / cover;

    grid-column: 1;
    grid-row: 1;
    align-self: end;
    align-items: center;
    justify-content: center;
    gap: 0 1em;
}

.homePage .pageLink .hasImg p::after
{
    content: '>';
}

.homePage .pageLink .noImg
{
    display: flex;

    height: 100%;

    justify-content: center;
    align-items: center;
}

.homePage .pageLink .noImg p
{
    font-size: clamp( 27px, calc( 0px + 3vw ), 33px );

    position: relative;
    z-index: 1;

    color: #231815;
}

.homePage .pageLink .noImg p::before
{
    position: absolute;
    z-index: -1;
    top: -26px;
    left: 50%;

    width: 236px;
    height: 133px;
    margin-left: -80px;

    content: '';

    background: url('../img/top/pagelink_bk2.png') no-repeat center center / contain;
}

.homePage .pageLink li:nth-child(3) .hasImg p
{
    letter-spacing: 0;

    gap: 0 .2em;
}

/* ==========================================================================
   end
========================================================================== */

@media only screen and (max-width: 767px)
{
    /* ==========================================================================
  TOP
========================================================================== */
    .homePage
    {
        width: calc(calc(335/375) * 100vw);
        padding-bottom: calc(calc(50/375) * 100vw);

        margin-inline: auto;
    }
    .homePage .spShow
    {
        display: inline-block;
    }
    .homePage .pcShow
    {
        display: none;
    }
    .homePage img
    {
        width: 100%;
    }
    .homePage .topNews
    {
        max-width: none;
        margin: calc(calc(12/375) * 100vw) auto 0;
        padding: 0 calc(calc(25/375) * 100vw) calc(calc(6/375) * 100vw) calc(calc(8/375) * 100vw);

        flex-flow: column;
        justify-content: flex-start;
        align-items: center;
        gap: calc(calc(8/375) * 100vw) 0;
    }
    .homePage .topNews > h2
    {
        font-size: 1.2rem;
    }
    .homePage .topNews .newsBox
    {
        width: 100%;
    }
    .homePage .topNews .newsBox a
    {
        justify-content: flex-start;
    }
    .homePage .topNews .newsBox h2
    {
        font-size: .9rem;

        height: calc(calc(14/375) * 100vw);
        margin-right: calc(calc(10/375) * 100vw);
        padding: 0 calc(calc(6/375) * 100vw);

        border: calc(calc(1/375) * 100vw) solid #231815;
    }
    .homePage .topNews .newsBox .time
    {
        font-size: 1rem;
    }
    .homePage .topNews .newsBox .text
    {
        font-size: 1rem;
    }
    .homePage .homeSecTitle
    {
        font-size: 1.7rem;
    }
    .homePage .serviceSec
    {
        margin-top: calc(calc(30/375) * 100vw);
    }
    .homePage .serviceSec .homeSecTitle
    {
        margin-bottom: calc(calc(15/375) * 100vw);
    }
    .homePage .serviceSec .homeSecTitle::before
    {
        top: calc(-1 * calc(calc(18/375) * 100vw));

        width: calc(calc(104/375) * 100vw);
        height: calc(calc(63/375) * 100vw);
        margin-left: calc(-1 * calc(calc(152/375) * 100vw));

        background-image: url('../img/top/sp_service_title_bk.png');
    }
    .homePage .serviceSec .toptext
    {
        font-size: 1.1rem;
        line-height: 1.54;

        max-width: none;
    }
    .homePage .serviceSec .row
    {
        width: 100%;
        margin-top: calc(calc(10/375) * 100vw);

        grid-template-columns: 100%;
        gap: calc(calc(4/375) * 100vw);
    }
    .homePage .serviceSec .stationLink
    {
        max-width: none;
    }
    .homePage .serviceSec .stationLink a
    {
        grid-template-columns: 1fr 1fr;
    }
    .homePage .serviceSec .stationLink .imgBox
    {
        overflow: hidden;

        border-radius: calc(calc(12/375) * 100vw) 0 0 calc(calc(12/375) * 100vw);

        grid-column: 1;
    }
    .homePage .serviceSec .stationLink .imgBox img
    {
        width: 100%;
        height: 100%;

        -o-object-fit: cover;
           object-fit: cover;
    }
    .homePage .serviceSec .stationLink .textBox
    {
        margin-top: 0;
        padding: calc(calc(8/375) * 100vw);

        border-radius: 0 calc(calc(12/375) * 100vw) calc(calc(12/375) * 100vw) 0;

        grid-column: 2;
    }
    .homePage .serviceSec .stationLink h2
    {
        font-size: 1.5rem;
        line-height: 1.1;

        min-height: 2em;
        margin-bottom: calc(calc(8/375) * 100vw);

        text-align: left;
        letter-spacing: 0;
    }
    .homePage .serviceSec .stationLink .text
    {
        font-size: 1rem;
        line-height: 1.2;
    }
    .homePage .stationListSec
    {
        margin-top: calc(calc(33/375) * 100vw);
    }
    .homePage .stationListSec .homeSecTitle
    {
        margin-bottom: calc(calc(24/375) * 100vw);
        padding-left: 0;
    }
    .homePage .stationListSec .homeSecTitle::before
    {
        top: calc(-1 * calc(calc(21/375) * 100vw));

        width: calc(calc(97/375) * 100vw);
        height: calc(calc(56/375) * 100vw);
        margin-left: calc(-1 * calc(calc(72/375) * 100vw));

        background-image: url('../img/top/sp_station_title_bk.png');
    }
    .homePage .stationListSec .row
    {
        max-width: none;

        grid-template-columns: 100%;
        gap: calc(calc(8/375) * 100vw);
    }
    .homePage .stationListSec .stationLinkBox a
    {
        display: grid;

        grid-template-columns: calc(calc(166/375) * 100vw) 1fr;
        grid-template-rows: auto 1fr;
        gap: 0 calc(calc(7/375) * 100vw);
    }
    .homePage .stationListSec .stationLinkBox .tm
    {
        grid-column: 1;
        grid-row: 1 / 3;
    }
    .homePage .stationListSec .stationLinkBox .type
    {
        font-size: 1.1rem;
        line-height: 1.18;

        padding: 0 calc(calc(10/375) * 100vw);

        letter-spacing: .08em;

        color: #000;
        background: none;

        grid-column: 2;
        grid-row: 2;
        align-self: start;
    }
    .homePage .stationListSec .stationLinkBox h2
    {
        font-size: 1.5rem;

        display: flex;

        min-height: calc(calc(39/375) * 100vw);
        margin-bottom: calc(calc(10/375) * 100vw);
        padding: calc(calc(3/375) * 100vw) calc(calc(11/375) * 100vw);

        text-align: left;

        border-radius: calc(calc(19/375) * 100vw);
        background: #f1f9c7;

        grid-column: 2;
        grid-row: 1;
        justify-content: center;
        align-items: flex-start;
        flex-flow: column;
    }
    .homePage .stationListSec .stationLinkBox h2 span
    {
        font-size: 1rem;
    }
    .homePage .stationListSec .more
    {
        font-size: 1.4rem;

        width: calc(calc(242/375) * 100vw);
        height: calc(calc(30/375) * 100vw);
        margin: calc(calc(25/375) * 100vw) auto 0;

        border: calc(calc(1/375) * 100vw) solid #70bb2c;
        border-radius: calc(calc(15/375) * 100vw);
    }
    .homePage .insta
    {
        margin-top: calc(calc(45/375) * 100vw);
    }
    .homePage .insta .homeSecTitle
    {
        margin-bottom: calc(calc(20/375) * 100vw);
    }
    .homePage .insta .homeSecTitle::before
    {
        top: calc(-1 * calc(calc(30/375) * 100vw));

        width: calc(calc(120/375) * 100vw);
        height: calc(calc(70/375) * 100vw);
        margin-left: calc(-1 * calc(calc(2/375) * 100vw));

        background-image: url('../img/top/sp_insta_title_bk.png');
    }
    .homePage .insta .toptext
    {
        font-size: 1.1rem;
        line-height: 1.54;

        margin-bottom: calc(calc(20/375) * 100vw);

        text-align: center;
    }
    .homePage .blog
    {
        margin-top: calc(calc(25/375) * 100vw);
    }
    .homePage .blog .inner
    {
        padding: 0;
    }
    .homePage .blog .marul,
    .homePage .blog .marur
    {
        display: none;
    }
    .homePage .sectionRow
    {
        margin-top: calc(calc(25/375) * 100vw);

        grid-template-columns: 100%;
        gap: calc(calc(30/375) * 100vw);
    }
    .homePage .rowSection .img
    {
        margin-bottom: calc(calc(20/375) * 100vw);
    }
    .homePage .rowSection h2
    {
        font-size: 1.7rem;

        margin-bottom: calc(calc(12/375) * 100vw);
    }
    .homePage .rowSection p
    {
        font-size: 1.1rem;
        line-height: 1.54;

        order: 3;
    }
    .homePage .rowSection .more
    {
        font-size: 1.4rem;

        width: calc(calc(242/375) * 100vw);
        height: calc(calc(30/375) * 100vw);
        margin: calc(calc(13/375) * 100vw) auto 0;

        border: calc(calc(1/375) * 100vw) solid #70bb2c;
        border-radius: calc(calc(15/375) * 100vw);
    }
    .homePage .omoi h2
    {
        width: calc(calc(211/375) * 100vw);
        height: calc(calc(43/375) * 100vw);

        background: url('../img/top/sp_omoi_title_bk.png') no-repeat center center / cover;
    }
    .homePage .serviseIntroduction h2
    {
        width: calc(calc(212/375) * 100vw);
        height: calc(calc(42/375) * 100vw);

        background: url('../img/top/sp_service_intoroduction_title_bk.png') no-repeat center center / cover;
    }
    .homePage .pageLink
    {
        display: grid;

        width: calc(calc(323/375) * 100vw);
        margin: calc(calc(30/375) * 100vw) auto 0;

        grid-template-columns: repeat(2,1fr);
        gap: calc(calc(20/375) * 100vw) calc(calc(16/375) * 100vw);
    }
    .homePage .pageLink .hasImg .img
    {
        margin-bottom: calc(calc(13/375) * 100vw);
    }
    .homePage .pageLink .hasImg p
    {
        font-size: 1.25rem;

        max-width: calc(calc(132/375) * 100vw);
        height: calc(calc(36/375) * 100vw);

        background: url('../img/top/sp_pagelink_bk.png') no-repeat center center / cover;
    }
    .homePage .pageLink .noImg p
    {
        font-size: 1.3rem;
    }
    .homePage .pageLink .noImg p::before
    {
        top: calc(-1 * calc(calc(16/375) * 100vw));

        width: calc(calc(100/375) * 100vw);
        height: calc(calc(56/375) * 100vw);
        margin-left: calc(-1 * calc(calc(36/375) * 100vw));

        background: url('../img/top/sp_pagelink_bk2.png') no-repeat center center / contain;
    }
    /*end*/
}
