.sp440, .sp425, .sp360 {
    display: none
}
@media screen and (min-width: 1921px) {
    .mv_bg:before, .sec_form_ft:before {
        width: 100%;
        left: 0;
        background-size: cover;
    }
    .mv_txt {
        padding-right: calc(50% - 380px);
    }
    .box_news_link {
        margin-left: 25px;
    }
    .h_inner {
        max-width: 1920px;
    }
}
@media screen and (min-width: 751px) {
    .sp {
        display: none !important
    }
    /* NAV */
    .h_box {
        min-width: 1260px;
        height: 80px;
    }
    .hamburger {
        display: none;
    }
    header nav {
        margin-left: auto;
        margin-right: 35px;
    }
    header nav .inner {
        width: auto;
        padding: 0;
    }
    .nav_logo a {
        width: 211px;
        height: 40px;
        border-left: 1px #C9C9C9 solid;
        border-right: 1px #C9C9C9 solid;
    }
    .nav_logo {
        margin-right: 5px;
    }
    .nav_list {
        display: flex;
        justify-content: space-between;
    }
    .nav_list > li > a, .nav_list > li > .hook {
        display: flex;
        align-items: center;
        position: relative;
        font-weight: 700;
        padding: 5px 21px;
        height: 40px;
        font-size: 14px;
        color: #262626;
        justify-content: center;
    }
    .nav_list > li.parent {
        position: relative;
    }
    .nav_list > li.parent > .hook {
        cursor: default
    }
    .nav_list > li.parent:hover > .hook {
        color: #999;
    }
    .nav_list > li:not(:first-child) > a:after, .nav_list > li:not(:first-child) > .hook:after {
        position: absolute;
        content: "";
        width: 1px;
        height: 14px;
        background: #ababab;
        right: -2px;
    }
    .nav_list > li:last-child > .hook:after {
        display: none;
    }
    .sub {
        position: absolute;
        z-index: 1;
        transition: all .3s;
        width: 300px;
        top: 100%;
        left: 0;
    }
    .sub ul li a {
        font-size: 14px;
        display: flex;
        width: 100%;
        height: 50px;
        align-items: center;
        letter-spacing: .001em;
        padding: 5px 20px;
        margin: 0 auto;
        color: #fff;
        background: var(--mcolor);
    }
    .sub ul li:not(:last-child) a {
        border-bottom: solid 1px #FFF;
    }
    /* CUSTOM */
    .find_a, .find_out {
        cursor: pointer;
    }
    /* HOVER */
    .nav_list > li:hover > a {
        color: #999;
        text-decoration: none;
    }
    .parent:not(:hover) .sub {
        display: none;
    }
    .parent:hover .sub {
        transform: translate(0, 0);
    }
    .sub a:hover {
        background-color: #999;
        text-decoration: none;
    }
    .to_top img:hover, .btn a:hover, .find_a:hover, .nav_logo:hover, .sec11 .item:hover, .slick-arrow:hover, .button_black:hover, .h_btn .btn_black a:hover, .sec06_list_add .ttl a:hover {
        opacity: .8
    }
    .sec04_tab li a:hover {
        background: #fff;
    }
    .list_qa_ttl:hover {
        background-color: #ddd;
    }
    .btn_w a:hover, .btn_gray a:hover {
        background-color: #ccc;
    }
    .sec04_tab li a:hover:before {
        background: url("../images/icon_b.png") no-repeat right center/24px;
    }
    .box_news_link a:hover {
        text-decoration: none;
    }
    .box_news_load dd a:hover {
        text-decoration: underline;
    }
    .mv_btn_list li a:hover {
        background-color: rgba(255, 255, 255, 0.6);
        color: #000;
    }
    .h_btn .btn_w a:hover {
        background: #000;
        color: #fff;
    }
    .mv_btn_list {
        left: 20px;
        position: relative;
    }
    .sec01_ttl, .sec01_des {
        padding-left: 10px;
    }
    .sec01_item .item2 {
        padding-bottom: 8px;
    }
    .sec01_item .item3 .ttl .lg {
        display: block;
        margin-top: 5px;
    }
    .sec04_list li .label {
        padding-bottom: 2px;
    }
    .sec09_img {
        position: absolute;
        right: 0;
        bottom: 0;
    }
}
@media screen and (min-width: 751px) and (max-width: 1800px) {
    .mv_bg, .mv_txt {
        height: 690px;
    }
    .mv_bg:before {
        width: 100%;
        left: 0;
        background-size: cover;
    }
    header nav {
        margin-left: 15px;
        margin-right: 20px;
    }
}
@media screen and (min-width: 751px) and (max-width: 1500px) {
    .inner {
        padding-left: 30px;
        padding-right: 30px;
    }
    .h_inner {
        padding-left: 15px;
        padding-right: 15px;
    }
    .h_btn .btn_black a {
        width: 250px;
    }
    .nav_list > li.nav_logo > a {
        padding: 5px 7px;
    }
    header nav {
        margin-right: 15px;
    }
    .nav_logo a {
        width: 190px;
    }
    .h_btn {
        gap: 10px;
    }
    .h_btn .btn_w a {
        font-size: 14px;
    }
    .nav_list > li > a, .nav_list > li > .hook {
        padding: 5px 12px;
    }
    .h_btn p a {
        width: 180px;
    }
    .mv_bg, .mv_txt {
        height: 550px;
    }
    .mv_box2 .inner {
        gap: 30px;
    }
    .mv_box2_tt3 .ttl1 {
        font-size: 18px;
    }
    .mv_box2_tt1:before {
        right: -15px;
    }
    .sec01_item {
        gap: 25px;
    }
    .sec01_box {
        padding: 51px 40px 0;
    }
    .sec02_frame {
        font-size: 20px;
    }
    .sec02_box dl dt {
        width: 170px;
    }
    .sec02_box dl dd, .sec02_box dl dt {
        font-size: 16px;
    }
    .sec02_ttl3 {
        font-size: 64px;
    }
    .sec03_slide .item {
        margin: 0 20px;
    }
    .sec04_ttl2 {
        font-size: 30px;
    }
    .sec04_wrap, .sec04_con {
        width: 770px;
    }
    .sec04_wrap_ttl {
        left: 835px;
    }
    .sec04_list {
        padding-left: 0;
    }
    .sec04_tab {
        margin-bottom: 35px;
    }
    .sec04_tab li a {
        height: 68px;
    }
    .sec06_item .item1 {
        margin-right: 45px;
    }
    .sec06_box_item {
        width: calc(33.333% - 14px);
    }
    .sec06_box_item.ite4 .sec06_sub_img {
        right: 40px;
    }
    .sec09 .inner {
        width: calc(100% - 60px);
    }
    .sec09_tb {
        padding: 78px 25px 8px 40px;
    }
    .sec09_list {
        margin-left: 40px;
    }
    .sec09_img {
        width: 51vw;
    }
    .mv_box2_tt1, .mv_box2_tt2 {
        font-size: 22px;
    }
}
@media screen and (min-width: 751px) and (max-width: 1280px) {
    #logo img {
        width: 135px;
    }
    .mv_box2_tt3 .ttl1 {
        font-size: 16px;
    }
    .sec01_item .item {
        padding: 0 10px 0 20px;
    }
    .sec01_item .ttl {
        font-size: 20px;
    }
    .sec01_item .item2 .ttl {
        font-size: 28px;
    }
    .sec01_item .item3 .ttl {
        font-size: 16px;
    }
    .sec02_item .item1 {
        margin-right: 40px;
    }
    .sec02_box dl dt {
        width: 150px;
        font-size: 16px;
    }
    .sec02_ttl3 {
        font-size: 58px;
    }
    .sec04_ttl2 {
        font-size: 28px;
    }
    .sec04_wrap, .sec04_con {
        width: 680px;
    }
    .sec04_group {
        padding: 25px 20px;
    }
    .sec04_ttl .en {
        padding-right: 15px;
    }
    .sec04_ttl .ja {
        font-size: 22px;
        padding-left: 10px;
    }
    .sec04_list li .txt {
        font-size: 14px;
    }
    .sec04_list li .label {
        width: 32px;
        height: 22px;
        font-size: 12px;
    }
    .sec04_wrap_ttl {
        left: 745px;
        padding-top: 15px;
    }
    .sec04_sub_ttl {
        margin-bottom: 20px;
    }
    .sec04_sub_ttl .ja {
        font-size: 32px;
    }
    .sec04_item .item2 {
        padding-top: 190px;
    }
    .sec04_tb dl {
        padding: 10px;
    }
    .sec06_box_item {
        width: 275px;
    }
    .sec06_box_item {
        padding: 42px 10px 0 20px;
    }
    .sec06_sub_txt {
        font-size: 14px;
    }
    .sec06_box_item.ite4 .sec06_sub_img {
        right: 20px;
        bottom: 10px;
    }
    .sec09_img {
        width: 570px;
    }
    .sec11 .item {
        width: 360px;
    }
    .ft_bnr_item {
        gap: 20px;
    }
    .sec02 {
        padding: 140px 0 120px;
    }
    .sec03 {
        padding-bottom: 150px;
    }
    .sec04 {
        padding: 100px 0 140px;
    }
    .sec05 {
        padding-top: 110px;
        padding-bottom: 155px;
    }
    .sec07 {
        padding-top: 110px;
    }
    .sec07_ttl {
        margin-bottom: 90px;
    }
    .sec08 {
        padding-top: 140px;
        padding-bottom: 140px;
    }
    .sec09 {
        padding-bottom: 140px;
    }
}
/* screen-min:750px */
@media screen and (max-width: 750px) {
    h1, h2, h3, h4, h5, h6, input, button, textarea, select, p, blockquote, th, td, pre, address, li, dt, dd, del {
        font-size: 14px;
    }
    img {
        max-width: 100%;
        height: auto;
    }
    #wrapper, header, main, footer, .inner {
        width: 100% !important;
        min-width: unset !important
    }
    .pc {
        display: none !important
    }
    body.is_nav {
        overflow: hidden;
    }
    body.mac header nav {
        padding-bottom: 160px;
    }
    /* NAV */
    header nav {
        display: block;
        position: fixed;
        top: 60px;
        left: 0;
        width: 100%;
        height: calc(100vh - 60px);
        overflow: auto;
        z-index: 100;
        display: none;
        background: #fff;
        padding-bottom: 80px;
    }
    header nav .inner {
        padding: 0;
    }
    .nav_list {
        flex-direction: column
    }
    .nav_list ul, .nav_list li {
        width: 100%
    }
    .nav_list .parent .sub ul li {
        background: var(--mcolor);
    }
    .nav_list .parent .sub ul li:not(:last-child) {
        border-bottom: 1px solid var(--mcolor)
    }
    .nav_list .hook, .nav_list a {
        display: block;
        padding: 13px 15px 12px;
        color: var(--txt);
        font-size: 16px;
        font-weight: 600;
        border-bottom: solid 1px #C9C9C9;
    }
    .nav_list .hook {
        position: relative;
        padding-left: 15px
    }
    .nav_list .hook::before, .nav_list .hook::after {
        content: "";
        position: absolute;
        width: 16px;
        height: 2px;
        background-color: var(--txt);
        top: calc(50% - 1px);
        right: 20px;
        transition: all 0.3s;
    }
    .nav_list .hook::after {
        transform: rotate(-90deg);
    }
    .nav_list .hook.open::after {
        transform: rotate(0);
    }
    .sub {
        display: none
    }
    .sub ul:not(:last-child) {
        margin-bottom: 15px
    }
    .sub a {
        font-size: 15px;
        color: #fff;
    }
    .hamburger {
        position: absolute;
        right: 8px;
        bottom: 8px;
        font: inherit;
        display: block;
        overflow: visible;
        margin: 0;
        cursor: pointer;
        transition-timing-function: linear;
        transition-duration: .15s;
        transition-property: opacity, filter;
        text-transform: none;
        color: inherit;
        border: 0;
        z-index: 101
    }
    /*=====================================================
                          C U S T O M
    ======================================================*/
    /*============ HEADER ============*/
    h1 img {
        width: 170px;
    }
    .h_box {
        height: 60px
    }
    /*============ Main ============*/
    main {
        padding-top: 60px;
    }
    /* MAIN VISUAL */
    .mv_txt, .mv_bg {
        height: 600px
    }
    .mv_txt h2 {
        font-size: 25px;
    }
    .mv_bg:before {
        background: url(../images/main_sp.jpg) no-repeat center top /cover;
        left: 0;
        width: 100%;
    }
    .mv_txt {
        padding-right: 0;
        padding-bottom: 0;
        align-items: center;
        text-align: center;
    }
    .mv_btn_list li a, .mv_btn_list li .mv_btn_label {
        height: 45px;
    }
    .mv_b {
        font-size: 20px;
    }
    .mv_mid {
        font-size: 22px;
    }
    .mv_mid img {
        width: 200px;
        position: relative;
        bottom: 5px;
    }
    .mv_btn_list {
        margin-top: 20px;
    }
    .box_news {
        bottom: 20px;
        width: calc(100% - 15px);
        height: 60px;
        padding: 0 20px;
    }
    .box_news_load dl {
        gap: 20px;
    }
    .box_news_load dd {
        width: calc(100% - 75px);
    }
    .mv_box2 {
        height: auto;
        padding: 20px 0 35px;
    }
    .mv_box2 .inner {
        gap: 10px;
        flex-direction: column;
    }
    .mv_box2_tt1, .mv_box2_tt2 {
        font-size: 20px;
        text-align: center;
    }
    .mv_box2_tt3 .ttl2 {
        font-size: 12px;
    }
    .mv_box2_tt1:before {
        width: 100%;
        height: 1px;
        right: 0;
        top: auto;
        bottom: 0;
    }
    .mv_box2_tt3 {
        width: 500px;
    }
    /* sec01 */
    .sec01_box:before {
        background: url(../images/idx_bg1_sp.png)#333 no-repeat center top /contain;
    }
    .sec01_box {
        border-radius: 20px;
        height: auto;
        padding: 56vw 15px 0;
    }
    .mv_box2_tt3 .ttl1 {
        font-size: 18px;
    }
    .sec01_item {
        grid-template-columns: repeat(1, 1fr);
        gap: 10px;
        max-width: 350px;
        margin: 0 auto 25px;
        width: 100%;
    }
    .sec01_ttl {
        font-size: 26px;
        margin-bottom: 20px;
        text-align: center;
    }
    .sec01_des {
        font-size: 18px;
        margin-bottom: 25px;
        text-align: center;
    }
    .sec01_item .item {
        height: 140px;
        align-items: center;
        padding: 0 15px;
    }
    .sec01_item .icon {
        width: 50px;
        height: 50px;
        font-size: 22px;
        margin-right: 15px;
    }
    .sec01_item .ttl {
        font-size: 20px;
    }
    .sec01_item .item2 .ttl {
        font-size: 28px;
    }
    .sec01_item .item3 .ttl {
        font-size: 16px;
    }
    /* sec02 */
    .sec02 {
        padding: 50px 0 50px;
    }
    .sec02_ttl2 {
        font-size: 22px;
        margin-bottom: 0px;
        line-height: 1.4;
        text-align: center;
    }
    .sec02_ttl1 {
        width: 160px;
        height: 36px;
        font-size: 16px;
        margin: 0 auto 15px;
    }
    .sec02_item .item1 {
        max-width: inherit;
        margin-right: 0;
    }
    .sec02_img {
        text-align: center;
    }
    .btn_black1 a {
        width: 290px;
        height: 80px;
        font-size: 14px;
        padding: 0 15px;
    }
    .btn_black1 a .lg {
        font-size: 135%;
    }
    .sec02_ttl3 {
        font-size: 32px;
        margin-bottom: 20px;
        text-align: center;
    }
    .sec02_box {
        margin-right: 0px;
    }
    .sec02_box dl dt, .sec02_box dl dd {
        font-size: 16px;
        line-height: 1.5;
    }
    .sec02_box dl dt {
        width: 175px;
        flex-shrink: 0;
    }
    .sec02_frame {
        width: 100%;
        font-size: 22px;
        padding-bottom: 0px;
        text-align: center;
        border-width: 2px;
        line-height: 1.4;
    }
    .sec02_box dl {
        padding: 15px 10px;
    }
    .sec02_txt {
        margin-bottom: 25px;
    }
    /* sec03 */
    .sec03_ttl {
        font-size: 28px;
        margin-bottom: 30px;
    }
    .sec03_slide .item {
        width: 350px;
        height: 400px;
        margin: 0 15px;
        padding: 25px 15px;
        border-radius: 20px;
    }
    .sec03_tt {
        font-size: 18px;
        line-height: 1.4;
        margin-bottom: 20px;
    }
    .sec03_txt {
        font-size: 16px;
    }
    .sec03_slide .item3 .sec03_txt {
        margin-bottom: 15px;
    }
    .sec03_slide .item {
        background-position: right -110px top;
    }
    .sec03_slide .item1, .sec03_slide .item2 {
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 3px 10px rgba(0, 0, 0, 0.25);
    }
    .sec03_tt .sm {
        font-size: 14px;
    }
    .sec03_tt .lg {
        font-size: 26px;
    }
    .sec03_slide .item3 .sec03_tt {
        margin-bottom: 15px;
    }
    .sec03_list {
        gap: 10px;
    }
    .sec03_list li {
        width: 155px;
    }
    .sec03_list li p {
        padding: 0 15px;
    }
    .sec03_list li p .lg {
        line-height: 1.4;
    }
    .sec03_slide .slick-dots li {
        margin: 0 4px;
    }
    .sec03_slide .slick-dots li {
        width: 40px;
        height: 8px;
    }
    .sec03 {
        padding-bottom: 50px;
    }
    /* sec04 */
    .sec04 {
        padding: 45px 0 50px;
    }
    .sec04_ttl1 {
        font-size: 24px;
    }
    .sec04_ttl2 {
        font-size: 20px;
        margin-bottom: 40px;
    }
    .sec04_wrap, .sec04_con {
        width: 100%;
    }
    .sec04_con {
        border-radius: 20px;
    }
    .sec04_item {
        flex-direction: column;
    }
    .sec04_wrap {
        flex-direction: column-reverse;
        margin-bottom: 30px;
    }
    .sec04_wrap_ttl {
        position: static;
        width: 100%;
        margin-bottom: 25px;
    }
    .sec04_item .item1, .sec04_con {
        margin-right: 0;
    }
    .sec04_con .sec04_img {
        border-radius: 20px 20px 0 0;
    }
    .sec04_list {
        gap: 5px;
        padding-left: 0px;
        flex-wrap: wrap;
    }
    .sec04_list li {
        width: 100px;
        gap: 3px;
        height: 36px;
    }
    .sec04_item .item2 {
        padding-top: 0;
        width: 100%;
    }
    .sec04_group {
        padding: 15px 12px;
    }
    .sec04_ttl .en {
        padding-right: 0;
        border-bottom: 1px solid #707070;
        display: block;
        border-right: none;
        width: fit-content;
        margin-bottom: 10px;
    }
    .sec04_ttl .ja {
        font-size: 20px;
        padding-left: 0;
    }
    .sec04_list li .label {
        width: 27px;
        height: 20px;
        font-size: 10px;
    }
    .sec04_list li .txt {
        font-size: 13px;
    }
    .sec04_ttl {
        margin-bottom: 10px;
    }
    .sec04_txt {
        margin-bottom: 15px;
    }
    .sec04_sub_ttl .en {
        font-size: 16px;
        margin-bottom: 10px;
    }
    .sec04_sub_ttl .ja {
        font-size: 28px;
    }
    .sec04_sub_ttl {
        margin-bottom: 20px;
        text-align: center;
    }
    .sec04_tab li a {
        width: 100%;
        height: 60px;
        font-size: 18px;
        padding-left: 20px;
        border-width: 1px;
    }
    .sec04_tab li {
        margin-bottom: 15px;
    }
    .sec04_tab {
        margin-bottom: 30px;
    }
    .sec04_tb dl dt, .sec04_tb dl dd {
        font-size: 16px;
    }
    .sec04_tb dl dt {
        width: 120px;
    }
    /* sec05 */
    .sec05 {
        padding-top: 40px;
        padding-bottom: 50px;
    }
    .sec05_ttl {
        font-size: 24px;
        margin-bottom: 20px;
    }
    .sec05_txt {
        margin-bottom: 25px;
    }
    /* sec06 */
    .sec06 .ttl_h3 {
        text-align: center;
    }
    .sec06 {
        padding-bottom: 50px;
        padding-top: 40px;
    }
    .sec06_item {
        flex-direction: column-reverse;
    }
    .sec06_box_item {
        margin: 0 auto;
        border-radius: 20px;
        padding: 25px 10px;
        width: 100%;
        height: 300px;
    }
    .sec06_box_item.ite4 .sec06_sub_img {
        right: 0;
        bottom: 0px;
        position: relative;
    }
    .sec06_box_item.ite4 {
        margin-top: 0px;
        height: auto;
    }
    .sec06_subttl, .sec06_sub_txt {
        text-align: center;
    }
    .sec06_item .item2 {
        max-width: 400px;
        margin: 0 auto;
    }
    .btn_gray {
        width: calc(50% - 5px);
        margin-bottom: 10px;
    }
    .box_btn_gray {
        gap: 0px 10px;
        margin-top: 20px;
    }
    .btn_gray a {
        width: 100%;
        background-size: 18px auto;
        font-size: 14px;
        padding-left: 25px;
    }
    .sec06_item .item1 {
        margin: 0 auto;
    }
    .sec06_list_add .txt {
        width: 100%;
    }
    .box_btn {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    /* sec07 */
    .sec07 {
        padding-top: 40px;
    }
    .sec07_ttl {
        font-size: 25px;
        margin-bottom: 40px;
    }
    /* sec08 */
    .sec08 {
        padding-top: 50px;
        padding-bottom: 50px;
    }
    .sec08 .ttl_h3 {
        margin-bottom: 20px;
    }
    .sec08_item img {
        width: 280px;
    }
    .sec08_item .item {
        margin: 0 10px;
    }
    .sec09_tb {
        padding: 25px 15px 8px 15px;
    }
    .sec09 .inner {
        border-radius: 20px;
        width: calc(100% - 30px) !important;
    }
    .sec09_item {
        flex-direction: column;
    }
    .sec09_item .item2 {
        margin-top: 0px;
    }
    .sec09_tb dl {
        margin-bottom: 20px;
        flex-direction: column;
    }
    .sec09_tb dl dt, .sec09_tb dl dd {
        font-size: 16px;
    }
    .sec09_list {
        margin-left: 0;
        padding: 0 15px;
        flex-wrap: wrap;
    }
    .sec09_list li {
        width: calc(50% - 5px);
        height: auto;
        border: 2px solid #464646;
        padding: 10px 9px;
    }
    .sec09 .btn_black {
        right: 0;
        bottom: 50px;
        left: 0;
        margin: 0 auto;
        text-align: center;
    }
    .sec09 .btn_black a {
        margin: 0 auto;
    }
    .sec09 {
        padding-bottom: 50px;
    }
    .sec10 {
        padding-top: 40px;
        padding-bottom: 50px;
    }
    .sec10 .ttl_h3 {
        margin-bottom: 25px;
    }
    .list_qa {
        width: 100%;
    }
    .list_qa_ttl {
        height: auto;
        padding: 12px 50px 12px 20px;
    }
    .list_qa_ttl .icon_q {
        font-size: 20px;
        width: 30px;
        flex-shrink: 0;
        align-self: flex-start;
        line-height: 1;
    }
    .list_qa_ttl .txt {
        font-size: 16px;
        line-height: 1.4;
    }
    .bor40 img {
        border-radius: 20px;
    }
    .ttl_h3 {
        font-size: 26px;
    }
    .sec11 .item {
        width: 360px;
        margin-right: 20px;
        height: 360px;
    }
    .sec11_ttl {
        font-size: 16px;
        padding: 0 5px;
    }
    .sec11 .slick-prev {
        left: 110px;
    }
    .sec11 .slick-next {
        left: 160px;
    }
    .sec11 .slick-prev, .sec11 .slick-next {
        top: -45px;
    }
    .sec11 {
        padding-top: 50px;
        padding-bottom: 50px;
    }
    .sec11 .ttl_h3 {
        margin-bottom: 27px;
    }
    .sec_form_ft {
        height: auto;
        padding-top: 40px;
        padding-bottom: 50px;
    }
    .sec_form_ttl {
        font-size: 28px;
        margin-bottom: 20px;
        line-height: 1.4;
    }
    .sec_form_txt {
        margin-bottom: 25px;
    }
    .sec_form_sub_ttl {
        font-size: 20px;
        margin-bottom: 35px;
    }
    .sec_form_w {
        width: 100%;
        height: auto;
        border-radius: 20px;
        padding: 30px 15px 45px 15px;
        flex-direction: column;
    }
    .sec_form_subttl {
        font-size: 22px;
        margin-bottom: 20px;
        text-align: center;
    }
    .sec_form_subtxt {
        text-align: center;
        margin-bottom: 25px;
    }
    .input1, .select1 {
        width: 100%;
        height: 50px;
        padding-left: 15px;
    }
    .sec_form_w .item2 {
        width: 100%;
        padding-top: 0;
    }
    .sec_form_w .item1 {
        width: 100%;
        margin-bottom: 25px;
    }
    .sec_form_box dl dt {
        font-size: 16px;
    }
    .sec_form_box dl dt .must {
        font-size: 14px;
    }
    .button_black {
        width: 300px;
        height: 60px;
        border-radius: 30px;
        background-size: 18px auto;
        background-position: right 15px center;
        line-height: 60px;
        padding-left: 20px;
        margin-left: 100px;
        margin: 0 auto;
    }
    .sec_form_box {
        margin-bottom: 35px;
    }
    .ft_bnr_item {
        gap: 10px;
        flex-wrap: wrap;
    }
    .ft_bnr {
        padding: 44px 0 43px;
    }
    address {
        padding: 20px 10px 20px;
        font-size: 12px;
    }
    /*============ FOOTER ============*/
    /* TO TOP */
    .to_top {
        width: 45px;
        height: 45px;
        right: 10px;
        bottom: 40px;
        z-index: 8;
    }
    /*============ END 750 ============ */
}
@media screen and (min-width: 640px) and (max-width: 750px) {
    .sec04_list li {
        width: auto;
        flex: 1;
    }
}
/* screen-max:440px */
@media screen and (max-width: 440px) {
    .sp440 {
        display: block !important;
    }
    .pc440 {
        display: none !important
    }
    .mv_box2_tt3 {
        width: auto;
        flex-direction: column;
        padding: 10px 25px;
        height: auto;
        gap: 0px;
    }
    .mv_box2_tt3 .ttl1 {
        padding-bottom: 7px;
    }
    .mv_box2_tt3 .ttl1:before {
        width: 100%;
        height: 1px;
        right: 0;
        top: auto;
        bottom: 0;
    }
    .ft_bnr_item img {
        width: 220px;
    }
}
@media screen and (max-width: 425px) {
    .sp425 {
        display: block !important;
    }
    .sec01_ttl {
        font-size: 24px;
    }
    .sec01_item .ttl {
        font-size: 18px;
    }
    .sec01_item .item2 .ttl {
        font-size: 24px;
    }
    .sec01_item .item3 .ttl {
        font-size: 15px;
    }
    .sec01_item .item {
        height: 130px;
    }
    .sec02_frame {
        font-size: 18px;
        padding: 8px 10px;
        height: auto;
    }
    .sec03_slide .item {
        width: 300px;
        height: 400px;
        margin: 0 10px;
    }
    .sec03_tt {
        font-size: 16px;
    }
    .sec03_txt {
        font-size: 14px;
    }
    .sec03_list li {
        width: 130px;
    }
    .sec03_list li p {
        font-size: 11px;
        padding: 0 15px;
    }
    .sec02_box dl {
        padding: 15px 0px;
    }
    .sec02_box dl dt {
        width: 150px;
    }
    .sec11 .item {
        width: 300px;
        height: 320px;
    }
}
/* screen-max: 360px */
@media screen and (max-width: 360px) {
    .sp360 {
        display: block !important;
    }
    .ttl_h3 {
        font-size: 24px;
    }
    .sec01_item .icon {
        width: 40px;
        height: 40px;
        font-size: 17px;
        margin-right: 10px;
    }
    .sec01_item .ttl {
        font-size: 15px;
    }
    .sec01_item .item2 .ttl {
        font-size: 21px;
    }
    .sec01_item .item3 .ttl .lg {
        font-size: 140%;
    }
    .sec03_slide .item {
        width: 280px;
        margin: 0 5px;
        padding: 25px 12px;
        height: 395px;
    }
    .sec03_tt {
        font-size: 15px;
    }
    .sec03_list li {
        width: 123px;
    }
    .sec03_list li p {
        padding: 0 10px;
    }
    .sec04_ttl1 {
        font-size: 20px;
    }
    .sec04_ttl2 {
        font-size: 17px;
        margin-bottom: 20px;
    }
    .sec04_list li {
        width: 125px;
    }
    .sec05_ttl {
        font-size: 20px;
    }
    .sec05_txt {
        width: calc(100% + 20px);
    }
    .sec02_frame {
        font-size: 15px;
    }
    .sec02_box dl dt, .sec02_box dl dd {
        font-size: 14px;
    }
    .sec02_box dl dt {
        width: 130px;
    }
    .sec11 .item {
        width: 280px;
        height: 315px;
    }
    .mv_btn_list li a, .mv_btn_list li .mv_btn_label {
        width: 120px;
    }
    .mv_btn_list li.item2 a, .mv_btn_list li.item2 .mv_btn_label {
        width: 160px;
    }
    .box_news_link a {
        font-size: 12px;
    }
    .box_news_load {
        width: calc(100% - 80px);
    }
    .btn_gray a {
        height: 40px;
    }
    .sec07_ttl {
        font-size: 22px;
    }
    .sec_form_sub_ttl {
        font-size: 17px;
    }
    .sec_form_subttl {
        font-size: 20px;
    }
    .sec11 .ttl_h3 {
        margin-bottom: 30px;
    }
    .button_black {
        width: 250px;
        font-size: 12px;
    }
}
@media screen and (max-width: 782px) {
    .admin-bar .h_box { top: 46px; }
}

