:root {
    --primary: #0168B6;
    --primary-light: #EDF6FC;
}

body {
    background-color: var(--primary-light);
}

.l_footer {
    background-color: #fff;
}

.c_heading {
    height: auto;
    padding-block: 32px 20px;
    &::after {
        bottom: 0;
    }
}
.c_button__more {
    width: 100%;
    max-width: 516px;
    margin-inline: auto;
    border-radius: 10px;
    &::after {
        content: none;
    }
    /* _button.scss sp */
    @media (max-width: 768px) {
        height: auto;
        min-height: 52px;
        padding-block: 10px;
        font-size: 16px;
    }
    /* _button.scss pc_tab */
    @media (min-width: 769px) {
        height: auto;
        min-height: 64px;
    }
}
.p_top__divider {
    border-top: dashed 2px rgb(from var(--primary) r g b / 0.2);
}

.p_top_kv {
    background-color: #fff;
}
.p_top_kv__container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 40px;
    max-width: 640px;
    margin: 0 auto -8px;
    padding: 32px 20px 0;
    @media (min-width: 769px) {
        flex-direction: row;
        gap: 80px;
        max-width: 1200px;
        margin: auto;
        padding: 80px 40px;
    }
    @media (min-width: 1200px) {
        min-height: 640px;
        padding: 40px;
    }
}
.p_top_kv__heading {
    width: 100%;
    @media (min-width: 769px) {
        width: auto;
    }
}
.p_top_kv__img {
    width: 100%;
}
.p_top_kv__img_1 {
    @media (min-width: 769px) {
        aspect-ratio: 413 / 325;
    }
}
.p_top_kv__img_2 {
    @media (min-width: 769px) {
        aspect-ratio: 625 / 480;
        max-width: 625px;
    }
}

.p_top_userAction {
    padding-block: 16px;
    @media (min-width: 769px) {
        padding-block: 30px;
    }
}
.p_top_userAction__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    max-width: 1120px;
    @media (min-width: 769px) {
        gap: 24px;
    }
    @media (min-width: 1200px) {
        gap: 0;
    }
}
.p_top_userAction_simulation,
.p_top_userAction_request {
    flex: 1 1 345px;
    max-width: 345px;
    @media (min-width: 1200px) {
        max-width: initial;
    }
}
.p_top_userAction_request {
    margin-top: 0;
}
.p_top_userAction_simulation__button,
.p_top_userAction_request__button {
    justify-content: flex-start;
    width: 100%;
    @media (min-width: 1200px) {
        &::after {
            right: 20px;
            width: 24px;
            height: 24px;
        }
    }
}
.p_top_userAction_simulation__button {
    padding-left: 32px;
}
.p_top_userAction_request__button {
    padding-left: 40px;
}
.p_top_userAction_simulation__titleWrap,
.p_top_userAction_request__titleWrap {
    margin-left: 14px;
}

.main.js-pattern-b {
    background-color: #0168B6;
    padding-top: 40px;
}

@media screen and (max-width: 768px) {
    .main.js-pattern-b {
        padding: 40px 0 0;
        border-bottom: none;
    }
}

@media screen and (max-width: 1199px) {
    #div_top_simulation__button.js-pattern-b-is_spTab_none {
        display: none;
    }

    #div_top_request__button {
        margin-top: 0;
    }
}

/* メイン文言 */
.simulator_container {
    .simulator_img {
        display: block;
        max-width: 345px;
        margin: 0 auto 30px;
    }
    @media (min-width: 1200px) {
        position: relative;
        .simulator_img {
            position: absolute;
            top: 150px;
            max-width: initial;
        }
        .rate-example__step-row {
            flex-direction: column;
            gap: 45px;
        }
        .rate-example__step {
            width: 470px;
            margin-left: auto;
            &:nth-child(1)::after {
                inset-inline: 0;
                bottom: initial;
                top: calc(100% + 25px);
                width: 20px;
                height: 15px;
                clip-path: polygon(50% 15px, 0% 0%, 20px 0%);
                margin: auto;
            }
        }
    }
}

