@charset "UTF-8";
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

html,
body {
    height: 100%;
    background-color: #E6F5FA;
}

body.lp {
    margin: 0;
    color: #111;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Sans", "Meiryo", sans-serif;
    line-height: 1.6;
}

img {
    width: 100%;
    display: block;
    height: auto;
    vertical-align: bottom;
}

a {
    color: inherit;
    text-decoration: none;
}

.lp-section {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
}

.lp-section-inner {
    width: 100%;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .lp-section-inner {
        max-width: 1920px;
    }
}

/* CTA共通：レイアウトを壊さない */
.lp-cta {
    position: relative;
    display: inline-block;
}
.lp-cta:hover {
    cursor: pointer;
}

/* バウンス用 */
@keyframes cta-bounce-gentle-scale {
    0% {
        transform: translateY(0) scale(1);
    }
    /* 1回目：メインのぼよん */
    22% {
        transform: translateY(-5px) scale(1.03);
    }
    40% {
        transform: translateY(0) scale(1);
    }
    /* 2回目：余韻 */
    62% {
        transform: translateY(-2px) scale(1.015);
    }
    80% {
        transform: translateY(0) scale(1);
    }
    100% {
        transform: translateY(0) scale(1);
    }
}
.lp-cta img.is-bouncing {
    animation: cta-bounce-gentle-scale 0.95s ease-out;
    transform-origin: center;
}

.lp-header {
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(6px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.lp-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
    padding: 9px 16px;
}
@media (min-width: 768px) {
    .lp-header__inner {
        height: 90px;
        padding: 12px 32px;
        max-width: 1920px;
        margin: 0 auto;
    }
}

.lp-header__logo {
    width: 90px;
    height: auto;
}
@media (min-width: 768px) {
    .lp-header__logo {
        width: 120px;
    }
}
.lp-header__logo:hover {
    opacity: 0.8;
}

/* ヘッダーCTA */
.lp-header__cta {
    display: none;
}
/* 768〜1180px: hamburger横に表示・右端寄せ */
@media (min-width: 768px) and (max-width: 1180px) {
    .lp-header__cta {
        display: inline-flex;
        align-items: center;
        flex-shrink: 0;
        margin-left: auto;
    }
    .lp-header__cta img {
        width: 300px;
        height: auto;
    }
}
/* 1181px以上: ナビ横にフルサイズで表示 */
@media (min-width: 1181px) {
    .lp-header__cta {
        display: inline-flex;
        align-items: center;
        flex-shrink: 0;
    }
    .lp-header__cta img {
        width: 360px;
        height: auto;
    }
}
.lp-header__cta:hover {
    opacity: 0.8;
}

/* ==================
   ヘッダーナビゲーション (1181px以上)
   ================== */
.lp-header__nav {
    display: none;
    flex: 1;
    margin: 0 16px;
}
@media (min-width: 1181px) {
    .lp-header__nav {
        display: flex;
        justify-content: flex-end;
    }
}

.lp-header__nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 2px;
}

.lp-header__nav-link {
    display: block;
    padding: 6px 10px;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    border-radius: 4px;
    transition: color 0.2s ease, background 0.2s ease;
}
.lp-header__nav-link:hover {
    color: #1a6db5;
    background: rgba(26, 109, 181, 0.07);
}

/* ==================
   ハンバーガーボタン (〜1180px)
   ================== */
.lp-header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 8px;
    background: none;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
}
@media (min-width: 1181px) {
    .lp-header__hamburger {
        display: none;
    }
}

.lp-header__hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: #333;
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
    transform-origin: center;
}

