/* ==========================================
   ポリシーページ共通CSS
   - プライバシーポリシー
   - 情報セキュリティ基本方針
   - 反社会的勢力への対応に関する基本方針
   ========================================== */

/* ==========================================
   レイアウト
   ========================================== */

.l_policy {
    max-width: 1148px;
    width: 100%;
    margin: 0 auto;
    padding: 0 1.5rem 5rem;
}

.l_policy_inner {
    width: 100%;
}

/* ==========================================
   ページタイトル
   ========================================== */

.c_page_title {
    font-size: clamp(1.75rem, 1.2007rem + 2.2535vw, 2.75rem);
    font-weight: 700;
    color: var(--c-navy);
    margin-bottom: 2.5rem;
    padding: 0 0 1rem 0;
    /* 左右パディングなし */
    text-align: left;
}

/* ==========================================
   ポリシー本文
   ========================================== */

.c_policy_content {
    font-size: 1rem;
    line-height: 2;
    /* 読みやすさのための行間 */
    color: var(--c-navy);
}

/* 段落 */
.c_policy_content p {
    margin-bottom: 1.5rem;
    text-align: left;
}

.c_policy_content p:last-child {
    margin-bottom: 0;
}

/* 見出し */
.c_policy_content h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--c-navy);
    margin-top: 3.5rem;
    margin-bottom: 2.5rem;
    text-align: center;
}

.c_policy_content h3 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--c-navy);
    margin-top: 2rem;
    margin-bottom: 1rem;
    text-align: left;
}

.c_policy_content h4 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--c-navy);
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    text-align: left;
}

/* リスト */
.c_policy_content ul,
.c_policy_content ol {
    margin-bottom: 1.5rem;
    padding-left: 2rem;
}

.c_policy_content li {
    margin-bottom: 0.5rem;
    line-height: 2;
    list-style-type: none;
}

/* リンク */
.c_policy_content a {
    color: var(--cp-blue);
    text-decoration: underline;
    transition: opacity 0.3s ease;
}

.c_policy_content a:hover {
    opacity: 0.7;
}

/* テーブル */
.c_policy_content table {
    width: 100%;
    margin-bottom: 1.5rem;
    border-collapse: collapse;
    border: 1px solid var(--line-solid);
}

.c_policy_content th,
.c_policy_content td {
    padding: 1rem;
    text-align: left;
    border: 1px solid var(--line-solid);
}

.c_policy_content th {
    background-color: var(--bg-light);
    font-weight: 600;
    color: var(--c-navy);
}

.c_policy_content td {
    background-color: var(--c-white);
}

/* 引用 */
.c_policy_content blockquote {
    margin: 1.5rem 0;
    padding: 1rem 1.5rem;
    background-color: var(--bg-light);
    border-left: 4px solid var(--cp-blue);
    font-style: italic;
}

/* 強調テキスト */
.c_policy_content strong {
    font-weight: 700;
    color: var(--c-navy);
}

.c_policy_content em {
    font-style: italic;
}

/* 区切り線 */
.c_policy_content hr {
    margin: 2rem 0;
    border: none;
    border-top: 1px solid var(--line-solid);
}

/* 定義リスト（会社情報等で使用） */
.c_policy_content dl {
    margin-bottom: 1.5rem;
}

.c_policy_content dt {
    font-weight: 600;
    color: var(--c-navy);
    margin-bottom: 0.5rem;
}

.c_policy_content dd {
    margin-left: 2rem;
    margin-bottom: 1rem;
    line-height: 2;
}

.c_policy_content dd:last-child {
    margin-bottom: 0;
}

/* ==========================================
   レスポンシブ対応
   ========================================== */

