/* Privacy Policy page: 3D extruded shield hero, sticky table of contents, numbered chapters with animated check / cross lists. */
.pv-hero-in { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; padding-block: 64px 80px; min-height: 620px; }
.pv-copy h1 { margin: 22px 0 0; font-size: clamp(42px, 5.4vw, 78px); line-height: 1.02; font-weight: 800; letter-spacing: -.04em; }
.pv-sub { margin: 16px 0 0; font-size: 22px; font-weight: 700; color: #a65700; }
.pv-intro { margin: 14px 0 0; max-width: 520px; font-size: 17.5px; line-height: 1.65; color: var(--mute); }
.pv-facts { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 10px; }
.pv-facts li { display: flex; align-items: center; gap: 12px; font-size: 15.5px; font-weight: 600; color: #1c2c3a; }
.pv-facts svg { flex: none; padding: 4px; width: 26px; height: 26px; border-radius: 50%; background: #dcfce7; color: #15803d; }

/* 3D shield */
.sh3d { position: relative; width: min(100%, 420px); aspect-ratio: 1; margin-inline: auto; perspective: 1100px; }
.sh { position: absolute; left: 50%; top: 46%; width: 64%; aspect-ratio: 200 / 230; margin: -37% 0 0 -32%; transform-style: preserve-3d; animation: shturn 9s ease-in-out infinite; }
@keyframes shturn { 0% { transform: rotateY(-28deg) rotateX(6deg); } 50% { transform: rotateY(28deg) rotateX(-4deg); } 100% { transform: rotateY(-28deg) rotateX(6deg); } }
.sh-stack { position: absolute; inset: 0; transform-style: preserve-3d; }
.sl { position: absolute; inset: 0; width: 100%; height: 100%; transform: translateZ(calc(var(--z) * 3px)); }
.sl path { fill: #b9540a; }
.sf { position: absolute; inset: 0; width: 100%; height: 100%; transform: translateZ(4px); filter: drop-shadow(0 18px 22px rgba(120,50,0,.35)); }
.sf-ic { position: absolute; left: 50%; top: 22%; width: 24%; aspect-ratio: 1; margin-left: -12%; display: grid; place-items: center; border-radius: 50%; background: #fff; transform: translateZ(8px); box-shadow: 0 10px 18px -8px rgba(90,40,0,.6); }
.sf-ic img { width: 66%; height: 66%; object-fit: contain; }
.sf-lock { position: absolute; left: 50%; top: 46%; width: 34%; margin-left: -17%; transform: translateZ(10px); overflow: visible; }
.sh3d.in .lk { animation: lklift 4.5s ease-in-out infinite; transform-box: fill-box; transform-origin: 20% 100%; }
@keyframes lklift { 0%,45% { transform: translateY(0) rotate(0); } 55%,75% { transform: translateY(-5px) rotate(-14deg); } 85%,100% { transform: translateY(0) rotate(0); } }
.sh-ring { position: absolute; left: 50%; top: 46%; border-radius: 50%; transform: translate(-50%, -50%) rotateX(72deg); border: 1.5px dashed rgba(247,134,30,.55); }
.sh-ring.r1 { width: 92%; height: 92%; } .sh-ring.r2 { width: 74%; height: 74%; border-style: solid; border-color: rgba(16,33,47,.14); }
.sh3d.in .sh-ring.r1 { animation: shring 24s linear infinite; }
@keyframes shring { to { transform: translate(-50%, -50%) rotateX(72deg) rotateZ(360deg); } }
.sh-dot { position: absolute; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 4px solid var(--orange); box-shadow: 0 8px 16px -4px rgba(247,134,30,.7); }
.sh-dot.d1 { left: 12%; top: 30%; } .sh-dot.d2 { right: 10%; top: 58%; } .sh-dot.d3 { left: 22%; bottom: 14%; }
.sh3d.in .sh-dot { animation: shdot 5s ease-in-out infinite; } .sh3d.in .d2 { animation-delay: -1.7s; } .sh3d.in .d3 { animation-delay: -3.3s; }
@keyframes shdot { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-12px) scale(1.15); } }
.sh-sh { position: absolute; left: 22%; right: 22%; bottom: 8%; height: 7%; border-radius: 50%; background: radial-gradient(ellipse, rgba(16,33,47,.3), transparent 70%); filter: blur(8px); }

/* body */
.pv-main { padding: 80px 0 96px; background: #fff; }
.pv-grid { display: grid; grid-template-columns: 280px 1fr; gap: 72px; align-items: start; }
.pv-toc { position: sticky; top: 120px; }
.pv-toc p { margin: 0 0 14px; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #c25e00; }
.pv-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.pv-toc a { display: flex; align-items: baseline; gap: 12px; padding: 9px 12px; border-radius: 12px; font-size: 14.5px; font-weight: 600; color: #4d5d6c; transition: background-color .25s, color .25s, transform .25s; }
.pv-toc a b { font-size: 11.5px; font-weight: 800; color: #b4bcc6; transition: color .25s; }
.pv-toc a:hover { background: #fff8f0; color: #c25e00; }
.pv-toc a.on { background: #fff3e3; color: #a65700; transform: translateX(4px); }
.pv-toc a.on b { color: var(--orange); }
.pv-body { max-width: 780px; }
.pv-s { padding-block: 44px; scroll-margin-top: 110px; }
.pv-s:first-child { padding-top: 0; }
.pv-s + .pv-s { border-top: 1px solid var(--line); }
.pv-h { display: flex; align-items: center; gap: 18px; }
.pv-ic { flex: none; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: radial-gradient(circle at 30% 25%, #fff6ea, #ffe3c4); color: #e56f06; box-shadow: 0 18px 28px -16px rgba(238,111,11,.7); }
.pv-ic svg { width: 26px; height: 26px; }
.pv-h small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .16em; color: #c25e00; }
.pv-h h2 { margin: 2px 0 0; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; font-weight: 800; letter-spacing: -.025em; }
.pv-b { margin-top: 22px; }
.pv-b p { margin: 0; font-size: 17px; line-height: 1.8; color: #3a4a5a; }
.pv-b .pv-lead { margin-bottom: 18px; font-weight: 600; color: #1c2c3a; }
.pv-mail { font-weight: 700; color: #c25e00; text-decoration: underline; text-underline-offset: 3px; }
.pv-ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pv-ul li { position: relative; padding: 14px 16px 14px 56px; border-radius: 16px; font-size: 16px; line-height: 1.55; color: #2a3a49; background: #f7f9fb; }
.pv-ul li::before { content: ""; position: absolute; left: 14px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background-position: center; background-repeat: no-repeat; background-size: 15px; }
.pv-ul.ok li::before { background-color: #16a34a; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.pv-ul.no li { background: #fff6f6; }
.pv-ul.no li::before { background-color: #e5484d; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E"); }
.js .pv-b:not(.in) .pv-ul li { opacity: 0; transform: translateX(-16px); }
.pv-b.in .pv-ul li { animation: pvli .6s cubic-bezier(.16,1,.3,1) both; animation-delay: calc(var(--i) * .09s + .1s); }
@keyframes pvli { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: none; } }

@media (max-width: 1000px) { .pv-grid { grid-template-columns: 230px 1fr; gap: 40px; } }
@media (max-width: 900px) {
  .pv-hero-in { grid-template-columns: 1fr; padding-block: 36px 48px; min-height: 0; gap: 20px; }
  .sh3d { width: min(100%, 300px); }
  .pv-main { padding: 48px 0 64px; }
  .pv-grid { grid-template-columns: 1fr; gap: 28px; }
  .pv-toc { position: static; }
  .pv-toc ol { grid-template-columns: 1fr 1fr; }
  .pv-s { padding-block: 34px; }
}
@media (max-width: 560px) { .pv-toc ol { grid-template-columns: 1fr; } .pv-ul li { padding: 12px 12px 12px 50px; font-size: 15px; } .pv-b p { font-size: 16px; } }
@media (prefers-reduced-motion: reduce) { .sh, .sh-ring, .sh-dot, .lk { animation: none !important; } .sh { transform: rotateY(-18deg) rotateX(4deg); } .js .pv-b:not(.in) .pv-ul li { opacity: 1; transform: none; } .pv-b.in .pv-ul li { animation: none; } }
