/* 変数定義 */
:root {
    --min-width: 767px;
    --inner-width: 1120px;
    --header-height: 94px;
    --btn-height: 50px;
    --btn-heightTall: 80px;

    --radius: 4px;

    --font-size-btn: 15px;

    --padding-vertical: 5em;
    --padding-horizontal: 2em;
    --padding-verticalHalf : calc(var(--padding-vertical) / 2);
}

/* 汎用スイッチ */
[class*="-al_center"] { text-align: center; }
[class*="-al_left"] { text-align: left; }
[class*="-al_right"] { text-align: right; }

/* ## 基本構造  ## */
body {
    min-width: var(--min-width);
    padding-top: var(--header-height);
    overflow: auto;
    color: #555555;
    text-wrap: pretty;
    overflow-wrap: break-word;
    line-break: strict;
}
[class^="cstmlp_contentblock"] {
    padding: var(--padding-vertical) var(--padding-horizontal);
}
[class^="cstmlp_contentblock"] + [class^="cstmlp_contentblock"] {
    padding-top: 0;
}
[class*="-cstmlp_cb_gray"] {
    background-color: #f5f5f5;
    padding-top: var(--padding-vertical)!important;
}
[class*="-cstmlp_cb_blue"] {
    background-color: #002C6A;
    padding-top: var(--padding-vertical)!important;
    color: #ffffff;
}
[class*="-cstmlp_cb_image"] {
    background: url(images/bg.jpg) no-repeat center center / cover;
    padding-top: var(--padding-vertical)!important;
}
[class*="-cstmlp_cb_gray"] + [class^="cstmlp_contentblock"],
[class*="-cstmlp_cb_blue"] + [class^="cstmlp_contentblock"] {
    padding-top: var(--padding-vertical);
}

[class^="cstmlp_wrap_inner"] {
    width: 100%;
    max-width: var(--inner-width);
    margin: 0 auto;
}

[class^="cstmlp_strongbox"] {
    display: inline-block;
    background-color: #002C6A;
    color: #ffffff;
    padding: 0.1em 0.25em;
    margin-right: 0.25em;
}

[class^="cstmlp_link"] {
    color: #0000ff!important;
    text-decoration: underline;
    display: inline!important;
    white-space: nowrap;
}

/* CTAコンポーネント */
[class^="cstmlp_wrap_cta"] {
    display: flex;
    gap: 10px;
}
[class^="cstmlp_btn_cta"] {
    display: block;
    width: 232px;
    height: var(--btn-height);
    line-height: calc(var(--btn-height) - 2px);
    text-align: center;
    font-size: var(--font-size-btn);
    font-weight: bold;
    color: #ffffff!important;
    background: #002C6A;
    border: 2px solid #002C6A;
    border-radius: var(--radius);
    position: relative;
}
[class^="cstmlp_btn_cta"]::after {
    display: block;
    content: "";
    width: 0.6em;
    height: 0.6em;
    border-top: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
    transform: rotate(45deg);
    margin: 0 auto;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    right: 1em;
}
.cstmlp_btn_cta-highkey { background-color: #FFEE03; color: #000000!important; border-color: #FFEE03; }
.cstmlp_btn_cta-highkey::after { border-top: 2px solid #000000; border-right: 2px solid #000000; }

/* タイトル系 */
[class^="cstmlp_contentblock"] h3 {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 0.5em;
}

[class^="cstmlp_secttl"] {
    font-size: 30px;
    font-weight: bold;
    padding-bottom: var(--padding-verticalHalf);
}
[class^="cstmlp_secttl"] strong {
    color: #002C6A;
}
[class^="cstmlp_strongttl"] {
    color: #000000;
    font-size: 35px;
}
[class*="-ttl_UL"] {
    border-bottom: 1px solid #dddddd;
    padding-bottom: 0.5em;
    margin-bottom: 1em;
}
[class*="-ttl_DECO"] {
    position: relative;
    padding-bottom: 0.5em;
    margin-bottom: 1em;
}
[class*="-ttl_DECO"]::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 72px;
    height: 5px;
    background-color: #002C6A;
}
[class*="-ttl_nogap"] {
    padding-bottom: 0;
}
[class*="-ttl_minimumgap"] {
    padding-bottom: 0.5em;
}

/* ## 固有要素 ## */
/* ヘッダー */
header#cstmlp_header {
    width: 100%;
    height: var(--header-height);
    z-index: 10000;
    position: fixed;
    margin: 0 auto;
    background: #ffffff;
    top: 0;
    left: 0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
div#cstmlp_header_logo {
    width: 300px;
    height: var(--header-height);
    vertical-align: middle;
    display: table-cell;
}
div#cstmlp_header_logo a {
    display: block;
    margin-right: 0;
    margin-left: 20px;
}
#cstmlp_header_cta {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    right: 0;
    padding-right: 20px;
    height: var(--btn-height);
}

