/* mobile.css (SP用) */

:root { --header-h: 60px; }

html, section {
    scroll-padding-top: var(--header-h);  /* ページ内リンクのスクロール位置調整 */
}

body {
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* SP用に追加 */
}

/* ヘッダー部分（PCと共用だが、高さが変わる） */
header {
        width: 100%;
        left: 0;
        top: 0;
        z-index: 2;
        position: fixed;
        visibility: visible;
}
.inner-header {
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%; /* 幅を指定 */
    height: 60px; /* 高さは残す */
    display: flex; /* これを追加 */
    align-items: center; /* これを追加：子要素を垂直方向の中央に */
    justify-content: space-between; /* 例：ロゴと電話番号を両端に */
    filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.15));
    z-index: 5;
    box-sizing: border-box;
}
/* ロゴ用のaタグにも必要に応じてスタイル調整 */
.inner-header > a {
    margin: 0; /* マージンをリセット */
}

.tel-wrapper-sp {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    align-items: end;
    /* justify-content: center;  効かない */
    margin: 0; /* マージンをリセット */
    box-sizing: border-box;
}
img.img-logo {
    width: min(30vw, 140px);  /* 小さいスマホ用 */
    max-width: 140px;
    margin: 10px 0 0 20px;
}
.text-tel-no {  /* SPのみ */
        color: #000;
        font-size: 13px;
        font-weight: 400;
        line-height: 14px;
        text-align: right;
        /* 66pxはハンバーガーメニューが入るスペース */
        margin: 7px 66px 0 0;
}
a > p.telno-sp {
        color: #e8412e;
        font-size: 16px;
        font-weight: 700;
        text-align: right;
        margin: 0 66px 0 0;
}

/* SP用のナビはボタンだけになり下に張り付く */
.telnum-wrapper {
    display: none;
}
nav.nav-pc {
        display: flex;
        justify-content: space-around;
        width: 100%;
        left: 0;
        bottom: 0;
        z-index: 5;
        position: fixed;
        visibility: visible;
}

#btn-header-contact {
        color: #fff;
        font-size: 14px;
        line-height: 20px;
        font-weight: 400;
        background-color: #d02c26;
        width: 50%;
        height: auto;
        padding: 12px 0;
        margin: 0;
        border-style: none;
        cursor: pointer;
        transition: 0.4s;
        filter: drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.2));
}
#btn-header-line {
        color: #fff;
        font-size: 14px;
        line-height: 20px;
        font-weight: 400;
        background-color: #06c755;
        width: 50%;
        height: auto;
        padding: 12px 0;
        margin: 0;
        border-style: none;
        cursor: pointer;
        transition: 0.4s;
        filter: drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.2));
}
/* ハンバーガーメニュー・トグルメニュー（SP用） */
div.header-sp {
        width: 100%;
        right: 0;
        top: 0;
        z-index: 5;
        position: fixed;
        visibility: visible;
}
div.header {
        position: fixed;
        top: 0;
        right: 0;
        width: 60px;
        height: 60px;
        background: #002B60;
}
/* .el_humburger このクラス名に javascriptがattachしている */
.el_humburger {
        position: absolute;
        top: 18px;
        right: 18px;
        width: 26px;
        height: auto;
        padding-top: 1px;
        box-sizing: border-box;
        z-index: 10000;
        transition: all 0.2s ease-in-out;
        cursor: pointer;
        pointer-events: auto;
}

.el_humburger span {
        display: block;
        width: 100%;
        margin: 0 auto 6px;
        height: 3px;
        background: #fff;
        transition: all 0.2s ease-in-out;
}
.el_humburger>span:last-child {
    margin-bottom: 0;
}
.js_humburgerOpen .el_humburger>span {
    background: #fff;
}
.js_humburgerOpen .el_humburger>span.top {
    transform: translateY(9px) rotate(-45deg);
}
.js_humburgerOpen .el_humburger>span.middle {
    opacity: 0;
}
.js_humburgerOpen .el_humburger>span.bottom {
    transform: translateY(-9px) rotate(45deg);
}
.el_humburgerButton.el_humburgerButton__close {
    top: 2%;
    right: 2%;
}
.el_humburgerButton__close>span {
    display: block;
    width: 35px;
    margin: 0 auto;
    height: 4px;
    background: #fff;
}
.el_humburgerButton__close>span.el_humburgerLineTop {
    transform: translateY(5px) rotate(-45deg);
}
.el_humburgerButton__close>span.el_humburgerLineBottom {
    transform: translateY(-6px) rotate(45deg);
}

/* ナビゲーション */
.uq_spNavi {
    display: none;
}
.uq_spNavi.js_appear {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    display: block;
    z-index: 9999;
}

.uq_spNavi_screen {
    position: absolute;
    top: 60px;
    left: 0;
    bottom: 0;
    right: 0;
    background-image: url(../images/sp-nav-background.webp);
    z-index: 0;
    margin-top: 0px;
    padding-top: 0px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.navigation {
    padding: 0;
    text-align: center;
}

.navigation_item {
    font-size: 15px;
    margin: 20px 0;
    color: #fff;
    font-feature-settings: "palt";
}

.navigation_item>a {
    color: #fff;
    text-decoration: none;
}

.js_fixed {
    position: fixed;
    width: 100%;
    height: 100%;
}

/* ページトップボタン */
#pagetop {
    display: none; /* SPではアクションボタンと重複する可能性があるので非表示にすることも検討 */
}

