:root {
    --font-size-xs: clamp( 0.6875rem, calc( 0.59375rem + 0.375vw ), 0.875rem );
    --font-size-sm: clamp( 0.875rem, calc( 0.8125rem + 0.25vw ), 1rem );
    --font-size-md: clamp( 1rem, calc( 0.84375rem + 0.625vw ), 1.3125rem );
    --font-size-lg: clamp( 1.125rem, calc( 0.9375rem + 0.75vw ), 1.5rem );
    --font-size-xl: clamp( 1.25rem, calc( 0.9375rem + 1.25vw ), 1.875rem );
}

body {
    color: #32407E;
    font-family: "Noto Sans JP", sans-serif;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: 1px;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: bold;
    letter-spacing: 2px;
    line-height: 1.5;
}

.h2 {
    font-weight: bold;
    font-size: clamp( 20px, calc( 15px + 0.75vw ), 24px );
}

section {
    padding: 80px 0;
}

.container {
    position: relative;
    z-index: 1;
}

img {
    max-width: 100%;
}

@media (min-width: 1400px) {
    .container {
        max-width: 1140px;
    }
}

.l-mainVisual {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 640px;
    position: relative;
    padding-bottom: 1rem;
    overflow: hidden;
}

    .l-mainVisual.visual01 {
        background-image: url(/-/media/Koselugo_co_jp/Images/adult-lp/bg-mv-01_pc.png);
        padding-top: 100px;
    }

    .l-mainVisual.visual02 {
        background-image: url(/-/media/Koselugo_co_jp/Images/adult-lp/bg-mv-02_pc.png);
        padding-top: 200px;
    }

    .l-mainVisual .container {
        height: 100%;
    }

    .l-mainVisual.visual02 .container {
        height: 100%;
        display: flex;
        flex-direction: column;
        align-items: end;
    }

.l-footer {
    padding: 2rem 0;
    border-top: 1px solid #D9D9D9;
}

.footer-nav ul {
    padding-left: 0;
    list-style: none;
    display: flex;
    justify-content: end;
    gap: 20px;
    margin-bottom: .5rem;
    font-size: 14px;
}

    .footer-nav ul li a {
        color: #38457B;
        text-decoration: none;
    }

        .footer-nav ul li a:hover {
            text-decoration: underline;
        }

.heading {
    text-align: center;
    margin-bottom: 60px;
}

.heading-title {
    width: 50%;
}

    .heading-title h1 {
        margin-bottom: 30px;
    }

        .heading-title h1 img {
            width: 60vw;
            max-width: 100%;
            margin-left: -3vw;
        }

.heading-dis {
    font-size: var(--font-size-md);
}

.heading-note {
    position: absolute;
    bottom: -1rem;
    right: -2rem;
    font-size: var(--font-size-xs);
}

.border-bottom-dotted {
    border-bottom: 5px dotted #E35205;
    padding-bottom: .6em;
}

.border-bottom-orange {
    border-bottom: 4px solid #E35205 !important;
    padding-bottom: .375em;
}

.border-bottom-blue {
    border-bottom: 4px solid #37457B !important;
    padding-bottom: .375em;
}

.text-asterisk {
    padding-left: 1em;
}

    .text-asterisk::before {
        content: "＊";
        margin-left: -1em;
    }

.text-komejirushi {
    padding-left: 1em;
}

.text-note {
    font-size: var(--font-size-xs);
    font-weight: 500;
}

.text-komejirushi::before {
    content: "※";
    margin-left: -1em;
}

.text-dis {
    font-weight: 500;
    font-size: var(--font-size-md);
    margin-bottom: 1em;
    line-height: 2;
}

.text-orange {
    color: #E35205;
}

.text-white {
    color: #ffffff;
}

.text-white-shadow {
    text-shadow: 0 0 15px #fff;
}

.text-white-shadow-strong {
    text-shadow: 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff;
}

