/* NEFIRA uses KutApps' local font stack and layout shell. All rules are scoped. */
.nefira-page {
  --nf-dark: #103c38;
  --nf-ink: #153f39;
  --nf-muted: #52675f;
  --nf-paper: #f6f4ed;
  --nf-mint: #badbcb;
  --nf-gold: #dfc58e;
  --nf-line: #d5dcd1;
  background: var(--nf-paper);
  color: var(--nf-ink);
  overflow-x: clip;
}
.nefira-page :focus-visible { outline: 3px solid #876120; outline-offset: 5px; }
.nefira-page main:focus { outline: none; }
.nefira-page .skip-link { background: var(--nf-dark); }
.nefira-page ::selection { color: #103c38; background: #dfc58e; }
.nf-header { position: sticky; top: 0; z-index: 100; background: var(--nf-paper); border-bottom: 1px solid var(--nf-line); padding-top: env(safe-area-inset-top); }
.nf-header .nav-shell { gap: 20px; min-height: 84px; }
.nf-product-label { padding-left: 20px; border-left: 1px solid var(--nf-line); font-size: 12px; letter-spacing: .18em; font-weight: 650; }
.nf-desktop-nav { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.nf-desktop-nav a { padding: 14px 0; font-size: 12px; }
.nf-desktop-nav a:hover, .nf-desktop-nav a[aria-current], .nf-footer a:hover { text-decoration: underline; text-underline-offset: 6px; }
.nf-language { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; min-height: 44px; border: 1px solid var(--nf-line); border-radius: 24px; font-size: 12px; font-weight: 700; }
.nf-menu { display: none; }
.nf-hero { color: #f4f1e7; background: var(--nf-dark); }
.nf-hero-grid { display: grid; grid-template-columns: 1.12fr 1fr; align-items: center; gap: 70px; padding-block: 70px; }
.nf-hero-copy { padding-block: 24px; }
.nf-product-identity { display: flex; align-items: center; gap: 22px; margin-bottom: 42px; }
.nf-app-icon { display: block; flex: 0 0 auto; width: 88px; height: 88px; object-fit: contain; border-radius: 20px; }
.nf-wordmark { font-size: 16px; letter-spacing: .48em; margin: 0; color: var(--nf-gold); }
.nf-kicker { font-size: 11px; font-weight: 650; letter-spacing: .16em; line-height: 1.6; margin: 0 0 24px; color: #52675f; }
.nf-hero .nf-kicker { color: var(--nf-mint); }
.nf-hero h1 { font-size: clamp(46px, 5.1vw, 74px); font-weight: 500; letter-spacing: -.055em; line-height: 1.06; margin: 0; }
.nf-hero h1 em, .nf-privacy h2 em { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; color: var(--nf-gold); }
.nf-lead { max-width: 500px; font-size: 17px; line-height: 1.85; color: #c6d7cd; margin: 30px 0; }
.nf-status { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; line-height: 1.6; }
.nf-status > span { flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--nf-gold); }
.nf-hero .nf-status { display: inline-flex; padding: 12px 17px; border: 1px solid #537368; border-radius: 999px; margin: 0 0 18px; }
.nf-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 44px; padding-block: 10px; border-bottom: 1px solid currentColor; font-size: 14px; font-weight: 600; }
.nf-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.nf-hero-copy > .nf-text-link { display: flex; width: fit-content; color: var(--nf-mint); }
.nf-hero :focus-visible, .nf-privacy :focus-visible { outline-color: var(--nf-gold); }
.nf-landscape { margin: 0; min-width: 0; position: relative; border: 1px solid #6a8471; border-radius: 220px 220px 32px 32px; overflow: hidden; background: #214b42; }
.nf-landscape img { display: block; width: 100%; height: auto; }
.nf-landscape figcaption { position: absolute; inset: auto 18px 35px; text-align: center; color: #f4f1e7; }
.nf-landscape figcaption span { display: block; font-size: 11px; letter-spacing: .14em; }
.nf-landscape figcaption strong { display: block; font-family: Georgia, serif; font-weight: 400; font-size: clamp(20px, 2.4vw, 31px); margin-top: 8px; }
.nf-trust-strip { list-style: none; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid #416259; padding: 25px 0 30px; margin-block: 0; color: #d2e1d7; font-size: 12px; }
.nf-trust-strip span { color: var(--nf-gold); padding-right: 8px; }
.nf-features { padding-block: 110px; }
.nf-section-heading { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 90px; margin-bottom: 50px; }
.nf-section-heading h2, .nf-hub h2, .nf-closing h2 { font-size: clamp(36px, 4.4vw, 58px); line-height: 1.12; font-weight: 500; letter-spacing: -.045em; margin: 0; }
.nf-section-heading > p, .nf-hub > div > p:last-child { margin: 0; color: var(--nf-muted); font-size: 16px; line-height: 1.85; max-width: 420px; }
.nf-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.nf-feature { position: relative; background: #faf9f3; border: 1px solid #e1e5db; border-radius: 24px; padding: 36px 32px; }
.nf-feature-index { position: absolute; top: 37px; right: 32px; color: #52675f; font-family: ui-monospace, monospace; font-size: 10px; letter-spacing: .06em; }
.nf-feature .nf-kicker { min-height: 3.2em; margin: 0 30px 24px 0; font-size: 10px; letter-spacing: .12em; }
.nf-feature h3 { font-size: 26px; font-weight: 500; line-height: 1.25; letter-spacing: -.035em; margin: 0 0 18px; }
.nf-feature > p:last-child { margin: 0; color: var(--nf-muted); font-size: 15px; line-height: 1.85; }
.nf-feature:nth-child(3) { background: #eaf0e5; border-color: #dfe7d8; }
.nf-privacy { background: #143f39; color: #f4f1e7; padding-block: 90px; }
.nf-privacy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 110px; }
.nf-privacy .nf-kicker { color: var(--nf-mint); }
.nf-privacy h2 { font-size: clamp(48px, 5.5vw, 74px); font-weight: 500; letter-spacing: -.05em; line-height: 1.05; margin: 0; }
.nf-privacy-symbol { width: 72px; height: 72px; margin-top: 30px; font-size: 64px; line-height: 1; color: var(--nf-gold); }
.nf-privacy-lead { margin: 0 0 28px; font-size: 23px; line-height: 1.65; letter-spacing: -.015em; }
.nf-privacy ul { padding-left: 20px; color: #d2e1d7; font-size: 15px; line-height: 1.9; }
.nf-privacy li { padding-block: 5px; }
.nf-privacy li::marker { color: var(--nf-gold); }
.nf-privacy .nf-small { color: #c1d5c9; font-size: 13px; line-height: 1.8; margin-block: 24px; }
.nf-privacy .nf-text-link { color: var(--nf-mint); }
.nf-health { display: grid; grid-template-columns: 36px 1fr; gap: 24px; padding-block: 42px; border-bottom: 1px solid var(--nf-line); }
.nf-health > span { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #738877; border-radius: 50%; font-family: Georgia, serif; }
.nf-health h2 { font-size: 20px; font-weight: 600; margin: 0; }
.nf-health p { max-width: 900px; font-size: 14px; color: var(--nf-muted); line-height: 1.8; }
.nf-hub { display: grid; grid-template-columns: 1fr 1.15fr; gap: 100px; padding-block: 100px; }
.nf-hub > div > p:last-child { margin-top: 24px; }
.nf-hub nav a { display: grid; grid-template-columns: 24px 1fr 24px; gap: 16px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--nf-line); }
.nf-hub nav a:first-child { border-top: 1px solid var(--nf-line); }
.nf-hub nav a > span { font-size: 12px; color: var(--nf-muted); }
.nf-hub nav strong { font-size: 17px; font-weight: 550; }
.nf-hub nav a:hover strong { text-decoration: underline; text-underline-offset: 5px; }
.nf-closing { display: flex; justify-content: space-between; gap: 50px; padding: 60px; margin-bottom: 100px; background: #e7ecdf; border-radius: 28px; }
.nf-closing > div { max-width: 320px; }
.nf-closing > div > p:not(.nf-status) { color: var(--nf-muted); font-size: 14px; line-height: 1.8; }
.nf-closing .nf-status > span { background: #557052; }
.nf-footer { padding-block: 55px 24px; background: #eceee5; border-top: 1px solid var(--nf-line); }
.nf-footer-top { display: flex; justify-content: space-between; gap: 40px; padding-bottom: 40px; }
.nf-footer-top p { font-size: 13px; color: var(--nf-muted); }
.nf-footer-top nav { display: flex; flex-wrap: wrap; justify-content: flex-end; align-content: start; gap: 8px 26px; }
.nf-footer-top nav a { padding-block: 10px; font-size: 13px; }
.nf-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding-top: 24px; border-top: 1px solid var(--nf-line); color: var(--nf-muted); font-size: 12px; }
.nf-footer-bottom p { margin: 0; line-height: 1.8; }
.nf-footer-bottom a { overflow-wrap: anywhere; padding-block: 12px; }
/* Legal text remains readable without JavaScript or animated disclosure. */
.nf-document { padding-block: 45px 100px; }
.nf-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; font-size: 12px; color: var(--nf-muted); margin-bottom: 48px; }
.nf-breadcrumb a { padding-block: 12px; text-decoration: underline; text-underline-offset: 4px; }
.nf-document-grid { display: grid; grid-template-columns: 230px minmax(0, 760px); justify-content: space-between; gap: 70px; }
.nf-toc { align-self: start; position: sticky; top: 110px; max-height: calc(100dvh - 140px); overflow-y: auto; padding: 5px 8px 10px; }
.nf-toc nav { display: flex; flex-direction: column; }
.nf-toc p { margin: 0 0 16px; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--nf-muted); }
.nf-toc a { font-size: 13px; line-height: 1.6; padding-block: 9px; border-bottom: 1px solid var(--nf-line); }
.nf-toc a:hover { text-decoration: underline; text-underline-offset: 4px; }
.nf-document-heading { padding-bottom: 36px; }
.nf-document-heading h1 { font-size: clamp(36px, 5vw, 68px); font-weight: 500; letter-spacing: -.05em; line-height: 1.08; margin: 0 0 24px; overflow-wrap: anywhere; }
.nf-document-heading p { color: var(--nf-muted); font-size: 13px; }
.nf-legal-source section { padding-block: 32px; border-top: 1px solid var(--nf-line); scroll-margin-top: 110px; }
.nf-legal-source h2 { font-size: 24px; line-height: 1.3; letter-spacing: -.025em; font-weight: 550; margin: 0 0 20px; }
.nf-legal-source section p { font-size: 17px; line-height: 1.9; margin: 0 0 16px; color: #40574e; overflow-wrap: anywhere; }
.nf-legal-source section p:last-child { margin-bottom: 0; }
.nf-legal-source a { text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.nf-publisher { margin-top: 24px; padding: 28px; background: #e7ecdf; border: 1px solid var(--nf-line); border-radius: 16px; font-size: 14px; }
.nf-publisher p { margin: 0 0 10px; }
.nf-publisher p:last-child { margin-bottom: 0; }
@media (max-width: 1100px) {
  .nf-hero-grid { gap: 40px; }
  .nf-desktop-nav { gap: 14px; }
  .nf-header .nav-shell { gap: 14px; }
  .nf-feature { padding: 30px 26px; }
  .nf-feature-index { top: 31px; right: 26px; }
  .nf-privacy-grid, .nf-hub { gap: 60px; }
}
@media (max-width: 1000px) {
  .nf-desktop-nav { display: none; }
  .nf-language { margin-left: auto; }
  .nf-menu { display: block; }
  .nf-menu summary { min-height: 44px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; list-style: none; }
  .nf-menu summary::-webkit-details-marker { display: none; }
  .nf-menu summary > span { font-size: 20px; }
  .nf-menu[open] summary > span { transform: rotate(45deg); }
  .nf-menu nav { position: absolute; inset: 100% 0 auto; background: var(--nf-paper); border-bottom: 1px solid var(--nf-line); padding: 16px 24px 24px; max-height: calc(100dvh - 84px); overflow-y: auto; box-shadow: 0 16px 24px #103c3810; }
  .nf-menu nav a { display: block; padding: 15px 4px; border-bottom: 1px solid var(--nf-line); font-size: 17px; }
  .nf-menu nav a[aria-current] { font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
  .nf-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nf-document-grid { grid-template-columns: 190px minmax(0, 1fr); gap: 40px; }
  .nf-footer-top nav { max-width: 420px; }
}
@media (max-width: 760px) {
  .nf-header .nav-shell { min-height: 72px; gap: 12px; }
  .nf-product-label { padding-left: 12px; font-size: 10px; letter-spacing: .12em; }
  .nf-language { min-width: 44px; }
  .nf-menu nav { max-height: calc(100dvh - 72px); }
  .nf-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 32px 45px; }
  .nf-product-identity { gap: 18px; margin-bottom: 28px; }
  .nf-app-icon { width: 64px; height: 64px; border-radius: 15px; }
  .nf-wordmark { font-size: 14px; }
  .nf-hero h1 { font-size: clamp(40px, 9vw, 65px); }
  .nf-hero-copy { padding: 18px 9px 0; }
  .nf-lead { font-size: 16px; margin-block: 24px; }
  .nf-landscape { width: min(100%, 450px); margin-inline: auto; }
  .nf-landscape figcaption strong { font-size: 27px; }
  .nf-trust-strip { justify-content: flex-start; column-gap: 26px; font-size: 11px; }
  .nf-features { padding-block: 65px; }
  .nf-section-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 32px; }
  .nf-section-heading > p { font-size: 15px; }
  .nf-feature { padding: 30px 25px; }
  .nf-feature-index { top: 31px; right: 25px; }
  .nf-feature h3 { font-size: 24px; }
  .nf-privacy { padding-block: 60px; }
  .nf-privacy-grid { grid-template-columns: 1fr; gap: 35px; }
  .nf-privacy-symbol { display: none; }
  .nf-privacy-lead { font-size: 21px; }
  .nf-health { gap: 14px; grid-template-columns: 28px 1fr; }
  .nf-health > span { width: 26px; height: 26px; }
  .nf-health h2 { font-size: 18px; }
  .nf-hub { grid-template-columns: 1fr; gap: 35px; padding-block: 65px; }
  .nf-closing { flex-direction: column; padding: 35px 26px; margin-bottom: 65px; gap: 20px; }
  .nf-footer-top, .nf-footer-bottom { flex-direction: column; align-items: flex-start; gap: 24px; }
  .nf-footer-top nav { justify-content: flex-start; }
  .nf-document { padding-block: 25px 65px; }
  .nf-breadcrumb { margin-bottom: 24px; }
  .nf-document-grid { display: flex; flex-direction: column; gap: 24px; }
  .nf-toc { position: static; max-height: none; width: 100%; padding: 0; }
  .nf-toc nav { flex-direction: row; flex-wrap: wrap; gap: 4px 16px; }
  .nf-toc p { width: 100%; margin-bottom: 0; }
  .nf-toc a { font-size: 12px; }
  .nf-document-heading { padding-block: 20px 24px; }
  .nf-legal-source section { scroll-margin-top: 90px; }
  .nf-legal-source h2 { font-size: 23px; }
  .nf-legal-source section p { font-size: 16px; line-height: 1.85; }
  .nf-publisher { padding: 22px; }
}
@media (max-width: 480px) {
  .nf-feature-grid { grid-template-columns: minmax(0, 1fr); }
  .nf-header .brand-wordmark { font-size: 18px; }
  .nf-header .brand { gap: 6px; }
  .nf-header .brand-mark { width: 24px; height: 24px; }
  .nf-header .nav-shell { gap: 10px; }
  .nf-landscape figcaption strong { font-size: 23px; }
  .nf-landscape figcaption { bottom: 28px; }
  .nf-hero .nf-kicker { font-size: 10px; }
  .nf-text-link { gap: 12px; }
}
@media (max-width: 350px) {
  .nf-product-label { padding-left: 8px; font-size: 9px; }
  .nf-header .nav-shell { gap: 8px; }
  .nf-header .brand-wordmark { font-size: 16px; }
  .nf-menu summary { font-size: 12px; gap: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .nefira-page *, .nefira-page *::before, .nefira-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