.lp-header__hamburger[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.lp-header__hamburger[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}
.lp-header__hamburger[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ==================
   ドロワーメニュー
   ================== */
.lp-drawer {
    position: fixed;
    top: 64px;
    right: 0;
    width: 90%;
    bottom: 0;
    z-index: 61;
    background: rgba(255, 255, 255, 0.98);
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (min-width: 410px) {
    .lp-drawer {
        width: 70%;
    }
}
@media (min-width: 768px) {
    .lp-drawer {
        top: 90px;
        width: 70%;
    }
}
@media (min-width: 1181px) {
    .lp-drawer {
        display: none;
    }
}
.lp-drawer.is-open {
    transform: translateX(0);
}

.lp-drawer__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lp-drawer__link {
    display: flex;
    align-items: center;
    height: 48px;
    padding: 0 24px;
    font-size: 16px;
    font-weight: 600;
    color: #111;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    transition: color 0.2s ease, background 0.2s ease;
}
.lp-drawer__link:hover {
    color: #1a6db5;
    background: rgba(26, 109, 181, 0.05);
}

/* ドロワー CTA */
.lp-drawer__cta {
    display: flex;
    justify-content: center;
    padding: 24px 20px;
}
.lp-drawer__cta img {
    width: 100%;
    max-width: 300px;
    height: auto;
}
.lp-drawer__cta a:hover {
    opacity: 0.8;
}

/* ドロワー フッター情報 */
.lp-drawer__footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 0 20px 24px;
    margin-top: 0;
}

.lp-drawer__logo {
    width: 120px;
    height: auto;
}

.lp-drawer__sns {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 16px;
}
.lp-drawer__sns a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    transition: opacity 0.2s ease;
}
.lp-drawer__sns a:hover {
    opacity: 0.7;
}
.lp-drawer__sns img {
    width: 28px;
    height: 28px;
}

/* ドロワー背景オーバーレイ */
.lp-drawer-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 48;
}
.lp-drawer-overlay.is-open {
    display: block;
}

/* ==================
   アンカースクロールオフセット (固定ヘッダー分)
   ================== */
#sec-benefit,
#sec-reason,
#sec-about,
#sec-voice,
#sec-dandi,
#sec-price,
#sec-faq {
    scroll-margin-top: 68px;
}
@media (min-width: 768px) {
    #sec-benefit,
    #sec-reason,
    #sec-about,
    #sec-voice,
    #sec-dandi,
    #sec-price,
    #sec-faq {
        scroll-margin-top: 94px;
    }
}

.lp-fv {
    background-color: #E6F6FA;
    margin-top: 64px;
}
@media (min-width: 768px) {
    .lp-fv {
        margin-top: 90px;
    }
}
.lp-fv-inner {
    width: 100%;
    position: relative;
    max-width: 1920px;
    margin-inline: auto;
}
.lp-fv-image {
    width: 100%;
    margin-inline: auto;
}
.lp-fv-cta {
    position: absolute;
    width: 80vw;
    left: 50%;
    transform: translateX(-50%);
    bottom: 1%;
}
@media (min-width: 768px) {
    .lp-fv-cta {
        width: 30vw;
        max-width: 600px;
        left: 32%;
        bottom: 6%;
    }
}
.lp-fv-text-image {
    width: 636px;
    margin-bottom: 16px;
}
.lp-fv-bottom {
    width: 100%;
    background-color: #E9F9FF;
}
.lp-fv-bottom-image {
    max-width: 1920px;
    margin-inline: auto;
}

.lp-benefit {
    background-image: url("../images/benefit_bg.jpg");
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: cover;
}

.lp-problem {
    background-color: #F3FFFF;
}

.lp-reason {
    background-color: #F3FBFF;
}

