/* Legal pages (Privacy Policy, Return and Refund Policy). Prefix pv- = policy view. */
.pv-container { max-width: 1080px; margin: 0 auto; padding: 0 24px; }

.pv-hero { background: linear-gradient(135deg, #0a7c6e 0%, #075e54 100%); color: #fff; padding: 56px 0 48px; }
.pv-eyebrow { display: inline-block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #b8e6df; margin-bottom: 10px; }
.pv-title { font-family: 'DM Serif Display', serif; font-weight: 400; font-size: clamp(2rem, 4vw, 2.75rem); margin: 0 0 10px; line-height: 1.15; color: #fff; }
.pv-updated { margin: 0; color: #d6efeb; font-size: 0.95rem; }

.pv-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; padding-top: 40px; padding-bottom: 56px; align-items: start; }

.pv-toc { position: sticky; top: 84px; background: #fff; border: 1px solid #dceeee; border-radius: 14px; padding: 18px 16px; display: flex; flex-direction: column; gap: 2px; }
.pv-toc-title { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #6b8a8a; margin: 0 6px 8px; }
.pv-toc-link { color: #2d4a4a; text-decoration: none; font-size: 0.88rem; line-height: 1.35; padding: 7px 8px; border-radius: 8px; }
.pv-toc-link:hover { background: #eef7f6; color: #0a7c6e; }

.pv-doc { background: #fff; border: 1px solid #dceeee; border-radius: 16px; padding: 36px 40px; color: #2d3b3b; font-size: 1rem; line-height: 1.7; }
.pv-doc p { margin: 0 0 14px; }
.pv-lead { font-size: 1.06rem; color: #1a2e2e; }
.pv-section { scroll-margin-top: 84px; border-top: 1px solid #e6f0f0; margin-top: 28px; padding-top: 26px; }
.pv-section h2 { font-family: 'DM Serif Display', serif; font-weight: 400; font-size: 1.5rem; color: #12302c; margin: 0 0 14px; }
.pv-section h3 { font-size: 1rem; font-weight: 600; color: #0a7c6e; margin: 18px 0 8px; }
.pv-list { margin: 0 0 14px; padding-left: 22px; }
.pv-list li { margin-bottom: 8px; }
.pv-list li::marker { color: #0a7c6e; }
.pv-doc strong { color: #12302c; font-weight: 600; }
.pv-callout { background: #eef7f6; border-left: 3px solid #0a7c6e; border-radius: 0 10px 10px 0; padding: 12px 16px; color: #12302c; }

.pv-contact { background: #f6fbfb; border: 1px solid #dceeee; border-radius: 12px; padding: 16px 20px; margin: 4px 0 16px; }
.pv-contact-name { font-weight: 700; color: #12302c; margin-bottom: 8px; }
.pv-contact-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 4px 0; }
.pv-contact-row span:first-child { color: #6b8a8a; }
.pv-contact a { color: #0a7c6e; text-decoration: none; font-weight: 500; overflow-wrap: anywhere; }
.pv-contact a:hover { text-decoration: underline; }
.pv-note { color: #6b8a8a; font-size: 0.9rem; }

.pv-footer { border-top: 1px solid #dceeee; background: #fff; color: #6b8a8a; font-size: 0.88rem; }
.pv-footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 20px; padding-bottom: 20px; flex-wrap: wrap; }
.pv-footer-links { display: flex; gap: 18px; }
.pv-footer-links a { color: #2d4a4a; text-decoration: none; }
.pv-footer-links a:hover { color: #0a7c6e; }

@media (max-width: 860px) {
    .pv-layout { grid-template-columns: 1fr; gap: 20px; padding-top: 24px; }
    .pv-toc { position: static; }
    .pv-doc { padding: 24px 20px; }
    .pv-contact-row { grid-template-columns: 1fr; gap: 0; padding: 6px 0; }
}

/* Links inside policy text (e.g. Terms linking to the Privacy and Refund policies). */
.pv-doc p:not(.pv-note) a, .pv-doc li a { color: #0a7c6e; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.pv-doc p a:hover, .pv-doc li a:hover { color: #075e54; }
.pv-footer-legal { display: flex; flex-direction: column; gap: 4px; }
.pv-footer-payments { padding-top: 22px; }
.pv-footer-payments .pb-banner { border: 1px solid #dceeee; }
