:root {
    --cnlcf-ink: #21182a;
    --cnlcf-muted: #696171;
    --cnlcf-purple: #6a1b9a;
    --cnlcf-pink: #e91e63;
    --cnlcf-border: #f0e4f3;
}

html { scroll-behavior: smooth; }
.cnlcf-legal-shell { margin: 0; background: #fffafd; color: var(--cnlcf-ink); font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.cnlcf-legal-shell .cnr-site-header { position: relative; z-index: 5; }
.cnlcf-legal-main { min-height: 70vh; padding: clamp(24px, 4vw, 54px) 16px clamp(54px, 7vw, 90px); background: radial-gradient(circle at 8% 8%, rgba(233,30,99,.08), transparent 24%), radial-gradient(circle at 92% 4%, rgba(106,27,154,.09), transparent 25%), linear-gradient(180deg,#fff 0,#fff7fc 48%,#fff 100%); }
.cnlcf-legal-hero { display: flex; justify-content: center; align-items: center; gap: 12px; height: 28px; color: #f2b705; font-size: 13px; }
.cnlcf-legal-hero span:nth-child(2) { color: var(--cnlcf-pink); font-size: 7px; }
.cnlcf-legal-layout { width: min(100%, 940px); margin: 0 auto; }
.cnlcf-legal-nav { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin: 10px auto 22px; }
.cnlcf-legal-nav a { border: 1px solid #e9d7ef; border-radius: 999px; background: rgba(255,255,255,.86); color: #5d286f; font-size: 14px; font-weight: 750; line-height: 1; padding: 10px 15px; text-decoration: none; transition: .18s ease; }
.cnlcf-legal-nav a:hover { border-color: #d7aedf; transform: translateY(-1px); }
.cnlcf-legal-nav a[aria-current="page"] { border-color: transparent; background: linear-gradient(135deg,var(--cnlcf-purple),var(--cnlcf-pink)); color: #fff; box-shadow: 0 8px 22px rgba(105,27,154,.2); }
.cnlcf-legal-card { overflow: hidden; border: 1px solid var(--cnlcf-border); border-radius: 28px; background: rgba(255,255,255,.96); box-shadow: 0 24px 70px rgba(74,31,117,.11); padding: clamp(25px, 5vw, 62px); }
.cnlcf-eyebrow { margin: 0 0 8px; color: var(--cnlcf-pink); font-size: 12px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cnlcf-legal-card > h1 { max-width: 15ch; margin: 0 0 clamp(26px,4vw,42px); color: #24152d; font-size: clamp(2.15rem,5vw,3.8rem); line-height: 1.02; letter-spacing: -.04em; }
.cnlcf-legal-content .cnlcf-legal-page { max-width: none; margin: 0; padding: 0; }
.cnlcf-legal-page h2 { margin: 34px 0 10px; color: var(--cnlcf-purple); font-size: clamp(1.25rem,2vw,1.55rem); line-height: 1.2; letter-spacing: -.015em; }
.cnlcf-legal-page h2:first-child { margin-top: 0; }
.cnlcf-legal-page p, .cnlcf-legal-page li { color: #403847; font-size: 16px; line-height: 1.75; }
.cnlcf-legal-page p { margin: 0 0 15px; }
.cnlcf-legal-page ul { margin: 12px 0 20px; padding: 0; list-style: none; }
.cnlcf-legal-page li { position: relative; margin: 9px 0; padding-left: 25px; }
.cnlcf-legal-page li::before { content: ""; position: absolute; left: 2px; top: .72em; width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg,var(--cnlcf-pink),#f2b705); box-shadow: 0 0 0 4px #fff0f5; }
.cnlcf-legal-page a { color: var(--cnlcf-purple); font-weight: 700; text-underline-offset: 3px; }
.cnlcf-version { margin-top: 42px !important; border-top: 1px solid var(--cnlcf-border); padding-top: 18px; color: var(--cnlcf-muted) !important; font-size: 12px !important; }
.cnlcf-legal-index ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; padding: 0; }
.cnlcf-legal-index li { margin: 0; border: 1px solid var(--cnlcf-border); border-radius: 16px; background: #fffafd; padding: 18px; }
.cnlcf-legal-index li::before { display: none; }
.cnlcf-legal-index p { margin: 6px 0 0; font-size: 14px; }
.cnlcf-newsletter-block { margin-top: 24px; }
.cnlcf-newsletter-notice { border: 1px solid #d8eedf; border-radius: 14px; background: #f2fff6; padding: 12px 14px; color: #22542e !important; font-weight: 700; }
.cnlcf-newsletter-form { display: grid; gap: 14px; margin-top: 18px; }
.cnlcf-newsletter-form label { display: grid; gap: 7px; color: #403847; font-weight: 750; }
.cnlcf-newsletter-form input[type="email"],
.cnlcf-newsletter-form input[type="text"] { width: 100%; min-height: 48px; box-sizing: border-box; border: 1px solid #e5d7eb; border-radius: 14px; background: #fff; color: var(--cnlcf-ink); font: inherit; padding: 10px 13px; }
.cnlcf-newsletter-form input:focus { outline: 3px solid rgba(233,30,99,.18); border-color: var(--cnlcf-pink); }
.cnlcf-newsletter-consent { align-items: start; display: grid !important; grid-template-columns: 22px 1fr; gap: 10px !important; font-weight: 650 !important; }
.cnlcf-newsletter-consent input { margin-top: 5px; }
.cnlcf-newsletter-form button { justify-self: start; min-height: 48px; border: 0; border-radius: 999px; background: linear-gradient(135deg,var(--cnlcf-purple),var(--cnlcf-pink)); color: #fff; cursor: pointer; font: inherit; font-weight: 850; padding: 12px 20px; }
.cnlcf-newsletter-form button:hover { filter: brightness(1.04); }
.cnlcf-newsletter-privacy { color: var(--cnlcf-muted) !important; font-size: 13px !important; line-height: 1.55 !important; }
.cnlcf-newsletter-trap { left: -9999px; position: absolute; top: auto; width: 1px; height: 1px; overflow: hidden; }
.cnlcf-footer-legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; border-top: 1px solid var(--cnlcf-border); background: #fff; padding: 20px 14px 26px; font-size: 13px; }
.cnlcf-footer-legal a { color: #5d286f; font-weight: 700; text-decoration: none; }

@media (max-width: 640px) {
    .cnlcf-legal-main { padding-inline: 12px; }
    .cnlcf-legal-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); justify-content: stretch; overflow: visible; padding: 0; }
    .cnlcf-legal-nav a { align-items: center; display: flex; justify-content: center; min-height: 44px; padding: 10px 8px; text-align: center; }
    .cnlcf-legal-card { border-radius: 22px; padding: 25px 20px 34px; }
    .cnlcf-legal-card > h1 { font-size: 2.35rem; }
    .cnlcf-legal-page p, .cnlcf-legal-page li { font-size: 15px; line-height: 1.68; }
    .cnlcf-legal-index ul { grid-template-columns: 1fr; }
    .cnlcf-footer-legal { align-items: stretch; display: grid; gap: 8px; grid-template-columns: repeat(2,minmax(0,1fr)); padding-inline: 12px; }
    .cnlcf-footer-legal span { display: none; }
    .cnlcf-footer-legal a { align-items: center; border: 1px solid var(--cnlcf-border); border-radius: 12px; display: flex; justify-content: center; min-height: 44px; padding: 8px; text-align: center; }
}
