@charset "UTF-8";
.jpFont {
    font-family: "toppan-bunkyu-midashi-go-std", sans-serif;
    font-weight: 900;
    font-style: normal;
}

.enFont {
    font-family: "Noto Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    font-variation-settings: "wdth" 100;
}


/* Reset
------------------------------------------------------------*/

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td {
    margin: 0;
    padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: 100%;
    font-weight: normal;
}

address,
em {
    font-style: normal;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

th {
    font-weight: normal;
    text-align: left;
}

legend {
    display: none;
}

img,
fieldset {
    border: 0;
}

li {
    list-style-type: none;
}

picture {
    display: block;
    max-width: 100%;
}


/* HTML5
------------------------------------------------------------*/

article,
aside,
dialog,
figure,
footer,
header,
hgroup,
nav,
section {
    display: block;
    margin: 0;
    padding: 0;
}


/* scrollbug for FF
------------------------------------------------------------*/

html {
    overflow-y: scroll;
}


/* Fonts
------------------------------------------------------------*/

body,
button,
input,
select,
textarea {
    font-family: "toppan-bunkyu-midashi-go-std", sans-serif;
    font-weight: 900;
    font-style: normal;
}


/* Form
------------------------------------------------------------*/

button,
input,
select,
textarea {
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}


/* Media
------------------------------------------------------------*/

object,
embed {
    vertical-align: top;
}

img {
    max-width: 100%;
    vertical-align: bottom;
    font-size: 0;
    line-height: 0;
    -webkit-backface-visibility: hidden;
}

@media (max-width: 833px) {
    .kv {
        margin-top: 80px;
    }
}


/* link
------------------------------------------------------------*/

a {
    color: #232f3e;
    text-decoration: underline;
}

a:hover {
    text-decoration: none;
}

a>img {
    transition: opacity 0.3s ease-out;
}

a>img:hover {
    opacity: 0.6;
}


/* loader
------------------------------------------------------------*/

#loader {
    width: 100%;
    height: 100%;
    background: #fff;
    text-align: center;
    position: fixed;
    z-index: 99999;
    top: 0;
    left: 0;
}

#loader div {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.loaderIcon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    margin: auto;
    position: relative;
    text-indent: -9999em;
    border-top: 4px solid #ccc;
    border-right: 4px solid #ccc;
    border-bottom: 4px solid #ccc;
    border-left: 4px solid #0f3c9d;
    transform: translateZ(0);
    animation: load8 1.5s infinite linear;
}

.loaderIcon::after {
    border-radius: 50%;
    width: 30px;
    height: 30px;
}

@keyframes load8 {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

* {
    box-sizing: border-box;
    word-break: normal;
    overflow-wrap: anywhere;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html {
    font-size: 62.5%;
}

body {
    font-family: "toppan-bunkyu-midashi-go-std", sans-serif;
    font-weight: 900;
    font-style: normal;
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #232f3e;
    z-index: 1;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}


/* popup
------------------------------------------------------------*/

#backGuide {
    display: none;
    position: fixed !important;
    z-index: 9999;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

#backGuide p {
    width: 100%;
    height: 100%;
    display: inline-block;
    background-color: rgba(0, 0, 0, 0.6);
    text-align: center;
    position: relative;
}

#backGuide p a {
    transition: 0.3s;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    width: 64%;
}

#backGuide p a:hover {
    opacity: 0.6;
}

#backGuide p a picture {
    width: 100%;
    display: inline-block;
}


/* flowCta
------------------------------------------------------------*/

.flowCta {
    display: none;
}


/* header
------------------------------------------------------------*/

header {
    padding: 1.5vh 1vw 1vh 1vw;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    transition: 0.3s;
    display: flex;
    align-items: center;
    display: flex;
    justify-content: space-between;
}

header.subpageHeader {
    background: #fff;
}

header .headerL {
    margin-right: 24px;
}

header .headerL .logo {
    text-decoration: none;
    transition-duration: 0.3s;
    display: flex;
    align-items: center;
    width: 12.7604166667vw;
    min-width: 160px;
}

header .headerL .logo img {
    transition-duration: 0.3s;
}

header .headerL .logo:hover {
    opacity: 0.6;
}

header .headerR p {
    text-align: right;
}

header .headerR p a {
    display: inline-block;
}

header .headerR p a img {
    width: 23.1770833333vw;
    min-width: 240px;
}

header.scroll {
    background: rgba(255, 255, 255, 0.8);
    transition: 0.3s;
}


/* pagetop
------------------------------------------------------------*/

.pagetop {
    display: none;
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 100000;
    width: 56px;
    height: 56px;
}

.pagetop a {
    transition: 0.3s;
    display: inline-block;
    width: 100%;
    height: 100%;
    background: #0f3c9d;
    border: 1px solid #fff;
}

.pagetop a:hover {
    background: #0f3c9d;
}

.pagetop a span {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    position: absolute;
    right: calc(50% - 8px);
    top: calc(50% - 6px);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 12px solid #fff;
}


/* footer
------------------------------------------------------------*/

footer {
    background: #0f3c9d;
}

footer .inner {
    text-align: center;
}

footer .inner .copy {
    font-size: 1.4rem;
    color: #fff;
    padding: 24px 0;
}