.lp-slider {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
@media (min-width: 768px) {
    .lp-slider {
        max-width: 1100px !important;
        margin-inline: auto;
    }
}
@media (min-width: 1441px) {
    .lp-slider {
        max-width: 1440px !important;
        margin-inline: auto;
        padding-inline: 20px;
    }
}

.lp-slider .swiper {
    width: 100%;
}

.lp-slider .swiper-slide img {
    display: block;
    width: 100%;
    height: auto;
}

/* dots */
.lp-slider .swiper-pagination {
    position: static;
    margin-top: 10px;
}

.lp-slider .swiper-pagination-bullet {
    opacity: 0.45;
}

.lp-slider .swiper-pagination-bullet-active {
    opacity: 1;
}

/* PCは「スライダー無しで3枚並び」 */
@media (min-width: 768px) {
    .lp-slider .swiper-wrapper {
        transform: none !important;
    }
    .lp-slider .swiper-slide {
        width: auto !important;
        flex: 0 0 calc(33.333% - 16px);
    }
    .lp-slider .swiper-wrapper {
        display: flex;
        gap: 24px;
    }
    .lp-slider .swiper-pagination {
        display: none;
    }
}
.lp-note {
    width: 100%;
    max-width: 1100px;
    margin-inline: auto;
    font-size: 12px;
    line-height: 1.5;
    color: #666;
    background-color: #F3FBFF;
    padding-block: 40px;
    padding-inline: 20px;
}

@media (min-width: 768px) {
    .lp-note {
        font-size: 12px;
    }
}
@media (min-width: 1441px) {
    .lp-note {
        max-width: 1440px;
    }
}
.lp-note__item {
    margin: 0 0 8px;
}

.lp-note__item:last-child {
    margin-bottom: 0;
}

.lp-note a {
    color: #666;
    text-decoration: underline;
    word-break: break-all;
}

.cta-text-image {
    padding-top: 12vw;
    background-color: #FFF;
}
@media (min-width: 768px) {
    .cta-text-image {
        padding-top: 6vw;
    }
}

.main-cta {
    background-color: #FFF;
    padding-bottom: 12vw;
}
@media (min-width: 768px) {
    .main-cta {
        padding-bottom: 6vw;
    }
}
.main-cta-button {
    display: block;
    width: 90vw;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .main-cta-button {
        width: 30vw;
        max-width: 600px;
    }
}

.dandi-cta {
    background-color: #F3FBFF;
    padding-top: 12vw;
}
@media (min-width: 768px) {
    .dandi-cta {
        padding-top: 4vw;
    }
}

.lp-cta-bottom {
    position: relative;
    margin-top: 0;
}
.lp-cta-bottom-button {
    position: absolute;
    width: 90vw;
    left: 50%;
    transform: translateX(-50%);
    bottom: 9%;
}
@media (min-width: 768px) {
    .lp-cta-bottom-button {
        width: 30vw;
        max-width: 600px;
        left: 30%;
        bottom: 3%;
    }
}

.lp-footer {
    background: #fff;
    padding: 0 20px 32px;
    font-size: 14px;
    color: #222;
    padding-bottom: 18vw;
    max-width: 1920px;
    margin-inline: auto;
}
@media (min-width: 768px) {
    .lp-footer {
        padding: 0 16px 40px;
        padding-bottom: 0;
    }
}

.lp-footer__inner {
    max-width: 1100px;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .lp-footer__inner {
        max-width: 1100px;
    }
}
@media (min-width: 1441px) {
    .lp-footer__inner {
        max-width: 1440px;
    }
}

.lp-footer__brand {
    margin-bottom: 16px;
}

.lp-footer__logo {
    width: 200px;
    height: auto;
}
@media (min-width: 768px) {
    .lp-footer__logo {
        width: 220px;
    }
}
@media (min-width: 1441px) {
    .lp-footer__logo {
        width: 280px;
    }
}

.lp-footer__company {
    margin-bottom: 0;
}

.lp-footer__company-name {
    font-weight: 600;
    font-size: 20px;
    margin-bottom: 4px;
}
@media (min-width: 768px) {
    .lp-footer__company-name {
        font-size: 18px;
    }
}
@media (min-width: 1441px) {
    .lp-footer__company-name {
        font-size: 24px;
    }
}

.lp-footer__address {
    font-size: 14px;
    line-height: 1.6;
    color: #555;
    margin-block: 0;
}
@media (min-width: 768px) {
    .lp-footer__address {
        font-size: 16px;
    }
}
@media (min-width: 1441px) {
    .lp-footer__address {
        font-size: 18px;
    }
}

/* フッター上段：会社情報＋ページ内ナビ */
.lp-footer__top-row {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 16px;
}

/* SP: ナビを上・会社情報を下 */
.lp-footer__page-nav { order: 1; }
.lp-footer__info     { order: 2; }

@media (min-width: 768px) {
    .lp-footer__top-row {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        flex-wrap: nowrap;
    }
    /* PC: 会社情報を左・ナビを右 */
    .lp-footer__info     { order: 1; }
    .lp-footer__page-nav { order: 2; }
}

/* ページ内ナビリスト */
.lp-footer__page-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
}

