:root { --legal-ink: #102235; --legal-muted: #526173; --legal-blue: #176bd9; --legal-line: #dce4ee; }
.legal-page { margin: 0; background: #f4f7fb; color: var(--legal-ink); font: 16px/1.65 system-ui, -apple-system, "Segoe UI", sans-serif; }
.legal-page * { box-sizing: border-box; }
.legal-page a, .legal-document a { color: var(--legal-blue); text-underline-offset: 3px; }
.legal-page-header { max-width: 1080px; margin: auto; padding: 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.legal-page-header nav, .header-legal-nav { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.legal-brand { font-size: 24px; font-weight: 800; text-decoration: none; }
.legal-brand span { display: block; font-size: 12px; font-weight: 500; color: var(--legal-muted); }
.legal-page-main { max-width: 980px; margin: 0 auto 48px; background: #fff; padding: clamp(22px, 5vw, 58px); border: 1px solid var(--legal-line); border-radius: 20px; }
.legal-page h1 { font-size: clamp(28px, 4vw, 40px); line-height: 1.2; margin: 8px 0 16px; }
.legal-eyebrow { color: var(--legal-blue); font-size: 14px; font-weight: 700; }
.legal-version { color: var(--legal-muted); font-size: 13px; overflow-wrap: anywhere; }
.legal-draft-notice { padding: 14px 18px; border: 1px solid #eed7a8; border-radius: 10px; background: #fff8e8; color: #68430e; font-size: 14px; line-height: 1.5; margin: 16px 0; }
.legal-draft-notice p { margin: 5px 0 0; }
.legal-document { overflow-wrap: anywhere; }
.legal-document h2 { margin: 34px 0 12px; padding-top: 20px; border-top: 1px solid var(--legal-line); font-size: 21px; line-height: 1.35; }
.legal-document h3 { margin: 24px 0 8px; font-size: 18px; }
.legal-document p, .legal-document li { font-size: 16px; line-height: 1.65; }
.legal-document li + li { margin-top: 8px; }
.legal-document h2, .legal-document h3 { scroll-margin-top: 20px; }
.legal-toc { margin: 20px 0; padding: 14px 18px; background: #f3f7fc; border-radius: 10px; }
.legal-toc summary { cursor: pointer; font-weight: 700; }
.legal-toc ol { margin-bottom: 4px; padding-left: 24px; }
.legal-page-footer { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--legal-line); display: grid; gap: 12px; font-size: 14px; color: var(--legal-muted); }
.header-legal-nav a { color: var(--ink, #102235); font-size: 14px; font-weight: 700; text-decoration: none; }
.header-legal-nav a:hover { color: var(--legal-blue); text-decoration: underline; }
.legal-modal { --legal-modal-padding: clamp(18px, 4vw, 44px); padding: var(--legal-modal-padding); }
.legal-dialog { display: flex; flex-direction: column; height: min(860px, calc(100dvh - 2 * var(--legal-modal-padding))); min-height: 0; }
.legal-dialog > .eyebrow, .legal-dialog > h2 { flex-shrink: 0; padding-right: 35px; }
.legal-dialog .legal-scroll { flex: 1 1 auto; min-height: 0; scrollbar-gutter: stable; }
.legal-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding-top: 10px; flex-shrink: 0; font-size: 14px; }
.legal-toolbar a { color: var(--legal-blue); }
.legal-toolbar .legal-confirm-button { margin: 0; min-height: 42px; font-size: 14px; }
.checkout-legal-checks label { font-size: 14px; line-height: 1.45; }
.checkout-legal-checks label > span { font-size: 14px; line-height: 1.45; text-transform: none; font-weight: 500; }
.checkout-legal-checks input[type="checkbox"] { width: 18px; height: 18px; }
.checkout-legal-checks a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.legal-ack-hint { color: var(--legal-muted); font-size: 13px; line-height: 1.5; margin: 0; }
.checkout-submit:disabled { cursor: not-allowed; }
.hero-pricing-panel.is-checkout-mode { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 18px; }
.hero-pricing-panel.is-checkout-mode .payment-provider-shell { position: static; width: auto; min-width: 0; justify-content: flex-start; margin: 0; }
.hero-pricing-panel.is-checkout-mode .hero-price-list { display: block; height: auto; min-width: 0; }
.hero-pricing-panel.is-checkout-mode .hero-price-card.is-hidden-plan { display: none; }
.hero-pricing-panel.is-checkout-mode .hero-price-card.is-selected-plan { min-height: 0; transform: none; padding: 20px; }
@media (max-width: 760px) {
  .hero-pricing-panel.is-checkout-mode { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .legal-page-header { align-items: flex-start; padding: 18px; flex-wrap: wrap; }
  .legal-page-main { border-radius: 0; border-inline: 0; margin-bottom: 0; padding: 22px 18px; }
  .header-legal-nav { gap: 12px; }
  .header-legal-nav a { font-size: 12px; }
  .legal-dialog { padding: 18px 14px; }
  .legal-dialog h2 { font-size: 23px; }
  .legal-toolbar { align-items: stretch; }
  .legal-toolbar .legal-confirm-button { width: 100%; }
}
@media print {
  .legal-page { background: #fff; }
  .legal-page-header, .legal-page-footer, .legal-toc { display: none; }
  .legal-page-main { border: 0; padding: 0; max-width: none; }
  .legal-document h2, .legal-document h3 { break-after: avoid; }
  .legal-draft-notice { border: 2px solid #333; }
}