@media screen and (max-width: 834px) {
    html {
        min-width: inherit;
        height: -webkit-fill-available;
    }
    #backGuide p a {
        width: 92%;
    }
    /* flowCta
  ------------------------------------------------------------*/
    .flowCta {
        display: block;
        position: fixed;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        z-index: 1000;
        border-top: 1px solid #d9d623;
        background: #fff;
        text-align: center;
    }
    .flowCta p {
        margin: 0 !important;
        padding: 3px 5px;
        font-size: 1.1rem;
    }
    .flowCta p .red {
        font-size: 1.5rem;
        color: #c31818;
    }
    .flowCta ul {
        display: flex;
        align-items: center;
        width: 100%;
    }
    .flowCta ul li {
        width: 33.3333333333%;
        display: flex;
        background: #fff;
    }
    .flowCta ul li a {
        display: inline-block;
    }
    .flowCta ul li a img {
        width: 100%;
        /* display: block; */
    }
    .footer_cta li {
        width: 100% !important;
        display: block !important;
        padding: 0 30px 10px;
    }
    .footer_cta li a {
        position: relative;
        display: flex !important;
        justify-content: center !important;
        align-items: center;
        background: #c21717;
        background: linear-gradient( 34deg, rgba(194, 23, 23, 1) 0%, rgba(208, 35, 35, 1) 37%, rgba(252, 70, 70, 1) 100%);
        padding: 10px 20px 8px;
        color: #fff;
        font-size: 1.3em;
        width: 100%;
        margin: 0 auto;
        border-radius: 10px;
        text-decoration: none;
        border-bottom: solid 4px #962323;
        font-style: italic;
    }
    .footer_cta li a img {
        width: 40px !important;
        padding-right: 10px;
    }
    .footer_cta li a i {
        padding: 0 0 0 5px;
        position: absolute;
        right: 3%;
        bottom: 29%;
    }
    .footer_cta li a i svg {
        width: 12px;
        height: 12px;
        display: block;
    }
    .footer_cta li p {
        font-size: 0.8em;
        padding-bottom: 0;
    }
    .footer_cta .emergency_text {
        background: #fcf942;
        border-bottom: solid 1px #d9d623;
    }
    a.btn_animation {
        margin: 0 auto;
        animation: beside 2s linear infinite;
        transform-origin: center;
        cursor: pointer;
    }
    @keyframes beside {
        0% {
            transform: translate(2px, 0px);
        }
        5% {
            transform: translate(-2px, 0px);
        }
        10% {
            transform: translate(2px, 0px);
        }
        15% {
            transform: translate(-2px, 0px);
        }
        20% {
            transform: translate(2px, 0px);
        }
        25% {
            transform: translate(-2px, 0px);
        }
        30% {
            transform: translate(0px, 0px);
        }
    }
    /* header
   ------------------------------------------------------------*/
    header {
        padding: 1.6vh 2vw 1vh 2vw;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        transition: 0.3s;
        display: flex;
        align-items: center;
        display: flex;
        justify-content: space-between;
        height: 60px;
        background: #fff;
    }
    header .headerL {
        margin-right: 12px;
        width: auto;
        flex: 0 0 auto;
    }
    header .headerL .logo {
        width: auto;
        min-width: 120px;
    }
    header .headerR {
        width: auto;
        flex: 1 1 auto;
        min-width: 0;
        padding-bottom: 4px;
        display: flex;
        justify-content: flex-end;
        align-items: center;
    }
    header .headerR p a img {
        width: 17.4479166667vw;
        min-width: 180px;
        display: inline-block;
        filter: drop-shadow(0 4px 0px rgb(150, 35, 35));
        opacity: 1 !important;
        transition: 0.3s;
    }
    header .headerR p a:hover img {
        opacity: 1;
        transform: translateY(3px);
        filter: drop-shadow(0 1px 0px rgb(150, 35, 35));
    }
    header.scroll {
        background: #fff;
    }
    /* pagetop
  ------------------------------------------------------------*/
    .pagetop {
        width: 40px;
        height: 40px;
        right: 14px;
        /* bottom: 104px; */
        bottom: 121px;
    }
    .pagetop a span {
        right: calc(50% - 7px);
        top: calc(50% - 5px);
        border-left: 6px solid transparent;
        border-right: 6px solid transparent;
        border-bottom: 10px solid #fff;
    }
    /* footer
  ------------------------------------------------------------*/
    footer {
        padding-bottom: 96px;
    }
}


/*tab----------*/


/*sp----------*/

p:not(:last-child),
ul:not(:last-child),
ol:not(:last-child),
figure:not(:last-child),
table:not(:last-child) {
    margin-bottom: 24px;
}


/*フォントサイズ調整*/

.inner {
    max-width: calc(1080px + 10vw);
    width: 100%;
    padding: 0 5vw;
    margin: 0 auto;
}

.inner__ss {
    max-width: calc(800px + 10vw);
    width: 100%;
    padding: 0 5vw;
    margin: 0 auto;
}

.inner__s {
    max-width: calc(960px + 10vw);
    width: 100%;
    padding: 0 5vw;
    margin: 0 auto;
}

.inner__m {
    max-width: calc(1200px + 10vw);
    width: 100%;
    padding: 0 5vw;
    margin: 0 auto;
}


/* br
------------------------------------------------------------*/

.pcBr {
    display: block;
}

.spBr {
    display: none;
}


/* flex
------------------------------------------------------------*/

.x2 {
    display: flex;
    flex-wrap: wrap;
}

.x2>* {
    width: calc((100% - 80px) / 2);
}

.x2>*:not(:nth-child(even)) {
    margin-right: 40px;
}

.x2>*:nth-child(n + 3) {
    margin-top: 40px;
}

@media screen and (max-width: 834px) {
    .x2>* {
        width: 100%;
    }
    .x2>*:nth-child(n) {
        margin-right: 0;
    }
    .x2>*:nth-child(n + 2) {
        margin-top: 32px;
    }
}

.x2 figure img {
    width: 100%;
}

.x3 {
    display: flex;
    flex-wrap: wrap;
}

.x3>* {
    width: calc((100% - 80px) / 3);
}

.x3>*:not(:nth-child(3n)) {
    margin-right: 40px;
}

.x3>*:nth-child(n + 4) {
    margin-top: 40px;
}

@media screen and (max-width: 834px) {
    .x3>* {
        width: calc((100% - 20px) / 2);
    }
    .x3>*:nth-child(n) {
        margin-right: 0;
    }
    .x3>*:nth-child(odd) {
        margin-right: 20px;
    }
    .x3>*:nth-child(n + 3) {
        margin-top: 40px;
    }
}

@media screen and (max-width: 600px) {
    .x3>* {
        width: 100%;
    }
    .x3>*:nth-child(n) {
        margin-right: 0;
    }
    .x3>*:nth-child(n + 2) {
        margin-top: 40px;
    }
}

