@media screen and (min-width: 768px) {
    .top-image {
        position: absolute;
        width: 85%;
        height: 30vw;
        min-height: 325px;
        top: 150px;
        object-fit: cover;
    }

    .title-image {
        position: absolute;
        top: 87px;
        right: 15%;
    }

    .main {
        margin-top: 37vw;
        padding-bottom: 150px;
        background: #F7F0F2;
    }
    
    .sbs-images {
        width: 94%;
        max-width: 1125px;
        margin: auto;
        padding: 0 3%;
    }

    .main .sbs-images .logo {
        width: 200px;
        margin: 170px 0 15px;
    }

    .main .sbs-images .catch-copy {
        font-size: 24px;
        margin: 0 0 40px;
    }

    .main .sbs-images .images {
        display: flex;
        margin: 0 auto;
        width: 100%;
        max-width: calc(375px * 3);
    }

    .main .sbs-images .images img {
        width: calc(100% / 3);
        height: calc(100% / 3 * 336 * 375);
        max-width: 375px;
        max-height: 336px;
        object-fit: cover;
        display: block;
    }

    .main .sbs-images .text {
        width: 100%;
        margin-top: 15px;
    }
    
    .daihyo-aisatu {
        width: 100%;
        max-width: calc(375px * 3);
        margin: auto;
    }

    .daihyo-aisatu img {
        width: 70%;
        height: 39vw;
        max-width: 888px;
        max-height: 500px;
        min-height: 371px;
        object-fit: cover;
        margin: 150px 0 0 auto;
        display: block;
    }

    .daihyo-aisatu .text {
        background: white;
        padding: 30px 5% 50px;;
        width: 80%;
        max-width: 888px;
        margin-top: 40px;
        line-height: 1.95;
        letter-spacing: 0.05em;
    }

    .policy {
        margin: 180px auto 0;
        display: flex;
        max-width: 1125px;
        padding: 0 5%;
    }

    .policy .images img {
        max-width: 362px;
        max-height: 285px;
        width: 24vw;
        height: 19vw;
        display: block;
        margin-bottom: 3px;
    }

    .policy .text {
        margin-left: 50px;
        line-height: 1.95;
        letter-spacing: 0.05em;
    }
    
    .info {
        padding: 40px 5vw 0;
        font-size: 16px;
    }
    
    .info img {
        width: 356px;
        display: block;
        margin-bottom: 20px;
    }
}

@media screen and (max-width: 767px) {
    .top-image {
        width: 100vw;
        height: 50vw;
        object-fit: cover;
        position: absolute;
        top: 16vw;
    }
    
    .title-image {
        width: 4vw;
        position: absolute;
        top: 11vw;
        right: 11vw;
    }
    
    .main {
        margin-top: 58vw;
        padding-bottom: 20vw;
        background: #F7F0F2;
    }

    .main .logo {
        width: 35vw;
        margin: 20vw 0 0 5vw;
    }

    .main .catch-copy {
        font-size: 5.5vw;
        margin: 0 0 5vw 5vw;
    }

    .main .sbs-images .images {
        margin:  0 0 7vw 5vw;
    }

    .main .sbs-images .images img {
        width: 75vw;
        height: 75vw;
        object-fit: cover;
    }

    .main .sbs-images .text {
        font-size: 3.6vw;
        margin: 0 5vw 20vw;
    }

    .daihyo-aisatu img {
        width: 75vw;
        height: 55vw;
        object-fit: cover;
        margin: 0 5vw 0 auto;
        display: block;
    }

    .daihyo-aisatu .text {
        background: white;
        padding: 20vw 5vw 25vw;
        margin-top: -10vw;
        font-size: 3.2vw;
    }

    .policy {
        margin-top: 25vw;
    }
    
    .policy .title {
        text-align: center;
        margin-bottom: 5vw;
        font-size: 3.2vw;
    }

    .policy .images img {
        width: 100vw;
        height: 85vw;
        margin-bottom: 3vw;;
        object-fit: cover;
    }

    .policy .text {
        margin: 0 5vw;
        font-size: 3.2vw;
    }
    
    .policy .accordion {
        font-size: 3.6vw;
        border-top: solid 0.5vw white;
        padding: 3vw;
        display: flex;
    }
    
    .policy .accordion img {
        width: 3.5vw;
        height: 1.4vw;
        text-align: right;
        margin: auto 0 auto auto;
        transition: 0.3s;
    }
    
    .policy .accordion .open {
        transform: rotate(180deg);
    }
    
    .policy .detail {
        display: none;
    }
    
    .policy .color-bar {
        border-top: solid 0.5vw white;
    }
    
    .info {
        margin: 7vw 5vw 25vw;
        font-size: 3.2vw;
    }
    
    .info img {
        width: 44vw;
        display: block;
        margin-bottom: 7vw;
    }
}