/* シュミレーション結果 */
.p_simulator_select_content {
    overflow: hidden;
    width: 92%;
    margin-inline: auto;
    @media screen and (min-width: 769px) {
        width: auto;
        margin-inline: 20px;
    }
    @media screen and (min-width: 1200px) {
        margin-inline: initial;
    }
    & .result-ttl,
    & .rate-example__step-num {
        background-color: #4688BA;
    }
    & .rate-example__step:nth-child(1)::after {
        background-color: #fff;
    }
}

/* Looopでんきのおすすめポイント */
.p_top_recommended {
    padding-bottom: 40px;
    @media (min-width: 769px) {
        padding-bottom: 64px;
    }
}
.p_top_recommended__heading {
    max-width: min(400px, 100%);
    margin-inline: auto;
    padding-inline: 32px;
    text-align: center;
    @media (min-width: 769px) {
        width: calc(684 / 1120 * 100%);
        max-width: 684px;
    }
}
.p_top_recommended__content {
    width: 92%;
    max-width: 1120px;
    margin: auto;
    @media (min-width: 1200px) {
        width: 100%;
    }
}
.p_top_recommended__item {
    padding: 32px 24px;
    margin-bottom: 20px;
    border-radius: 15px;
    background-color: #fff;
    &:first-of-type {
        position: relative;
    }
    @media (min-width: 769px) {
        padding: 48px 80px;
        margin-bottom: 32px;
    }
}
.p_top_recommended__description {
    text-align: center;
}
.p_top_recommended__titleWrap {
    height: 40px;
    align-items: center;
    justify-content: center;
}
.p_top_recommended__point {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background-color: #FEE100;
    border-radius: 50px;
    line-height: 1;
    color: #0168B6;
    font-size: 15px;
    height: 35px;
    padding-inline: 24px;
    @media (min-width: 769px) {
        align-items: flex-end;
        font-size: 16px;
        height: 40px;
        padding: 10px 15px;
    }
}
.p_top_recommended__pointNumber {
    font-size: 20px;
    font-family: "Oswald", sans-serif;
    font-weight: 500;
    line-height: 1;
    @media (min-width: 769px) {
        font-size: 24px;
    }
}
.p_top_recommended__title {
    text-align: center;
    font-size: 24px;
    line-height: 1.5;
    color: #0068b6;
    margin-top: 16px;
    @media (min-width: 769px) {
        font-size: 30px;
        margin-top: 32px;
    }
}
.p_top_recommended__text {
    font-size: 13px;
    line-height: 20px;
    margin: 20px 0 30px;
    @media (min-width: 769px) {
        line-height: 30px;
        margin-top: 16px;
    }
}

/* その1 */
.p_top_recommended__item_japan {
    position: absolute;
    top: -48px;
    left: 50%;
    transform: translateX(-50vw);
    width: 120px;
    margin-left: -1%;
    @media (min-width: 769px) {
        top: -32px;
        left: -40px;
        transform: none;
        width: auto;
        margin-left: auto;
    }
}
.p_top_recommended1__title {
    font-size: 18px;
    @media (min-width: 769px) {
        font-size: 28px;
    }
}
.p_top_recommended1__title_img {
    margin-top: 12px;
    @media (min-width: 769px) {
        margin-top: 20px;
        width: 450px;
    }
}
.p_top_recommended1__divider {
    margin-block: 30px;
    @media (min-width: 769px) {
        margin-block: 48px;
    }
}
.p_top_recommended1__sp_img_wrap {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: min(400px, 100%);
    margin: auto;
    @media (min-width: 769px) {
        display: none;
    }
}
.p_top_recommended1__pc_img {
    display: none;
    @media (min-width: 769px) {
        display: block;
        margin-bottom: 48px;
    }
}
.p_top_recommended1__caution {
    counter-reset: caution-counter;
    padding-left: 2em;
    color: #999;
    font-size: 11px;
    margin-top: 32px;
    @media (min-width: 769px) {
        width: fit-content;
        margin: auto;
        margin-top: 48px;
    }
}
.p_top_recommended1__caution_item {
    counter-increment: caution-counter;
    text-align: justify;
    letter-spacing: 0;
    + .p_top_recommended1__caution_item {
        margin-top: 8px;
    }
}
.p_top_recommended1__caution_item::before {
    content: "※" counter(caution-counter) " ";
    margin-left: -2em;
}

