body {
    margin: 0;
    background: #fff;
}

.lp {
    width: 100%;
    max-width: 724px;
    margin: 0 auto;
}

.section {
    width: 100%;
    position: relative;
}

.section>img,
.section-bg img {
    display: block;
    width: 100%;
    height: auto;
}


/* CTA */
.cta {
    padding: 16px 0;
}

.cta__content {
    width: 80%;
    margin: 0 auto;
    text-align: center;
}

.cta-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 90%;
    max-width: 400px;
    margin: 0 auto;
    padding: 8px 20px;
    box-sizing: border-box;
    background: linear-gradient(to bottom,
            #a9d3ad 0%,
            #2b9c35 20%,
            #2b9934 60%,
            #299332 100%);
    color: #fff;
    text-decoration: none;
    font-size: 21px;
    font-weight: 500;
    border-radius: 6px;

    transition: transform 0.2s ease, background-color 0.2s ease;
}

.cta-button:hover {
    transform: translateY(-3px);
    background: linear-gradient(to bottom,
            #a5d0a9 0%,
            #278f30 25%,
            #298f31 65%,
            #26882e 100%);
}

.cta-button__icon {
    flex-shrink: 0;
}

.cta-button img {
    width: 32px;
    height: 32px;
}

.cta-button__arrow {
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    animation: arrowMove 1.2s ease-in-out infinite;
}

@keyframes arrowMove {

    0%,
    100% {
        transform: translateX(0) rotate(45deg);
    }

    50% {
        transform: translateX(5px) rotate(45deg);
    }
}

.cta__text {
    position: relative;
    display: inline-block;
    margin: 12px 0 0;
    padding: 0 20px;
    font-size: 15px;
    font-weight: 600;
    color: #333;
}

.cta__text::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(to right,
            transparent,
            #c9a45c 15%,
            #c9a45c 85%,
            transparent);
}

/* SP */
@media (max-width: 724px) {
    .cta {
        padding: 4.14vw 0;
    }

    .cta__content {
        width: 80%;
    }

    .cta-button {
        gap: 1.1vw;
        width: 90%;
        max-width: none;
        padding: 1.1vw 2.76vw;
        font-size: 2.9vw;
        border-radius: 0.83vw;
    }

    .cta-button img {
        width: 4.42vw;
        height: 4.42vw;
    }

    .cta-button__arrow {
        width: 1.1vw;
        height: 1.1vw;
        border-width: 0.28vw;
    }

    .cta__text {
        margin-top: 1.66vw;
        padding: 0 2.76vw;
        font-size: 2.07vw;
    }
}

/* KV logo */
.kv {
    position: relative;
}

.kv__logo {
    position: absolute;
    top: 3%;
    left: 2%;
    display: flex;
    align-items: center;
    gap: 4px;
}

.kv__logo img {
    width: 26px;
    height: 26px;
    display: block;
}

.kv__logo span {
    background: linear-gradient(to bottom,
            #fff8dc 0%,
            #f0d88a 45%,
            #c9a85a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;

    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

/* SP */
@media (max-width: 724px) {
    .kv__logo {
        top: 3%;
        left: 2%;
        gap: 0.55vw;
    }

    .kv__logo img {
        width: 3.59vw;
        height: 3.59vw;
    }

    .kv__logo span {
        font-size: 1.66vw;
    }
}

/* FAQ */
.faq {
    padding: 50px 0;
    background: #fff;
}

.faq__inner {
    width: 100%;
    box-sizing: border-box;
    padding: 0 30px;
}

.faq__heading {
    margin-bottom: 30px;
    text-align: center;
}

.faq__heading h2 {
    margin: 0;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
    /* font-size: 24px; */
    font-size: clamp(8px, 2.4vw, 17px);
    font-weight: bold;
    color: #333;
    text-shadow: 0.5px 0 currentColor;
}

.faq__list {
    width: 100%;
}

.faq__item {
    margin-bottom: 16px;
    padding-bottom: 3px;
    background: #fff;
    border: 1px solid #c9a45c;
    border-radius: 5px;
    overflow: hidden;
}

.faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 18px;
    box-sizing: border-box;
    border: 0;
    background: #fff;
    color: #222;
    font-family: inherit;
    /* font-size: 16px; */
    font-size: clamp(7px, 2vw, 14px);
    font-weight: 600;
    line-height: 1.5;
    text-align: left;
    cursor: pointer;
}

.faq__question:hover {
    filter: brightness(1.08);
}

.faq__question-text {
    padding-right: 15px;
}

.faq__icon {
    position: relative;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    transition: transform .3s ease;
}

.faq__icon::before,
.faq__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: #222;
    transform: translate(-50%, -50%);
    transition: .3s ease;
}

