.policy-page { background-color: #f6f2fc; }
.policy-shell { max-width: 1050px; margin: 0 auto 70px; padding: 0 24px; }
.policy-hero { padding: 62px 66px; overflow: hidden; position: relative; border-radius: 38px; color: white; background-image: radial-gradient(circle at 12% 18%, rgba(255,255,255,.8) 0 1px, transparent 2px), radial-gradient(circle at 78% 22%, rgba(255,255,255,.6) 0 1px, transparent 2px), radial-gradient(circle at 88% 74%, rgba(255,255,255,.7) 0 1px, transparent 2px), radial-gradient(circle at 22% 30%, rgba(240,82,183,.4), transparent 28%), linear-gradient(135deg, #160b35, #431778 55%, #173768); box-shadow: 0 28px 70px rgba(35,13,73,.2); }
.policy-hero::after { content: "✦"; position: absolute; right: 8%; top: 4%; color: var(--yellow); font-size: 150px; opacity: .14; transform: rotate(12deg); }
.policy-hero .eyebrow { color: #7ee2ff; }
.policy-hero h1 { margin-bottom: 20px; font-size: clamp(48px, 7vw, 76px); }
.policy-hero h1 span { background: linear-gradient(90deg, #ff82cf, var(--yellow)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.policy-hero > p:not(.eyebrow) { max-width: 700px; color: #e9def6; font-size: 17px; }
.policy-actions { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 12px; }
.policy-actions .button-secondary { border-color: rgba(255,255,255,.35); color: white; background: rgba(255,255,255,.1); }
.legal-note { margin: 20px 0 36px; padding: 18px 22px; display: flex; gap: 12px; border: 1px solid #e6cc85; border-radius: 16px; background: #fff8dc; color: #5b4710; font-size: 13px; }
.legal-note strong { flex: 0 0 auto; }
.event-snapshot { margin-bottom: 24px; padding: 32px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 34px; border-radius: 26px; background: white; border: 1px solid var(--border); box-shadow: 0 12px 38px rgba(57,36,88,.08); }
.event-snapshot h2 { margin-bottom: 8px; font-size: 36px; }
.event-snapshot p { margin: 0; color: var(--muted); }
.event-snapshot dl { margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.event-snapshot dl div { padding: 12px; border-radius: 12px; background: #f8f5fc; }
.event-snapshot dt { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.event-snapshot dd { margin: 3px 0 0; font-size: 13px; font-weight: 800; }
.policy-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.form-card { padding: 32px; border: 1px solid var(--border); border-radius: 26px; background: white; box-shadow: 0 10px 32px rgba(57,36,88,.07); break-inside: avoid; }
.form-card.full-width { grid-column: 1 / -1; }
.form-heading { margin-bottom: 24px; display: flex; align-items: center; gap: 14px; }
.form-heading > span { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 14px; color: white; background: linear-gradient(135deg, var(--pink), var(--purple)); font: 700 15px/1 "Fredoka"; box-shadow: 4px 4px 0 var(--yellow); }
.form-heading p { margin: 0 0 4px; color: var(--purple); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.form-heading h2 { margin: 0; font-size: 27px; }
.form-card > p { color: var(--muted); font-size: 13px; }
.form-card h3 { margin: 24px 0 4px; font-size: 17px; }
.field-grid, .signature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.field-grid { margin: 22px 0; }
.field-grid label, .signature-grid label { color: #5f5670; font-size: 11px; font-weight: 700; }
.field-grid input, .field-grid textarea { width: 100%; margin-top: 6px; padding: 10px 11px; border: 1px solid #cfc4dc; border-radius: 9px; color: var(--ink); background: #fff; }
.field-grid textarea { resize: vertical; }
.span-two { grid-column: 1 / -1; }
.check-list { display: grid; gap: 10px; }
.check-list label, .media-choice label { padding: 11px 12px; display: flex; align-items: flex-start; gap: 9px; border-radius: 11px; background: #f8f5fc; color: #4e465d; font-size: 12px; }
.check-list input, .media-choice input { margin-top: 3px; accent-color: var(--purple); }
.compact-checks label { padding-block: 8px; }
.signature-grid { margin-top: 24px; }
.signature-line { height: 34px; margin-top: 8px; display: block; border-bottom: 1px solid #81768e; }
.helper { color: var(--muted); font-size: 11px !important; }
.law-reference { margin-top: 18px; padding: 12px; border-left: 3px solid var(--blue); background: #f2fbff; color: #425567 !important; font-size: 11px !important; }
.law-reference a, .reporting-box a { color: var(--purple-dark); font-weight: 800; }
.media-choice { display: grid; gap: 12px; margin: 20px 0; }
.media-choice label { padding: 16px; border: 1px solid var(--border); background: white; }
.policy-list { margin: 0; padding-left: 20px; color: #4f465e; font-size: 12px; }
.policy-list li { margin-bottom: 11px; }
.policy-columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.policy-columns h3 { margin-top: 0; }
.reporting-box { margin-top: 18px; padding: 18px; border-radius: 15px; background: #f4effc; }
.reporting-box strong { font-family: "Fredoka", sans-serif; }
.reporting-box p { margin: 6px 0 0; color: #554d64; font-size: 12px; }
.privacy-banner { margin-top: 24px; padding: 22px 26px; border-radius: 18px; color: white; background: linear-gradient(135deg, #28104e, #173768); }
.privacy-banner p { margin: 5px 0 0; color: #d9d1e7; font-size: 12px; }

@media (max-width: 760px) {
  .policy-shell { padding-inline: 14px; }
  .policy-hero { padding: 48px 26px; border-radius: 28px; }
  .legal-note { flex-direction: column; }
  .event-snapshot, .policy-layout, .policy-columns { grid-template-columns: 1fr; }
  .form-card.full-width { grid-column: auto; }
  .event-snapshot dl, .field-grid, .signature-grid { grid-template-columns: 1fr; }
  .span-two { grid-column: auto; }
  .form-card { padding: 26px 20px; }
}

@media print {
  @page { size: letter; margin: .55in; }
  body { background: white !important; font-size: 10pt; }
  .no-print, footer, .legal-note { display: none !important; }
  .policy-shell { max-width: none; margin: 0; padding: 0; }
  .policy-hero { padding: 20px 0; border-radius: 0; color: #211638; background: white; box-shadow: none; }
  .policy-hero::after { display: none; }
  .policy-hero .eyebrow { color: #7d35d3; }
  .policy-hero h1 { margin-bottom: 8px; font-size: 34pt; }
  .policy-hero h1 span { -webkit-text-fill-color: #7d35d3; color: #7d35d3; background: none; }
  .policy-hero > p:not(.eyebrow) { color: #211638; font-size: 10pt; }
  .event-snapshot, .form-card, .privacy-banner { box-shadow: none; break-inside: avoid; }
  .policy-layout { display: block; }
  .form-card { margin-bottom: 14px; padding: 18px; }
  .form-card.full-width { page-break-before: always; }
  input, textarea { border-color: #777 !important; }
  a { color: #211638 !important; text-decoration: none; }
}