.lp-footer__page-nav-list li {
    width: 50%;
}

.lp-footer__page-nav-list a {
    display: block;
    padding: 8px 0;
    font-size: 16px;
    font-weight: 600;
    color: inherit;
    transition: opacity 0.2s ease;
}

.lp-footer__page-nav-list a:hover {
    opacity: 0.7;
}

.lp-footer__cta {
    display: none;
}
@media (min-width: 768px) {
    .lp-footer__cta {
        display: flex;
        justify-content: flex-end;
        margin-top: 16px;
    }
}
.lp-footer__cta img {
    width: 100%;
    max-width: 300px;
    height: auto;
}
.lp-footer__cta:hover {
    opacity: 0.8;
}

@media (min-width: 768px) {
    .lp-footer__page-nav-list {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 0 16px;
    }
    .lp-footer__page-nav-list li {
        width: auto;
    }
}

.lp-footer__nav {
    margin-bottom: 24px;
}

.lp-footer__nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.lp-footer__nav-list li {
    margin-bottom: 8px;
}
.lp-footer__nav-list a {
    font-weight: 600;
    color: #222;
    text-decoration: none;
}
@media (min-width: 768px) {
    .lp-footer__nav-list a {
        font-size: 16px;
    }
}
@media (min-width: 1441px) {
    .lp-footer__nav-list a {
        font-size: 18px;
    }
}
.lp-footer__nav-list a:hover {
    text-decoration: underline;
}

.lp-footer__divider {
    border: none;
    border-top: 1px solid #ccc;
    margin: 32px 0 24px;
}

.lp-footer__legal-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    text-align: center;
}
@media (min-width: 768px) {
    .lp-footer__legal-list {
        display: flex;
        flex-direction: row;
        justify-content: center;
        gap: 24px;
    }
}
.lp-footer__legal-list li {
    margin-bottom: 8px;
}
.lp-footer__legal-list a {
    font-size: 12px;
    color: #555;
    text-decoration: underline;
}
@media (min-width: 768px) {
    .lp-footer__legal-list a {
        font-size: 14px;
    }
}
.lp-footer__legal-list a:hover {
    opacity: 0.7;
}

.lp-footer__copy {
    font-size: 12px;
    color: #777;
    text-align: center;
}

.lp-footer__sns {
    display: flex;
    margin-right: 16px;
    padding: 0;
    list-style: none;
}
.lp-footer__sns li {
    display: flex;
}
.lp-footer__sns a {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 36px;
    height: 36px;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
@media screen and (min-width: 768px) {
    .lp-footer__sns a {
        width: 48px;
        height: 48px;
    }
}
.lp-footer__sns a:hover {
    opacity: 0.7;
    transform: translateY(-1px);
}
.lp-footer__sns img {
    width: 20px;
    height: 20px;
    display: block;
}
@media screen and (min-width: 768px) {
    .lp-footer__sns img {
        width: 32px;
        height: 32px;
    }
}

.lp-floatCta {
    width: 100vw;
    position: fixed;
    left: 0;
    right: 0;
    bottom: -2px;
    z-index: 60;
}
@media (min-width: 410px) and (max-width: 767px) {
    .lp-floatCta {
        width: 80vw;
        margin: 0 auto;
    }
}
.lp-floatCta {
    display: flex;
    justify-content: center;
    padding: 0 6px;
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
@media (min-width: 768px) {
    .lp-floatCta {
        display: none;
    }
}
.lp-floatCta.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}/*# sourceMappingURL=style.css.map */