.faq__icon::before {
    width: 100%;
    height: 2px;
}

.faq__icon::after {
    width: 2px;
    height: 100%;
}

.faq__item.is-open .faq__icon {
    transform: rotate(180deg);
}

.faq__item.is-open .faq__icon::after {
    opacity: 0;
    transform: translate(-50%, -50%) scaleY(0);
}

.faq__answer {
    max-height: 0;
    overflow: hidden;
    margin: 0 3px;
    padding: 0 18px;
    box-sizing: border-box;
    background: #fff;
    color: #333;
    font-size: 13px;
    line-height: 1.8;
    transition: max-height .4s ease, padding .4s ease;
}

.faq__answer p {
    margin: 0;
    font-weight: 400;
}

.faq__item.is-open .faq__answer {
    max-height: 500px;
    padding: 6px 18px;
}


/* FAQ SP */
@media (max-width: 724px) {

    .faq {
        padding: 6.9vw 0;
    }

    .faq__inner {
        padding: 0 4.14vw;
    }

    .faq__heading {
        margin-bottom: 4.14vw;
    }

    /* .faq__heading h2 {
        font-size: 3.31vw;
    } */

    .faq__item {
        margin-bottom: 2.21vw;
        padding-bottom: 0.41vw;
        border-radius: 0.69vw;
    }

    .faq__question {
        padding: 1.93vw 2.48vw;
        font-size: clamp(7px, 2vw, 14px);
        line-height: 1.5;
    }

    .faq__question-text {
        padding-right: 2.07vw;
    }

    .faq__icon {
        width: 2.48vw;
        height: 2.48vw;
    }

    .faq__icon::before {
        height: 0.28vw;
    }

    .faq__icon::after {
        width: 0.28vw;
    }

    .faq__answer {
        margin: 0 0.41vw;
        padding: 0 2.48vw;
        font-size: 1.79vw;
        line-height: 1.8;
    }

    .faq__item.is-open .faq__answer {
        padding: 2.21vw 2.48vw;
    }
}

/* 運営会社 */
.company {
    position: relative;
}

.company .section-bg img {
    display: block;
    width: 100%;
    height: auto;
}

.company__info {
    position: absolute;
    left: 3%;
    top: 50%;
    transform: translateY(-50%);
    width: 94%;
    font-size: 10px;
}

.company__info h2 {
    margin: 0;
    text-align: center;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
    font-weight: bold;
    font-size: clamp(8px, 2.4vw, 17px);
    text-shadow: 0.5px 0 currentColor;
}

.company__lead {
    text-align: left;
    margin: 2% 0;
}

.company__tables {
    display: flex;
    align-items: stretch;
    gap: 10px;
    margin: 3% 0 0;
}

.company__tables table {
    width: 39%;
    border-collapse: collapse;
    border-spacing: 0;
    background: #fff;
}

.company__tables tr {
    height: 22px;
}

.company__tables th,
.company__tables td {
    padding: 3px 6px;
    text-align: left;
    border: 0;
}

.company__tables th {
    width: 32%;
    background: #f8eee2;
}

.company__tables td {
    background: #fffaf5;
}


/* SP */
@media (max-width: 724px) {
    .company__info {
        font-size: 1.38vw;
    }

    .company__lead {
        margin: 0.8vw 0;
    }

    .company__tables {
        gap: 1.4vw;
    }

    .company__tables tr {
        height: 3vw;
    }

    .company__tables th,
    .company__tables td {
        padding: 0.4vw 0.8vw;
    }
}

/* Footer CTA */
.footer {
    position: relative;
    width: 100%;
    max-width: 724px;
    margin: 0 auto;
}

.footer .section-bg img {
    display: block;
    width: 100%;
    height: auto;
}

.footer .cta__content {
    position: absolute;
    top: 50%;
    right: 4%;
    width: 36%;
    margin: 0;
    transform: translateY(-50%);
}

.footer .cta-button {
    width: 100%;
    max-width: none;
    padding: 8px 10px;
    gap: 5px;
    font-size: 13px;
    border-radius: 4px;
    white-space: nowrap;
}

.footer .cta-button img {
    width: 20px;
    height: 20px;
}

.footer .cta-button__text {
    white-space: nowrap;
}

.footer .cta-button__arrow {
    width: 6px;
    height: 6px;
    border-width: 1.5px;
}

.footer .cta__text {
    margin-top: 0;
    padding: 0;
    font-size: 11px;
    color: #fff;
}

.footer .cta__text::after {
    display: none;
}


