@charset "UTF-8";
/* 2026-10-08 表示速度改善：@import は読み込みが直列になり表示が遅れるため、functions.php で個別に読み込む（下の3行は元の記述）
@import "base.css";
@import "fonts.css";
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');
*/
/*==========================================================================*/
/*                                                                          */
/*    base.css  --> スタイルの初期設定を行うため、変更しないで下さい。      */
/*    fonts.css --> フォントの初期設定を行うため、変更しないで下さい。      */
/*                                                                          */
/*==========================================================================*/
/*==========================================================================*/
/*                           Common-Setting                                 */
/*==========================================================================*/
/* 基本タグのフォントサイズを指定（12px -> 120% or 1.2em ） */
h1, h2, h3, h4, h5, h6, input, button, textarea, select, p, blockquote, th, td, pre, address, li, dt, dd, del {
    font-size: 160%;
    -webkit-text-size-adjust: none;
    font-weight: 400;
}
*, ::before, ::after {
    box-sizing: border-box;
    outline: none;
}
img {
    vertical-align: middle;
    max-width: 100%;
    flex-shrink: 0;
    height: auto;
}
select {
    visibility: visible !important;
}
a {
    transition: all ease 0.3s;
    text-decoration: none;
    color: var(--txt);
}
a[href^="tel:"] {
    word-break: keep-all;
}
video {
    max-width: 100%;
    height: auto;
}
figure {
    margin: 0;
}
figure:not(:last-child) {
    margin-bottom: 20px;
}
/*==========================================================================*/
/*                               Container                                  */
/*==========================================================================*/
html {
    background: #fff
}
body {
    -webkit-text-size-adjust: none;
    min-width: 320px;
    color: var(--txt);
    font-family: var(--f-main)
}
table {
    width: 100%
}
h1, h2, h3, h4, h5, h6 {
    line-height: 1.4;
}
p, dd, dt, li, th, td, address {
    line-height: 1.875em;
    letter-spacing: 0;
}
p {
    margin: 0 0 1.5em;
}
p:last-child {
    margin-bottom: 0
}
.bold {
    font-weight: bold;
}
.left {
    text-align: left
}
.right {
    text-align: right;
}
.auto {
    margin-left: auto;
    margin-right: auto;
}
.red {
    color: var(--red);
}
.txt_u {
    text-decoration: underline;
}
.f_big {
    font-size: 150%;
}
.f_sm {
    font-size: 80%;
}
.m0a {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
:root {
    --txt: #212121;
    --black: #000;
    --mcolor: #313131;
    --scolor: #F5F5F7;
    --container: 1430px;
    --gray: #e9e9e9;
    --blue: #003b7d;
    --red: red;
    --f-main: 'Noto Sans JP', sans-serif;
}
#wrapper {
    min-width: 1260px;
    overflow: hidden;
    margin: 0 auto
}
.inner {
    width: var(--container);
    margin: 0 auto;
    position: relative;
    max-width: 100%;
    padding: 0 15px;
}
/*==========================================================
                       H E A D E R
==========================================================*/
/* HAMBUGER BUTTON */
.hamburger {
    font: inherit;
    display: block;
    overflow: visible;
    margin: 0;
    padding: 10px 8px 5px;
    cursor: pointer;
    transition-timing-function: linear;
    transition-duration: .15s;
    transition-property: opacity, filter;
    text-transform: none;
    color: inherit;
    border: 0
}
.hamburger-box {
    position: relative;
    display: inline-block;
    width: 35px;
    height: 24px
}
.hamburger-inner {
    top: 50%;
    display: block;
    margin-top: -2px
}
.hamburger-inner, .hamburger-inner::after, .hamburger-inner::before {
    position: absolute;
    width: 35px;
    height: 2px;
    transition: all ease 0.15s;
    background-color: #000
}
.hamburger-inner::after, .hamburger-inner::before {
    display: block;
    content: ""
}
.hamburger-inner::before {
    top: -10px
}
.hamburger-inner::after {
    bottom: -10px
}
.hamburger--3dxy .hamburger-box {
    perspective: 80px
}
.hamburger--3dxy .hamburger-inner {
    transition: transform .15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0 cubic-bezier(0.645, 0.045, 0.355, 1) .1s
}
.hamburger--3dxy .hamburger-inner::after, .hamburger--3dxy .hamburger-inner::before {
    transition: transform cubic-bezier(0.645, 0.045, 0.355, 1) .1s
}
.hamburger--3dxy.is_active .hamburger-inner {
    transform: rotateX(180deg) rotateY(180deg);
    background-color: transparent !important
}
.hamburger--3dxy.is_active .hamburger-inner::before {
    transform: translate3d(0, 10px, 0) rotate(45deg)
}
.hamburger--3dxy.is_active .hamburger-inner::after {
    transform: translate3d(0, -10px, 0) rotate(-45deg)
}
header {
    position: relative;
    z-index: 9;
}
h1 {
    padding: 14px 0;
}
.h_box {
    width: 100%;
    position: fixed;
    background-color: #fff;
}
.is_scroll .h_box {
    box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.10);
}
.h_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    width: 100%;
}
.h_contact {
    display: flex;
    align-items: center;
}
.h_contact > p {
    margin-bottom: 0;
}
.h_contact > p:not(:last-child) {
    margin-right: 20px;
}
.h_contact_mail a {
    color: #FFF;
    font-weight: bold;
    text-align: center;
    background-color: var(--mcolor);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 250px;
    height: 60px;
    position: relative;
}
.h_contact_mail a span {
    position: relative;
    z-index: 2;
    font-size: 20px;
    display: inline-block;
    padding-left: 30px;
}
.h_contact_mail a span::before {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    left: 0;
    top: calc(50% - 10px);
    background: url('../images/ic_h_mail.png') no-repeat center /cover;
}
.h_contact_tel a {
    font-size: 28px;
    color: #332829;
    font-weight: bold;
    padding-left: 25px;
    position: relative;
    line-height: 1;
    display: block;
}
.h_contact_tel .time {
    font-size: 12px;
    display: block;
    line-height: 1.6;
    text-align: right;
}
.h_btn {
    display: flex;
    gap: 15px;
}
.h_btn p {
    margin-bottom: 0;
}
.h_btn p a {
    display: flex;
    align-items: center;
    justify-content: center;
}
.h_btn p a {
    width: 220px;
    height: 50px;
    border-radius: 40px;
}
.h_btn .btn_w a {
    border: 1px #141414 solid;
    font-size: 16px;
    font-weight: bold;
    color: #1C1C1C;
}
.h_btn .btn_black a {
    background: #313131;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    width: 280px;
    flex-direction: column;
    line-height: 1.3;
}
.h_btn .btn_black a span {
    font-size: 75%;
    display: block;
}
/*==========================================================
                  M A I N    V I S U A L
==========================================================*/
main {
    position: relative;
    z-index: 2;
    padding-top: 80px;
}
.mv {
    position: relative;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin-bottom: 80px;
}
.mv_bg {
    position: relative;
    left: 0;
    top: 0;
    width: 100%;
    height: 820px;
}
.mv_bg:before {
    position: absolute;
    content: "";
    background: url("../images/main_pc.jpg") no-repeat center top/1920px;
    left: calc(50% - 960px);
    top: 0;
    height: 100%;
    width: 1920px;
    pointer-events: none;
}
.mv_txt {
    z-index: 2;
    width: 100%;
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    height: 820px;
    justify-content: center;
    position: relative;
    padding-right: 280px;
    padding-bottom: 33px;
    color: #fff;
}
.mv_txt h2 {
    font-size: 40px;
    font-weight: bold;
    display: flex;
    flex-direction: column;
}
.mv_b {
    font-weight: 900;
    font-size: 32px;
    letter-spacing: 0.3em;
    margin-bottom: 5px;
}
.mv_mid {
    font-weight: 500;
    font-size: 32px;
    margin-bottom: 4px;
}
.mv_btn_list {
    display: flex;
    gap: 10px;
    margin-top: 30px;
}
.mv_btn_list li a,
.mv_btn_list li .mv_btn_label {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    border: 1px #fff solid;
    border-radius: 40px;
    font-weight: bold;
    width: 170px;
    height: 50px;
    position: relative;
}
.mv_btn_list li.item2 a,
.mv_btn_list li.item2 .mv_btn_label {
    width: 180px;
}
.mv_btn_list li a:before {
    position: absolute;
    content: "";
    width: 6px;
    height: 10px;
    background: #FFFFFF;
    top: calc(50% - 5px);
    right: 11px;
}
.box_news {
    position: absolute;
    bottom: 56px;
    right: 0;
    display: flex;
    background: #fff;
    width: 772px;
    height: 70px;
    border-radius: 40px 0 0 40px;
    align-items: center;
    padding: 0 30px 0 42px;
    z-index: 9;
}
.mv_box2 {
    background: #F5F5F7;
    width: 100%;
    height: 90px;
}
.mv_box2 .inner {
    display: flex;
    align-items: center;
    gap: 59px;
    height: 100%;
}
.mv_box2 p {
    margin-bottom: 0;
}
.mv_box2_tt1, .mv_box2_tt2 {
    font-size: 24px;
    font-weight: bold;
    flex-shrink: 0;
    color: #000;
}
.mv_box2_tt1 {
    position: relative;
}
.mv_box2_tt1:before {
    position: absolute;
    content: "";
    width: 1px;
    height: 50px;
    background: #C9C9C9;
    right: -29px;
    top: -2px;
}
.mv_box2_tt1 .lg, .mv_box2_tt2 .lg {
    font-size: 125%;
    font-weight: 900;
}
.mv_box2_tt2 .en {
    font-weight: 900;
}
.mv_box2_tt3 {
    background: var(--mcolor);
    color: #FFFFFF;
    width: 560px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 40px;
    gap: 25px;
}
.mv_box2_tt3 .ttl1 {
    font-size: 20px;
    font-weight: bold;
    position: relative;
}
.mv_box2_tt3 .ttl1:before {
    position: absolute;
    content: "";
    width: 1px;
    height: 20px;
    background: #707070;
    right: -13px;
    top: 5px;
}
.mv_box2_tt3 .ttl2 {
    font-size: 13px;
    font-weight: 500;
}
.box_news_load {
    width: calc(100% - 110px);
}
.box_news_load dl {
    display: flex;
    gap: 40px;
}
.box_news_load dd {
    width: calc(100% - 110px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.box_news_load dd a {
    text-underline-offset: 3px;
}
.box_news_load dt, .box_news_load dd {
    color: #000;
    font-weight: 500;
}
.box_news_link {
    margin-left: auto;
}
.box_news_link a {
    text-decoration: underline;
    font-size: 14px;
    color: #000;
    font-weight: 500;
    text-underline-offset: 2px;
}
/*==========================================================
                M A I N    C O N T E N T
==========================================================*/
/* DEFAULT TITLE */
.ttl_h3 {
    font-weight: 900;
    font-size: 35px;
    color: #000;
}
.ttl_h3:not(:last-child) {
    margin-bottom: 35px;
}
.ttl_h3 span {
    display: block;
}
.ttl_h3 .ja {
    font-size: 32px;
}
.ttl_h3 .en {
    font-size: 16px;
}
/* DEFAUTL NAME BUTTON */
.btn a {
    width: 250px;
    height: 60px;
    border-radius: 30px;
    display: flex;
    align-items: center;
    background: url('../images/icon_b.png') no-repeat right 15px center /24px #fff;
    font-size: 16px;
    color: #000;
    font-weight: 700;
    padding-left: 35px;
}
.btn_gray {
    margin-bottom: 20px;
}
.btn_black a {
    background: url('../images/icon_w.png') no-repeat right 20px center /24px #313131;
    width: 440px;
    height: 80px;
    border-radius: 40px;
    color: #fff;
    line-height: 1.45;
    padding-bottom: 3px;
}
.btn_black1 a {
    background: #313131;
    width: 440px;
    height: 80px;
    border-radius: 40px;
    flex-direction: column;
    color: #fff;
    line-height: 1.45;
    padding-bottom: 3px;
    margin: 0 auto;
    justify-content: center;
    padding-left: 0;
}
.btn_black1 a .lg {
    font-size: 150%;
    font-weight: 700;
}
.btn_gray a {
    width: 230px;
    height: 50px;
    border-radius: 25px;
    background: url("../images/icon_b.png")#eeeef2 no-repeat right 15px center/24px;
}
.btn.center a {
    margin-left: auto;
    margin-right: auto;
}
.btn_box:not(:last-child) {
    margin-bottom: 30px;
}
.btn_box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}
.btn_box .btn {
    margin: 10px;
}
/*============= SEC01 ==============*/
.sec01, .sec01_box {
    position: relative;
}
.sec01_box {
    display: flex;
    justify-content: flex-start;
    border-radius: 40px;
    height: 510px;
    overflow: hidden;
    flex-direction: column;
    padding: 51px 60px 0;
}
.sec01_box:before {
    position: absolute;
    content: "";
    background: url("../images/idx_bg1.jpg") no-repeat center top/cover;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: -1;
}
.sec01_ttl {
    font-weight: 900;
    font-size: 40px;
    color: #fff;
    margin-bottom: 26px;
}
.sec01_ttl .sm {
    display: block;
    font-size: 75%;
    margin-top: 4px;
}
.sec01_des {
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    line-height: 1.65;
    margin-bottom: 45px;
}
.sec01_item {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    position: relative;
    gap: 40px;
}
.sec01_item .item {
    border-radius: 20px;
    background: #fff;
    border: 3px solid #232323;
    position: relative;
    display: flex;
    height: 160px;
    align-items: center;
    padding: 0 10px 0 28px;
}
.sec01_item .icon {
    width: 60px;
    height: 60px;
    background: #000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 26px;
    color: #fff;
    margin-bottom: 0;
    margin-right: 20px;
    flex-shrink: 0;
}
.sec01_item .ttl {
    font-weight: 900;
    font-size: 24px;
    line-height: 1.29;
    color: #000;
}
.sec01_item .item2 .ttl {
    font-size: 32px;
    line-height: 1.2;
}
.sec01_item .item2 .ttl .lg {
    font-size: 143%;
}
.sec01_item .item3 .ttl {
    font-size: 18px;
}
.sec01_item .item3 .ttl .lg {
    font-size: 166%;
    line-height: 1.16;
}
/*============= SEC02 ==============*/
.sec02 {
    padding: 140px 0 155px;
}
.sec02_item {
    display: flex;
    align-items: center;
}
.sec02_item .item1 {
    max-width: 670px;
    margin-right: 90px;
}
.sec02_item .item2 {
    flex-shrink: 0;
}
.sec02_wrap {
    display: flex;
    flex-direction: column;
}
.sec02_ttl1 {
    width: 172px;
    height: 40px;
    border-radius: 20px;
    background: #c90000;
    color: #fff;
    font-size: 18px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 13px;
}
.sec02_ttl2 {
    font-family: "Noto Sans JP";
    font-weight: 900;
    font-size: 24px;
    color: var(--black);
    margin-bottom: 0px;
}
.sec02_ttl2 span {}
.sec02_ttl3 {
    color: var(--black);
    font-size: 76px;
    font-weight: 900;
    line-height: 0.95;
    margin-bottom: 40px;
}
.sec02_ttl3 .number {
    font-size: 157%;
}
.sec02_box {
    margin-bottom: 30px;
    margin-right: 10px;
}
.sec02_box dl:first-child {
    border-top: 1px #C9C9C9 solid;
}
.sec02_box dl {
    display: flex;
    border-bottom: 1px #C9C9C9 solid;
    align-items: center;
    padding: 23px 10px 22px;
}
.sec02_box dl dt {
    width: 220px;
    font-size: 18px;
}
.sec02_box dl dd {
    font-size: 18px;
    font-weight: 700;
}
.sec02_frame {
    width: 100%;
    height: 80px;
    border-radius: 20px;
    border: 3px solid #464646;
    font-weight: 900;
    font-size: 22px;
    color: #c90000;
    line-height: 1.875;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 2px;
    margin-bottom: 14px;
    padding-left: 15px;
}
.sec02_txt {
    margin-bottom: 44px;
}
.sec02_img {}
/*============= SEC03 ==============*/
.sec03 {
    padding-bottom: 180px;
}
.sec03 .inner {
    width: 100%;
    padding: 0;
}
.sec03_ttl {
    text-align: center;
    font-family: "Noto Sans JP";
    font-weight: 900;
    font-size: 40px;
    color: #000;
    margin-bottom: 60px;
}
.sec03_slide.slick-slider {
    margin-bottom: 50px;
}
.sec03_slide .slick-dots li {
    margin: 0 8px;
}
.sec03_slide .slick-dots {
    bottom: -53px;
}
.sec03_slide .slick-dots li button::before {
    display: none;
}
.sec03_slide .slick-dots .slick-active {
    pointer-events: none;
}
.sec03_slide .slick-dots li {
    width: 50px;
    height: 10px;
    border-radius: 5px;
    background: #a2a2a2;
    border: 1px solid #a2a2a2;
}
.sec03_slide .slick-dots .slick-active, .sec03_slide .slick-dots li:hover {
    background: #fff;
}
.sec03_slide .item {
    width: 1200px;
    height: 650px;
    border-radius: 40px;
    margin: 0 25px;
    color: #fff;
    padding: 96px 107px;
}
.sec03_slide .item1 {
    background: url("../images/slide_bg01.jpg") no-repeat center top/cover;
}
.sec03_slide .item2 {
    background: url("../images/slide_bg02.jpg") no-repeat center top/cover;
}
.sec03_slide .item3 {
    background: url("../images/slide_bg03.jpg") no-repeat center top/cover;
}
.sec03_slide .item2 {}
.sec03_slide .item3 {}
.sec03_tt {
    font-weight: 900;
    font-size: 40px;
    line-height: 1.73;
    margin-bottom: 43px;
    display: flex;
    flex-direction: column;
}
.sec03_slide .item3 .sec03_tt {
    margin-bottom: 44px;
}
.sec03_slide .item3 .sec03_txt {
    margin-bottom: 67px;
}
.sec03_tt .sm {
    font-size: 18px;
}
.sec03_tt .lg {
    font-size: 42px;
    line-height: 1.45;
}
.sec03_txt {
    font-size: 20px;
    line-height: 2;
}
.sec03_list {
    display: grid;
    grid-template-columns: repeat(2, 2fr);
    gap: 20px;
    max-width: 580px;
}
.sec03_list li {
    width: 280px;
    height: 80px;
    border-radius: 20px;
    background-color: rgba(255, 255, 255, 0.9);
}
.sec03_list li p {
    font-weight: 500;
    font-size: 13px;
    color: #090909;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 15px 0 25px;
}
.sec03_list li p .sm {
    line-height: 1.5;
}
.sec03_list li p .lg {
    font-size: 123%;
    font-weight: bold;
    color: #000;
}
/*============= SEC04 ==============*/
.sec04 {
    background: #eeeef2;
    padding: 127px 0 140px;
}
.sec04_ttl1 {
    font-family: "Noto Sans JP";
    font-weight: 900;
    font-size: 60px;
    text-align: center;
    color: #000;
    margin-bottom: 9px;
}
.sec04_ttl2 {
    font-family: "Noto Sans JP";
    font-weight: 900;
    font-size: 32px;
    text-align: center;
    color: #000;
    margin-bottom: 69px;
}
.sec04_item {
    display: flex;
}
.sec04_item .item1 {
    position: relative;
    margin-right: 60px;
}
.sec04_item .item2 {
    padding-top: 230px;
    width: 460px;
}
.sec04_wrap {
    display: flex;
    width: 880px;
}
.sec04_con {
    flex-shrink: 0;
    width: 880px;
    border-radius: 40px;
    background: #232323;
    padding-bottom: 14px;
    margin-right: 60px;
}
.sec04_con .sec04_img {
    margin-bottom: 0px;
    border-radius: 40px 40px 0 0;
    overflow: hidden;
}
.sec04_group {
    padding: 26px 30px;
    color: #f5f5f7;
}
.sec04_ttl {
    margin-bottom: 19px;
    font-weight: 700;
}
.sec04_ttl .en {
    padding-right: 22px;
    height: 30px;
    line-height: 30px;
    display: inline-block;
    border-right: 1px solid #707070;
}
.sec04_ttl .ja {
    font-size: 24px;
    padding-left: 16px;
}
.sec04_txt {
    color: #fff;
    margin-bottom: 31px;
}
.sec04_list {
    display: flex;
    gap: 10px;
    padding-left: 20px;
}
.sec04_list li {
    width: 150px;
    height: 40px;
    border-radius: 20px;
    border: 1px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    gap: 10px;
}
.sec04_list li .label {
    width: 39px;
    height: 22px;
    border-radius: 3px;
    background: #535353;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}
#sec04_box03-i .sec04_list li.bg_1 {
    background: rgba(255, 255, 255, 0.15);
}
#sec04_box03-i .sec04_list li.bg_1 .label {
    background: #000;
}
.sec04_list li .txt {
    font-size: 16px;
}
.sec04_wrap_ttl {
    margin-left: auto;
    border-top: 1px #c9c9c9 solid;
    padding-top: 26px;
    position: absolute;
    left: 940px;
    width: 490px;
}
.sec04_sub_ttl {
    display: flex;
    flex-direction: column;
    color: #000;
    font-weight: 900;
    margin-bottom: 42px;
}
.sec04_sub_ttl .en {
    font-size: 20px;
    margin-bottom: 12px;
}
.sec04_sub_ttl .ja {
    font-size: 35px;
}
.sec04_sub_txt {
    color: #000;
}
.sec04_tab {
    margin-bottom: 70px;
}
.sec04_tab li {
    margin-bottom: 20px;
}
.sec04_tab li a {
    width: 460px;
    height: 80px;
    border-radius: 40px;
    font-weight: bold;
    font-size: 20px;
    color: #000;
    display: flex;
    align-items: center;
    border: 2px solid #fff;
    position: relative;
    padding-left: 40px;
}
.sec04_tab li a.active {
    background: #fff;
    pointer-events: none;
}
.sec04_tab li a.active:before {
    background: url("../images/icon_b.png") no-repeat right center/24px;
}
.sec04_tab li a:before {
    position: absolute;
    content: "";
    background: url("../images/icon_w.png") no-repeat right center/24px;
    width: 24px;
    height: 24px;
    right: 28px;
    transition: all ease 0.3s;
}
.sec04_tb {}
.sec04_tb dl:first-child {
    border-top: 1px #c9c9c9 solid;
}
.sec04_tb dl {
    display: flex;
    border-bottom: 1px #c9c9c9 solid;
    padding: 13px 10px 12px;
}
.sec04_tb dl dt, .sec04_tb dl dd {
    font-size: 18px;
    color: #000;
}
.sec04_tb dl dt {
    font-weight: bold;
    width: 180px;
}
.sec04_tb dl dd {}
/*============= SEC05 ==============*/
.sec05 {
    padding-top: 160px;
    padding-bottom: 185px;
}
.sec05_ttl {
    font-weight: 900;
    font-size: 50px;
    text-align: center;
    color: #000;
    margin-bottom: 35px;
}
.sec05_ttl .lg {
    font-size: 120%;
    display: block;
}
.sec05_txt {
    text-align: center;
    margin-bottom: 56px;
}
.sec05_txt p {
    line-height: 1.875;
}
/*============= SEC06 ==============*/
.sec06 {
    background: #f5f5f7;
    padding-bottom: 140px;
    padding-top: 140px;
}
.sec06_item {
    display: flex;
    gap: 20px;
}
.sec06_item .item1 {
    width: 270px;
    flex-shrink: 0;
    margin-right: 80px;
}
.sec06_item .item2 {}
.sec06_img {
    margin-bottom: 30px;
}
.sec06_ttl1 {
    width: 270px;
    height: 35px;
    border-radius: 10px;
    background: #131d4b;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-align: center;
    line-height: 35px;
    margin-bottom: 5px;
}
.sec06_ttl2 {
    font-size: 20px;
    font-weight: 700;
    color: #000;
    margin-bottom: 23px;
}
.sec06_ttl2 .sm {
    display: block;
}
.sec06_ttl2 .mid {
    display: flex;
    font-size: 24px;
}
.sec06_ttl2 .mid .lg {
    font-size: 125%;
    margin-left: 7px;
}
.sec06_list_add {
    margin-bottom: 38px;
}
.sec06_list_add .item {
    margin-bottom: 25px;
}
.sec06_list_add .ttl {
    margin-bottom: 5px;
}
.sec06_list_add .ttl a {
    font-weight: bold;
    font-size: 18px;
    color: #000;
    width: fit-content;
    background: url("../images/icon_b.png") no-repeat right center/16px;
    padding-right: 29px;
	    padding-bottom: 1px;
}
.sec06_list_add .txt {
    font-size: 14px;
    line-height: 1.57;
    color: #212121;
    width: calc(100% + 50px);
    position: relative;
}
.box_btn {}
.box_btn p:not(:last-child) {
    margin-bottom: 15px;
}
.sec06_box {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.sec06_box_item {
    width: 330px;
    height: 320px;
    background: #fff;
    border-radius: 40px;
    padding: 42px 10px 0 45px;
    position: relative;
    overflow: hidden;
}
.sec06_box_item.ite4 {
    height: 510px;
    width: 100%;
    margin-top: 40px;
}
.sec06_subttl {
    font-weight: bold;
    font-size: 20px;
    color: #000;
    margin-bottom: 6px;
}
.sec06_sub_txt {
    color: #212121;
    margin-bottom: 20px;
}
.sec06_sub_img {
    position: absolute;
    right: 0;
    bottom: 0;
}
.sec06_box_item.ite4 .sec06_sub_img {
    right: 68px;
    bottom: 65px;
}
.box_btn_gray {
    display: flex;
    flex-wrap: wrap;
    max-width: 480px;
    gap: 0px 20px;
    margin-top: 41px;
}
/*============= SEC07 ==============*/
.sec07 {
    padding-top: 170px;
}
.sec07 .inner {
    width: 100%;
}
.sec07_ttl {
    font-weight: 900;
    font-size: 50px;
    text-align: center;
    color: #000;
    margin-bottom: 123px;
}
.sec07_img {
    text-align: center;
}
/*============= SEC08 ==============*/
.sec08 {
    padding-top: 142px;
    padding-bottom: 183px;
}
.sec08 .inner {
    padding: 0px;
    width: 100%;
}
.sec08 .ttl_h3 {
    text-align: center;
    margin-bottom: 55px;
}
.sec08_item {
    display: flex;
}
.sec08_item .item {
    margin: 0 20px;
}
/*============= SEC09 ==============*/
.sec09 {
    padding-bottom: 180px;
}
.sec09 .inner {
    border-radius: 40px;
    background: #f5f5f7;
    padding: 0;
    overflow: hidden;
    max-width: 1400px;
}
.sec09_item {
    display: flex;
    justify-content: space-between;
}
.sec09_item .item1 {
    flex-grow: 1;
    padding-bottom: 45px;
}
.sec09_item .item2 {
    flex-shrink: 0;
    align-self: flex-end;
}
.sec09_tb {
    padding: 78px 25px 8px 70px;
}
.sec09_tb dl {
    display: flex;
    margin-bottom: 17px;
}
.sec09_tb dl.ite4, .sec09_tb dl.ite5 {
    margin-bottom: 27px;
}
.sec09_tb dl dt {
    font-weight: bold;
    width: 220px;
}
.sec09_tb dl dt .sm {
    font-size: 77%;
}
.sec09_tb dl dt .sm2, .sec09_tb dl dd .sm2 {
    font-size: 88%;
}
.sec09_tb dl dd {
    line-height: 1.38;
    position: relative;
    top: 3px;
}
.sec09_tb dl dt, .sec09_tb dl dd {
    font-size: 18px;
    color: #000;
}
.sec09_list {
    display: flex;
    gap: 10px;
    margin-left: 70px;
}
.sec09_list li {
    width: 160px;
    height: 120px;
    border-radius: 20px;
    background: #fff;
    border: 3px solid #464646;
    padding: 10px 12px;
}
.sec09_list li .ttl {
    text-align: center;
    margin-bottom: 5px;
    font-weight: bold;
    color: #000;
}
.sec09_list li .txt {
    font-size: 13px;
    color: #090909;
    line-height: 1.53;
    font-weight: 500;
}
.sec09_img {
    margin-bottom: 0;
}
.sec09 .btn_black {
    position: absolute;
    right: 60px;
    bottom: 45px;
}
.sec09 .btn_black a {
    width: 250px;
    height: 60px;
    border-radius: 30px;
    background: url(../images/icon_b2.png) no-repeat right 15px center / 24px #232323;
}
/*============= SEC10 ==============*/
.sec10 {
    padding-top: 115px;
}
.sec10 .ttl_h3 {
    text-align: center;
    margin-bottom: 60px;
}
/*============= SEC11 ==============*/
.sec10 {
    background: #f5f5f7;
    padding-bottom: 106px;
}
.list_qa {
    margin: 0 auto 40px;
    width: 800px;
}
.list_qa .item:not(:last-child) {
    margin-bottom: 10px;
}
.list_qa_ttl {
    display: flex;
    position: relative;
    height: 70px;
    border-radius: 35px;
    background: #fff;
    align-items: center;
    padding: 0 35px 0 40px;
}
.list_qa_ttl:before {
    position: absolute;
    content: "";
    background: url("../images/icon_b.png") no-repeat center/24px;
    width: 24px;
    height: 24px;
    right: 20px;
    top: calc(50% - 12px);
}
.list_qa_ttl p {
    margin-bottom: 0;
}
.list_qa_ttl a {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    border-radius: 35px;
}
.list_qa_ttl .icon_q {
    font-weight: bold;
    font-size: 24px;
    color: #000;
    width: 50px;
}
.list_qa_ttl .txt {
    font-size: 18px;
    font-weight: bold;
}
/*============= SEC12 ==============*/
.sec11 {
    padding-top: 131px;
    padding-bottom: 145px;
}
.sec11 .inner {}
.sec11_item {
    width: 2000px;
}
.sec11 .item {
    margin-right: 30px;
    width: 400px;
    height: 410px;
    border-radius: 20px;
    background: #f5f5f7;
    padding: 20px 20px;
    position: relative;
}
.sec11 .item:before {
    position: absolute;
    content: "";
    background: url("../images/icon_b.png") no-repeat center/24px;
    width: 24px;
    height: 24px;
    right: 20px;
    bottom: 20px;
}
.sec11 .item a {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 9;
}
.sec11_img {
    margin-bottom: 13px;
}
.sec11_date {
    font-weight: 500;
    margin-bottom: 2px;
    padding: 0 10px;
}
.sec11_date, .sec11_ttl {
    color: #000;
}
.sec11_ttl {
    font-weight: bold;
    font-size: 18px;
    line-height: 1.44;
    padding: 0 10px;
}
.sec11 .slick-prev, .sec11 .slick-next {
    width: 35px;
    height: 35px;
    z-index: 9;
    top: -60px;
}
.sec11 .ttl_h3 {
    margin-bottom: 41px;
}
.slick-prev::before, .slick-next::before {
    display: none;
}
.sec11 .slick-prev {
    background: url("../images/icon_prev.png") no-repeat right top/35px;
    left: 147px;
}
.sec11 .slick-next {
    background: url("../images/icon_next.png") no-repeat right top/35px;
    right: auto;
    left: 187px;
}
.bor40 img {
    border-radius: 40px;
}
.bor20 img {
    border-radius: 20px;
}
.sec_form_ft {
    position: relative;
    height: 1474px;
    padding-top: 132px;
}
.sec_form_ft:before {
    position: absolute;
    content: "";
    background: url("../images/idx_bg2.jpg") no-repeat center top/cover;
    width: 1920px;
    height: 100%;
    left: 0;
    top: 0;
    z-index: -1;
}
.sec_form_ttl {
    font-weight: 900;
    font-size: 60px;
    text-align: center;
    color: #f5f5f7;
    margin-bottom: 43px;
}
.sec_form_txt {
    text-align: center;
    color: #fff;
    margin-bottom: 111px;
}
.sec_form_sub_ttl {
    font-weight: 900;
    font-size: 35px;
    color: #f5f5f7;
    text-align: center;
    margin-bottom: 41px;
}
.sec_form_w {
    width: 1080px;
    height: 770px;
    border-radius: 40px;
    background: #fff;
    display: flex;
    margin: 0 auto;
    padding: 72px 80px 0;
}
.sec_form_w .item1 {
    width: 359px;
}
.sec_form_w .item2 {
    width: 560px;
    padding-top: 3px;
}
.sec_form_subttl {
    font-weight: 900;
    font-size: 24px;
    color: #000;
    line-height: 1.45;
    margin-bottom: 31px;
}
.sec_form_subtxt {}
.sec_form_box {
    margin-bottom: 61px;
}
.sec_form_box dl {
    margin-bottom: 26px;
}
.sec_form_box dl dt {
    display: flex;
    font-size: 18px;
    color: #000;
    align-items: center;
    margin-bottom: 10px;
}
.sec_form_box dl dt p {
    font-weight: bold;
    margin-bottom: 0;
}
.sec_form_box dl dt .ttl {
    margin-right: 10px;
}
.sec_form_box dl dt .must {
    width: 52px;
    height: 24px;
    border-radius: 12px;
    background: #000;
    color: #fff;
    text-align: center;
    line-height: 23px;
    font-size: 16px;
}
.sec_form_box dl dd {}
.input1, .select1 {
    width: 560px;
    height: 60px;
    border-radius: 8px;
    background: rgba(238, 238, 242, 0.5);
    border: 1px solid #c9c9c9;
    appearance: none;
    padding-left: 19px;
    font-family: var(--f-main);
    font-weight: 500;
    color: #c9c9c9;
}
.select1 {
    background: url("../images/arrow_down.png") rgba(238, 238, 242, 0.5) no-repeat right 15px center/24px;
}
input.input1::placeholder, textarea::placeholder {
    color: #c9c9c9;
}
.button_black {
    width: 360px;
    height: 60px;
    border-radius: 30px;
    background: url("../images/icon_b2.png")#232323 no-repeat right 25px center/24px;
    font-weight: bold;
    color: #fff;
    line-height: 60px;
    padding-left: 40px;
    margin-left: 100px;
    cursor: pointer;
}
.ft_bnr {
    padding: 44px 0 60px;
}
.ft_bnr .inner {
    width: 100%;
}
.ft_bnr_item {
    display: flex;
    justify-content: center;
    gap: 42px;
}
@media screen and (min-width: 751px) {}
/*==========================================================
                        F O O T E R
==========================================================*/
footer {
    position: relative;
    z-index: 3;
}
address {
    padding: 36px 20px 87px;
    text-align: center;
    border-top: 1px #B8B8B8 solid;
    font-size: 14px;
    color: #000000;
    font-weight: 500;
}
/* BACK TO TOP */
.to_top {
    position: fixed;
    z-index: 9;
    width: 70px;
    height: 70px;
    bottom: 20px;
    right: 20px;
    cursor: pointer;
    transition: all .2s;
    opacity: 0;
    visibility: hidden
}
.to_top.show {
    transform: scale(1);
    opacity: 1;
    visibility: visible
}
/* FIREFOX ONLY */
@-moz-document url-prefix() {}
/* Safari 10.1+ (which is the latest version of Safari at this time) */
@media not all and (min-resolution: 0.001dpcm) {}
@media not all and (min-resolution: 0.001dpcm) {}
/* WordPress admin bar compatibility */
.admin-bar .h_box { top: 32px; }

/* 2026 XD top-page updates */
#logo img { width: 232px; height: auto; }
.sec02_img img { width: 100%; height: 100%; object-fit: cover; }
.sec03_slide .item { position: relative; padding-bottom: 105px; }
.sec03_slide .item4 {
    background: linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.12)), url("../images/xd-wall-connector.webp") no-repeat center/cover;
}
.sec03_link {
    position: absolute;
    left: 107px;
    bottom: 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 215px;
    min-height: 54px;
    padding: 8px 35px;
    border-radius: 30px;
    background: #fff;
    color: #111;
    font-weight: 700;
    text-decoration: none;
}
.sec03_link:hover, .sec03_link:focus-visible { background: #e8e8e8; }
.sec03_slide .item3 .sec03_txt { margin-bottom: 30px; }
.sec03_slide .item3 .sec03_list { gap: 10px; }
.sec05 { padding: 110px 0; }
.sec05_visual, .sec07_visual { position: relative; overflow: hidden; }
.sec05_visual { max-width: 1400px; height: 600px; margin: 0 auto; }
.sec05_visual img, .sec07_visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sec05_visual::after, .sec07_visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.42);
}
.sec05_ttl, .sec07_ttl {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 50%;
    width: calc(100% - 40px);
    transform: translate(-50%, -50%);
    color: #fff;
    margin: 0;
    text-shadow: 0 2px 8px rgba(0,0,0,.45);
}
.sec06_list_add .ttl { font-weight: 700; font-size: 18px; color: #000; }
.sec_case { padding: 120px 0; }
.sec_case_head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 38px; }
.sec_case_head .ttl_h3 { margin: 0; }
.sec_case_head > a { color: #fff; background: #242424; border-radius: 25px; padding: 10px 30px; font-weight: 700; }
.sec_case_grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.sec_case_card { display: block; min-width: 0; padding: 12px 12px 20px; background: #f5f5f7; border-radius: 20px; color: #111; text-decoration: none; }
.sec_case_card img { width: 100%; aspect-ratio: 320/210; object-fit: cover; border-radius: 14px; }
.sec_case_name { display: block; margin: 12px 3px 6px; font-weight: 800; font-size: 19px; }
.sec_case_text { display: block; margin: 0 3px; font-size: 14px; line-height: 1.6; }
.sec07 { padding-top: 0; }
.sec07_visual { max-width: 1700px; height: 600px; margin: 0 auto; }
.sec07_ttl { font-size: 48px; }
.sec08 { padding-top: 95px; }
.sec09_item .item1 { width: 54%; min-width: 0; }
.sec09_item .item2 { width: 46%; }
.sec09_tb { padding: 62px 18px 8px 55px; }
.sec09_tb dl { margin-bottom: 12px; }
.sec09_tb dl dt { width: 155px; flex-shrink: 0; }
.sec09_tb dl dt, .sec09_tb dl dd { font-size: 14px; }
.sec09_tb dl dd { overflow-wrap: anywhere; }
.sec09_tb small { font-size: 12px; }
.sec09_img, .sec09_img img { width: 100%; }
.sec10 { background: #242424; padding: 90px 0; }
.sec10_banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    min-height: 130px;
    margin: 0 auto;
    padding: 24px 38px 24px 55px;
    border-radius: 70px;
    background: #fff;
    color: #111;
    text-decoration: none;
}
.sec10_banner_copy { display: flex; flex-direction: column; align-items: center; flex: 1; }
.sec10_banner_copy strong { font-size: 30px; line-height: 1.4; }
.sec10_banner_copy > span { font-size: 15px; }
.sec10_banner_arrow { display: grid; place-items: center; flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; background: #111; color: #fff; }
.sec10_banner_arrow::before { content: ""; width: 10px; height: 10px; border-top: 3px solid currentColor; border-right: 3px solid currentColor; transform: translateX(-3px) rotate(45deg); }

/* Top-page correction sheet, 2026-09-26 */
.top-floating-cta {
    position: fixed;
    z-index: 1000;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 25px 13px;
    border-radius: 14px 0 0 14px;
    background: #232323;
    color: #fff;
    writing-mode: vertical-rl;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .06em;
    text-decoration: none;
    box-shadow: 0 4px 18px rgba(0,0,0,.2);
}
.top-floating-cta span { font-size: 25px; line-height: 1; }
.top-floating-cta:hover, .top-floating-cta:focus-visible { background: #444; color: #fff; }
.sec02_ttl3 { white-space: nowrap; font-size: clamp(40px, 4vw, 68px); }
.sec02_ttl3 .number { font-size: 150%; }
.sec02_capacity, .sec02_box dl dd small { display: block; }
.sec02_box dl dd small { font-size: 14px; line-height: 1.5; font-weight: 500; }
.sec03_slide .item3 .sec03_list li p { font-size: 17px; }
.sec03_slide .item3 .sec03_list li p .lg { font-size: 1em; }
.sec03_link { font-size: 18px; }
.sec04_ttl { display: flex; align-items: center; }
.sec04_ttl .ja { white-space: nowrap; }
.sec05_visual, .sec07_visual { border-radius: 40px; }
.sec09_item .item1 { position: relative; z-index: 1; width: 58%; padding-bottom: 42px; }
.sec09_item .item2 { position: relative; width: 42%; align-self: stretch; overflow: hidden; }
.sec09_tb { padding: 60px 30px 8px 55px; }
.sec09_tb dl dt { width: 220px; }
.sec09_tb dl dt, .sec09_tb dl dd { font-size: 16px; }
.sec09_tb dl dd { overflow-wrap: normal; }
.sec09_list { margin-left: 55px; flex-wrap: wrap; }
.sec09_img { width: 100%; height: 100%; }
.sec09_img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.sec09 .btn_black { z-index: 2; }
.sec10 { padding: 120px 0; }
.sec10_banner {
    max-width: 1400px;
    min-height: 200px;
    border-radius: 110px;
    background: linear-gradient(rgba(255,255,255,.73),rgba(255,255,255,.73)), url('../images/product-faq-banner.webp') center/cover no-repeat;
}
.sec10_banner_copy strong { font-size: 40px; }
.sec10_banner_copy > span { font-size: 18px; font-weight: 700; }
.sec10_banner_arrow { margin-left: 24px; }
.pw-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.sec_form_w .item2 form { min-width: 0; }
.sec_form_w .button_black { display: flex; align-items: center; justify-content: center; padding: 0 45px 0 20px; margin: 0 auto; text-align: center; line-height: 1.3; font-size: 14px; }
.ft_bnr_item .ft_bnr_link { display: block; }
.ft_bnr_item { flex-wrap: wrap; }
.ft_bnr_item .ft_bnr_link img { display: block; max-width: 100%; height: auto; }
.ft_bnr_item .ft_bnr_link:hover, .ft_bnr_item .ft_bnr_link:focus-visible { opacity: .7; }
.sec_case { overflow: hidden; }
.sec_case .inner { width: calc(100% - 160px); max-width: 1740px; }
.sec_case_head { justify-content: space-between; }
.sec_case_title_controls { display: flex; align-items: center; gap: 50px; }
.sec_case_controls { display: flex; gap: 8px; }
.sec_case_controls button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: #e9e9e9; color: #232323; font-size: 32px; line-height: 1; cursor: pointer; }
.sec_case_controls button:hover, .sec_case_controls button:focus-visible { background: #d1d1d1; }
.sec_case_grid { display: block; }
.sec_case_grid .slick-list { overflow: hidden; width: calc(50% + 50vw); }
.sec_case_card { width: 400px; min-height: 418px; margin-right: 30px; padding: 20px 20px 26px; }
.sec_case_card img { display: block; width: 100%; aspect-ratio: 360 / 220; }
.sec_case_name { margin: 20px 10px 14px; font-size: 24px; }
.sec_case_text { margin: 0 10px; font-size: 16px; }

/* 2026-09-30 クライアント修正：定格出力（赤文字）・メインビジュアルのPowerwall 3ロゴ */
.sec02_box dl.sec02_output dd { color: #c90000; }
.mv_mid .mv_logo { display: inline-block; width: 220px; height: auto; margin-right: 10px; vertical-align: -2px; }

/* 2026-10-05 電気の流れ：画像上の点線矢印をアニメーション（参考：powerwall3サイトTOPイメージ.html の flowDash） */
.sec04_con .sec04_img { position: relative; }
.sec04_con .sec04_img img { display: block; width: 100%; height: auto; }
.sec04_flow { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; filter: drop-shadow(0 0 2px rgba(0, 40, 90, .35)); }
.sec04_flow_line { fill: none; stroke: #fff; stroke-width: 3.5; stroke-linecap: round; stroke-dasharray: 0 8; animation: sec04FlowDash .9s linear infinite; }
.sec04_flow_head { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; animation: sec04FlowHead 1.8s ease-in-out infinite; }
@keyframes sec04FlowDash { to { stroke-dashoffset: -16; } }
@keyframes sec04FlowHead { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) {
    .sec04_flow_line, .sec04_flow_head { animation: none; }
}

/* 2026-10-05 お問い合わせフォーム（Contact Form 7 ＋ Multi-Step Forms）：ページ下部・/contact/ 共通 */
.pw-cf7 .wpcf7-form-control-wrap { display: block; }
.pw-cf7 .sec_form_box { margin-bottom: 24px; }
.pw-cf7 .input1, .pw-cf7 .select1 { max-width: 100%; color: #000; font-size: 16px; }
.pw-cf7 .select1:has(option[value=""]:checked) { color: #9a9a9a; }
.pw-cf7 .sec_form_box dl dt .must.any { background: #c9c9c9; color: #232323; }
.pw-cf7 textarea.pw-msform-textarea { display: block; width: 100%; min-height: 160px; padding: 16px 19px; border-radius: 8px; background: rgba(238, 238, 242, .5); border: 1px solid #c9c9c9; font-family: var(--f-main); font-size: 16px; line-height: 1.7; color: #000; resize: vertical; }
.pw-cf7 .pw-msform-privacy { margin: 0 0 28px; color: #777; font-size: 12px; line-height: 1.7; }
.pw-cf7 .pw-msform-note { margin: 0 0 24px; padding: 12px 16px; border-radius: 12px; background: #f5f5f7; color: #555; font-size: 14px; line-height: 1.7; }
.pw-cf7 .pw-msform-pref-note { margin: 8px 0 0; font-size: 12px; line-height: 1.6; }
.pw-cf7 .pw-msform-actions { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; }
.pw-cf7 input.button_black { display: block; margin: 0; padding: 0 56px 0 36px; border: 0; font-family: var(--f-main); font-size: 16px; line-height: 60px; text-align: center; -webkit-appearance: none; appearance: none; }
.pw-cf7 input.button_black:disabled { opacity: .6; cursor: default; }
.pw-cf7 .pw-msform-back { height: 60px; padding: 0 34px; border: 1px solid #c9c9c9; border-radius: 30px; background: #fff; color: #333; font-family: var(--f-main); font-size: 16px; font-weight: 700; cursor: pointer; -webkit-appearance: none; appearance: none; }
.pw-cf7 .wpcf7-spinner { position: absolute; right: 0; top: 50%; margin: -12px 0 0; }
.pw-cf7 .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; }
.pw-cf7 .wpcf7-response-output { margin: 18px 0 0 !important; padding: 10px 14px !important; border-radius: 8px; font-size: 14px; }
.pw-cf7 .pw-msform-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pw-cf7 .pw-msform-choice .wpcf7-list-item { display: block; margin: 0; }
.pw-cf7 .pw-msform-choice label { position: relative; display: block; cursor: pointer; }
.pw-cf7 .pw-msform-choice input { position: absolute; opacity: 0; pointer-events: none; }
.pw-cf7 .pw-msform-choice .wpcf7-list-item-label { display: block; padding: 16px 18px; border: 1px solid #c9c9c9; border-radius: 14px; background: #fff; color: #232323; font-size: 16px; font-weight: 700; transition: background .2s, color .2s, border-color .2s; }
.pw-cf7 .pw-msform-choice input:checked + .wpcf7-list-item-label { border-color: #232323; background: #232323; color: #fff; }
.pw-cf7 .pw-msform-choice input:focus-visible + .wpcf7-list-item-label { outline: 2px solid #232323; outline-offset: 2px; }
.pw-cf7 .pw-msform-confirm { margin: 0 0 32px; border-top: 1px solid #ddd; }
.pw-cf7 .pw-msform-confirm dl { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; margin: 0; padding: 16px 4px; border-bottom: 1px solid #ddd; }
.pw-cf7 .pw-msform-confirm dt { font-weight: 700; }
.pw-cf7 .pw-msform-confirm dd { margin: 0; white-space: pre-wrap; word-break: break-all; }
@media screen and (min-width: 751px) {
    .pw-cf7 .pw-msform-choice .wpcf7-list-item-label:hover { border-color: #232323; }
    .pw-cf7 .pw-msform-back:hover { background: #f5f5f7; }
}

/* 2026-10-06 ページ下部のフォーム：入力エラーの表示で内容が増えても崩れないよう、高さを固定から最小値に変更 */
.sec_form_ft { height: auto; min-height: 1474px; padding-bottom: 120px; }
.sec_form_w { height: auto; min-height: 770px; padding-bottom: 60px; }

/* 2026-10-06 販売・施工代理店募集フォーム（見積依頼フォームと共通のスタイルに追加） */
.pw-cf7 .pw-msform-subhead { margin: 0 0 18px; padding: 0 0 10px; border-bottom: 2px solid #232323; color: #232323; font-size: 18px; font-weight: 900; line-height: 1.5; }
.pw-cf7 .sec_form_box + .pw-msform-subhead { margin-top: 36px; }
.pw-cf7 .sec_form_box dl dt .pw-msform-dtnote { margin-left: 10px; color: #777; font-size: 13px; font-weight: 500; }
.pw-cf7 .pw-msform-accept { margin: 8px 0 28px; text-align: center; }
.pw-cf7 .pw-msform-accept .wpcf7-list-item { margin: 0; }
.pw-cf7 .pw-msform-accept label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: 15px; font-weight: 700; }
.pw-cf7 .pw-msform-accept input[type="checkbox"] { width: 20px; height: 20px; margin: 0; accent-color: #232323; }
.pw-cf7 .pw-msform-accept a { text-decoration: underline; }

/* 2026-10-06 フォームの個人情報保護方針（枠つき・スクロール） */
.pw-cf7 .pw-msform-policy { height: 200px; margin: 8px 0 20px; padding: 18px 22px; overflow-y: auto; border: 1px solid #c9c9c9; border-radius: 8px; background: #fff; color: #333; font-size: 13px; line-height: 1.8; text-align: left; -webkit-overflow-scrolling: touch; }
.pw-cf7 .pw-msform-policy:focus-visible { outline: 2px solid #232323; outline-offset: 2px; }
.pw-cf7 .pw-msform-policy .pw-msform-policy-title { margin: 0 0 10px; color: #000; font-size: 15px; font-weight: 900; }
.pw-cf7 .pw-msform-policy h3,
.pw-cf7 .pw-msform-policy h4,
.pw-cf7 .pw-msform-policy h5,
.under main .pw-cf7 .pw-msform-policy h3,
.under main .pw-cf7 .pw-msform-policy h4,
.under main .pw-cf7 .pw-msform-policy h5 { margin: 14px 0 4px; padding: 0; border: 0; background: none; color: #000; font-size: 14px; font-weight: 700; line-height: 1.6; text-align: left; }
.under main .pw-cf7 .pw-msform-policy h4::before,
.under main .pw-cf7 .pw-msform-policy h3::before { content: none; }
.pw-cf7 .pw-msform-policy p { margin: 0 0 8px; }
.pw-cf7 .pw-msform-policy ul { margin: 0 0 8px; padding-left: 1.4em; }
.pw-cf7 .pw-msform-policy li { margin: 0; list-style: disc; }

/* 2026-10-07 右固定の「Powerwall 3の工事費込み見積もり」：縦幅の小さい画面でも1行で表示（PCのみ） */
@media screen and (min-width: 751px) {
    .top-floating-cta { white-space: nowrap; font-size: min(20px, calc((100vh - 120px) / 23)); }
    .top-floating-cta span { font-size: min(25px, calc((100vh - 120px) / 18)); }
}

/* 2026-10-07 ページ下部の見積フォーム：個人情報保護方針の見出しを大きく、本文を小さく（ページ下部のみ） */
.sec_form_ft .pw-cf7 .pw-msform-policy .pw-msform-policy-title { font-size: 18px; }
.sec_form_ft .pw-cf7 .pw-msform-policy h3, .sec_form_ft .pw-cf7 .pw-msform-policy h4, .sec_form_ft .pw-cf7 .pw-msform-policy h5 { font-size: 15px; }
.sec_form_ft .pw-cf7 .pw-msform-policy p:not(.pw-msform-policy-title), .sec_form_ft .pw-cf7 .pw-msform-policy li { font-size: 13px; line-height: 1.8; }