@media screen and (max-width: 750px) {
    #logo img { width: 150px; height: auto; }
    .sec03_slide .item { padding-bottom: 80px; }
    .sec03_link { left: 15px; bottom: 20px; min-width: 160px; min-height: 40px; padding: 5px 20px; font-size: 14px; }
    .sec03_slide .item3 .sec03_list { gap: 7px; }
    .sec05 { padding: 45px 0; }
    .sec05_visual { height: 330px; }
    .sec05_ttl { font-size: 24px; }
    .sec_case { padding: 55px 0; }
    .sec_case_head { margin-bottom: 20px; }
    .sec_case_head > a { padding: 8px 18px; font-size: 14px; }
    .sec_case_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .sec_case_card { padding: 8px 8px 15px; }
    .sec_case_name { font-size: 15px; }
    .sec_case_text { font-size: 12px; }
    .sec07_visual { height: 330px; }
    .sec07_ttl { font-size: 25px; margin: 0; }
    .sec08 { padding-top: 35px; }
    .sec09_item .item1, .sec09_item .item2 { width: 100%; }
    .sec09_tb { padding: 25px 18px 8px; }
    .sec09_tb dl { display: flex; flex-direction: row; gap: 12px; margin-bottom: 12px; }
    .sec09_tb dl dt { width: 115px; }
    .sec09_tb dl dt, .sec09_tb dl dd { font-size: 13px; }
    .sec10 { padding: 45px 0; }
    .sec10_banner { min-height: 100px; padding: 16px 18px 16px 25px; }
    .sec10_banner_copy strong { font-size: 22px; }
    .sec10_banner_copy > span { font-size: 11px; text-align: center; }
    .sec10_banner_arrow { width: 32px; height: 32px; }
    .sec10_banner_arrow::before { width: 8px; height: 8px; border-width: 2px; transform: translateX(-2.5px) rotate(45deg); }
}

