/* ==========================================================
   プライバシーポリシー：澄んだ空と、読みやすい白いカード
   ========================================================== */

/* ---------- 澄んだ空（キービジュアル） ---------- */
.pv-kv { background: linear-gradient(180deg, #b9dcf3 0%, #dcedf9 50%, #f3f7fb 100%); }
.pv-kv .uv-kv__bg { inset: 0; }
.pv-svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.pv-l { translate: 0 60px; opacity: 0; transition: translate 1.5s cubic-bezier(.2, 1.15, .35, 1), opacity 1.1s var(--ease); }
.is-loaded .pv-l { translate: 0 0; opacity: 1; }
/* 雲は奥ほどゆっくり、手前ほど速く流れる */
.pv-c1 { transition-delay: 0s; transform: translate(calc(var(--kv) * -120px), calc(var(--kv) * 160px)); animation: pv-drift 40s ease-in-out infinite alternate; }
.pv-c2 { transition-delay: .15s; transform: translate(calc(var(--kv) * 180px), calc(var(--kv) * 90px)); animation: pv-drift 30s ease-in-out infinite alternate-reverse; }
.pv-hill { transition-delay: .3s; transform: translateY(calc(var(--kv) * 40px)); }
.pv-c3 { transition-delay: .45s; transform: translate(calc(var(--kv) * -260px), calc(var(--kv) * -30px)); animation: pv-drift 24s ease-in-out infinite alternate; }
@keyframes pv-drift { from { translate: -30px 0; } to { translate: 30px 0; } }
.pv-kv h1 { letter-spacing: .12em; font-size: clamp(26px, 4.6vw, 60px); }

/* ---------- 本文 ---------- */
.pv-zone { color: var(--ink); }
.pv-zone--a { background: #f3f7fb; padding: 60px 0 120px; }
.pv-zone--b { background: #edf6f1; padding: 60px 0 clamp(90px, 10vw, 130px); }
.pv-zone .uv-eyebrow { color: #4b7fb8; }
.pv-zone--b .uv-eyebrow { color: #3f9b7f; }
.pv-zone .uv-eyebrow small { color: var(--ink-soft); }
.pv-layout { display: grid; grid-template-columns: 260px 1fr; gap: clamp(28px, 5vw, 64px); align-items: start; padding-top: clamp(50px, 7vw, 90px); }
.pv-body { max-width: 820px; }
.pv-body .uv-title { margin-bottom: 14px; }
.pv-lead { font-size: 15px; line-height: 2.1; color: var(--ink-soft); margin: 0 0 28px; }

/* 目次：読んでいる項目が光る */
.pv-toc { position: sticky; top: calc(var(--header-h) + 30px); background: #fff; border-radius: 20px; padding: 20px 18px; box-shadow: 0 10px 30px rgba(40, 80, 120, .08); }
.pv-toc p { margin: 0 0 10px; font-family: var(--font-mont); font-weight: 800; font-size: 12px; letter-spacing: .15em; color: var(--ink-soft); }
.pv-toc ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; }
.pv-toc a { display: flex; gap: 10px; align-items: baseline; padding: 7px 10px; border-radius: 10px; font-size: 13px; line-height: 1.5; color: var(--ink-soft); transition: background .3s, color .3s; }
.pv-toc a span { flex: 0 0 auto; font-family: var(--font-mont); font-weight: 800; color: #9fb3c5; }
.pv-toc a:hover { background: #f1f6fb; color: var(--ink); }
.pv-toc a.is-current { background: #e6f0fa; color: #1d4f80; font-weight: 700; }
.pv-toc a.is-current span { color: #4b7fb8; }
.pv-zone--b .pv-toc a.is-current { background: #e2f3ea; color: #1f6b52; }
.pv-zone--b .pv-toc a.is-current span { color: #3f9b7f; }

/* 各項目のカード */
.pv-cards { display: grid; gap: 14px; }
.pv-card { display: grid; grid-template-columns: 48px 1fr; gap: 18px; background: #fff; border-radius: 20px; padding: 24px 26px; box-shadow: 0 8px 24px rgba(40, 80, 120, .07); scroll-margin-top: calc(var(--header-h) + 24px); }
.pv-num { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #4b7fb8; color: #fff; font-family: var(--font-mont); font-weight: 800; font-size: 18px; }
.pv-zone--b .pv-num { background: #3f9b7f; font-family: var(--font-sans); font-size: 20px; }
.pv-card h3 { font-family: var(--font-round); font-size: 18px; margin: 8px 0 10px; }
.pv-card p, .pv-card li { font-size: 15px; line-height: 2; color: #3d3d40; }
.pv-card p { margin: 0 0 .6em; }
.pv-card p:last-child { margin-bottom: 0; }
.pv-card ul { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 6px; }
.pv-card li { position: relative; padding-left: 1.4em; }
.pv-card li::before { content: ""; position: absolute; left: .3em; top: .85em; width: 7px; height: 7px; border-radius: 50%; background: #9fc3e4; }
.pv-zone--b .pv-card li::before { background: #9fd6be; }
.pv-contact { display: grid; gap: 6px; margin: 0 0 12px; }
.pv-contact div { display: grid; grid-template-columns: 70px 1fr; gap: 10px; font-size: 15px; line-height: 1.8; }
.pv-contact dt { font-weight: 700; color: var(--ink-soft); }
.pv-contact dd { margin: 0; }
.pv-contact a, .pv-link { color: #1d4f80; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.pv-note { margin: 22px 0 0; padding: 18px 22px; border-radius: 16px; background: #e6f0fa; color: #1d4f80; font-size: 14px; line-height: 1.9; }
.pv-back { margin: 36px 0 0; }
.pv-back .uv-pill { background: #3f9b7f; color: #fff; }
.pv-back .uv-pill .ico { background: #fff; color: #3f9b7f; }

@media (max-width: 900px) {
  .pv-layout { grid-template-columns: 1fr; }
  .pv-toc { display: none; }
}
@media (max-width: 480px) {
  .pv-card { grid-template-columns: 1fr; gap: 6px; padding: 20px; }
  .pv-num { width: 38px; height: 38px; font-size: 16px; }
  .pv-contact div { grid-template-columns: 1fr; gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .pv-l { translate: none; opacity: 1; transform: none !important; animation: none !important; }
}