.x3 figure img {
    width: 100%;
}

.x4 {
    display: flex;
    flex-wrap: wrap;
}

.x4>* {
    width: calc((100% - 90px) / 4);
}

.x4>*:not(:nth-child(4n)) {
    margin-right: 30px;
}

.x4>*:nth-child(n + 5) {
    margin-top: 30px;
}

@media screen and (max-width: 834px) {
    .x4>* {
        width: calc((100% - 40px) / 3);
    }
    .x4>*:nth-child(n) {
        margin-right: 0;
    }
    .x4>*:nth-child(odd) {
        margin-right: 40px;
    }
    .x4>*:nth-child(n + 3) {
        margin-top: 40px;
    }
}

@media screen and (max-width: 600px) {
    .x4>* {
        width: 100%;
    }
    .x4>*:nth-child(n) {
        margin-right: 0;
    }
    .x4>*:nth-child(n + 2) {
        margin-top: 20px;
    }
}

.x4 figure img {
    width: 100%;
}


/* mt
------------------------------------------------------------*/

.mt__0 {
    margin-top: 0 !important;
}


/* mb
------------------------------------------------------------*/

.mb__0 {
    margin-bottom: 0 !important;
}

.mb__16 {
    margin-bottom: 16px !important;
}

.mb__24 {
    margin-bottom: 24px !important;
}

.mb__40 {
    margin-bottom: 40px !important;
}

.mb__66 {
    margin-bottom: 64px !important;
}


/* ml
------------------------------------------------------------*/

.ml__0 {
    margin-left: 0 !important;
}


/* pt
------------------------------------------------------------*/

.pt__0 {
    padding-top: 0 !important;
}


/* pb
------------------------------------------------------------*/

.pb__0 {
    padding-bottom: 0 !important;
}

.pb__10 {
    padding-bottom: 10px !important;
}

.pb__20 {
    padding-bottom: 20px !important;
}


/* list
------------------------------------------------------------*/

ol {
    padding-left: 20px;
}

ol>li {
    list-style-type: disc;
}

ol>li:not(:last-child) {
    margin-bottom: 10px;
}

ol.decimal {
    padding-left: 20px;
}

ol.decimal>li {
    list-style-type: decimal;
}


/* telLink
---------------------------------------------------------*/

a.telLink {
    pointer-events: auto;
}

@media screen and (max-width: 834px) {
    a.telLink {
        pointer-events: auto;
    }
}


/* kv
---------------------------------------------------------*/

.kv {
    text-align: center;
    position: relative;
}


/* FV画像：LCP最優先で安定表示 */

.kvimg img {
    display: block;
    width: 100%;
    height: auto;
    /* ←これが重要 */
    object-fit: contain;
    /* coverは切れるのでLCP的に不利になりやすい */
    aspect-ratio: 850 / 1107;
    /* 実サイズを指定（CLS対策） */
}

.kv img {
    width: 100%;
}

.kv .tel {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100;
    bottom: 4%;
    display: inline-block;
    height: auto;
}

.kv .tel img {
    width: 36.25vw;
    min-width: 440px;
}


/* ------------------------------------
   ランク用の薄いテキストを
   各画像の上にだけ重ねる最終版
------------------------------------- */


/* 親ブロックを relative にする（ここが超重要） */

.kv,
.priceArea .ereaPrice,
.lp-section.lp-section-achievement,
.lp-section.lp-section-reason,
.lp-section.lp-section-flow,
.lp-section.lp-section-area,
.lp-section.lp-section-review,
.lp-section.lp-section-faq {
    position: relative;
}


/* 共通の薄いテキストブロック */

.kv-copy {
    position: absolute;
    left: 4%;
    bottom: 4%;
    max-width: 60%;
    margin: 0;
    padding: 0;
    background: none;
    border-radius: 0;
    pointer-events: none;
    /* クリック邪魔しない */
    color: rgba(255, 255, 255, 0.12);
    /* かなり薄め（濃くしたければ 0.08〜0.12 程度に） */
    text-align: left;
}

.kv-copy h1,
.kv-copy h2,
.kv-copy p {
    margin: 0;
    line-height: 1.3;
}


/* スマホサイズ調整 */

@media (max-width: 834px) {
    .kv-copy {
        left: 4%;
        bottom: 3%;
        max-width: 65%;
    }
    .kv-copy h1,
    .kv-copy h2 {
        font-size: 9px;
        font-weight: 500;
    }
    .kv-copy p {
        font-size: 7px;
    }
}


/* PCサイズ調整 */

@media (min-width: 835px) {
    .kv-copy {
        left: 5%;
        bottom: 4%;
        max-width: 55%;
    }
    .kv-copy h1,
    .kv-copy h2 {
        font-size: 11px;
        font-weight: 500;
    }
    .kv-copy p {
        font-size: 9px;
    }
}


/* headsuptArea
---------------------------------------------------------*/

.headsuptArea {
    background: #fffb41;
    text-align: center;
    padding: 64px 0;
}

.headsuptArea .inner {
    display: flex;
    justify-content: center;
}

.headsuptArea picture {
    margin: 0 auto;
    width: 50vw;
    min-width: 800px;
    display: inline-block;
}

.headsuptArea picture img {
    width: 100%;
}


/* pricecanceltArea
---------------------------------------------------------*/

.pricecanceltArea>* {
    width: 100%;
    display: block;
}

.pricecanceltArea img {
    width: 100%;
}


/* certificationArea
---------------------------------------------------------*/

.certificationArea {
    padding: 0 0 120px;
    background: #0f3c9d;
}

.certificationArea h1,
.certificationArea h2,
.kv-copy h1,
.kv-copy h2 {
    text-align: center;
    display: block;
    position: relative;
    top: -3.75vw;
}

.certificationArea h1 img,
.certificationArea h2 img {
    width: 35.5729166667vw;
    min-width: 400px;
    z-index: 10;
}

.certificationArea .cornerBox {
    position: relative;
    margin-top: -16px;
}