/* その3 */
.p_top_recommended3__heading2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    @media (min-width: 769px) {
        gap: 16px;
    }
}
.p_top_recommended3__heading2_img {
    width: 170px;
    @media (min-width: 769px) {
        width: 220px;
    }
}
.p_top_recommended3__heading2_text {
    color: #0168B6;
    font-size: 20px;
    @media (min-width: 769px) {
        font-size: 30px;
    }
}

.p_top_recommended3_1__section {
    padding-inline: 8px;
    margin-block: 30px;
    @media (min-width: 769px) {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        align-items: center;
        gap: 24px;
        padding-inline: 0;
        margin-block: 40px 48px;
    }
}
.p_top_recommended3_1__lead {
    font-size: 13px;
    margin-top: 20px;
    @media (min-width: 769px) {
        font-size: 18px;
    }
}
.p_top_recommended3_1__img_campaign {
    max-width: min(400px, 100%);
    margin-top: 16px;
    @media (min-width: 769px) {
        margin-top: 0;
    }
}
.p_top_recommended3_1__campaign_text {
    font-size: 10px;
    margin-top: 16px;
}

.p_top_recommended3_2__section {
    margin-top: 30px;
    @media (min-width: 769px) {
        margin-top: 48px;
    }
}
.p_top_recommended3_2__row {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
    @media (min-width: 769px) {
        align-items: center;
        gap: 20px;
        margin-top: 28px;
    }
}
.p_top_recommended3_2__img {
    width: 90px;
    @media (min-width: 769px) {
        width: 140px;
    }
}
.p_top_recommended3_2__list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 13px;
    @media (min-width: 769px) {
        gap: 12px;
        font-size: 18px;
    }
}
.p_top_recommended3_2__item {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    @media (min-width: 769px) {
        gap: 12px;
    }
}
.p_top_recommended3_2__item_icon {
    margin-top: 1px;
    @media (min-width: 769px) {
        width: 23px;
        margin-top: 0;
    }
}
.p_top_recommended3_2__slider {
    margin-top: 20px;
    margin-inline: -20px;
    padding-left: 20px;
    @media (min-width: 769px) {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        margin-top: 40px;
        margin-inline: auto;
        padding-left: 0;
        gap: 24px;
    }
    img {
        width: 280px;
        margin-inline: 6px;
        @media (min-width: 769px) {
            width: auto;
            margin: auto;
        }
    }
    .slick-dots {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        margin-top: 20px;
        margin-left: -14px;
        line-height: 1;
    }
    .slick-dots li {
        height: fit-content;
    }
    .slick-dots li button {
        font-size: 0;
        background-color: #49C6AF;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        opacity: 0.2;
        transition: width 0.2s, height 0.2s, opacity 0.2s;
    }
    .slick-dots li.slick-active button {
        width: 10px;
        height: 10px;
        background-color: #49C6AF;
        opacity: 1;
    }
    .slick-dots li button:hover {
        background-color: #49C6AF;
        opacity: 1;
    }
}

