/* 基本設定 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: #0d0d0d; /* 背景の深い黒 */
    color: #ffffff;
    /* font-family: 'Noto Serif JP', serif; */
    font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
    line-height: 1.6;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: clip;
}

/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
html,
body,
p,
ol,
ul,
li,
dl,
dt,
dd,
blockquote,
figure,
fieldset,
legend,
textarea,
pre,
iframe,
hr,
h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: 100%;
    font-weight: normal;
}

ul,ol {
    list-style: none;
}

button,
input,
select {
    margin: 0;
}


html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

img,
video {
    height: auto;
    max-width: 100%;
}

iframe {
    border: 0;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

td,
th {
    padding: 0;
}

a {
    color: #000;
    text-decoration: none;
}

/* ヘッダー・ロゴ */
.header {
    /* padding: 40px 60px; */
    padding-block: 40px;
    padding-inline-start: 60px;
}

.logo {
    font-family: 'Playfair Display', serif;
    font-size: 40px;
    font-weight: 600;
    /* width: 140px; */
    color: #AAA;
}

.logo a {
    color: #AAA;
    transition: color 0.3s;
}

.logo a:hover {
    color: #fff;
}



/* メインコンテンツ */
.container {
    width: 65%;
    max-width: 100%;
    /* max-width: 800px; */
    /* margin: 0 auto; */
    margin-inline-start: auto;
    padding: 40px 60px 160px 60px;
    flex: 1;
    overflow-x: clip;
}

.page-title {
    /* font-family: 'Playfair Display', serif; */
    font-family: "Times New Roman", serif;
    font-size: 40px;
    font-weight: 600;
    border-bottom: 1px solid #ffffff;
    /* padding-bottom: 15px; */
    margin-bottom: 60px;
    /* width: 100%; */
    width: 100vw;
    margin-inline-end: calc(50% - 50vw);
    background: #0d0d0d;
    /* position: sticky;
    top: 45%; */
    padding-block-start: 20px;
}


.privacy-contents {
    display: flex;
    flex-direction: column;
    gap: 40px 0;
    counter-reset: listnum; /* カウンターをリセット */
}

.privacy-list {
}

.privacy-list h2 {
    color: #AAA;
    font-size: 16px;
    font-style: normal;
    font-weight: bold;
    line-height: 100%; /* 16px */
    margin-block-end: 24px;
    /* font-family: "Yu Mincho"; */
}

.privacy-list h2::before{
	counter-increment: listnum; /* counter-resetと同じ文字列 */
	content: counter(listnum)"."; /* カウントした数に応じて番号を表示 */
}

.privacy-txt {
    color: #FFF;
    font-family: YuMincho;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 28px; /* 28px */
    letter-spacing: 0.5px;
}

.privacy-num {

}
.privacy-numTit {
    font-size: 14px;
}
.privacy-numDetail {

}
.privacy-teams {
    counter-reset: listnum;
    padding-inline-start: 15px;
}

.privacy-teams li {
    font-feature-settings: 'halt' on;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 28px; /* 28px */
    display: flex;
    gap: 0 5px;
    letter-spacing: 0.5px;
}

.privacy-teams li::before{
	counter-increment: listnum; /* counter-resetと同じ文字列 */
	content: counter(listnum)"."; /* カウントした数に応じて番号を表示 */
}




/* 会社情報のテーブルレイアウト */
.info-grid {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 800px;
}

.info-row {
    display: grid;
    grid-template-columns: 250px 1fr; /* 左側のラベル幅を固定 */
    align-items: start;
}

.info-row dt {
    color: #aaa; /* ラベルは少しグレーに */
    font-size: 12px;
    font-family: "Times New Roman", serif;
}

.info-row dd {
    font-size: 14px;
    letter-spacing: 0.03em;
}

/* フッター */
.footer {
    padding: 0 60px 40px;
    text-align: right;
}

.footer-nav ul {
    display: flex;
    justify-content: flex-end;
    gap: 20px;
}

.footer-nav ul li a {
    color: #aaa;
    text-decoration: none;
    font-size: 10px;
    transition: color 0.3s;
}

.footer-nav a:hover {
    color: #fff;
}

@media (min-width: 1261px) {
}

@media (min-width: 961px) {
    .header {
        position: fixed;
        top: -3.25%;
    } 
    .page-title {
        position: sticky;
        top: 0%;       
        margin-block-end: 120px;
    }
    .page-title::before {
        /* content: "";
        width: 100%;
        height: 100%;
        position: absolute;
        display: block;
        background: #0d0d0d; */
    }

    .privacy-contents {
        width: 70.6%;
    }
    

}


/* レスポンシブ対応（スマホ表示） */
@media (max-width: 960px) {
    .header {
        padding: 16px 16px 0;
    }
    .footer {
        padding: 50px 16px 16px 16px;
    }
    .container {
        padding: 30px 40px 70px 40px;
    }
    .logo {
        font-size: 24px;
    }
    .container {
        margin-inline: auto;
        width: 100vw;
        max-width: 100%;
    }

    .info-row {
        grid-template-columns: 110px 1fr; /* 縦並びにする */
        gap: 5px;
    }
    .info-grid {
        /* padding-inline-start: 24px; */
    }

    .page-title {
        font-size: 24px;
        position: sticky;
        top: 0;
        padding-block-start: 34px;
        margin-block-end: 80px;
    }

    .info-row dd {
        font-size: 12px;
    }

    .info-row-br {
        display: none;
    }
}

@media ((min-width: 961px) and (max-width: 1260px)) {
    .container {
        width: 100%;
        max-width: 664px;
    }
    .privacy-contents {
        width: 95.5%;
    }
}