main {
    margin-top: 0;
    padding-top: 60px; /* ヘッダーの高さに合わせて調整 */
    max-width: 750px; /* PC画面と同様、これより大きな場合は背景を両側に表示する */
    margin-left: auto;
    margin-right: auto;
}
section.price-example {
    padding-top: calc((748 / 750) * 100%);
    text-align: center;
    background-image: url('../images/02-price-ex-sp.webp');
}
.action-buttons-1 {
    width: 93.3%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center; /* 縦並びなので水平方向の中央揃え */
    margin: 0 auto; /* 中央寄せ */
    padding: 0px 0px 0px 0px;
    gap: 5.07%; /* ボタン間のスペース */
    box-sizing: border-box; /* paddingをwidthに含める */
}
/* 必要であれば、ボタンリンクの最大幅も設定 */
.action-buttons-1 a {
    width: 100%; /* 親要素いっぱいに広げる */
    text-align: center; /* imgがaの子要素なら中央寄せ */
}
/* 個々のボタン画像のサイズ調整（SP向け） */
.action-buttons-1 img {
    /* SPで適切なサイズに調整 */
    width: 100%; /* 親要素の幅に対して90%など */
    height: auto;
    display: block;
}
section.emergency {
    padding-top: calc((1525 / 750) * 100%);
    background-image: url('../images/03-emergency-sp.webp');
    text-align: center;
}
section.why-us {
    padding-top: calc((1682 / 750) * 100%);
    background-image: url('../images/04-why-us-sp.webp');
    text-align: center;
}
section.before-after {
    padding-top: calc((1563 / 750) * 100%);
    background-image: url('../images/05-1-before-after-sp.webp');
    text-align: center;
}
section#priceex {
    padding-top: calc((712 / 750) * 100%);
    background-image: url('../images/05-2-price-sample-sp.webp');
    text-align: center;
}
section.actual-results {
    padding-top: calc((2158 / 750) * 100%);
    background-image: url('../images/06-actual-results-sp.webp');
    text-align: center;
}
section.clearning-procedure {
    padding-top: calc((4635 / 750) * 100%);
    background-image: url('../images/07-clearning-proc-sp.webp');
    text-align: center;
}
section.service-flow {
    padding-top: calc((1623 / 750) * 100%);
    background-image: url('../images/08-service-flow-sp.webp');
    text-align: center;
}
div.bg-img.acd-faq {
    width: 100%;
    padding-top: calc((154 / 750) * 100%);
    background-image: url('../images/09-acd-faq-title-sp.webp'); ;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    text-align: center;
}
details {
    display: flex;
    flex-direction: column;
    /* 答えのフォントサイズ */
    font-size: clamp(12px, calc(20/11vw + 68/11px), 16px);
    text-align: left;
}
summary {
    display: flex;
    line-height: 1.5;
    font-size: 1.0rem;  /* 質問文のフォントサイズ */
    font-weight: 700;
    color: #292929;
    transition: 0.4s;
    cursor: pointer;
    text-align: left;
}
/* 質問文の前の▲を消す */
summary::marker {
    content: none;
}
summary::before {
    display: inline-flex;
    flex-shrink: 0;  /* SVGのサイズがでこぼこにならないように */
    margin-right:20px;
    content: "";
    background-image: url('../images/Q.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: min(5.5vw, 50px);
    height: min(5.5vw, 50px);
    position: relative;
    top: calc(-2.4242vw + 12.7576px);
    left: 0px;

}
summary:hover {
    background-color: #e5feff;
}

details {
    margin: 20px 0;
    padding: 0 20px;
    border: none;
    background-color: transparent;
}
/* detailsの次にdetailsが続く場合にマージンを取る */
details + details {
    margin-top: 10px;
}
span#ans-1, span#ans-2, span#ans-3, span#ans-4, span#ans-5, span#ans-6, span#ans-7 {
    display: flex;
    position: relative;
    max-height: 0; /* 高さを0に設定 */
    opacity: 0; /* 不透明度を0に設定 */
    padding: 0; /* パディングを0に設定 */
    overflow: hidden;
    transition: max-height 0.5s ease-out, opacity 0.3s ease-out, transform 0.5s ease-out;
    transform: translateY(-50px) scale(0.8); /* 初期位置を上にずらして縮小 */
}
details[open] > span#ans-1,
details[open] > span#ans-2,
details[open] > span#ans-3,
details[open] > span#ans-4,
details[open] > span#ans-5,
details[open] > span#ans-6,
details[open] > span#ans-7 {
    max-height: 1000px; /* 最大高さを設定 */
    opacity: 1;
    margin-top: 10px;
    padding: 0 20px 0 0;
    transition: max-height 0.6s ease-in, opacity 0.4s ease-in 0.1s, transform 0.6s ease-in;
    transform: translateY(0) scale(1); /* 元の位置に戻して拡大 */
}
img.answer-svg {
    width: min(5.5vw, 50px);
    height: min(5.5vw, 50px);
    margin-right: 10px;
    position: relative;
    top: 5px;
    left: 0px;
}

footer {
    padding: 30px 20px 75px 20px;
}
footer > a > img {
    width: 240px; /* ロゴ画像の幅 */
}
footer > div.flex-callnum {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 20px;
}



/* 白い点線下線（ナビメニューに使用） */
.dotted-underline {
    border-bottom: 1px dotted #fff;
    text-decoration: none;
}