@media screen and (max-width: 425px) {
    .sec_case_grid { grid-template-columns: 1fr; }
    .sec_case_card img { aspect-ratio: 16/9; }
    .sec03_slide .item3 .sec03_txt { margin-bottom: 12px; }
    .sec03_slide .item3 .sec03_list li { height: 62px; }
    .sec03_slide .item3 .sec03_list li p { font-size: 10px; }
}

/* Top-page correction sheet, 2026-09-26 */
@media screen and (min-width: 751px) and (max-width: 1500px) {
    .sec09_img { width: 100%; }
}
@media screen and (min-width: 751px) and (max-width: 1280px) {
    .sec09_tb { padding-left: 35px; }
    .sec09_tb dl dt { width: 180px; }
    .sec09_tb dl dt, .sec09_tb dl dd { font-size: 14px; }
    .sec09_list { margin-left: 35px; }
    .sec09_list li { width: calc(50% - 5px); }
}
@media screen and (max-width: 750px) {
    #wrapper { min-width: 0; }
    .top-floating-cta {
        top: auto;
        bottom: 0;
        right: 0;
        left: 0;
        transform: none;
        justify-content: center;
        flex-direction: row;
        width: 100%;
        min-height: 62px;
        padding: 12px 45px 12px 16px;
        border-radius: 0;
        writing-mode: horizontal-tb;
        text-align: center;
        font-size: 14px;
    }
    .top-floating-cta span { position: absolute; right: 17px; }
    body#index { padding-bottom: 62px; }
    body#index .to_top { bottom: 76px; }
    body.pw-product { padding-bottom: 62px; }
    body.pw-product .to_top { bottom: 76px; }
    body.pw-area-chugoku { padding-bottom: 62px; }
    body.pw-area-chugoku .to_top { bottom: 76px; }
    .sec02_ttl3 { font-size: clamp(24px, 7.2vw, 42px); }
    .sec02_box dl dd small { font-size: 12px; }
    .sec03_slide .item3 .sec03_list li p { font-size: 12px; }
    .sec03_link { font-size: 15px; }
    .sec04_ttl { display: block; }
    .sec04_ttl .ja { white-space: normal; }
    .sec05_visual, .sec07_visual { border-radius: 22px; }
    .sec09_item .item1, .sec09_item .item2 { width: 100%; }
    .sec09_item .item1 { padding-bottom: 18px; }
    .sec09_item .item2 { align-self: auto; min-height: 340px; }
    .sec09_tb { padding: 25px 18px 8px; }
    .sec09_tb dl dt { width: 115px; flex-shrink: 0; }
    .sec09_tb dl dt, .sec09_tb dl dd { font-size: 13px; }
    .sec09_list { margin: 0; }
    .sec09_img { width: 100%; height: 340px; }
    .sec09_img img { height: 100%; object-fit: contain; }
    .sec09 .btn_black { bottom: 15px; }
    .sec09 .btn_black a { margin: 0 auto; }
    .sec10 { padding: 55px 0; }
    .sec10_banner { min-height: 125px; border-radius: 70px; }
    .sec10_banner_copy strong { font-size: 22px; }
    .sec10_banner_copy > span { font-size: 11px; }
    .sec_case_title_controls { gap: 16px; }
    .sec_case .inner { width: calc(100% - 32px); }
    .sec_case_controls button { width: 32px; height: 32px; font-size: 25px; }
    .sec_case_card { width: min(78vw, 360px); min-height: 0; margin-right: 16px; padding: 12px 12px 20px; }
    .sec_case_name { margin: 12px 6px 8px; font-size: 17px; }
    .sec_case_text { margin: 0 6px; font-size: 13px; }
    .sec_form_w .button_black { width: min(100%, 360px); height: 60px; }
}
@media screen and (max-width: 425px) {
    .sec_case_card img { aspect-ratio: 360 / 220; }
    .sec_case_head > a { padding: 8px 12px; font-size: 12px; }
}