.certificationArea .cornerBox::before {
    content: "";
    background: url("../img/corner.svg") no-repeat;
    background-size: cover;
    width: 50px;
    height: 50px;
    left: -2px;
    top: -2px;
    display: inline-block;
    position: absolute;
    z-index: 1;
    pointer-events: none;
}

.certificationArea .cornerBox::after {
    content: "";
    background: url("../img/corner.svg") no-repeat;
    background-size: cover;
    width: 50px;
    height: 50px;
    right: -2px;
    top: -2px;
    display: inline-block;
    position: absolute;
    z-index: 1;
    pointer-events: none;
    transform: scale(-1, 1);
}

.certificationArea .emblem {
    background: #fff;
    padding: 40px;
    margin-bottom: 40px;
    position: relative;
}

.certificationArea .emblem::before {
    content: "";
    background: url("../img/corner.svg") no-repeat;
    background-size: cover;
    width: 50px;
    height: 50px;
    left: -2px;
    bottom: -2px;
    display: inline-block;
    position: absolute;
    z-index: 1;
    pointer-events: none;
    transform: scale(1, -1);
}

.certificationArea .emblem::after {
    content: "";
    background: url("../img/corner.svg") no-repeat;
    background-size: cover;
    width: 50px;
    height: 50px;
    right: -2px;
    bottom: -2px;
    display: inline-block;
    position: absolute;
    z-index: 1;
    pointer-events: none;
    transform: scale(-1, -1);
}

.certificationArea .emblem figure {
    text-align: center;
}

.certificationArea .emblem figure img {
    width: 22.4302083333vw;
    min-width: 320px;
}


/* problemArea
------------------------------------------------------------*/

.problemArea {
    padding: 80px 0;
    background: url(../img/problem_bg.jpg) no-repeat center center/cover;
}

.problemArea h1,
.problemArea h2 {
    text-align: center;
    display: block;
    position: relative;
    margin-bottom: 32px;
}

.problemArea h1 img,
.problemArea h2 img {
    width: 49.0625vw;
    min-width: 560px;
    z-index: 10;
}

.problemArea .box {
    background: #fff;
    padding: 56px 64px;
    box-shadow: 8px 8px 0px 0px rgba(35, 47, 62, 0.4);
    display: flex;
}

.problemArea .box .imgBox {
    flex-basis: 32%;
    max-width: 32%;
    margin-left: 2%;
}

.problemArea .box .imgBox figure {
    text-align: center;
}

.problemArea .box .imgBox figure img {
    border-radius: 240px;
}

.problemArea .box .txtBox {
    flex-basis: 66%;
    max-width: 66%;
}

.problemArea .box .txtBox h2 {
    font-size: 3.2rem;
    margin-bottom: 24px;
}

.problemArea .box .txtBox h2 span {
    color: #fff;
    display: inline-block;
    background: #232f3e;
    margin: 0 4px;
    padding: 0 4px 0 6px;
}

.problemArea .box .txtBox .checkBox li {
    font-size: 2.4rem;
    position: relative;
    padding-left: 40px;
}

.problemArea .box .txtBox .checkBox li:not(:last-child) {
    margin-bottom: 16px;
}

.problemArea .box .txtBox .checkBox li::before {
    content: "";
    background: url("../img/i_check.svg") no-repeat;
    background-size: contain;
    width: 32px;
    height: 33px;
    display: inline-block;
    position: absolute;
    top: calc(50% - 17px);
    left: 0;
}


/* priceArea
---------------------------------------------------------*/