/* その4 */
.p_top_recommended4__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 30px;
    margin-top: 16px;
    @media (min-width: 769px) {
        flex-direction: row;
        margin-top: 40px;
    }
}
.p_top_recommended4__col {
    text-align: center;
    @media (min-width: 769px) {
        flex: none;
    }
    @media (min-width: 1200px) {
        flex: 1;
    }
}
.p_top_recommended4__heading {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: var(--primary);
    font-weight: bold;
    @media (min-width: 769px) {
        text-align: left;
    }
}
.p_top_recommended4__heading_text1 {
    display: flex;
    align-items: baseline;
    justify-content: center;
    font-size: 28px;
    @media (min-width: 769px) {
        justify-content: flex-start;
    }
    @media (min-width: 1200px) {
        font-size: 60px;
        white-space: nowrap;
    }
}
.p_top_recommended4__heading_text1_zero {
    position: relative;
    bottom: -0.08em;
    font-size: 48px;
    font-family: "Oswald", sans-serif;
    color: #F85858;
    font-weight: 500;
    line-height: 1;
    margin-inline: 2px;
    @media (min-width: 1200px) {
        bottom: -0.05em;
        font-size: 100px;
        margin-inline: 4px;
        white-space: nowrap;
    }
}
.p_top_recommended4__heading_text2 {
    font-size: 24px;
    @media (min-width: 1200px) {
        font-size: 40px;
    }
}
.p_top_recommended4__lead {
    font-size: 13px;
    white-space: nowrap;
    margin-top: 20px;
    @media (min-width: 769px) {
        text-align: left;
    }
    @media (min-width: 1200px) {
        font-size: 16px;
        margin-top: 32px;
    }
}
.p_top_recommended4__img {
    width: 100%;
    max-width: 320px;
    @media (min-width: 1200px) {
        max-width: none;
    }
}

.p_top_recommended__btn_more {
    width: 100%;
    @media (min-width: 769px) {
        width: 480px;
    }
}

/* 今だけコンテンツ */
.p_top_imadake__item {
    align-items: center;
    justify-content: center;
    padding: 30px 20px;
}
@media screen and (min-width: 769px) {
    .p_top_imadake__item {
        padding: 48px 70px 64px;
    }
}

@media screen and (min-width: 769px) {
    .p_top_imadake {
        width: calc(50% - 16px);
        height: 234px;
        margin-right: 30px;
    }
}

.p_top_imadake__title {
    text-align: center;
    font-size: 30px;
    line-height: 44px;
    color: #0068b6;
    margin-top: 10px;
}
@media (min-width: 769px) and (max-width: 1200px) {
    .p_top_imadake__title {
        font-size: 24px;
        line-height: 30px;
    }
}
@media screen and (max-width: 768px) {
    .p_top_imadake__title {
        font-size: 20px;
        line-height: 32px;
        margin-top: 16px;
    }
}

.p_top_imadake__text {
    line-height: 30px;
    margin-top: 16px;
    font-size: 16px;
}
@media screen and (min-width: 769px) {
    .p_top_imadake__text {
        margin-top: 30px;
    }
}

.p_top_imadeke__image {
    margin-top: 16px;
}
@media screen and (min-width: 769px) {
    .p_top_imadeke__image {
        width: calc(50% - 16px);
        margin-top: 0;
    }
}

/* 安心の供給実績 */
.p_top_quality {
    padding-block: 60px;
    margin: 0 auto;
    @media (min-width: 769px) {
        padding: 80px 0px 80px;
    }
}
.p_top_quality__heading {
    flex-direction: column;
    gap: 4px;
    margin-bottom: 40px;
    padding-top: 40px;
    @media (min-width: 769px) {
        padding-top: 48px;
        font-size: 22px;
    }
}
.p_top_quality__heading_text {
    font-size: 16px;
    @media (min-width: 769px) {
        font-size: 40px;
    }
}
.p_top_quality__body {
    width: 92%;
    max-width: 1120px;
    border-radius: 15px;
    background-color: #fff;
    margin: auto;
    padding: 30px 20px;
    text-align: center;
    @media (min-width: 769px) {
        padding: 48px 80px;
    }
}
.p_top_quality__img {
    max-width: min(400px, 100%);
    @media (min-width: 769px) {
        max-width: min(600px, 100%);
    }
    @media (min-width: 1200px) {
        max-width: 100%;
    }
}
.p_top_quality__img2 {
    @media (min-width: 1200px) {
        max-width: 740px;
    }
}
.p_top_quality__divider {
    margin: 30px 10px;
    @media (min-width: 769px) {
        margin: 48px 0;
    }
}

/* でんきナビ下余白調整 */
.p_top_mg80 {
    margin: 80px;
}