@media (max-width: 724px) {
    .footer .cta__content {
        top: 50%;
        right: 4%;
        width: 36%;
        margin: 0;
        transform: translateY(-50%);
    }

    .footer .cta-button {
        margin: 0;
        padding: 1vw 1vw;
        gap: 0.4vw;
        font-size: 1.4vw;
        line-height: 1;
    }

    .footer .cta-button img {
        width: 2vw;
        height: 2vw;
    }

    .footer .cta-button__arrow {
        width: 0.6vw;
        height: 0.6vw;
    }

    .footer .cta__text {
        display: block;
        margin: 6px !important;
        padding: 0;
        font-size: 1.1vw;
        line-height: 1;
    }
}

.footer-links {
    position: relative;
    width: 100%;
    max-width: 724px;
    margin: 0px auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    padding: 8px 20px;
    background: #000;
}

.footer-links a {
    color: #fff;
    font-size: 10px;
    text-decoration: none;
    transition: opacity 0.2s;
}

.footer-links a:hover {
    opacity: 0.6;
}

@media (max-width: 724px) {
    .footer-links {
        gap: 4vw;
        padding: 1.5vw 4.14vw;
    }

    .footer-links a {
        font-size: 2vw;
    }
}

/* プライバシーポリシー */

.policy {
    padding: 60px 20px;
    background: #fff;
    color: #333;
}

.policy__inner {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}

.policy__title {
    margin: 0 0 50px;
    text-align: center;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
    font-size: 28px;
    font-weight: bold;
    color: #333;
}

.policy__section {
    margin-bottom: 40px;
}

.policy__section h2 {
    margin: 0 0 15px;
    padding-bottom: 8px;
    border-bottom: 1px solid #c9a45c;
    font-size: 20px;
    font-weight: bold;
}

.policy__section p {
    margin: 0;
    font-size: 15px;
    line-height: 2;
}

.policy__section ul {
    margin: 0;
    padding-left: 1.5em;
    list-style: disc;
}

.policy__section li {
    margin-bottom: 8px;
    font-size: 15px;
    line-height: 1.8;
}

.policy__company {
    margin-top: 50px;
    text-align: right;
    font-size: 14px;
    line-height: 1.8;
}

.policy-footer {
    padding: 20px;
    background: #000;
    text-align: center;
}

.policy-footer__links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 10px;
}

.policy-footer a {
    color: #fff;
    font-size: 13px;
    text-decoration: none;
}

.policy-footer__copy {
    margin: 0;
    color: #fff;
    font-size: 11px;
}

@media (max-width: 724px) {
    .policy {
        padding: 10vw 4.14vw;
    }

    .policy__title {
        margin-bottom: 8vw;
        font-size: 5vw;
    }

    .policy__section {
        margin-bottom: 8vw;
    }

    .policy__section h2 {
        margin-bottom: 3vw;
        padding-bottom: 1.5vw;
        font-size: 3.8vw;
    }

    .policy__section p,
    .policy__section li {
        font-size: 2.8vw;
        line-height: 1.8;
    }

    .policy__company {
        margin-top: 10vw;
        font-size: 2.5vw;
    }

    .policy-footer {
        padding: 4vw;
    }

    .policy-footer__links {
        gap: 3vw;
        margin-bottom: 2vw;
    }

    .policy-footer a {
        font-size: 2.5vw;
    }

    .policy-footer__copy {
        font-size: 2vw;
    }
}


/* 特定商取引法に基づく表記 */
.commercial {
    padding: 60px 20px;
    background: #fff;
    color: #333;
}

.commercial__inner {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}

.commercial__title {
    margin: 0 0 50px;
    text-align: center;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
    font-size: 28px;
    font-weight: bold;
}

.commercial__table-wrap {
    width: 100%;
    overflow-x: auto;
}

.commercial__table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

.commercial__table th,
.commercial__table td {
    padding: 15px;
    border: 1px solid #c9a45c;
    font-size: 15px;
    line-height: 1.8;
    text-align: left;
    vertical-align: top;
}

.commercial__table th {
    width: 30%;
    background: #f8eee2;
    font-weight: bold;
}

.commercial__table td {
    background: #fffaf5;
}

.commercial__note {
    margin: 25px 0 0;
    font-size: 13px;
    line-height: 1.8;
    color: #666;
}

@media (max-width: 724px) {
    .commercial {
        padding: 10vw 4.14vw;
    }

    .commercial__title {
        margin-bottom: 8vw;
        font-size: 5vw;
    }

    .commercial__table th,
    .commercial__table td {
        padding: 2.5vw 2vw;
        font-size: 2.8vw;
        line-height: 1.8;
    }

    .commercial__table th {
        width: 32%;
    }

    .commercial__note {
        margin-top: 4vw;
        font-size: 2.5vw;
    }
}