.title-block {
    background-color: #6FCFED;
    text-align: center;
    box-shadow: 0 5px 0 #CFEDFF;
    padding: 1rem 0 .625rem;
    margin-bottom: 1em;
}

.overview {
    margin-top: 2rem;
    font-size: var(--font-size-xs);
}

    .overview ._header {
        font-weight: bold;
        margin-bottom: .5em;
    }

    .overview ._body dl {
        display: flex;
        gap: 8px;
        font-weight: 500;
        margin-bottom: 0;
    }

        .overview ._body dl dt {
            flex-shrink: 0;
        }

.bg-gray .title-sub {
    background-color: #fff;
}

.title-sub {
    background-color: #F6F4EC;
    padding: 0 1.5rem;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 15px;
    margin-bottom: 1.5rem;
    color: #E35205;
}

    .title-sub ._txt {
        font-size: var(--font-size-xl);
        font-weight: 500;
    }

    .title-sub ._num {
        font-size: 50px;
        font-family: Roboto, sans-serif;
        font-weight: bold;
    }

.speechBubble {
    position: relative;
    display: inline-block;
    margin-bottom: 20px;
    padding: 1.25rem 2rem;
    border-radius: 30px;
    background-color: #FDC55B;
    text-align: left;
    font-size: var(--font-size-md);
    font-weight: 500;
    height: 150px;
    display: flex;
    align-items: center;
}

    .speechBubble::before {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        border-style: solid;
        border-width: 16px 8px 0 8px;
        border-color: #FDC55B transparent transparent;
        translate: -50% 100%;
        transform: skew(25deg);
        transform-origin: top;
    }

    .speechBubble.right::before {
        transform: skew(-25deg);
    }

.card-risk {
    position: relative;
    height: 100%;
}

    .card-risk ._header {
        background-color: #6FCFED;
        text-align: center;
        margin-left: 2rem;
        margin-right: 2rem;
        box-shadow: 0 5px 0 #CFEDFF;
        padding: 1rem 0 .625rem;
        position: absolute;
        width: calc(100% - 4rem);
        left: 0;
        top: -2rem;
    }

    .card-risk ._body {
        border-radius: 30px;
        background-color: #F6F4EC;
        text-align: center;
        padding: 30px 45px 15px;
        padding-top: 60px;
        font-weight: bold;
        font-size: var(--font-size-md);
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

.accordion.orange {
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
}

.accordion-button:not(.collapsed)::after {
    transform: rotate(-180deg) scale(1.5);
}

.accordion.orange .accordion-header {
    text-align: center;
}

.accordion.orange .accordion-body {
    background-color: #fff;
    padding: 30px 45px;
    font-size: var(--font-size-md);
    line-height: 2;
}

.accordion-button::after {
    transform: scale(1.5);
    margin-top: 12px;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
}

.accordion.orange .accordion-header .accordion-button {
    font-size: var(--font-size-md);
    font-weight: 500;
    align-items: start;
}

    .accordion.orange .accordion-header .accordion-button,
    .accordion.orange .accordion-header .accordion-button:not(.collapsed) {
        color: #fff;
        background-color: #E35205;
    }

.accordion.orange .accordion-header .accordion-button {
    border-radius: 1rem;
}

    .accordion.orange .accordion-header .accordion-button:not(.collapsed) {
        color: #fff;
        background-color: #E35205;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    .accordion.orange .accordion-header .accordion-button .text-wrapper {
        width: 100%;
        text-align: center;
        padding-bottom: .5rem;
    }

.list-type-parenthesisSingle {
    counter-reset: i;
    list-style-type: none;
    padding-left: 0;
}

    .list-type-parenthesisSingle > li {
        counter-increment: i;
        padding-left: 2em;
        margin-bottom: 0.5em;
        position: relative;
        line-height: 2;
    }

        .list-type-parenthesisSingle > li::before {
            content: counter(i) ")";
            color: inherit;
            display: inline-block;
            margin-right: -1.5em;
            position: absolute;
            right: 100%;
            text-decoration: none;
            white-space: nowrap;
        }

.list-type-orange {
    list-style: none;
    padding-left: 2em;
}

    .list-type-orange li {
        color: #32407E;
        position: relative;
    }

        .list-type-orange li::before {
            content: "●";
            color: #E35205;
            position: absolute;
            left: -1.5em;
        }

.btn-cta-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 30px;
    margin-top: 4rem;
}