/* KV */
.cstmlp_wrap_kv {
    background: #002C6A url(images/kv.jpg) no-repeat center center / cover;
    width: 100%;
    min-width: var(--min-width);
    height: clamp(400px, 36vw, 100vh);
}

.cstmlp_box_kv {
    display: flex;
    height: clamp(400px, 36vw, 100vh);
    align-items: center;
}
.cstmlp_kv_inner {
    width: 100%;
    padding-left: 45%;
}

.cstmlp_wrap_kv h2 {
    color: #002C6A;
    font-size: clamp(12.3px, 1.6vw, 20px);
    font-weight: bold;
    margin-bottom: 1em;
    background-color: #ffffff;
    padding: 0.25em 0.5em;
    display: block;
    width: fit-content;
    border-radius: var(--radius);
}
.cstmlp_wrap_kv h1 {
    color: #ffffff;
    font-size: clamp(34px, 4.4vw, 56px);
    font-weight: bold;
    margin-bottom: 0.25em;
}
.cstmlp_wrap_kv h1 > small {
    font-size: clamp(22.1px, 2.88vw, 36px);
    display: block;
    line-height: 1.2;
}
.cstmlp_wrap_kv h1 strong {
    display: block;
    line-height: 1.2;
    margin: 1rem 0
}
.cstmlp_wrap_kv .cstmlp_btn_cta {
    border-color: #ffffff;
}

/* セクション：リード */
.cstmlp_wrap_lead {
    background-color: #dddddd;
    overflow: hidden;
    padding: 5em 2em clamp(24px, 3vw, 48px) 2em;
    position: relative;
}
.cstmlp_leadarrow {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: clamp(24px, 3vw, 48px);
    pointer-events: none; /* 装飾なのでクリック妨害しないように */
  }
  
  .cstmlp_leadarrow::before,
  .cstmlp_leadarrow::after {
    content: "";
    position: absolute;
    top: 0;
    width: 50%;
    height: 100%;
    background-color: #fff; /* 白背景で切り抜く */
    clip-path: polygon(0 0, 100% 100%, 0 100%);
  }
  
  .cstmlp_leadarrow::after {
    left: 50%;
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
  }

  
/* 悩みカラム */
[class^="cstmlp_wrap_problem_col"] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 20px;
    margin-bottom: var(--padding-verticalHalf);
}
[class^="cstmlp_wrap_problem_col"] [class^="cstmlp_col_item"] {
    background-color: #ffffff;
    padding: 40px 20px;
    text-align: center;
    font-size: 22px;
    font-weight: bold;
}
[class^="cstmlp_wrap_problem_col"] [class^="cstmlp_col_item"] strong {
    color: #002C6A;
}

/* セクション：ソリューション */
[class^="cstmlp_wrap_solution_col"] {
    display:flex;
    gap: 20px;
}
[class^="cstmlp_wrap_solution_col"] + [class^="cstmlp_wrap_solution_col"] {
    margin-top: 5em;
}
[class^="cstmlp_wrap_solution_col"]:nth-child(odd) {
    flex-direction: row-reverse;
}
[class^="cstmlp_wrap_solution_col"] [class^="cstmlp_colSolution_img"] {
    width: 40%;
}
[class^="cstmlp_wrap_solution_col"] [class^="cstmlp_colSolution_txt"] {
    flex: 1;
}