/* 2026-09-30 クライアント修正：メインビジュアルのPowerwall 3ロゴ */
@media screen and (max-width: 750px) {
    .mv_mid .mv_logo { width: 160px; bottom: 0; margin-right: 6px; vertical-align: -1px; }
}

/* 2026-10-05 お問い合わせフォーム（Contact Form 7） */
@media screen and (max-width: 750px) {
    .pw-cf7 .input1, .pw-cf7 .select1 { width: 100%; }
    .pw-cf7 .pw-msform-choice { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .pw-cf7 .pw-msform-choice .wpcf7-list-item-label { padding: 13px 16px; font-size: 15px; }
    .pw-cf7 .pw-msform-confirm dl { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 12px 2px; }
    .pw-cf7 .pw-msform-actions { flex-direction: column-reverse; }
    .pw-cf7 input.button_black { width: min(100%, 320px); height: 56px; line-height: 56px; font-size: 15px; }
    .pw-cf7 .pw-msform-back { width: min(100%, 320px); height: 52px; }
}

/* 2026-10-06 ページ下部のフォーム（SPは高さ自動のまま） */
@media screen and (max-width: 750px) {
    .sec_form_ft, .sec_form_w { min-height: 0; }
}

/* 2026-10-06 販売・施工代理店募集フォーム（SP） */
@media screen and (max-width: 750px) {
    .pw-cf7 .pw-msform-subhead { font-size: 16px; }
    .pw-cf7 .sec_form_box dl dt { flex-wrap: wrap; }
    .pw-cf7 .pw-msform-accept label { font-size: 14px; }
}

/* 2026-10-06 フォームの個人情報保護方針（SP） */
@media screen and (max-width: 750px) {
    .pw-cf7 .pw-msform-policy { height: 180px; padding: 14px 16px; font-size: 12px; }
}

/* 2026-10-08 スマホのメインビジュアル：壁の Powerwall 3 が見えるよう、PC用の画像（main_pc.jpg）を使って位置を調整し、
   文字は上寄せにして製品と重ならないようにする（元の main_sp.jpg の指定は上の .mv_bg:before に残っています） */
@media screen and (max-width: 750px) {
    .mv_bg:before {
        background: url(../images/main_pc.jpg) no-repeat;
        background-size: auto 620px;
        background-position: -215px bottom;
    }
    .mv_txt {
        justify-content: flex-start;
        padding-top: 150px; /* 2026-10-08 キャッチコピーを中央付近へ（製品にはかぶらない位置） */
    }
}

/* 2026-10-08 スマホ：フッターのバナーを2列に／画面下の固定ボタン（工事費込み見積もり）がフッターにかぶらないようにする */
@media screen and (max-width: 750px) {
    .ft_bnr .inner { width: calc(100% - 32px); margin: 0 auto; }
    .ft_bnr_item { gap: 12px; justify-content: space-between; }
    .ft_bnr_item .item { width: calc(50% - 6px); }
    .ft_bnr_item img, .ft_bnr_item .ft_bnr_link img { width: 100%; height: auto; }
    /* 固定ボタンがあるページは、ページの一番下に固定ボタンの高さ分の余白を取る */
    body:has(.top-floating-cta) { padding-bottom: 62px; }
    /* フッター（バナー・コピーライト）が見えている間は、固定ボタンを隠す（common.js で .is-footer-visible を付ける） */
    .top-floating-cta { transition: transform .3s, opacity .3s; }
    body.is-footer-visible .top-floating-cta { transform: translateY(100%); opacity: 0; pointer-events: none; }
    body.is-footer-visible .to_top { bottom: 20px; }
}

/* 2026-10-08 スマホ：トップページ「電気の流れ」の切り替えボタン（昼・夜・停電）を3つ横並びに */
@media screen and (max-width: 750px) {
    .sec04_tab { display: flex; gap: 8px; }
    .sec04_tab li { flex: 1 1 0; min-width: 0; margin-bottom: 0; }
    .sec04_tab li a { flex-direction: column; justify-content: center; width: 100%; height: auto; min-height: 76px; padding: 10px 4px; border-radius: 16px; font-size: 13px; line-height: 1.35; text-align: center; }
    .sec04_tab li a:before { display: none; }
    .sec04_tab_sep { display: none; }
    .sec04_tab_t1 { margin-bottom: 4px; font-size: 16px; font-weight: 900; }
    .sec04_tab_t2 { font-size: 12px; font-weight: 700; }
}

/* 2026-10-08 スマホ：切り替えボタン（昼・夜・停電）を、モードの見出し・画像より上に表示（表は画像の下のまま） */
@media screen and (max-width: 750px) {
    .sec04_item .item2 { display: contents; }
    .sec04_item .sec04_tab { order: -1; margin-bottom: 24px; }
    .sec04_item .sec04_tb { order: 1; }
}

/* 2026-10-08 スマホ：見出しが中途半端な位置で改行されないよう、画面幅に合わせて文字サイズを調整（vw）
   ※ min() を使い、これまでの文字サイズより大きくはならない。下層ページの分は under_responsive.css */
@media screen and (max-width: 750px) {
    .sec05_ttl { font-size: min(24px, 5.6vw); }
    .sec07_ttl { font-size: min(25px, 6vw); }
}
/* 2026-10-19 1281〜1400pxでヘッダーのナビが2行にならないよう、文字の折り返しをなくし、ロゴを少し小さくする */
@media screen and (min-width: 751px) {
    .nav_list > li > a, .nav_list > li > .hook { white-space: nowrap; }
}
@media screen and (min-width: 1281px) and (max-width: 1400px) {
    #logo img { width: 180px; }
}