/* タブレット（768px以下） */
@media screen and (max-width: 768px) {
    .l_policy {
        padding: 0 1rem 3rem;
    }

    .l_policy_inner {
        max-width: 100%;
    }

    /* タイトル */
    .c_page_title {
        font-size: 1.75rem;
        margin-bottom: 2rem;
    }

    /* 本文 */
    .c_policy_content {
        font-size: 0.9375rem;
    }

    .c_policy_content h2 {
        font-size: 1.375rem;
        margin-top: 2.5rem;
        margin-bottom: 1.25rem;
    }

    .c_policy_content h3 {
        font-size: 1.125rem;
        margin-top: 1.75rem;
        margin-bottom: 0.875rem;
    }

    .c_policy_content h4 {
        font-size: 1rem;
        margin-top: 1.25rem;
        margin-bottom: 0.625rem;
    }

    /* リスト */
    .c_policy_content ul,
    .c_policy_content ol {
        padding-left: 1.5rem;
    }

    /* テーブル（横スクロール対応） */
    .c_policy_content table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .c_policy_content th,
    .c_policy_content td {
        padding: 0.75rem;
        font-size: 0.875rem;
    }

    /* 定義リスト */
    .c_policy_content dd {
        margin-left: 1.5rem;
    }
}

/* スマートフォン（480px以下） */
@media screen and (max-width: 480px) {
    .l_policy {
        padding: 0 1rem 2.5rem;
    }

    /* タイトル */
    .c_page_title {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
        padding-bottom: 0.75rem;
    }

    /* 本文 */
    .c_policy_content {
        font-size: 0.875rem;
        line-height: 1.9;
    }

    .c_policy_content p {
        margin-bottom: 1.25rem;
    }

    .c_policy_content h2 {
        font-size: 1.25rem;
        margin-top: 2rem;
        margin-bottom: 1rem;
    }

    .c_policy_content h3 {
        font-size: 1.0625rem;
        margin-top: 1.5rem;
        margin-bottom: 0.75rem;
    }

    .c_policy_content h4 {
        font-size: 0.9375rem;
        margin-top: 1rem;
        margin-bottom: 0.5rem;
    }

    /* リスト */
    .c_policy_content ul,
    .c_policy_content ol {
        padding-left: 1.25rem;
        margin-bottom: 1.25rem;
    }

    .c_policy_content li {
        margin-bottom: 0.375rem;
    }

    /* 引用 */
    .c_policy_content blockquote {
        padding: 0.75rem 1rem;
        margin: 1.25rem 0;
    }

    /* テーブル */
    .c_policy_content th,
    .c_policy_content td {
        padding: 0.5rem;
        font-size: 0.8125rem;
    }

    /* 定義リスト */
    .c_policy_content dd {
        margin-left: 1rem;
        margin-bottom: 0.75rem;
    }
}

/* add */
.mb0 {
    margin-bottom: 0 !important;
}

.t_right {
    text-align: right !important;
}

/* ==========================================
   CTA セクション
   ========================================== */

.c_cta {
    margin-top: 5rem;
    margin-bottom: 0;
    padding: 3rem 0 5rem;
}

.c_cta.basic_bg {
    background-color: var(--cp-background);
}

.cta_bottom {
    padding: 3rem 1.5rem 5rem;
    margin-bottom: 0;
}

.cta_bottom.basic_bg {
    background-color: var(--cp-background);
}

.c_cta h2,
.cta_bottom h2 {
    text-align: center;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--c-navy);
    margin-bottom: 2.5rem;
}

/* CTA内部のスタイルはcommon.cssを使用 */

.btn_icon_navy,
.btn_icon_white {
    display: flex;
    align-items: center;
    padding-right: .5rem;
    margin-right: .5rem;
}

.btn_icon_navy {
    border-right: 1px dotted var(--c-navy);
}

.btn_icon_white {
    border-right: 1px dotted var(--c-white);
}

.btn_icon_navy img,
.btn_icon_white img {
    width: 20px;
    height: 20px;
}

.btn_icon_w_fix {
    white-space: nowrap;
}

/* CTAセクションのレスポンシブ対応 */
@media screen and (max-width: 768px) {
    .cta_bottom_inner {
        flex-direction: column;
        gap: 2rem;
    }

    .cta_bottom_dl,
    .cta_bottom_contact {
        max-width: 100%;
    }
}

@media screen and (max-width: 480px) {
    .btn_yellow,
    .btn_navy {
        padding: 0.75rem 1.5rem;
        font-size: 0.875rem;
        min-width: auto;
    }
}