[class^="cstmlp_unit_solution"] {
    display: flex;
    background: #f5f5f5;
    padding: 1.5em;
    align-items: flex-start;
}
.cstmlp_unit_solution_solution {
    margin-top: 0.5em;
    background: #F0F6FF;
    flex-direction: column;
}
.cstmlp_unit_solution_solution:only-child {
    height: 100%;
    display: flex;
    justify-content: center;
}

[class^="cstmlp_unit_solution"] dt {
    background-color: #555555;
    color: #ffffff;
    padding: 0.25em 0.5em;
    text-align: center;
    width: 4em;
}
.cstmlp_unit_solution_solution dt {
    background-color: #002C6A;
}
[class^="cstmlp_unit_solution"] dd {
    padding: 0.25em 0 0 1em;
}
.cstmlp_unit_solution_solution dd {
    padding: 0.75em 0 0.25em 0.25em;
}
.cstmlp_unit_solution_solution h3 {
    color: #002C6A;
}

/* セクション：評価機貸出 */
[class^="cstmlp_wrap_eval"] {
    display: flex;
    gap: 20px;
}
[class^="cstmlp_wrap_eval"] [class^="cstmlp_colEval_img"] {
    width: 40%;
}
[class^="cstmlp_wrap_eval"] [class^="cstmlp_colEval_txt"] {
    flex: 1;
}
[class^="cstmlp_wrap_eval"] [class^="cstmlp_wrap_cta"] {
    margin-top: 1.5em;
}

[class^="cstmlp_wrap_eval"] [class^="cstmlp_wrap_cta"] .cstmlp_btn_cta {
    border-color: #ffffff;
}

/* セクション：ハギワラソリューションズの強み */
[class^="cstmlp_wrap_strength"] {
    display: flex;
    gap: 35px;
    justify-content: center;
    align-items: stretch;
    flex-wrap: wrap;
    min-width: var(--min-width);
}
[class^="cstmlp_wrap_strength"] [class^="cstmlp_unit_strength"] {
    width: 350px;
    background: #f5f5f5;
}
[class^="cstmlp_wrap_strength"] [class^="cstmlp_unit_strength_txt"] {
    text-align: center;
    padding: 2em 0.75em;
}

[class^="cstmlp_wrap_strength"] [class^="cstmlp_unit_strength_txt"] h3 {
    color: #002C6A;
    margin-bottom: 0.25em;
}
[class^="cstmlp_wrap_additioanlstength"] {
    padding: 3em 0 0 0;
}
[class^="cstmlp_wrap_additioanlstength"] ul {
    list-style: disc;
    padding-left: 1.5em;
    width: fit-content;
    margin: auto;
}
[class^="cstmlp_wrap_additioanlstength"] ul li {
    font-size: 24px;
    color: #002C6A;
    font-weight: bold;
    margin-bottom: 0.5em;
}

