@media screen and (max-width:768px) {
    article {
        padding: 80px 0;
    }

    .section-wrap {
        width: 92vw;
    }

    h2 {
        margin-bottom: 50px;
        font-size: min(6.4vw, 26px);
    }

    .sp {
        display: block;
    }

    .card-detail_2 .btn-blue {
        font-size: min(4.27vw, 18px);
        height: auto;
        width: 100%;
        margin-top: 20px;
        margin-right: auto;
        margin-left: auto;
    }

    .kv-area {
        min-height: auto;
        max-height: 500px;
    }

    .kv-content {
        width: 80%;
        min-width: auto;
        max-width: 300px;
    }

    #card-category {
        padding-bottom: 80px;
        padding-top: 50px;
    }

    .category-title {
        padding: 10px 16px;
    }

    .radio-section {
        font-size: min(4.27vw, 18px);
        max-width: 500px;
    }

    .radio-section-inner {
        padding: 20px;
        font-size: min(4.27vw, 18px);
    }

    .radio-wrap {
        flex-direction: column;
        row-gap: 10px;
    }

    .radio-wrap:first-of-type {
        padding-bottom: 20px;
        border-bottom: 1px solid #B3B3B3;
    }

    .radio-wrap:nth-of-type(2) {
        padding-top: 20px;
    }

    .radio-wrap ul {
        flex-wrap: wrap;
        row-gap: 6px;
        margin-left: 0;
    }

    .radio-wrap h3 {
        border-right: none;
        padding: 0;
    }

    .radio-wrap ul li {
        min-width: 50%;
    }

    .radio-wrap ul li:first-of-type {
        margin-left: 0;
    }

    .hit-card {
        margin: 30px 0 50px;
        font-size: min(4.27vw, 18px);
    }

    .card-info {
        padding: 50px 14px 20px;
    }

    .card-item {
        padding-top: 80px;
    }

    .card-detail {
        width: 100%;
        max-width: 500px;
        font-size: min(4.27vw, 18px);
        background: #C69C6D;
    }

    .card-detail dt,
    .card-detail dd {
        padding: 14px 0px;
    }

    .card-detail dd {
        background: #ffffff;
    }

    .card-key-wrap {
        gap: 4px;
        font-size: min(4.27vw, 18px);
    }

    .card-info-top {
        gap: 20px;
    }

    .card-info-right {
        width: 100%;
    }

    .card-info h3 {
        margin-bottom: 0;
        font-size: min(5.33vw, 22px);
    }

    .card-detail_2 {
        margin-top: 0;
    }

    .card-info dl {
        flex-direction: column;
        margin: 15px 0;
    }

    .card-info-bottom .sp {
        margin-bottom: 30px;
    }

    .card-info-bottom .sp p {
        font-size: min(4.27vw, 18px);
    }

    .card-info-bottom table.hyakugo-table {
        margin-top: 15px;
        border-bottom: none;
    }

    .top-page table.hyakugo-table th.table-gray {
        border-top: none;
    }

    .top-page table.hyakugo-table td {
        border-top: none;
    }

    .card-info-open {
        padding: 20px 10px;
    }

    .card-info-close {
        padding: 10px 0 20px;
    }

    .moved-catch-copy {
        font-size: min(4.27vw, 18px);
    }

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

    .table-insurance p:nth-of-type(n+2) {
        margin-top: 20px;
    }

    .top-table-list.table-insurance a {
        margin-top: 10px;
        font-size: min(3.73vw, 16px);
    }

    .top-table-list li {
        line-height: 1.5;
    }

    .top-table-list li::before {
        translate: -50% 0.5em;
    }

    .top-table-list p {
        margin-top: 5px;
    }

    .service-section h2 {
        text-align: center;
        margin-bottom: 20px;
    }

    .service-content {
        flex-direction: column;
        row-gap: 8px;
    }

    .service-img {
        width: 100%;
    }

    .service-img img {
        width: 94%;
        max-width: 450px;
    }

    .service-btn-wrap {
        width: 100%;
        row-gap: 8px;
        justify-content: center;
    }

    .service-btn-wrap .btn-blue {
        font-size: min(4.8vw, 20px);
        width: 90%;
        max-width: 330px;
    }

    .card-info-main {
        max-width: 500px;
        margin: auto;
    }

    .card-info-bottom {
        max-width: 500px;
        margin: auto;
    }

    .hit-card span {
        font-size: min(8vw, 32px);
    }

    .card-info-open,
    .card-info-close {
        font-size: min(3.73vw, 16px);
    }

    /*--------------------------------------------------
campaign-section
--------------------------------------------------*/

    .top-page #campaign {
        background: #fff;
        padding-bottom: 0;
    }

    .campaign-content {
        flex-direction: column;
        row-gap: 30px;
    }

    .campaign-content li {
        width: 100%;
    }

    .campaign-info-wrap {
        font-size: min(4.27vw, 18px);
        padding-top: 10px;
        padding-bottom: 0;
        color: #333333;
    }

    #campaign .slider {
        width: 86%;
        max-width: 500px;
        margin: 0 auto;
    }

    #campaign .slick-slide {
        padding: 0 10px;
    }

    .dots-wrap {
        display: flex;
        justify-content: center;
        margin-top: 10px;
    }

    .dots-wrap li {
        width: 10px;
        height: 10px;
        margin: 0 5px;
        background: #B3B3B3;
        border-radius: 50%;
        cursor: pointer;
    }

    .dots-wrap li:hover,
    .dots-wrap li.slick-active {
        background: #c69c6d;
    }

    .dots-wrap li button {
        display: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        outline: none;
        padding: 0;
        border: none;
        background-color: transparent;
    }

    .arrow_box {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 20px 0 0;
        position: absolute;
        width: 100%;
        top: 50%;
        left: 50%;
        translate: -50% -190%;
    }

    .prev-arrow,
    .next-arrow {
        display: block;
        width: 16px;
        height: 45px;
        cursor: pointer;
        position: relative;
    }

    .prev-arrow {
        background: url(../img/slider-arrow-prev.svg) no-repeat;
        background-size: contain;
    }

    .next-arrow {
        background: url(../img/slider-arrow-next.svg) no-repeat;
        background-size: contain;
    }

    .news-section h2 {
        font-size: min(6.4vw, 32px);
        position: relative;
    }

    .tab_item {
        border-radius: 8px;
        padding: 8px 0;
        font-size: min(3.73vw, 16px);
        margin-bottom: 5px;
    }

    .tab_content {
        padding-top: 0;
        padding-bottom: 40px;
    }

    .tab_content ol {
        padding-top: 20px;
    }

    .news-section h2 {
        font-size: min(5.33vw, 22px);
    }

    .news-list {
        padding: 0;
        font-size: min(4.27vw, 18px);
    }

    .news-list-inner {
        padding: 10px 0;
    }

    .news-list .news-title {
        margin-top: 10px;
        font-size: min(3.73vw, 16px);
    }

    .news-category-wrap {
        margin-left: 10px;
        gap: 5px;
    }

    p.news-date {
        font-size: min(3.73vw, 16px);
    }

    .news-category {
        font-size: min(3.2vw, 14px);
        width: 5em;
    }

    .news-section .btn-arrow.btn-blue::after {
        translate: 0 -42%;
    }

    .imp-news-wrap {
        flex-direction: column;
        padding: 15px;
        width: 100%;
        margin: 95px auto 0;
    }

    .imp-list {
        width: 100%;
        flex-direction: column;
        gap: 0;
    }

    .imp-list ul {
        width: 100%;
    }

    .banner {
        width: 100%;
    }

    .card-detail_2 .btn-arrow.btn-blue::after {
        right: min(8vw, 30px);
    }

    .top-table-list a.link {
        margin-right: .5em;
    }

    .top-table-list .window-link::after {
        content: "";
        display: inline-block;
        background: url(../img/common/link/window-black.svg) no-repeat;
        background-position: center;
        background-size: contain;
        height: 1em;
        width: 1em;
        position: relative;
        top: 0;
        right: auto;
        translate: unset;
        transition: all .3s;
        vertical-align: middle;
        margin-left: 4px;
    }

    .top-table-list.table-insurance a::after {
        content: "";
        position: absolute;
        top: 50%;
        right: min(3.73vw, 14px);
        width: min(3.2vw, 12px);
        height: min(3.2vw, 12px);
        translate: 0 -50%;
        transition: all .3s;
        background-image: url(../img/common/btn/btn-arrow-blue.svg);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
    }

}