@charset "utf-8";

/*----------------------------------------
	TOPページ専用
----------------------------------------*/

/* mainVisual
----------------------------------------*/
.main-visual {
    background: linear-gradient(to bottom,#8c5eff,#8ae8ff,#10c7ff,#346eff);
    color: var(--c_white);
}

.main-visual__inner {
    display: flex;
    /*gridでもレイアウト可能*/
    flex-direction: column-reverse;
    padding: 20px;
}

.main-visual__image {
    text-align: center;
}

.main-visual__catch {
    margin-top: 20px;
    font-size: 20px;
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.4);
    line-height: 2;
}

@media (min-width: 768px) {
    .main-visual {
        padding: 40px 0;
    }

    .main-visual__inner {
        max-width: 1080px;
        margin: auto;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .main-visual__catch {
        display: flex;
        justify-content: center;
        padding: 0 8.3333%;
        /*(90 / 1080) * 100%*/
        font-size: min(3.33vw, 36px);
        /*改行位置キープのためvwで拡縮*/
    }

    .main-visual__image {
        flex-shrink: 0;
        width: 40%;
    }
}

/* serviceList
----------------------------------------*/
.serviceList {
    display: grid;
    /*flexでもレイアウトできるがPCでsubgridをつかいたのでgridを選択*/
    gap: 20px;
}

.serviceList__item {
    display: grid;
    /*カード自体をgrid化*/
    gap: 20px;
    /*コンテンツ間の余白を20pxに設定*/
    width: 100%;
    max-width: 400px;
    /*カート最大幅400pxで固定*/
    margin: 0 auto;
    background: var(--c_white);
    box-shadow: 0 0 6px rgba(0, 0, 0, .1);
}

.serviceList__thumb img {
    max-width: none;
    width: 100%;
}

.serviceList__title {
    margin: 0 20px;
    font-weight: bold;
    font-size: 20px;
}

.serviceList__text {
    margin: -10px 20px 0;
    /*ここだけアイテム間余白を10pxにしたいのでネガティブマージンで調整*/
    line-height: 1.875;
}

.serviceList__btn {
    margin: 0 20px 20px;
}

@media (min-width: 768px) {
    .serviceList {
        grid-template-columns: repeat(3, 1fr);
        /*3カラムに変更*/
    }

    .serviceList__item {
        grid-row: span 4;
        /*子gridの高さを4グリッド分に設定*/
        grid-template-rows: subgrid;
        /*subgrid化*/
    }

    .serviceList__title {
        align-self: center;
        /*隣り合うタイトル行を上下中央配置（仕様にはないがその方が美しいためコーディング判断で設定）*/
    }
}

/* pickupList
----------------------------------------*/
.pickupList {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 15px;
    /*上下gap 20px、左右gap 15px*/
}

.pickupList__item a {
    display: block;
    color: inherit;
    font-weight: bold;
    text-decoration: none;
}

.pickupList__thumb {
    max-width: none;
    width: 100%;
}

.pickupList__title {
    position: relative;
    margin-top: 1em;
    padding-left: 1em;
    font-size: 14px;
    line-height: 1.28;
}

.pickupList__title::before {
    position: absolute;
    left: 0;
    top: 0.4em;
    content: "";
    display: block;
    width: 0.6em;
    height: 0.6em;
    border-top: 2px solid;
    border-right: 2px solid;
    transform: rotate(45deg);
}

@media (min-width: 768px) {
    .pickupList {
        grid-template-columns: repeat(3, 1fr);
    }

    .pickupList__title {
        font-size: 18px;
        transition: color 0.3s;
    }

    .pickupList__item a:hover .pickupList__title {
        color: var(--c_main);
    }
}

@media (min-width: 922px) {
    .pickupList {
        grid-template-columns: repeat(4, 1fr);
    }
}