.btn {
    font-size: var(--font-size-md);
    font-weight: bold;
    border-radius: 3rem;
    background-color: #fff;
    width: 560px;
    max-width: 100%;
    padding: 1rem;
    position: relative;
}

    .btn .btn-icon {
        position: absolute;
        right: 8rem;
        width: auto;
        height: 2rem;
    }

.btn-cta {
    background: linear-gradient(to right, #c60532 0%, #d0387e 100%);
    background-color: #c60532;
    color: #fff;
}

.btn-outline-cta {
    border: 3px solid #E35304;
    color: #E35304;
}

.btn-cta:hover {
    background: none;
    background-color: #c60532;
    color: #fff;
}

.btn-outline-cta:hover {
    background-color: #ffe7da;
    border: 3px solid #E35304;
    color: #E35304;
}

.bg-blue {
    background-color: #BBE9F7;
}

.bg-gray {
    background-color: #F6F4EC;
}

.bg-orange {
    background-color: #E35205;
}

.bg-yellow {
    background-image: url("/-/media/Koselugo_co_jp/Images/adult-lp/bg-yellow.png");
    background-position: bottom;
}

.bg-light-blue {
    background-color: #E3F2FB;
}

.bg-round {
    position: relative;
    overflow: hidden;
}

    .bg-round::before {
        content: "";
        background-color: #F6F4EC;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 40%;
    }

.bg-bottom-arrow {
    position: relative;
    text-align: center;
}

    .bg-bottom-arrow::before {
        content: "";
        position: absolute;
        bottom: -50px;
        left: 0;
        right: 0;
        margin: auto;
        width: 0;
        height: 0;
        border-style: solid;
        border-right: 160px solid transparent;
        border-left: 160px solid transparent;
        border-top: 50px solid #fff;
        border-bottom: 0;
        z-index: 1;
    }

.bg-round::after {
    content: "";
    background-color: #F6F4EC;
    position: absolute;
    top: -10%;
    left: -10%;
    width: 120%;
    height: 100%;
    border-radius: 50%;
}

.bg-blue::before {
    border-color: #BBE9F7 transparent transparent;
}

.pc-only {
    display: block;
}

.sp-only {
    display: none;
}

#follow-up {
    position: sticky;
    right: 1rem;
    bottom: 2rem;
    cursor: pointer;
    margin: 1rem;
    text-align: right;
    transition: .1s opacity ease-in;
    z-index: 9;
}

.btn-followup {
    width: 351px;
}

.right-icon {
    display: inline-block;
    position: absolute;
    right: 1rem;
    height: 30px;
    width: 30px;
    background-color: #fff;
    border-radius: 15px;
}

    .right-icon::after {
        display: inline-block;
        content: "";
        width: 100%;
        height: 100%;
        position: absolute;
        right: -6px;
        top: 5px;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CC205C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M4.6 2L11.6 8L4.6 14'/%3e%3c/svg%3e");
    }

.image-left {
    position: absolute;
    left: -1rem;
    top: 0;
    z-index: -1;
}

.image-right {
    position: absolute;
    right: -1rem;
    top: 0;
    z-index: -1;
}

.footer-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.text-link {
    color: #36457B;
    position: relative;
}

.arrow-icon {
    display: inline-block;
    position: absolute;
    right: 1rem;
    height: 20px;
    width: 20px;
    background-color: #36457B;
    border-radius: 10px;
    right: -8px;
    top: 2px;
}

    .arrow-icon::after {
        display: inline-block;
        content: "";
        width: 100%;
        height: 100%;
        position: absolute;
        right: -5px;
        top: 5px;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M4.6 2L11.6 8L4.6 14'/%3e%3c/svg%3e");
    }

