/* Neoo Build V3 — « Votre projet. Un prix clair. » (/build, Neoo Briques model). Version 20260919-neoo-build-v4-10. Also embedded in the « Neoo Forge » view of /tarifs: the wrapper carries .neoo-build-v3-page inside #main, hence the :is() selectors.
   Same page family and shell as the v2 page: the site fusion night canvas (neoo-fusion.css) stays the
   background of the page; the light hero and configurator zone sit above it exactly like the v2 wizard.
   Tokens --nf-* come from neoo-fusion.css (local fallbacks). No commercial value lives here. */

.neoo-build-v3-page {
  --nb3-bg: var(--nf-bg-0, #10111b);
  --nb3-bg-1: var(--nf-bg-1, #0b0d18);
  --nb3-surface: var(--nf-surface-1, #161a2b);
  --nb3-surface-2: var(--nf-surface-2, #1c2136);
  --nb3-surface-3: var(--nf-surface-3, #232941);
  --nb3-line: var(--nf-line, rgba(255, 255, 255, .10));
  --nb3-line-strong: var(--nf-line-strong, rgba(255, 255, 255, .18));
  --nb3-text: var(--nf-text, #f2f4fb);
  --nb3-text-2: var(--nf-text-2, #b7bfd6);
  --nb3-text-3: var(--nf-text-3, #8b94b0);
  --nb3-accent: var(--nf-accent, #6a58ff);
  --nb3-accent-hover: var(--nf-accent-hover, #7f70ff);
  --nb3-accent-soft: var(--nf-accent-soft, rgba(106, 88, 255, .16));
  --nb3-link: var(--nf-link, #a89cff);
  --nb3-success: var(--nf-success, #34c48f);
  --nb3-warning: var(--nf-warning, #f0b35c);
  --nb3-danger: var(--nf-danger, #ff8aa0);
  --nb3-focus: var(--nf-focus, #b9c8ff);
  --nb3-shell: var(--nf-shell, min(calc(100% - 48px), 1240px));
  --nb3-ease: var(--nf-ease, cubic-bezier(.22, 1, .36, 1));
  --nb3-ink: #14132b;
  --nb3-ink-2: #4b4a63;
  --nb3-ink-3: #63627a;
  --nb3-ink-accent: #5b4bdb;
  --nb3-ink-line: #e3e1ef;
  --nb3-paper: #f8f8fc;
  --nb3-paper-2: #f1f0f8;
  --nb3-ok: #1f9d6a;
  --nb3-amber: #9a5b00;
  --partner-overview-header-h: 64px;
  background: var(--nb3-bg);
  color: var(--nb3-text);
}
.neoo-build-v3-page [hidden] { display: none !important; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) { padding: 0; }
.nb3-shell { width: var(--nb3-shell); margin-inline: auto; }
.neoo-build-v3-page .nb3-eyebrow { margin: 0 0 14px; color: var(--nb3-text-3); font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.neoo-build-v3-page .nb3-lead { max-width: 66ch; margin: 18px 0 0; color: var(--nb3-text-2); font-size: clamp(17px, 1.3vw, 20px); line-height: 1.6; }
.neoo-build-v3-page .nb3-note { margin: 12px 0 0; color: var(--nb3-text-3); font-size: 14px; line-height: 1.6; }
.neoo-build-v3-page .nb3-link { display: inline-flex; gap: 8px; align-items: center; color: var(--nb3-link); text-decoration: none; font-size: 15px; }
.neoo-build-v3-page .nb3-link:hover { text-decoration: underline; }
.neoo-build-v3-page .nb3-link svg, .neoo-build-v3-page .nb3-primary svg, .neoo-build-v3-page .nb3-starts__list svg { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.neoo-build-v3-page .nb3-primary { display: inline-flex; gap: 10px; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border: 0; border-radius: 12px; background: var(--nb3-accent); color: #fff; font: inherit; font-size: 16px; font-weight: 600; text-decoration: none; cursor: pointer; transition: background .2s var(--nb3-ease), transform .2s var(--nb3-ease); }
.neoo-build-v3-page .nb3-primary:hover { background: var(--nb3-accent-hover); transform: translateY(-1px); }
.neoo-build-v3-page .nb3-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 18px; border: 1px solid var(--nb3-ink-line); border-radius: 12px; background: #fff; color: var(--nb3-ink-2); font: inherit; font-size: 15px; cursor: pointer; }
.neoo-build-v3-page .nb3-link-button { padding: 0; border: 0; background: none; color: var(--nb3-ink-accent); font: inherit; font-size: 14px; text-decoration: underline; cursor: pointer; }
.neoo-build-v3-page .nb3-actions { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: center; margin-top: 28px; }
.neoo-build-v3-page :is(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid var(--nb3-focus); outline-offset: 3px; }
.nb3-hero :is(a, button, summary, input, select, textarea):focus-visible, .nb3-configurator :is(a, button, summary, input, select, textarea):focus-visible { outline-color: var(--nb3-ink-accent); }

/* sections */
.nb3-section { padding: clamp(64px, 8vw, 104px) 0; border-top: 1px solid var(--nb3-line); }
.nb3-section--quiet { background: var(--nb3-bg-1); }
.nb3-heading { max-width: 850px; margin-bottom: 36px; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-heading h2, :is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-result__title { margin: 0; color: var(--nb3-text); font: 300 clamp(32px, 3.6vw, 52px)/1.06 "Cerebri Sans", sans-serif; letter-spacing: -.052em; text-wrap: balance; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-section h3 { margin: 0 0 12px; color: var(--nb3-text); font-size: 22px; font-weight: 400; line-height: 1.25; }
.neoo-build-v3-page .nb3-section p { color: var(--nb3-text-2); }

/* ---------- hero (light zone above the night canvas, same as the v2 wizard) ---------- */
.nb3-hero { padding: clamp(44px, 5vw, 72px) 0 clamp(24px, 3vw, 40px); background-color: var(--nb3-paper); background-image: radial-gradient(60% 50% at 50% 0%, #ffffff 0%, var(--nb3-paper) 70%); color: var(--nb3-ink); text-align: center; }
.neoo-build-v3-page .nb3-preview { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 6px 10px; max-width: 760px; margin: 0 auto 22px; padding: 10px 16px; border: 1px solid #f2d9a8; border-radius: 14px; background: #fff7e6; color: var(--nb3-amber); font-size: 13px; line-height: 1.5; text-align: left; }
.neoo-build-v3-page .nb3-preview strong { font-weight: 600; letter-spacing: .04em; text-transform: uppercase; font-size: 12px; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-hero .nb3-hero__eyebrow { color: var(--nb3-ink-accent); font-size: 13px !important; font-weight: 500 !important; letter-spacing: .14em !important; text-transform: uppercase !important; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-hero :is(h1, .nb3-hero__title) { max-width: 960px; margin: 0 auto 16px; color: var(--nb3-ink); font: 700 clamp(38px, 4.8vw, 66px)/1.02 "Cerebri Sans", sans-serif; letter-spacing: -.045em; text-wrap: balance; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-hero .nb3-hero__lead { max-width: 720px; margin: 0 auto 30px; color: var(--nb3-ink-2); font-size: clamp(17px, 1.4vw, 20px); line-height: 1.5; }
.nb3-entries { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; width: min(100%, 980px); margin: 0 auto; }
.nb3-entry { display: grid; gap: 8px; justify-items: start; min-height: 150px; padding: 22px 22px 20px; border: 1.5px solid #dcd9ea; border-radius: 20px; background: #fff; color: var(--nb3-ink); font: inherit; text-align: left; cursor: pointer; box-shadow: 0 10px 30px rgba(50, 40, 120, .06); transition: border-color .2s, transform .25s var(--nb3-ease), box-shadow .25s var(--nb3-ease); }
.nb3-entry:hover, .nb3-entry:focus-visible { border-color: var(--nb3-ink-accent); transform: translateY(-3px); box-shadow: 0 18px 44px rgba(50, 40, 120, .14); }
.nb3-entry svg { width: 28px; height: 28px; fill: none; stroke: var(--nb3-ink-accent); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.nb3-entry strong { font-size: 19px; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; }
.nb3-entry span { color: var(--nb3-ink-3); font-size: 15px; line-height: 1.45; }
.nb3-roles { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 0; margin: 26px 0 0; padding: 0; list-style: none; color: var(--nb3-ink-3); font-size: 14px; }
.nb3-roles li { display: inline-flex; align-items: center; }
.nb3-roles li + li::before { content: "·"; margin: 0 10px; color: #b9b6cf; }
.nb3-roles strong { margin-right: 4px; color: var(--nb3-ink-2); font-weight: 600; }

/* ---------- configurator (wizard + compact summary) ---------- */
.nb3-configurator { padding: 0 0 clamp(48px, 6vw, 80px); border-top: 0; background: var(--nb3-paper); color: var(--nb3-ink); }
.nb3-configurator__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr); gap: 28px; align-items: start; }
.nb3-wizard { scroll-margin-top: 88px; padding: 26px 28px 22px; border: 1px solid #ebeaf3; border-radius: 24px; background: #fff; box-shadow: 0 18px 50px rgba(50, 40, 120, .10), 0 2px 6px rgba(50, 40, 120, .05); text-align: left; }
.nb3-wizard__progress { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; color: var(--nb3-ink-3); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.nb3-wizard__bar { flex: 1 1 auto; height: 6px; overflow: hidden; border-radius: 999px; background: #ecebf5; }
.nb3-wizard__bar i { display: block; width: calc(var(--nb3-progress, .2) * 100%); height: 100%; border-radius: 999px; background: var(--nb3-ink-accent); transition: width .35s var(--nb3-ease); }
.nb3-stepnav { margin: -8px 0 20px; }
.neoo-build-v3-page .nb3-stepnav__list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nb3-stepnav__item { display: inline-flex; align-items: center; gap: 7px; padding: 5px 10px 5px 5px; border: 1px solid #e3e1ef; border-radius: 999px; background: #fff; color: var(--nb3-ink-3); font: 500 13px/1.2 inherit; font-family: inherit; cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.nb3-stepnav__item i { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 999px; background: #efeef7; color: var(--nb3-ink-2); font-size: 11px; font-style: normal; font-weight: 600; font-variant-numeric: tabular-nums; }
.nb3-stepnav__item:hover { border-color: var(--nb3-ink-accent); color: var(--nb3-ink); }
.nb3-stepnav__item[aria-current="step"] { border-color: var(--nb3-ink-accent); background: #f4f3fb; color: var(--nb3-ink); }
.nb3-stepnav__item[aria-current="step"] i { background: var(--nb3-ink-accent); color: #fff; }
.nb3-stepnav__item:focus-visible { outline: 2px solid var(--nb3-ink-accent); outline-offset: 2px; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-step__title { margin: 0 0 8px; color: var(--nb3-ink); font: 600 clamp(24px, 2.4vw, 32px)/1.15 "Cerebri Sans", sans-serif; letter-spacing: -.03em; text-wrap: balance; }
.nb3-step__title:focus { outline: none; }
.neoo-build-v3-page .nb3-step__help { margin: 0 0 20px; color: var(--nb3-ink-3); font-size: 15px; line-height: 1.5; }
.nb3-question { margin-top: 22px; }
.nb3-question:first-child { margin-top: 0; }
.neoo-build-v3-page .nb3-question__title { margin: 0 0 6px; color: var(--nb3-ink); font-size: 18px; font-weight: 600; line-height: 1.3; }
.neoo-build-v3-page .nb3-question__help { margin: 0 0 12px; color: var(--nb3-ink-3); font-size: 14px; line-height: 1.5; }
.neoo-build-v3-page .nb3-group-title { margin: 22px 0 10px; color: var(--nb3-ink-3); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.nb3-job-group:first-child .nb3-group-title { margin-top: 0; }
.nb3-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.nb3-options--kinds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nb3-options--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nb3-options--single { grid-template-columns: minmax(0, 1fr); }
.nb3-option { position: relative; display: flex; gap: 14px; align-items: flex-start; min-height: 74px; padding: 16px 44px 16px 16px; border: 1.5px solid #dcd9ea; border-radius: 16px; background: #fff; color: var(--nb3-ink); font: inherit; text-align: left; cursor: pointer; transition: border-color .2s, background .2s, transform .2s var(--nb3-ease); }
.nb3-option:hover { border-color: var(--nb3-ink-accent); transform: translateY(-1px); }
.nb3-option[aria-pressed="true"] { border-color: var(--nb3-ink-accent); background: #f4f3fb; box-shadow: 0 0 0 3px rgba(91, 75, 219, .14); }
.nb3-option[data-nb3-auto="true"] { border-style: dashed; }
.nb3-option[aria-disabled="true"] { cursor: default; }
.nb3-option > svg { width: 24px; height: 24px; flex-shrink: 0; margin-top: 2px; fill: none; stroke: var(--nb3-ink-accent); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.nb3-option__body { display: grid; gap: 4px; }
.nb3-option__body strong { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; line-height: 1.25; }
.nb3-option__body strong em { padding: 2px 8px; border-radius: 999px; background: #e9f8f1; color: var(--nb3-ok); font-size: 11px; font-style: normal; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
/* modules announced as upcoming: amber tag, distinct from « Inclus » / « Ajouté » */
.nb3-option[data-nb3-upcoming="true"] .nb3-option__body strong em { background: #fff3dc; color: var(--nb3-amber); }
.nb3-option__body span { color: var(--nb3-ink-3); font-size: 14px; line-height: 1.45; }
.nb3-option__body small { color: var(--nb3-ink-accent); font-size: 12px; }
.nb3-option__body .nb3-option__price { margin-top: 2px; color: var(--nb3-ink); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.neoo-build-v3-page .nb3-group-intro { margin: -4px 0 12px; color: var(--nb3-ink-3); font-size: 13px; line-height: 1.5; }
.nb3-option__check { position: absolute; top: 14px; right: 14px; display: inline-grid; place-items: center; width: 22px; height: 22px; border: 1.5px solid #cfcbe3; border-radius: 50%; color: transparent; transition: background .2s, border-color .2s, color .2s; }
.nb3-option--multi .nb3-option__check { border-radius: 7px; }
.nb3-option__check svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.nb3-option[aria-pressed="true"] .nb3-option__check { border-color: var(--nb3-ink-accent); background: var(--nb3-ink-accent); color: #fff; }
.nb3-presets { margin-top: 22px; padding-top: 18px; border-top: 1px solid #efeef6; }
.neoo-build-v3-page .nb3-presets__title { margin: 0 0 10px; color: var(--nb3-ink); font-size: 14px; font-weight: 600; }
.neoo-build-v3-page .nb3-presets__title span { margin-left: 8px; color: var(--nb3-ink-3); font-weight: 400; }
.nb3-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nb3-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border: 1.5px solid #dcd9ea; border-radius: 999px; background: #fff; color: var(--nb3-ink); font: inherit; font-size: 14px; cursor: pointer; transition: border-color .2s, background .2s; }
.nb3-chip:hover { border-color: var(--nb3-ink-accent); }
.nb3-chip[aria-pressed="true"] { border-color: var(--nb3-ink-accent); background: var(--nb3-ink-accent); color: #fff; }
.nb3-chip--check svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
.nb3-chip--check[aria-pressed="true"] svg { opacity: 1; }
.nb3-numbers { display: flex; flex-wrap: wrap; gap: 10px; }
.nb3-number { min-width: 84px; min-height: 56px; padding: 0 18px; border: 1.5px solid #dcd9ea; border-radius: 14px; background: #fff; color: var(--nb3-ink); font: inherit; font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; transition: border-color .2s, background .2s; }
.nb3-number:hover { border-color: var(--nb3-ink-accent); }
.nb3-number[aria-pressed="true"] { border-color: var(--nb3-ink-accent); background: #f4f3fb; box-shadow: 0 0 0 3px rgba(91, 75, 219, .14); }
.nb3-number--custom { font-size: 16px; font-weight: 500; }
.nb3-custom { display: grid; gap: 6px; max-width: 260px; margin-top: 14px; }
.nb3-custom label, .nb3-field > span { color: var(--nb3-ink-3); font-size: 13px; }
.nb3-custom input, .nb3-field input, .nb3-field select, .nb3-field textarea, .neoo-build-v3-page .nb3-question textarea { min-height: 50px; padding: 0 14px; border: 1.5px solid #dcd9ea; border-radius: 12px; background: #fff; color: var(--nb3-ink); font: inherit; font-size: 18px; }
.nb3-field input[aria-invalid="true"], .nb3-custom input[aria-invalid="true"] { border-color: var(--nb3-danger); }
.neoo-build-v3-page .nb3-error { margin: 4px 0 0; color: #b3263f; font-size: 13px; }
.nb3-unknown { margin-top: 16px; padding: 0; border: 0; background: none; color: var(--nb3-ink-accent); font: inherit; font-size: 15px; text-decoration: underline; cursor: pointer; }
.nb3-unknown[aria-pressed="true"] { color: var(--nb3-ink); font-weight: 600; }
.neoo-build-v3-page .nb3-hint { margin: 8px 0 0; padding: 10px 14px; border-radius: 10px; background: #f4f3fb; color: var(--nb3-ink-2); font-size: 14px; line-height: 1.5; }
.nb3-field { display: grid; gap: 6px; }
.nb3-field > small { color: var(--nb3-ink-3); font-size: 13px; line-height: 1.45; }
.nb3-field--number input { max-width: 180px; font-variant-numeric: tabular-nums; }
.nb3-field--inline { margin-top: 12px; }
.nb3-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin-top: 22px; }
.neoo-build-v3-page .nb3-question textarea { width: 100%; min-height: 96px; padding: 12px 14px; font-size: 16px; line-height: 1.5; resize: vertical; }
.nb3-group { margin: 0 0 14px; padding: 16px 18px 18px; border: 1.5px solid #dcd9ea; border-radius: 16px; }
.nb3-group legend { padding: 0 8px; color: var(--nb3-ink); font-size: 14px; font-weight: 600; }
.nb3-group__row { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: end; }
.nb3-group__row .nb3-field { min-width: 160px; }
.nb3-group__row .nb3-field--number input { max-width: 120px; }
.nb3-group__row .nb3-link-button { margin-bottom: 14px; }
.neoo-build-v3-page .nb3-group__functions { margin: 14px 0 8px; color: var(--nb3-ink-3); font-size: 13px; }
.nb3-dependencies { display: grid; gap: 6px; margin-top: 16px; }
.nb3-dependencies:empty { display: none; }
.neoo-build-v3-page .nb3-dependencies p { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 14px; border-radius: 10px; background: #f4f3fb; color: var(--nb3-ink-2); font-size: 14px; line-height: 1.45; }
.nb3-dependencies svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; fill: none; stroke: var(--nb3-ok); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nb3-wizard__footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 24px; padding-top: 18px; border-top: 1px solid #efeef6; }
.nb3-wizard__footer .nb3-primary { margin-left: auto; }
.nb3-wizard__tools { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 14px; }
.nb3-wizard__tools .nb3-link-button { color: var(--nb3-ink-3); font-size: 13px; }

/* compact summary */
.nb3-summary { position: sticky; top: calc(var(--partner-overview-header-h, 64px) + 16px); padding: 24px 26px; border: 1px solid var(--nb3-line-strong); border-radius: 20px; background: linear-gradient(180deg, var(--nb3-surface-2), var(--nb3-surface)); color: var(--nb3-text); box-shadow: 0 18px 50px rgba(16, 17, 27, .18); }
.neoo-build-v3-page .nb3-summary__title { margin: 0 0 12px; color: var(--nb3-text-3); font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.neoo-build-v3-page .nb3-summary__kind { margin: 0; color: var(--nb3-text); font: 400 clamp(20px, 1.8vw, 24px)/1.2 "Cerebri Sans", sans-serif; letter-spacing: -.02em; }
.neoo-build-v3-page .nb3-summary__people { margin: 6px 0 16px; color: var(--nb3-text-2); font-size: 15px; }
.neoo-build-v3-page .nb3-summary__amount { display: grid; margin: 0; }
.neoo-build-v3-page .nb3-summary__amount span { color: var(--nb3-text-3); font-size: 13px; }
.neoo-build-v3-page .nb3-summary__amount strong { color: var(--nb3-text); font: 300 clamp(36px, 3.4vw, 46px)/1.05 "Cerebri Sans", sans-serif; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.neoo-build-v3-page .nb3-summary__amount small { color: var(--nb3-text-3); font-size: 13px; }
.neoo-build-v3-page .nb3-summary__qualify { margin: 12px 0 0; padding: 8px 12px; border-radius: 10px; background: rgba(240, 179, 92, .14); color: var(--nb3-warning); font-size: 13px; font-weight: 500; }
.neoo-build-v3-page .nb3-summary__reserve { margin: 14px 0 0; color: var(--nb3-text-3); font-size: 13px; line-height: 1.5; }
.neoo-build-v3-page .nb3-summary__pending { margin: 0; padding: 12px 14px; border: 1px dashed var(--nb3-line-strong); border-radius: 12px; color: var(--nb3-text-2); font-size: 14px; line-height: 1.5; }
.neoo-build-v3-page .nb3-result[hidden] { display: none; }

/* ---------- result ---------- */
.nb3-result__inner { max-width: 900px; }
.nb3-result__title:focus { outline: none; }
.neoo-build-v3-page .nb3-result__tag { margin: 0 0 10px; color: var(--nb3-success); font-size: 13px; letter-spacing: .04em; }
.neoo-build-v3-page .nb3-result__people { margin: 10px 0 0; color: var(--nb3-text-2); font-size: clamp(17px, 1.4vw, 20px); }
.neoo-build-v3-page .nb3-result__amount { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin: 22px 0 0; }
.neoo-build-v3-page .nb3-result__amount-label { flex-basis: 100%; color: var(--nb3-text-3); font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.neoo-build-v3-page .nb3-result__amount strong { color: var(--nb3-text); font: 300 clamp(54px, 6vw, 88px)/1 "Cerebri Sans", sans-serif; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.neoo-build-v3-page .nb3-result__unit { color: var(--nb3-text-3); font-size: 18px; }
.neoo-build-v3-page .nb3-result__partial { margin: 12px 0 0; color: var(--nb3-warning); font-size: 15px; }
.neoo-build-v3-page .nb3-calc__bar { margin: 10px 0 0; }
.neoo-build-v3-page .nb3-calc__toggle { color: var(--nb3-text-3); font-size: 13px; letter-spacing: .02em; text-decoration: underline dotted; text-underline-offset: 3px; }
.neoo-build-v3-page .nb3-calc__toggle:hover, .neoo-build-v3-page .nb3-calc__toggle[aria-expanded="true"] { color: var(--nb3-text); }
.neoo-build-v3-page .nb3-calc__toggle:focus-visible { outline: 2px solid var(--nb3-link); outline-offset: 3px; }
.nb3-calc { margin: 14px 0 0; padding: 18px 20px; border: 1px solid var(--nb3-line); border-radius: 16px; background: var(--nb3-surface-2); }
.neoo-build-v3-page .nb3-calc__title { margin: 0 0 12px; color: var(--nb3-text-3); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.neoo-build-v3-page .nb3-calc__steps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.nb3-calc__steps li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; align-items: baseline; color: var(--nb3-text-2); font-size: 15px; line-height: 1.45; }
.nb3-calc__steps li small { grid-column: 1 / -1; color: var(--nb3-text-3); font-size: 13px; line-height: 1.45; }
.nb3-calc__formula { color: var(--nb3-text); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.neoo-build-v3-page .nb3-calc__sum { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--nb3-line); color: var(--nb3-text-3); font-size: 14px; }
.neoo-build-v3-page .nb3-calc__sum strong { color: var(--nb3-text); font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
.neoo-build-v3-page .nb3-calc__sum em { font-style: normal; }
.neoo-build-v3-page .nb3-calc__excluded { margin: 10px 0 0; color: var(--nb3-warning); font-size: 14px; line-height: 1.5; }
.nb3-result__lines { display: grid; gap: 10px; margin: 26px 0 0; padding: 0; list-style: none; }
.nb3-result__lines li { display: flex; gap: 10px; align-items: flex-start; color: var(--nb3-text-2); font-size: 16px; line-height: 1.5; }
.nb3-result__lines svg { width: 20px; height: 20px; flex-shrink: 0; margin-top: 3px; fill: none; stroke: var(--nb3-success); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.neoo-build-v3-page .nb3-result__reserve { margin: 24px 0 0; color: var(--nb3-text-3); font-size: 14px; }
.nb3-result__actions { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; margin-top: 26px; }
.nb3-result .nb3-secondary { border-color: var(--nb3-line-strong); background: var(--nb3-surface-2); color: var(--nb3-text); }
.neoo-build-v3-page .nb3-status { min-height: 1.4em; margin: 12px 0 0; color: var(--nb3-success); font-size: 14px; }
.nb3-detail { margin-top: 28px; border-top: 1px solid var(--nb3-line); }
.nb3-detail summary { position: relative; padding: 18px 40px 18px 0; color: var(--nb3-link); font-size: 16px; list-style: none; cursor: pointer; }
.nb3-detail summary::-webkit-details-marker { display: none; }
.nb3-detail summary::after { content: "+"; position: absolute; right: 0; top: 14px; color: var(--nb3-text-3); font-size: 22px; line-height: 1; }
.nb3-detail[open] summary::after { content: "–"; }
.nb3-detail__inner { display: grid; gap: 22px; padding: 4px 0 24px; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-detail__block h3 { margin: 0 0 10px; color: var(--nb3-text); font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: .02em; }
.nb3-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.nb3-table th, .nb3-table td { padding: 10px 8px; border-bottom: 1px solid var(--nb3-line); color: var(--nb3-text-2); text-align: left; vertical-align: top; }
.nb3-table thead th { color: var(--nb3-text-3); font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.nb3-table tbody th { color: var(--nb3-text); font-weight: 400; }
.nb3-table tbody th small { display: block; margin-top: 4px; color: var(--nb3-text-3); font-size: 13px; line-height: 1.45; }
.nb3-table td { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.nb3-table td:last-child { color: var(--nb3-text); }
.nb3-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nb3-list li { position: relative; padding-left: 18px; color: var(--nb3-text-2); font-size: 14px; line-height: 1.5; }
.nb3-list li::before { content: ""; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; border-radius: 50%; background: var(--nb3-text-3); }
.nb3-list--check li::before { background: var(--nb3-success); }
.nb3-list--warn li::before { background: var(--nb3-warning); }
.nb3-list--mono li { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 12.5px; color: var(--nb3-text-3); }
.nb3-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 28px; margin: 0; }
.nb3-meta > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--nb3-line); font-size: 14px; }
.nb3-meta dt { color: var(--nb3-text-3); }
.nb3-meta dd { margin: 0; color: var(--nb3-text); text-align: right; word-break: break-all; }

/* publisher growth */
.nb3-growth { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--nb3-line); }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-growth h3 { margin: 0 0 8px; color: var(--nb3-text); font: 300 clamp(26px, 2.6vw, 36px)/1.1 "Cerebri Sans", sans-serif; letter-spacing: -.04em; }
.neoo-build-v3-page .nb3-growth__lead { margin: 0 0 18px; color: var(--nb3-text-2); font-size: 15px; }
.nb3-growth__field { max-width: 320px; }
.nb3-growth__field > span { color: var(--nb3-text-2); }
.nb3-growth__field input { border-color: var(--nb3-line-strong); background: var(--nb3-bg); color: var(--nb3-text); }
.neoo-build-v3-page .nb3-growth__seat { margin: 12px 0 18px; color: var(--nb3-text-3); font-size: 14px; }
.nb3-scenarios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.nb3-scenario { position: relative; display: grid; gap: 8px; padding: 18px 18px 20px; border: 1.5px solid var(--nb3-line-strong); border-radius: 18px; background: var(--nb3-surface); }
.nb3-scenario--own { border-color: var(--nb3-accent); background: var(--nb3-accent-soft); }
.neoo-build-v3-page .nb3-scenario__label { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0; color: var(--nb3-text); font-size: 17px; font-weight: 500; }
.nb3-scenario__label em { padding: 2px 8px; border-radius: 999px; background: rgba(52, 196, 143, .14); color: var(--nb3-success); font-size: 11px; font-style: normal; letter-spacing: .05em; text-transform: uppercase; }
.neoo-build-v3-page .nb3-scenario__users { margin: 0; color: var(--nb3-text-3); font-size: 13px; }
.nb3-scenario dl { display: grid; gap: 4px; margin: 4px 0 0; }
.nb3-scenario dl div { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; }
.nb3-scenario dt { color: var(--nb3-text-3); }
.nb3-scenario dd { margin: 0; color: var(--nb3-text-2); text-align: right; font-variant-numeric: tabular-nums; }
.neoo-build-v3-page .nb3-scenario__total { display: grid; margin: 6px 0 0; }
.neoo-build-v3-page .nb3-scenario__total strong { color: var(--nb3-text); font: 300 clamp(24px, 2.2vw, 32px)/1.05 "Cerebri Sans", sans-serif; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.neoo-build-v3-page .nb3-scenario__total span { color: var(--nb3-text-3); font-size: 12px; }

/* ---------- how, starts, faq, final ---------- */
.nb3-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.nb3-steps li { padding: 22px 22px 24px; border: 1px solid var(--nb3-line); border-radius: 16px; background: var(--nb3-surface); }
.nb3-steps svg { width: 26px; height: 26px; margin-bottom: 14px; fill: none; stroke: var(--nb3-link); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
:is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-steps h3 { font-size: 19px; }
.neoo-build-v3-page .nb3-steps p { margin: 0; font-size: 14px; line-height: 1.55; }
.nb3-starts { margin-top: 48px; }
.nb3-starts__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.nb3-starts__list a { display: grid; gap: 6px; height: 100%; padding: 18px 18px 16px; border: 1px solid var(--nb3-line-strong); border-radius: 16px; background: var(--nb3-surface); color: var(--nb3-text); text-decoration: none; transition: border-color .2s, transform .2s var(--nb3-ease); }
.nb3-starts__list a:hover { border-color: var(--nb3-accent); transform: translateY(-2px); }
.nb3-starts__list strong { font-size: 16px; font-weight: 600; }
.nb3-starts__list span { color: var(--nb3-text-3); font-size: 14px; line-height: 1.45; }
.nb3-starts__list svg { color: var(--nb3-link); }
.nb3-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; }
.nb3-faq details { border-bottom: 1px solid var(--nb3-line-strong); padding: 20px 0; }
.nb3-faq summary { position: relative; padding-right: 40px; color: var(--nb3-text); font-size: 18px; list-style: none; cursor: pointer; }
.nb3-faq summary::-webkit-details-marker { display: none; }
.nb3-faq summary::after { content: "+"; position: absolute; right: 0; top: 0; color: var(--nb3-text-3); font-size: 22px; line-height: 1; }
.nb3-faq details[open] summary::after { content: "–"; }
.neoo-build-v3-page .nb3-faq details p { margin: 12px 0 0; font-size: 16px; line-height: 1.6; }
.nb3-final { background: var(--nf-canvas, radial-gradient(60% 46% at 50% 102%, rgba(18, 44, 86, .92), transparent 70%), #10111b); }
.nb3-final .nb3-heading { margin-bottom: 24px; }
.neoo-build-v3-page .nb3-subnav { position: sticky; top: 0; z-index: 120; }

@media (prefers-reduced-motion: reduce) {
  .neoo-build-v3-page * { transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .nb3-configurator__grid { gap: 20px; }
  .nb3-scenarios, .nb3-starts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .nb3-configurator__grid { grid-template-columns: minmax(0, 1fr); }
  .nb3-summary { position: static; order: 2; }
  .nb3-wizard { order: 1; }
  .nb3-entries { grid-template-columns: minmax(0, 1fr); }
  .nb3-entry { min-height: 0; }
  .nb3-faq { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .nb3-steps { grid-template-columns: minmax(0, 1fr); }
  .nb3-options--three { grid-template-columns: minmax(0, 1fr); }
  .nb3-meta { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .nb3-hero { text-align: left; }
  :is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-hero :is(h1, .nb3-hero__title), :is(.neoo-build-v3-page #main, #main .neoo-build-v3-page) .nb3-hero .nb3-hero__lead { margin-inline: 0; }
  .nb3-roles { justify-content: flex-start; }
  .nb3-wizard { padding: 20px 18px 18px; border-radius: 18px; }
  .nb3-options, .nb3-options--kinds { grid-template-columns: minmax(0, 1fr); }
  .nb3-option { min-height: 0; }
  .nb3-number { flex: 1 1 calc(33% - 10px); min-width: 0; }
  .nb3-field-grid { grid-template-columns: minmax(0, 1fr); }
  .nb3-group__row .nb3-field { min-width: 0; flex: 1 1 140px; }
  .nb3-scenarios, .nb3-starts__list { grid-template-columns: minmax(0, 1fr); }
  .nb3-wizard__footer { flex-direction: column-reverse; align-items: stretch; }
  .nb3-wizard__footer .nb3-primary { margin-left: 0; }
  .neoo-build-v3-page .nb3-result__amount strong { font-size: clamp(42px, 12vw, 60px); }
  .nb3-calc { padding: 16px; }
  .nb3-calc__steps li { grid-template-columns: minmax(0, 1fr); }
  .nb3-calc__formula { white-space: normal; text-align: left; }
  .nb3-table { display: block; overflow-x: auto; }
}
