@charset "UTF-8";

/* =========================================================
   THE GRID / Privacy Policy — style.css
========================================================= */

:root {
    --ink: #2e2c29;
    --sub: #6d6b67;
    --mute: #a8a4a0;
    --line: #e4e1db;
    --bg: #fbfaf7;
    --bg-alt: #f3efe9;
    --accent: #81724E;
    --accent-deep: #5e532e;
    --accent-soft: #c9b98a;
    --dark: #1f1d1a;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 62.5%; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", sans-serif;
    font-size: 1.5rem;
    line-height: 1.85;
    color: var(--ink);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
ol, ul { list-style: none; }
img { max-width: 100%; height: auto; display: block; }

/* Section label (shared) */
.v2-sec-label {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    font-family: "Jost", sans-serif;
    font-weight: 400;
    font-size: 1.1rem;
    letter-spacing: 0.32em;
    color: var(--accent);
    text-transform: uppercase;
}
.v2-sec-label .num { font-style: italic; font-family: "Cormorant Garamond", serif; font-size: 1.6rem; letter-spacing: 0.1em; }
.v2-sec-label .line { width: 48px; height: 1px; background: var(--accent); display: inline-block; }

/* Buttons (shared) */
.v2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    padding: 20px 40px;
    font-family: "Jost", sans-serif;
    font-size: 1.3rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    transition: all 0.3s ease;
    border-radius: 999px;
    border: 1px solid transparent;
}
.v2-btn-fill { background: var(--ink); color: #fff; }
.v2-btn-fill:hover { background: var(--accent-deep); }
.v2-btn-line { color: var(--ink); border-color: var(--ink); }
.v2-btn-line:hover { background: var(--ink); color: #fff; }

/* =========================================================
   01 PAGE HEADER
========================================================= */
.pp-page-head {
    padding: 180px 24px 80px;
    background: var(--bg);
    border-bottom: 1px solid var(--line);
}
.pp-page-head-inner {
    max-width: 920px;
    margin: 0 auto;
    text-align: left;
}
.pp-breadcrumbs {
    font-family: "Jost", sans-serif;
    font-size: 1.1rem;
    letter-spacing: 0.18em;
    color: var(--mute);
    margin-bottom: 40px;
}
.pp-breadcrumbs a { color: var(--sub); transition: color 0.2s; }
.pp-breadcrumbs a:hover { color: var(--accent); }
.pp-breadcrumbs span { margin: 0 10px; }

.pp-page-head .v2-sec-label {
    margin: 24px 0 28px;
}
.pp-page-ttl {
    font-family: a-otf-ryumin-pr6n, serif;
    font-weight: 400;
    font-size: 4.4rem;
    letter-spacing: 0.18em;
    line-height: 1.5;
    color: var(--ink);
    margin-bottom: 32px;
}
.pp-page-lead {
    font-size: 1.45rem;
    line-height: 2.1;
    color: var(--sub);
    letter-spacing: 0.06em;
}

/* =========================================================
   02 POLICY BODY
========================================================= */
.pp-body {
    padding: 100px 24px 120px;
}
.pp-body-inner {
    max-width: 820px;
    margin: 0 auto;
}
.pp-article {
    padding: 36px 0 40px;
    border-bottom: 1px solid var(--line);
}
.pp-article:first-child { border-top: 1px solid var(--line); }

.pp-art-ttl {
    display: flex;
    align-items: baseline;
    gap: 20px;
    /*font-family: a-otf-ryumin-pr6n, serif;*/
    font-weight: 400;
    font-size: 2.0rem;
    letter-spacing: 0.14em;
    line-height: 1.6;
    color: var(--ink);
    margin-bottom: 20px;
}
.pp-art-no {
    /*font-family: "Cormorant Garamond", serif;
    font-style: italic;*/
    font-weight: 400;
    font-size: 1.6rem;
    letter-spacing: 0.08em;
    color: var(--accent);
    flex-shrink: 0;
}
.pp-art-text {
    font-size: 1.45rem;
    line-height: 2.0;
    color: var(--sub);
    letter-spacing: 0.04em;
}
.pp-art-list {
    margin-top: 16px;
    counter-reset: pp-list;
}
.pp-art-list li {
    position: relative;
    padding: 8px 0 8px 36px;
    font-size: 1.4rem;
    line-height: 1.95;
    color: var(--sub);
    letter-spacing: 0.04em;
    counter-increment: pp-list;
}
.pp-art-list li::before {
    content: counter(pp-list, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 11px;
    /*font-family: "Cormorant Garamond", serif;*/
    font-style: italic;
    font-size: 1.3rem;
    color: var(--accent-soft);
    letter-spacing: 0.04em;
}

/* contact block (第10条) */
.pp-contact {
    margin-top: 24px;
    border-top: 1px solid var(--line);
}
.pp-contact-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 24px;
    padding: 18px 4px;
    border-bottom: 1px solid var(--line);
}
.pp-contact-row dt {
    font-family: "Jost", sans-serif;
    font-size: 1.15rem;
    letter-spacing: 0.22em;
    color: var(--accent);
    text-transform: uppercase;
    padding-top: 4px;
}
.pp-contact-row dd {
    font-size: 1.45rem;
    line-height: 1.85;
    color: var(--ink);
    letter-spacing: 0.04em;
}
.pp-contact-row dd a { border-bottom: 1px solid var(--line); transition: border-color 0.2s, color 0.2s; }
.pp-contact-row dd a:hover { color: var(--accent); border-color: var(--accent); }

.pp-date {
    margin-top: 48px;
    text-align: right;
    /*font-family: "Cormorant Garamond", serif;*/
    font-style: italic;
    font-size: 1.4rem;
    color: var(--mute);
    letter-spacing: 0.08em;
}

/* =========================================================
   CTA
========================================================= */
.pp-cta {
    background: var(--bg-alt);
    padding: 110px 24px 120px;
    border-top: 1px solid var(--line);
}
.pp-cta-inner {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
}
.pp-cta .v2-sec-label { margin-bottom: 28px; }
.pp-cta-ttl {
    font-family: a-otf-ryumin-pr6n, serif;
    font-weight: 400;
    font-size: 3.2rem;
    letter-spacing: 0.18em;
    margin-bottom: 24px;
    color: var(--ink);
}
.pp-cta-text {
    font-size: 1.45rem;
    line-height: 2.0;
    color: var(--sub);
    margin-bottom: 44px;
    letter-spacing: 0.06em;
}
.pp-cta-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

/* =========================================================
   FOOTER (shared v2)
========================================================= */
.v2-footer {
    background: #16140f;
    color: #c5c0b7;
    padding: 100px 0 32px;
    font-size: 1.2rem;
}
.v2-footer a { color: #c5c0b7; transition: color 0.2s; }
.v2-footer a:hover { color: #fff; }
.v2-footer-inner { max-width: 1440px; margin: 0 auto; padding: 0 48px; }
.v2-footer-top {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 80px;
    padding-bottom: 64px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.v2-footer-logo {
    font-family: "Cormorant Garamond", serif;
    font-weight: 500;
    font-size: 2.8rem;
    letter-spacing: 0.18em;
    color: #fff;
    margin-bottom: 8px;
    line-height: 1;
}
.v2-footer-sub {
    font-family: "Jost", sans-serif;
    font-size: 1.0rem;
    letter-spacing: 0.28em;
    color: #8b8579;
    margin-bottom: 28px;
}
.v2-footer-desc {
    font-family: a-otf-ryumin-pr6n, serif;
    font-size: 1.3rem;
    line-height: 2;
    color: #9e9a92;
}
.v2-footer-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
}
.v2-footer-nav dt {
    font-family: "Cormorant Garamond", serif;
    font-style: italic;
    font-size: 1.5rem;
    letter-spacing: 0.16em;
    color: #fff;
    margin-bottom: 20px;
}
.v2-footer-nav dd { line-height: 2.2; letter-spacing: 0.08em; }
.v2-footer-bottom { padding-top: 32px; text-align: center; }
.v2-footer-bottom small {
    font-family: "Jost", sans-serif;
    font-size: 1.05rem;
    letter-spacing: 0.25em;
    color: #6b675f;
}

/* =========================================================
   Reveal animation
========================================================= */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.9s ease, transform 0.9s ease;
}
.reveal.is-in {
    opacity: 1;
    transform: translateY(0);
}

/* =========================================================
   Responsive
========================================================= */
@media (max-width: 960px) {
    .pp-page-head { padding: 140px 24px 64px; }
    .pp-page-ttl { font-size: 3.2rem; }
    .pp-page-lead br { display: none; }
    .pp-body { padding: 70px 24px 90px; }
    .pp-art-ttl { font-size: 1.75rem; gap: 14px; flex-wrap: wrap; }
    .pp-cta-ttl { font-size: 2.4rem; }
    .pp-cta-text br { display: none; }
    .v2-footer { padding: 70px 0 24px; }
    .v2-footer-inner { padding: 0 24px; }
    .v2-footer-top { grid-template-columns: 1fr; gap: 48px; padding-bottom: 48px; }
    .v2-footer-nav { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }
}

@media (max-width: 560px) {
    .pp-page-head { padding: 120px 20px 56px; }
    .pp-page-ttl { font-size: 2.6rem; letter-spacing: 0.12em; }
    .pp-page-lead { font-size: 1.35rem; }
    .pp-body { padding: 56px 20px 70px; }
    .pp-article { padding: 28px 0 32px; }
    .pp-art-ttl { font-size: 1.6rem; }
    .pp-art-text, .pp-art-list li { font-size: 1.35rem; }
    .pp-contact-row { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; }
    .pp-contact-row dt { padding-top: 0; }
    .pp-cta { padding: 80px 20px 90px; }
    .pp-cta-actions { flex-direction: column; width: 100%; }
    .v2-btn { width: 100%; min-width: 0; padding: 18px 24px; }
}