.top-slick {
    display: flex !important;
    gap: inherit !important;
}

    .top-slick .slick-dots {
        bottom: 1rem;
    }

        .top-slick .slick-dots li button:before {
            content: "●";
            font-size: 16px;
            color: #fff;
            opacity: 1;
        }

        .top-slick .slick-dots li.slick-active button:before {
            color: #E25204;
            opacity: 1;
        }

@media (max-width: 991.98px) {
    section {
        padding: 45px 0;
    }

    .l-mainVisual {
        height: 75vh;
        min-height: 580px;
    }

        .l-mainVisual.visual01 {
            background-image: url(/-/media/Koselugo_co_jp/Images/adult-lp/bg-mv-01_sp.png);
            padding-top: 4vw;
        }

        .l-mainVisual.visual02 {
            background-image: url(/-/media/Koselugo_co_jp/Images/adult-lp/bg-mv-02_sp.png);
            padding-top: 4vw;
        }

            .l-mainVisual.visual02 .container {
                align-items: center;
            }

    .heading {
        margin-bottom: 30px;
    }

    .heading-title {
        width: 100%;
        text-align: center;
    }

        .heading-title h1 {
            margin-bottom: 0;
        }

            .heading-title h1 img {
                width: 80vw;
            }

    .heading-dis {
        text-align: center;
        line-height: 1.3;
    }

    .heading-note {
        text-align: center;
        width: 100%;
        bottom: 1rem;
        left: 0.5rem;
    }

    .speechBubble {
        padding: .725rem 1.25rem;
        height: 100px;
    }

    .title-sub ._num {
        font-size: 30px;
    }

    .card-risk ._header {
        padding: .75rem 1rem .5rem;
    }

        .card-risk ._header h4 {
            font-size: 1.125rem;
        }

    .card-risk ._body {
        padding: 80px 30px 15px;
    }

    .pc-only {
        display: none;
    }

    .sp-only {
        display: block;
    }

    .image-float {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1rem;
    }

        .image-float .text-dis {
            text-align: left;
        }

    .image-left {
        position: relative;
        left: 0;
        width: 100px;
        padding-right: 1rem;
    }

    .image-right {
        position: relative;
        right: 0;
        width: 110px;
    }

    .word-break-all {
        word-break: break-all;
    }

    .overview ._body dl {
        flex-direction: column;
        gap: 4px;
    }

        .overview ._body dl dd {
            padding-left: 6px;
        }

    .btn .btn-icon {
        right: 1.5rem;
        margin-top: -3px;
    }

    .border-bottom-orange {
        border-bottom: none !important;
        position: relative;
        display: block;
    }

        .border-bottom-orange::before {
            content: "";
            bottom: -.375em;
            left: 0;
            width: 100%;
            position: absolute;
            border-bottom: 4px solid #E35205;
        }

    .btn-cta-wrapper {
        flex-direction: column;
        gap: 10px;
        margin-top: 2rem;
    }

    .bg-round {
        min-height: 750px;
    }

        .bg-round::after {
            border-radius: 50%;
            height: 100%;
            top: -10%;
            left: -50%;
            width: 200%;
        }

    .accordion.orange .accordion-body {
        padding: 20px 15px;
    }

    .footer-wrapper {
        flex-direction: column;
        justify-content: center;
    }

    .footer-nav ul {
        justify-content: center;
        font-size: 13px;
        margin-bottom: 20px;
    }

    .footer-left {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 30px;
    }

        .footer-left img {
            max-width: 163px;
            margin: auto;
        }

    .footer-copy {
        text-align: center;
        font-size: 13px;
    }

    .accordion-button::after {
        margin-top: 22px;
    }

    .btn-followup {
        width: 100%;
    }

    .right-icon {
        margin-top: -2px;
    }

    #page_top {
        margin: 1rem 0.75rem;
    }
}