/* セクション：活用シーン */
[class^="cstmlp_unit_scene"] {
    display: flex;
    gap: 20px;
    background: #ffffff;
    padding: 1.5em;
}
[class^="cstmlp_unit_scene"] + [class^="cstmlp_unit_scene"] {
    margin-top: 2em;
}
[class^="cstmlp_scene_img"] {
    width: 38%;
}
[class^="cstmlp_scene_txt"] {
    flex: 1;
}
[class^="cstmlp_scene_disc"] {
    display: flex;
    gap: 0.75em;
    margin-top: 1.5em;
    align-items: flex-start;
}
[class^="cstmlp_scene_disc"] dt {
    background-color: #002C6A;
    color: #ffffff;
    padding: 0.25em 0.5em;
    text-align: center;
    width: 5em;
}
.cstmlp_scene_disc_before dt {
    background-color: #555555;
}
[class^="cstmlp_scene_disc"] dd {
    flex: 1;
    font-weight: bold;
    padding: 0.25em 0.5em 0.25em 0;
}
.cstmlp_scene_disc_after dd { color: #002C6A; }

/* セクション：導入までの流れ */
[class^="cstmlp_wrap_flow"] {
    display: flex;
    gap: 70px 35px;
    width: fit-content;
    min-width: var(--min-width);
    margin: auto;
    overflow: hidden;
    flex-wrap: wrap;
    justify-content: center;
    padding-top: 70px;
    counter-reset: flow-num;
}
[class^="cstmlp_wrap_flow"] [class^="cstmlp_unit_flow"] {
    width: 350px;
    border: 1px solid #002C6A;
    text-align: center;
    padding: 3em 1em 1em 1em;
    min-height: 12em;
    position: relative;
}
[class^="cstmlp_wrap_flow"] [class^="cstmlp_unit_flow"]:before {
    content: counter(flow-num, decimal-leading-zero);
    counter-increment: flow-num;
    position: absolute;
    top: -35px;
    left: 0;
    right: 0;
    margin: auto;
    width: 70px;
    height: 70px;
    background-color: #002C6A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: bold;
    color: #ffffff;
}
[class^="cstmlp_wrap_flow"] [class^="cstmlp_unit_flow"]:after {
    content: "";
    display: block;
    position: absolute;
    right: -36px;
    top: 54px;
    width: 25px;
    height: 20px;
    border: 10px solid transparent;
    border-left: 15px solid #002C6A;
    pointer-events: none;
}
[class^="cstmlp_wrap_flow"] [class^="cstmlp_unit_flow"]:last-child:after {
    content: none;
}
[class^="cstmlp_wrap_flow"] [class^="cstmlp_unit_flow"] h3 {
    color: #002C6A;
    margin-bottom: 0.25em;
}

/* セクション：よくある質問 */
[class^="cstmlp_wrap_faq"] {
}
[class^="cstmlp_wrap_faq"] [class^="cstmlp_unit_faq"] {
    padding: 1em 0;
    border-bottom: 1px solid #dddddd;
}
[class^="cstmlp_faq_txt"] {
    padding: 0.5em 0 0.5em 3.5em;
    position: relative;
    line-height: 1.5;
}
[class^="cstmlp_faq_txt"]::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 2.5rem;
    height: 2.5rem;
    background-color: #555555;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5em;
    font-weight: bold;
    color: #ffffff;
}
.cstmlp_faq_txt-q::before {
    content: "Q";
}
.cstmlp_faq_txt-a {
    margin-top: 0.75em;
}
.cstmlp_faq_txt-a::before {
    content: "A";
    background-color: #002C6A;
}

/* セクション：お問い合わせ */
[class^="cstmlp_wrap_contact"] {
    background: #ffffff;
}
.cstmlp_contact_inner {
    background: #ffffff;
    padding: 3em;
}
.cstmlp_wrap_contact .cstmlp_wrap_cta {
    justify-content: center;
    padding-top: 2em;
}
.cstmlp_wrap_contact .cstmlp_wrap_cta [class^="cstmlp_btn_cta"] {
    width: 350px;
    height: var(--btn-heightTall);
    line-height: calc(var(--btn-heightTall) - 4px);
    font-size: 18px;
}
.cstmlp_contact_additional  {
    padding: 2em;
    background: #f5f5f5;
}
.cstmlp_contact_branchlist {
    display: flex;
    gap: 20px;
    margin: 2em 4em
}
.cstmlp_contact_branch {
    flex: 1;
    text-align: center;
    border: 1px solid #002C6A;
}
.cstmlp_contact_branch_name {
    padding: 0.5em 0;
    background: #002C6A;
    color: #ffffff;
}
.cstmlp_contact_branch_tel {
    font-size: 20px;
    font-weight: bold;
    padding: 0.5em 0;
    background: #ffffff;
}



@media screen and (max-width: 860px) {
    :root {
        --header-height: 70px;
        --btn-height: 44px;
        --font-size-btn: 14px;
    }

    div#cstmlp_header_logo {
        width: 200px;
        height: var(--header-height);
    }

    div#cstmlp_header_logo a {
        margin-left: 10px;
    }

    #cstmlp_header_cta {
        position: absolute;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
        height: auto;
    }

    .cstmlp_wrap_cta {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    .cstmlp_unit_cta {
        width: calc(50% - 5px);
        min-width: 140px;
    }

    [class^="cstmlp_btn_cta"] {
        width: 100%;
        font-size: var(--font-size-btn);
    }
}