/* CM・Web動画配信中 */
.p_top_movie {
    padding-block: 60px;
    background-color: #fff;
    @media (min-width: 769px) {
        padding-block: 80px;
    }
}
.p_top_movie__body {
    width: 92%;
    max-width: 816px;
    background-color: #fff;
    margin: 40px auto 0;
}
.p_top_movie__video_container {
    width: 100%;
    margin-bottom: 40px;
    background-color: #000;
    aspect-ratio: 358 / 200;
    cursor: pointer;
    @media (min-width: 1200px) {
        aspect-ratio: 816 / 460;
    }
    iframe {
        width: 100%;
        height: 100%;
    }
}
.p_top_movie__video_thumbnail {
    transition: filter 0.2s;
    &:hover {
        filter: brightness(1.2);
    }
}

.p_top_sp_tel {
    background-color: var(--primary-light);
    padding-block: 60px;
    @media (min-width: 769px) {
        display: none;
    }
}
.p_top_sp_tel__anchor {
    display: block;
    width: 92%;
    max-width: 360px;
    margin: auto;
}
.p_top_sp_tel__img {
    width: 100%;
}

/* アプリのダウンロード */
.p_top_app {
    overflow: hidden;
    background-color: #fff;
    padding-bottom: 60px;
    @media (min-width: 769px) {
        padding-bottom: 80px;
    }
    .c_heading {
        margin-top: 0;
    }
}
.p_top_app__inner {
    width: 92%;
    max-width: 816px;
    margin: auto;
    border: 3px solid var(--primary);
    border-radius: 20px;
    padding: 40px 20px;
    @media (min-width: 769px) {
        padding: 60px;
    }
}
.p_top_app__body {
    margin-top: 30px;
    font-size: 13px;
}
.p_top_app__intro {
    display: flex;
    gap: 16px;
    @media (min-width: 769px) {
        height: 320px;
        gap: 24px;
    }
}
.p_top_app__intro_1 {
    flex: none;
    width: 110px;
    @media (min-width: 769px) {
        width: auto;
        margin-right: 8px;
    }
}
.p_top_app__intro_1_img {
    @media (min-width: 769px) {
        height: 100%;
    }
}
.p_top_app__intro_2 {
    display: flex;
    flex-direction: column;
}
.p_top_app__intro_heading {
    font-size: 18px;
    font-weight: bold;
    color: var(--primary);
    white-space: nowrap;
    @media (min-width: 769px) {
        font-size: 28px;
    }
}
.p_top_app__intro_desc {
    margin-block: 12px;
    @media (min-width: 769px) {
        font-size: 16px;
        margin-block: 24px auto;
    }
}
.p_top_app__intro_more {
    width: fit-content;
    color: var(--primary);
    text-decoration: underline;
    @media (min-width: 769px) {
        font-size: 16px;
    }
}
.p_top_app__intro_3 {
    display: none;
    @media (min-width: 769px) {
        display: block;
        flex: none;
    }
}
.p_top_app__intro_3_img {
    height: 100%;
}
.p_top_app__store {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 16px;
    background-color: var(--primary-light);
    border-radius: 12px;
    padding: 20px;
    margin-top: 24px;
    text-align: center;
    @media (min-width: 769px) {
        flex-direction: row;
        gap: 40px;
        padding: 24px 40px;
    }
}
.p_top_app__store_info {
    display: contents;
    @media (min-width: 769px) {
        display: block;
    }
}
.p_top_app__store_text {
    font-size: 16px;
    font-weight: bold;
    @media (min-width: 769px) {
        margin-bottom: 8px;
        font-size: 18px;
    }
}
.p_top_app__store_badge {
    display: flex;
    align-items: center;
    gap: 16px;
    @media (min-width: 769px) {
        gap: 24px;
    }
}
.p_top_app__store_logo {
    width: 93px;
    flex-shrink: 0;
    @media (min-width: 769px) {
        width: 120px;
    }
}
.p_top_app__store_links {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.p_top_app_store_img {
    @media (min-width: 769px) {
        width: 155px;
    }
}
.p_top_app__store_cover {
    order: 999;
    @media (min-width: 769px) {
        order: unset;
        font-size: 14px;
    }
}

/* でんきナビ */
.p_top_electricity__card {
    border: none;
}