/**
 * MIRAIZ 専門家向け LP 共通（DL-CONSULTANT 準拠）
 * https://dl-consultant.jp/
 */
:root {
    --lp-primary: #171c61;
    --lp-secondary: #1e73be;
    --lp-accent: #b39758;
    --lp-dark: #171c61;
    --lp-light: #f7f7f7;
    --lp-text: #000000;
}

body.lp-theme-pro {
    color: var(--lp-text);
    font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
}

/* ----- Navbar ----- */
.lp-navbar {
    background: #fff;
    border-bottom: 1px solid #e8e8e8;
    box-shadow: 0 1px 0 rgba(23, 28, 97, 0.04);
}
.lp-navbar .navbar-brand,
.lp-navbar .nav-link {
    color: var(--lp-primary) !important;
    font-weight: 500;
}
.lp-navbar .nav-link:hover,
.lp-navbar .nav-link.active {
    color: var(--lp-secondary) !important;
}
.lp-navbar .navbar-toggler { border-color: #ccc; }
.lp-navbar .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(23, 28, 97, 0.85)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.btn-lp-nav {
    border: 1px solid var(--lp-primary);
    color: var(--lp-primary);
    background: transparent;
    font-size: 1.1391rem;
    padding: 0.5062rem 1.0631rem;
}
.btn-lp-nav:hover {
    background: var(--lp-primary);
    color: #fff;
    border-color: var(--lp-primary);
}
.btn-lp-nav-accent {
    border: 1px solid var(--lp-accent);
    color: #8a7340;
    background: transparent;
    font-size: 1.1391rem;
    padding: 0.5062rem 1.0631rem;
}
.btn-lp-nav-accent:hover {
    background: var(--lp-accent);
    color: #fff;
    border-color: var(--lp-accent);
}

/* ----- Page header / text hero band（画像ヒーローには適用しない） ----- */
.lp-page-header {
    background: var(--lp-primary);
    color: #fff;
    padding: 60px 0 50px;
}
.lp-page-header h1 {
    font-size: clamp(2.3287rem, 3.6vw, 3.24rem);
    font-weight: 700;
    letter-spacing: 0.03em;
}
.lp-page-header .lead {
    font-size: 1.5694rem;
    opacity: 0.92;
}
.lp-page-header .header-sub { font-size: 1.3668rem; opacity: 0.75; }

/* ----- Sections ----- */
.lp-section { padding: 64px 0; }
.lp-section-alt { background: var(--lp-light); }
.lp-section-navy {
    background: var(--lp-primary);
    color: #fff;
    padding: 56px 0;
}
.section-heading {
    font-weight: 700;
    color: var(--lp-primary);
    margin-bottom: 0.5062rem;
}
.section-sub { color: #6c757d; margin-bottom: 2.5312rem; font-size: 1.3668rem; }

/* ----- Buttons ----- */
.btn-lp-primary {
    background: var(--lp-accent);
    border: none;
    color: #fff;
    padding: 16px 42px;
    font-size: 1.4175rem;
    border-radius: 4px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.btn-lp-primary:hover { background: #9e8450; color: #fff; }
.btn-lp-outline {
    border: 2px solid #fff;
    color: #fff;
    padding: 14px 38px;
    font-size: 1.4175rem;
    border-radius: 4px;
    font-weight: 600;
    background: transparent;
}
.btn-lp-outline:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }
.btn-lp-outline-navy,
.btn-lp-outline-dark {
    border: 2px solid var(--lp-primary);
    color: var(--lp-primary);
    padding: 14px 38px;
    font-size: 1.4175rem;
    border-radius: 4px;
    font-weight: 600;
    background: transparent;
}
.btn-lp-outline-navy:hover,
.btn-lp-outline-dark:hover {
    background: var(--lp-primary);
    color: #fff;
}

/* ----- CTA / Footer ----- */
.lp-cta-section,
.mid-cta {
    background: var(--lp-primary);
    color: #fff;
    padding: 60px 0;
}
.lp-cta-section .lp-sec-title { color: #fff; }
.lp-cta-section .lp-sec-label { color: rgba(255, 255, 255, 0.65); }
.lp-cta-section .lp-sec-head::after { background: var(--lp-accent); }

.lp-footer {
    background: var(--lp-primary);
    color: rgba(255, 255, 255, 0.7);
    padding: 48px 0 24px;
}
.lp-footer a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
}
.lp-footer a:hover { color: var(--lp-accent); }

/* ----- Mission mark（折り鶴ロゴ） ----- */
.lp-mission-mark {
    display: block;
    margin: 0 auto 1.2656rem;
    max-width: 220px;
    width: 55%;
    height: auto;
}

/* ----- Stats ----- */
.lp-stat,
.stat-number {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    color: var(--lp-accent);
}
.lp-stat { font-size: 3.0375rem; }
.stat-number { font-size: 3.8475rem; line-height: 1; }
.stat-section {
    background: var(--lp-primary);
    padding: 60px 0;
    position: relative;
    overflow: hidden;
}
.stat-suffix {
    font-size: 1.5694rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6);
}
.stat-label {
    font-size: 1.3668rem;
    color: rgba(255, 255, 255, 0.7);
    margin-top: 8px;
}

/* ----- CTA button group ----- */
.lp-cta-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.7594rem;
}

/* =========================================================
   Responsive（全専門家LP共通）
   ブレークポイント: md 767.98 / sm 575.98
   ========================================================= */
@media (max-width: 991.98px) {
    .lp-navbar .navbar-brand span {
        font-size: 1.215rem;
    }
    .lp-navbar .nav-link {
        font-size: 1.3162rem;
    }
}

@media (max-width: 767.98px) {
    .lp-page-header {
        padding: 44px 0 36px;
        text-align: center;
    }
    .lp-page-header h1 {
        font-size: 2.1769rem;
        line-height: 1.45;
    }
    .lp-page-header .lead {
        font-size: 1.4175rem;
        line-height: 1.7;
    }

    .lp-section,
    .lp-section-alt,
    .feature-block {
        padding: 48px 0;
    }
    .lp-section-navy,
    .stat-section,
    .lp-cta-section,
    .mid-cta,
    .mission-section {
        padding: 44px 0;
    }

    .section-heading {
        font-size: 1.9238rem;
        text-align: center;
    }
    .section-sub {
        margin-bottom: 1.7719rem;
        text-align: center;
        font-size: 1.3162rem;
    }

    .btn-lp-primary,
    .btn-lp-outline,
    .btn-lp-outline-navy,
    .btn-lp-outline-dark {
        padding: 14px 28px;
        font-size: 1.3162rem;
        width: 100%;
        max-width: 360px;
    }
    .lp-cta-actions,
    .lp-hero-cta .d-flex,
    .lp-cta-section .d-flex {
        flex-direction: column;
        align-items: center;
    }

    .lp-stat { font-size: 2.43rem; }
    .stat-number { font-size: 2.6325rem; }
    .stat-suffix { font-size: 1.2656rem; }
    .stat-label { font-size: 1.215rem; }
    .stat-item { padding: 0 8px; margin-bottom: 0.5062rem; }
    .stat-item:not(:last-child)::after { display: none; }

    .lp-mission-mark,
    .mission-crane {
        max-width: 180px;
        width: 70%;
    }

    .lp-footer {
        padding: 40px 0 20px;
        text-align: center;
    }
    .lp-footer .col-md-4 {
        margin-bottom: 1.5188rem;
    }

    .workflow-arrow { display: none !important; }
    .feature-block h2 {
        font-size: 1.9238rem;
        text-align: center;
    }
    .mission-headline {
        font-size: 1.9238rem !important;
        line-height: 1.5;
    }
}

@media (max-width: 575.98px) {
    .lp-page-header {
        padding: 36px 0 28px;
    }
    .lp-page-header h1 {
        font-size: 1.9743rem;
    }

    .lp-section,
    .lp-section-alt,
    .feature-block {
        padding: 40px 0;
    }
    .lp-section-navy,
    .stat-section,
    .lp-cta-section,
    .mid-cta,
    .mission-section {
        padding: 36px 0;
    }

    .lp-navbar .navbar-brand span {
        font-size: 1.1391rem;
        max-width: 11em;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .btn-lp-nav,
    .btn-lp-nav-accent {
        display: block;
        width: 100%;
        text-align: center;
        margin-top: 0.3544rem;
    }

    .lp-mission-mark,
    .mission-crane {
        max-width: 160px;
        width: 75%;
    }
}
