@import url('/brand/nivasa-first/v1.2/03-production-kit/tokens/nivasa-first-brand-tokens-v1.2.css');

@font-face {
  font-family: 'Manrope';
  src: url('/brand/nivasa-first/v1.2/03-production-kit/typography/web-fonts/Manrope-Regular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Manrope';
  src: url('/brand/nivasa-first/v1.2/03-production-kit/typography/web-fonts/Manrope-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'Source Serif 4';
  src: url('/brand/nivasa-first/v1.2/03-production-kit/typography/web-fonts/SourceSerif4-Medium.woff2') format('woff2');
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: 'Manrope';
  src: url('/brand/nivasa-first/v1.2/03-production-kit/typography/web-fonts/Manrope-Medium.woff2') format('woff2');
  font-weight: 500;
  font-display: swap;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--nf-text-primary);
  background: var(--nf-surface-page);
  font-family: var(--nf-font-interface);
}

html,
body,
#root {
  min-height: 100%;
}

.nf-legal-page { font-size: var(--nf-type-body); line-height: var(--nf-leading-comfortable); }
.nf-legal-page a { color: var(--nf-link); text-underline-offset: .2em; overflow-wrap: anywhere; }
.nf-legal-page :is(a, summary):focus-visible { outline: 2px solid var(--nf-focus); outline-offset: 3px; }
.nf-legal-header { max-width: var(--nf-container); margin: auto; padding: var(--nf-space-6); display: flex; align-items: center; justify-content: space-between; gap: var(--nf-space-6); border-bottom: 1px solid var(--nf-border-subtle); }
.nf-legal-brand { display: block; flex: none; padding: var(--nf-space-3); }
.nf-legal-brand img { display: block; width: 240px; height: auto; }
.nf-legal-home { display: inline-flex; align-items: center; min-height: var(--nf-touch-target); font-size: var(--nf-type-small); }
.nf-legal-layout { max-width: var(--nf-container); margin: auto; padding: var(--nf-space-7) var(--nf-space-6) var(--nf-space-8); display: grid; grid-template-columns: 15rem minmax(0, var(--nf-reading-measure)); gap: var(--nf-space-8); }
.nf-legal-aside { min-width: 0; }
.nf-legal-pages { display: grid; gap: var(--nf-space-2); padding-bottom: var(--nf-space-5); border-bottom: 1px solid var(--nf-border-subtle); }
.nf-legal-pages a { padding: var(--nf-space-3) var(--nf-space-4); min-height: var(--nf-touch-target); font-size: var(--nf-type-small); }
.nf-legal-pages a[aria-current] { background: var(--nf-selection-background); color: var(--nf-selection-foreground); border-radius: var(--nf-radius-small); font-weight: 600; }
.nf-legal-pages a[aria-current]:focus-visible { outline-color: var(--nf-focus); }
.nf-legal-contents { margin-top: var(--nf-space-5); font-size: var(--nf-type-small); }
.nf-legal-contents summary { cursor: pointer; min-height: var(--nf-touch-target); padding: var(--nf-space-3) var(--nf-space-4); font-weight: 600; }
.nf-legal-contents nav { display: grid; gap: var(--nf-space-1); padding-top: var(--nf-space-2); }
.nf-legal-contents a { padding: var(--nf-space-3) var(--nf-space-4); min-height: var(--nf-touch-target); }
.nf-legal-main { min-width: 0; outline: none; }
.nf-legal-intro { padding-bottom: var(--nf-space-6); border-bottom: 1px solid var(--nf-border-subtle); margin-bottom: var(--nf-space-6); }
.nf-legal-intro h1 { margin: 0 0 var(--nf-space-5); font-family: var(--nf-font-editorial); font-weight: 500; font-size: clamp(2.25rem, 3.5vw, 3.5rem); line-height: var(--nf-leading-heading); letter-spacing: var(--nf-tracking-tight); text-wrap: balance; }
.nf-legal-intro p { margin: 0; font-size: var(--nf-type-small); color: var(--nf-text-secondary); }
.nf-legal-main h2 { margin: var(--nf-space-7) 0 var(--nf-space-4); font-size: 1.25rem; font-weight: 600; line-height: 1.4; scroll-margin-top: var(--nf-space-6); }
.nf-legal-main h3 { margin: var(--nf-space-5) 0 var(--nf-space-3); font-size: 1rem; font-weight: 600; }
.nf-legal-main p { margin: 0 0 var(--nf-space-4); overflow-wrap: anywhere; }
.nf-legal-main ul { padding-left: var(--nf-space-5); margin: var(--nf-space-4) 0 var(--nf-space-5); }
.nf-legal-main li { padding-left: var(--nf-space-1); margin-bottom: var(--nf-space-3); }
.nf-legal-main strong { font-weight: 600; }
.nf-legal-top { display: inline-flex; align-items: center; min-height: var(--nf-touch-target); margin-top: var(--nf-space-6); font-size: var(--nf-type-small); }
.nf-legal-skip { position: absolute; top: -10rem; left: var(--nf-space-4); padding: var(--nf-space-4); background: var(--nf-surface-page); z-index: 2; }
.nf-legal-skip:focus { top: var(--nf-space-4); }
@media (max-width: 800px) {
  .nf-legal-header { flex-wrap: wrap; gap: var(--nf-space-3); padding: var(--nf-space-4); }
  .nf-legal-home { padding-inline: var(--nf-space-3); }
  .nf-legal-layout { grid-template-columns: minmax(0, 1fr); gap: var(--nf-space-6); padding: var(--nf-space-5) var(--nf-space-5) var(--nf-space-7); }
  .nf-legal-pages { gap: 0; }
  .nf-legal-contents { margin-top: var(--nf-space-3); }
  .nf-legal-main h2 { margin-top: var(--nf-space-6); }
}
@media print {
  .nf-legal-aside, .nf-legal-home, .nf-legal-top, .nf-legal-footer, .nf-legal-skip { display: none; }
  .nf-legal-layout { display: block; padding: 0; }
  .nf-legal-main h2, .nf-legal-main h3 { break-after: avoid; }
  .nf-legal-main p, .nf-legal-main li { orphans: 3; widows: 3; }
}

.nf-legal-footer { padding: var(--nf-space-5) var(--nf-space-6); background: var(--nf-surface-page); border-top: 1px solid var(--nf-border-subtle); font-family: var(--nf-font-interface); font-size: var(--nf-type-small); }
.nf-legal-footer nav { max-width: var(--nf-container); margin: auto; display: flex; flex-wrap: wrap; align-items: center; gap: var(--nf-space-2) var(--nf-space-6); }
.nf-legal-footer a { display: inline-flex; align-items: center; min-height: var(--nf-touch-target); color: var(--nf-link); text-decoration: underline; text-underline-offset: .2em; }
.nf-legal-footer a:focus-visible { outline: 2px solid var(--nf-focus); outline-offset: 3px; }
.nf-site-information>div { max-width:var(--nf-container); margin:auto; }
.nf-site-information h2 { margin:0 0 var(--nf-space-3); color:var(--nf-text-primary); font-size:var(--nf-type-body); font-weight:600; line-height:var(--nf-leading-body); }
.nf-site-information p { max-width:var(--nf-reading-measure); margin:0 0 var(--nf-space-3); color:var(--nf-text-secondary); line-height:var(--nf-leading-comfortable); }