.priceArea {
    background: linear-gradient(45deg, #c7eeff, #ecf9ff);
    padding: 80px 0;
    text-align: center;
}

.priceArea .ttl__solid {
    color: #0f3c9d;
    text-align: center;
    font-size: 4.8rem;
    margin-bottom: 32px;
    line-height: 1;
    position: relative;
}

.priceArea .ttl__solid::before {
    position: absolute;
    top: calc(50% - 1px);
    left: 0;
    width: 100%;
    height: 1px;
    content: "";
    background: #0f3c9d;
}

.priceArea .ttl__solid span {
    position: relative;
    padding: 0 1em;
    background: #e2f6ff;
}

.priceArea h2 {
    font-size: 3.2rem;
    color: #0f3c9d;
    margin-bottom: 24px;
}

.priceArea h2 span {
    background: #fffb41;
    display: inline-block;
    line-height: 1;
    margin: 0 8px;
}

.priceArea .notes {
    margin: 24px 0 64px;
}

.priceArea .reasonableTtl {
    text-align: center;
    display: block;
    margin: 64px 0 32px;
}

.priceArea .reasonableTtl img {
    width: 33.6614583333vw;
    min-width: 400px;
    z-index: 10;
}

.priceArea .priceWrap.x2 li {
    box-shadow: 8px 8px 0px 0px rgba(170, 206, 221, 0.24);
    background: #fff;
    text-align: left;
}

.priceArea .priceWrap.x2 li figure {
    margin-bottom: 0;
}

.priceArea .priceWrap.x2 li .txtBox {
    padding: 24px 32px;
}

.priceArea .priceWrap.x2 li .txtBox .ttl {
    margin-bottom: 16px;
    text-align: center;
}


/* summaryArea
---------------------------------------------------------*/

.summaryArea {
    background: #f0f0f0;
    text-align: center;
    padding: 0 0 64px;
    /* margin-top: 40px; */
}

.summaryArea h1,
.summaryArea h2 {
    text-align: center;
    display: block;
    position: relative;
    top: -3.75vw;
}

.summaryArea h1 img,
.summaryArea h2 img {
    width: 63.4895833333vw;
    min-width: 640px;
    z-index: 10;
}

.summaryArea .x2 {
    margin-bottom: 64px;
}

.summaryArea .x2 li {
    width: calc((100% - 112px) / 2);
}

.summaryArea .x2 li:not(:nth-child(even)) {
    margin-right: 56px;
}

.summaryArea .x2 li:nth-child(n+3) {
    margin-top: 56px;
}

.summaryArea .x2 li .imgBox {
    position: relative;
}

.summaryArea .x2 li .imgBox span {
    font-size: clamp(2.4rem, 4vw, 10rem);
    color: #0f3c9d;
    position: absolute;
    right: 3%;
    bottom: -12%;
    display: block;
    line-height: 1;
    font-weight: 700;
    font-style: italic;
}

.summaryArea .x2 li .txtBox {
    text-align: left;
}

.summaryArea .x2 li .txtBox .ttl {
    font-size: 3.3rem;
    color: #0f3c9d;
    display: inline-block;
}

.summaryArea .ereattl {
    text-align: center;
    display: inline-block;
    margin-bottom: 32px;
}

.summaryArea .ereattl img {
    width: 44.1604166667vw;
    min-width: 640px;
    z-index: 10;
}

.summaryArea .labelWrap {
    background: #fff;
    padding: 24px;
    margin-bottom: 56px;
}

.summaryArea .labelWrap .ttl {
    font-size: 2.4rem;
    margin-bottom: 8px;
}

.summaryArea .labelBox {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.summaryArea .labelBox li {
    color: #0f3c9d;
    border: 1px solid #0f3c9d;
    width: calc((100% - 32px) / 8);
    margin-right: 4px;
    padding: 8px;
    border-radius: 80px;
    line-height: 1;
}

.summaryArea .labelBox li:nth-child(8n) {
    margin-right: 0;
}

.summaryArea .labelBox li:nth-child(n+9) {
    margin-top: 4px;
}

.summaryArea .attentionTxt {
    color: #c31818;
    font-size: 2.4rem;
    margin-bottom: 24px;
}

.summaryArea .attentionTxt::before {
    content: "";
    background: url("../img/i_attention.svg") no-repeat;
    width: 44px;
    height: 40px;
    margin-right: 8px;
    display: inline-block;
    position: relative;
    top: 10px;
}

.summaryArea .detail {
    margin-bottom: 48px;
}

.summaryArea .detail p {
    text-align: left;
}

.summaryArea .table__basic {
    background: #fff;
    padding: 20px 40px;
}


/* ttl
------------------------------------------------------------*/

.ttl__solid {
    color: #0f3c9d;
    text-align: center;
    font-size: 4.8rem;
    margin-bottom: 32px;
    line-height: 1;
    position: relative;
}

.ttl__solid::before {
    position: absolute;
    top: calc(50% - 1px);
    left: 0;
    width: 100%;
    height: 1px;
    content: "";
    background: #0f3c9d;
}

.ttl__solid span {
    position: relative;
    padding: 0 1em;
    background: #f0f0f0;
}


/* タブレット
------------------------------------------------------------*/

@media screen and (max-width: 834px) {
    p:not(:last-child),
    ul:not(:last-child),
    ol:not(:last-child),
    figure:not(:last-child),
    table:not(:last-child) {
        margin-bottom: 20px;
    }
    .inner {
        max-width: 92vw;
        padding: 0;
    }
    /* br
  ------------------------------------------------------------*/
    .pcBr {
        display: none;
    }
    .spBr {
        display: block;
    }
    /* telLink
  ---------------------------------------------------------*/
    /* 電話リンクは絶対に折り返さない（番号が段になる対策） */
    a.telLink {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: keep-all;
        flex-wrap: nowrap;
    }
    a.telLink img {
        flex: 0 0 auto;
        display: block;
    }
    /* kv
  ---------------------------------------------------------*/
    .kv {
        text-align: center;
        position: relative;
        margin-top: 80px;
    }
    .kv .tel {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        z-index: 100;
        bottom: 10px;
        width: 92vw;
    }
    .kv .tel img {
        width: 100%;
        min-width: inherit;
    }
    /* headsuptArea
  ---------------------------------------------------------*/
    .headsuptArea {
        padding: 24px 0 32px;
    }
    .headsuptArea picture {
        width: 100%;
        min-width: inherit;
        margin: 0 auto;
    }
    /* certificationArea
  ---------------------------------------------------------*/
    .certificationArea {
        padding: 0 0 48px;
    }
    .certificationArea h1 img,
    .certificationArea h2 img {
        min-width: 320px;
    }
    .certificationArea .cornerBox {
        margin-top: 0;
    }
    .certificationArea .emblem {
        padding: 24px;
        margin-bottom: 24px;
    }
    .certificationArea .emblem figure img {
        width: 72%;
        min-width: inherit;
    }
    /* problemArea
  ------------------------------------------------------------*/
    .problemArea {
        padding: 32px 0;
    }
    .problemArea h1,
    .problemArea h2 {
        margin-bottom: 16px;
    }
    .problemArea h1 img,
    .problemArea h2 img {
        width: 70%;
        min-width: inherit;
        z-index: 10;
    }
    .problemArea .box {
        padding: 24px;
        flex-wrap: wrap;
    }
    .problemArea .box .imgBox {
        flex-basis: 64%;
        max-width: 64%;
        margin: 24px auto 0 auto;
    }
    .problemArea .box .txtBox {
        flex-basis: 100%;
        max-width: 100%;
    }
    .problemArea .box .txtBox h2 {
        font-size: 2.4rem;
        margin-bottom: 16px;
        text-align: center;
    }
    .problemArea .box .txtBox .checkBox li {
        font-size: 1.6rem;
        padding-left: 34px;
    }
    .problemArea .box .txtBox .checkBox li:not(:last-child) {
        margin-bottom: 8px;
    }
    .problemArea .box .txtBox .checkBox li::before {
        content: "";
        width: 24px;
        height: 25px;
        top: calc(50% - 14px);
    }
    /* priceArea
  ---------------------------------------------------------*/
    .priceArea {
        padding: 32px 0 32px;
    }
    .priceArea .ttl__solid {
        font-size: 2.4rem;
        margin-bottom: 24px;
    }
    .priceArea h2 {
        font-size: 2rem;
    }
    .priceArea h2 span {
        margin: 0 4px;
        line-height: 1.2;
    }
    .priceArea .notes {
        margin: 16px 0 32px;
        text-align: left;
    }
    .priceArea .reasonableTtl {
        margin: 32px 0 16px;
    }
    .priceArea .reasonableTtl img {
        min-width: 320px;
    }
    .priceArea .priceWrap.x2 li .txtBox .ttl {
        margin-bottom: 16px;
        text-align: center;
    }
    /* summaryArea
  ---------------------------------------------------------*/
    .summaryArea {
        padding: 0 0 32px;
    }
    .summaryArea h1 img,
    .summaryArea h2 img {
        min-width: 320px;
    }
    .summaryArea .x2 {
        margin-bottom: 64px;
        flex-wrap: wrap;
    }
    .summaryArea .x2 li {
        width: 100%;
    }
    .summaryArea .x2 li:not(:nth-child(even)) {
        margin-right: 0;
    }
    .summaryArea .x2 li .imgBox span {
        font-size: 4rem;
    }
    .summaryArea .x2 li .txtBox {
        text-align: left;
    }
    .summaryArea .x2 li .txtBox .ttl {
        font-size: 1.8rem;
        margin-bottom: 16px;
    }
    .summaryArea .ereattl {
        margin-bottom: 24px;
    }
    .summaryArea .ereattl img {
        min-width: 356px;
    }
    .summaryArea .labelWrap {
        padding: 16px;
    }
    .summaryArea .labelWrap .ttl {
        font-size: 2.2rem;
    }
    .summaryArea .labelBox {
        margin-bottom: 16px;
    }
    .summaryArea .labelBox li {
        width: calc((100% - 12px) / 3);
        margin-right: 4px;
        padding: 8px;
        font-size: 1.3rem;
    }
    .summaryArea .labelBox li:nth-child(3n) {
        margin-right: 0;
    }
    .summaryArea .labelBox li:nth-child(8n) {
        margin-right: 4px;
    }
    .summaryArea .labelBox li:nth-child(n+4) {
        margin-top: 8px;
    }
    .summaryArea .attentionTxt {
        font-size: 1.6rem;
    }
    .summaryArea .attentionTxt::before {
        width: 24px;
        height: 20px;
        background-size: contain;
        top: 4px;
    }
    .summaryArea .detail {
        margin-bottom: 24px;
    }
    .summaryArea .table__basic {
        padding: 24px;
    }
    /* cardArea
  ---------------------------------------------------------*/
    .cardArea {
        padding-top: 32px;
    }
    .cardArea_top {
        padding-bottom: 32px;
    }
    .cardArea .inner .box {
        padding: 24px;
    }
    /* cooperationArea
  ------------------------------------------------------------*/
    .cooperationArea {
        padding: 32px 0;
    }
    .cooperationArea .inner .cont {
        flex-wrap: wrap;
        padding: 24px;
        border: 2px solid #0f3c9d;
    }
    .cooperationArea .imgBox {
        flex-basis: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-top: 24px;
    }
    .cooperationArea .imgBox img {
        width: 100%;
    }
    .cooperationArea .txtBox {
        flex-basis: 100%;
        max-width: 100%;
    }
    .cooperationArea .txtBox .ttl {
        font-size: 2.4rem;
    }
    .cooperationArea .txtBox .sub {
        font-size: 1.8rem;
        margin-bottom: 8px;
    }
    .cooperationArea .txtBox .txt {
        font-size: 1.6rem;
    }
    .cooperationArea .tel img {
        width: 100%;
        min-width: initial;
        z-index: 10;
    }
    /* ttl
  ------------------------------------------------------------*/
    .ttl__solid {
        font-size: 2.4rem;
        margin-bottom: 24px;
    }
    /* marginBody
  ---------------------------------------------------------*/
    .marginBody {
        padding-top: 0;
        margin-top: 60px;
        padding-top: 60px;
    }
    .marginBody .inner .whiteBg {
        padding: 24px;
    }
    .marginBody .inner .formTxt {
        text-align: left;
    }
    .marginBody .inner h1,
    .marginBody .inner h2 {
        font-size: 2.4rem;
        margin-bottom: 16px;
    }
}


/*-- 電話番号テキスト化 --*/

.header_telpc_ctr {
    max-width: 300px;
    width: 100%;
    margin-left: auto;
}

.header_tel_box {
    width: 100%;
    display: flex;
    justify-content: right;
}

.header_tel_box p {
    font-size: 1rem;
    background: linear-gradient(90deg, #c31818 0%, #e03030 50%, #fd4747 80%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 0;
    font-style: italic;
}

.header_tel_box p:first-of-type {
    font-size: 1.2rem;
    border-bottom: solid 1px #fd4747;
    margin-bottom: 0;
    margin-right: 6px;
    letter-spacing: -0.01em;
}

.header_tel_box p:last-of-type {
    font-weight: 600;
    border: solid 1px #fd4747;
    padding: 2px 2px;
    line-height: 1;
    font-size: 1.5rem;
}

.header_telpc_ctr a {
    font-size: 3.4rem;
    display: flex;
    padding-right: 5px;
    background: linear-gradient(90deg, #c31818 0%, #e03030 50%, #fd4747 80%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-style: italic;
    line-height: 1.3;
}

.header_telpc_ctr a img {
    width: 28px;
    height: auto;
}

.mv_ctr_pc {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
    position: absolute;
    bottom: 0;
    left: 60%;
    transform: translate(-50%, -22%);
}

.mv_ctr_text {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}

.mv_ctr_text p {
    color: #fff;
    font-weight: 500;
    font-size: 2rem;
    line-height: 1;
    font-style: italic;
    margin-bottom: 0;
}

.mv_ctr_text p:first-of-type {
    border: solid 1px #fff;
    padding: 5px;
    margin-right: 5px;
}

.mv_ctr_text p:last-of-type {
    margin-bottom: 0;
    letter-spacing: -0.05em;
}

.mv_ctr_tel a {
    display: flex;
    align-items: center;
    color: #fff;
    font-weight: 500;
    font-size: 4.5rem;
    text-decoration: none;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0.05em;
}

.mv_ctr_tel a img {
    width: 35px;
}

.tel_list_btn {
    display: flex;
    align-items: center;
}

.tel_list_btn a {
    text-decoration: none;
    color: #c31818;
    font-size: 3.4rem;
    font-style: italic;
    width: 300px;
    line-height: 1.2;
}

.tel_list_btn a span:nth-of-type(2) {
    display: block;
    border: solid 1px #c31818;
    line-height: 1;
    padding: 2px 3px 2px 1px;
    width: 95px;
    font-size: 1.4rem;
    text-align: center;
    margin-left: auto;
}

.tel_list {
    font-size: 14px;
    /* ← 好きなサイズに調整（例：12〜16px） */
    line-height: 1.4;
}

.tel_list img {
    width: 28px;
    padding-bottom: 6px;
}

.footer_tel a {
    max-width: 300px;
    width: 100%;
    font-size: 3.3rem;
    background: linear-gradient(90deg, #c31818 0%, #e03030 50%, #fd4747 80%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: flex;
    align-items: center;
}

.footer_tel a img {
    width: 30px !important;
    min-width: auto !important;
}

.pc_only {
    display: block;
}

.sp_only {
    display: none;
}

@media (max-width: 1200px) {
    .mv_ctr_pc {
        left: 65%;
    }
    .mv_ctr_text p {
        font-size: 1.8rem;
    }
    .mv_ctr_tel a {
        font-size: 4rem;
    }
}

@media (max-width: 765px) {
    .pc_only {
        display: none;
    }
    .sp_only {
        display: block;
    }
    .header_telsp_ctr {
        max-width: 280px;
        width: 100%;
        margin-left: auto;
        padding: 5px 10px;
        height: fit-content;
        border-radius: 30px;
        background: linear-gradient(90deg, #c31818 0%, #e03030 50%, #fd4747 80%);
        box-shadow: 0 4px 0px #c31818;
    }
    .header_telsp_ctr .header_tel_box {
        justify-content: center;
    }
    .header_telsp_ctr .header_tel_box p {
        color: #fff;
        -webkit-text-fill-color: white;
        font-size: 0.7rem;
    }
    .header_telsp_ctr .header_tel_box p:first-of-type {
        border-bottom: solid 1px #fff;
    }
    .header_telsp_ctr .header_tel_box p:last-of-type {
        border: solid 1px #fff;
    }
    .header_telsp_ctr a {
        color: #fff;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
        padding-top: 3px;
        font-style: italic;
        font-size: clamp(1.4rem, 4.8vw, 1.8rem);
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: keep-all;
        flex-wrap: nowrap;
        gap: 6px;
        letter-spacing: -0.02em;
    }
    .header_telsp_ctr a img {
        width: 15px;
    }
    .mv_ctr_sp {
        display: flex;
        justify-content: center;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        z-index: 100;
        bottom: 5px;
        width: 100vw;
    }
    .mv_ctr_sp .mv_ctr_tel p {
        color: #fff;
        font-size: 1rem;
        border: solid 1px #fff;
        width: 65px;
        margin-left: auto;
        text-align: center;
        font-style: italic;
        margin-top: 5px;
    }
    .mv_ctr_sp .mv_ctr_text p:first-of-type {
        border: none;
        font-size: 1.4rem;
        font-style: italic;
        line-height: 1.3;
        letter-spacing: 0.07em;
        padding: 0;
    }
    .mv_ctr_sp a {
        font-size: 2.5rem;
    }
    .mv_ctr_sp .mv_ctr_tel img {
        width: 20px;
    }
    .mv_ctr_text p:first-of-type {
        padding: 5px;
    }
    .tel_list_btn a {
        width: 100%;
        font-size: 2.4rem;
        line-height: 1.1;
    }
    .tel_list img {
        width: 20px;
        padding-bottom: 4px;
    }
    .tel_list_btn a span:nth-of-type(2) {
        width: 75px;
        font-size: 1.2rem;
    }
    .footer_tel a img {
        width: 30px !important;
    }
    .footer_tel a {
        width: fit-content;
        font-size: 3.3rem;
    }
}

@media (max-width: 431px) {
    .mv_ctr_sp {
        bottom: 10px;
    }
    .tel_list_btn a {
        font-size: 2.9rem;
    }
}

@media (max-width: 415px) {
    .tel_list_btn a {
        font-size: 2.7rem;
    }
}

@media (max-width: 391px) {
    .mv_ctr_sp {
        bottom: 7px;
    }
    .tel_list_btn a {
        font-size: 2.5rem;
    }
}

@media (max-width: 376px) {
    .tel_list_btn a {
        font-size: 2.2rem;
    }
}


/* ===============================
   PCレイアウト調整（1024px以上）
   ※既存の min-width:1024px のブロックは
     すべてこのブロックに置き換えてください
   =============================== */

@media screen and (min-width: 1024px) {
    /* rem の基準を少し下げる（1rem ≒ 9px） */
    html {
        font-size: 56.25%;
    }
    body {
        font-size: 1.4rem;
        background: #f3f3f3;
        /* 画面の左右に薄いグレー */
    }
    /* コンテンツのインナー幅を統一 */
    .inner,
    .inner__s,
    .inner__ss,
    .inner__m {
        max-width: 1040px;
        width: 100%;
        padding: 0 20px;
        margin: 0 auto;
    }
    /* セクションごと（背景ごと）を中央寄せ＆横幅制限 */
    .presentArea,
    .headsuptArea,
    .pricecanceltArea,
    .certificationArea,
    .problemArea,
    .priceArea,
    .ctaArea,
    .strengthArea,
    .caseArea,
    .voiceArea,
    .flowArea,
    .supportArea,
    .lp-img-block,
    .summaryArea,
    .cardArea,
    .cardArea_top,
    .cooperationArea,
    .marginBody {
        max-width: 1200px;
        width: 100%;
        margin: 0 auto;
        display: block;
    }
    /* ヘッダーは画面いっぱい＆白背景で固定 */
    header {
        background: #fff;
    }
    /* ===== FV（KV）周り ===== */
    /* FV全体の幅と位置（大きすぎ防止＋中央寄せ） */
    .kv {
        position: relative;
        max-width: 1200px;
        margin: 80px auto 0;
        /* ヘッダー分だけ下げる */
    }
    /* KV画像のサイズ調整（トリミング防止） */
    .kv .kvimg img {
        width: 100%;
        max-width: 1200px;
        height: auto;
        min-height: auto;
        object-fit: contain;
        display: block;
        aspect-ratio: 850 / 1107;
    }
    /* KV内の電話ボタン（PC）の位置と重なり */
    .mv_ctr_pc {
        max-width: 520px;
        width: 100%;
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translate(-50%, -18%);
        z-index: 20;
        /* 画像より手前に出す */
    }
    /* KV直下のセクションとの余白を変に空けない */
    .kv+.presentArea,
    .kv+.headsuptArea {
        margin-top: 0;
    }
}


/* ================================
   フッター（会社概要・プラポリ・コピーライト）
   ================================ */

.site-footer {
    background: #0051c8;
    /* 青い帯の色 */
    color: #fff;
}

.footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 16px 20px;
    /* PCの余白 */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}

.footer-links {
    display: flex;
    gap: 18px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-links a {
    color: #fff;
    text-decoration: underline;
}

.footer-links a:hover {
    opacity: 0.8;
}

.copy {
    margin: 0;
    font-size: 12px;
}


/* --- スマホ時は高さをギュッとコンパクトに --- */

@media (max-width: 765px) {
    .footer-inner {
        padding: 8px 12px 10px;
        /* 上下の余白をかなり減らす */
        gap: 4px;
        /* 要素間の間隔も少し詰める */
    }
    .footer-links {
        gap: 10px;
        /* リンク同士の間隔を狭く */
    }
    .footer-links a {
        font-size: 11px;
        /* 文字サイズを少し小さく */
    }
    .copy {
        font-size: 11px;
        line-height: 1.4;
    }
}


/* スマホでコピーライトが固定電話ボタンに隠れないようにする */

@media (max-width: 767px) {
    /* 画面下に固定ボタンがある分だけ余白を確保 */
    body {
        padding-bottom: 100px;
        /* 固定ボタンの高さに合わせて 70〜90px くらいで調整OK */
    }
    /* フッター自体の内側余白は少しだけでOK */
    .site-footer {
        padding: 12px 16px 16px;
    }
}


/* スマホ調整 */

@media (max-width: 765px) {
    .page-main .page-inner {
        margin: 80px 16px 120px;
        padding: 20px 16px 120px;
        font-size: 13px;
    }
    .page-main .page-inner h1,
    .page-main .page-inner h2 {
        font-size: 18px;
    }
    .page-main .page-inner table,
    .page-main .page-inner th,
    .page-main .page-inner td {
        font-size: 13px;
    }
}


/* ==============================
   会社概要・プライバシーポリシー共通
   ============================== */

.lp-main.page-legal {
    max-width: 960px;
    margin: 0 auto;
    padding: 80px 16px 96px;
    /* ←上に80pxあけてヘッダーと被らないようにする */
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1.8;
}

.lp-main.page-legal .lp-inner {
    max-width: 960px;
    margin: 0 auto;
}


/* 見出し */

.page-legal__title {
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    margin: 0 0 32px;
}


/* セクション共通 */

.legal-section+.legal-section {
    margin-top: 24px;
}

.legal-section h2 {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid #ddd;
}

.legal-section p {
    margin: 0 0 8px;
}

.legal-section ul {
    margin: 0 0 8px 1.4em;
    padding: 0;
}

.legal-section li {
    margin-bottom: 4px;
}


/* 会社概要テーブル */

.page-legal-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 24px;
    font-size: 14px;
}

.page-legal-table th,
.page-legal-table td {
    padding: 10px 12px;
    border: 1px solid #ddd;
    vertical-align: top;
}

.page-legal-table th {
    width: 28%;
    background-color: #f7f7f7;
    font-weight: 600;
}


/* ==============================
   スマホ調整
   ============================== */

@media (max-width: 767px) {
    .lp-main.page-legal {
        padding: 72px 12px 80px;
        /* 上を少し狭めつつヘッダーと被らないように */
        font-size: 13px;
    }
    .page-legal__title {
        font-size: 18px;
        margin-bottom: 24px;
    }
    .page-legal-table th,
    .page-legal-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    .page-legal-table tr {
        display: block;
        margin-bottom: 8px;
    }
}


/* スマホ時：画像の min-width をリセットして横はみ出し防止 */

@media screen and (max-width: 834px) {
    .headsuptArea picture,
    .problemArea h1 img,
    .problemArea h2 img,
    .summaryArea h1 img,
    .summaryArea h2 img,
    .summaryArea .ereattl img,
    .certificationArea h1 img,
    .certificationArea h2 img {
        min-width: 0 !important;
    }
    /* 念のため全画像も保険をかける */
    img {
        max-width: 100% !important;
        height: auto !important;
    }
}


/* =====================================
   LP用：PCレイアウト調整（SPには一切影響させない）
   ===================================== */


/* 1. PC のみ LP 全体の横幅＆位置を調整 */

@media screen and (min-width: 1024px) {
    .lp-main:not(.page-legal) {
        max-width: 1200px;
        width: 100%;
        margin: 80px auto 0;
        /* 固定ヘッダー分だけ下げる（PC用） */
        background-color: #ffffff;
        /* コンテンツ部分は白で統一 */
    }
    /* .lp-inner を既存の .inner と揃える */
    .lp-main:not(.page-legal) .lp-inner {
        max-width: 1040px;
        /* 既存 .inner と同じ */
        width: 100%;
        padding: 0 20px;
        margin: 0 auto;
    }
}


/* 2. 全デバイス共通：画像は必ずコンテナ幅にフィットさせる */

.lp-section .lp-img-block,
.pricecanceltArea picture,
.headsuptArea picture,
.priceArea .ereaPrice picture,
.problemArea picture,
.certificationArea picture,
.summaryArea picture {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

.lp-section .lp-img-block img,
.pricecanceltArea img,
.headsuptArea img,
.priceArea .ereaPrice img,
.problemArea img,
.certificationArea img,
.summaryArea img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

#loader {
    display: none !important;
}