/* FiiT corporate "Nova" design: top, service, fitness, succession, company, recruit, contact.
   Loaded instead of main.css on those pages only (see fiit_uses_corporate_renewal). */

:root {
    --nv-bg: #060608;
    --nv-panel: #0b0b0e;
    --nv-panel-2: #131317;
    --nv-chip: #1a1a1f;
    --nv-line: rgba(255, 255, 255, 0.1);
    --nv-line-strong: rgba(255, 255, 255, 0.2);
    --nv-text: #f4f4f5;
    --nv-text-2: #c4c4cc;
    --nv-muted: #a1a1aa;
    --nv-red: #ed111c;
    --nv-red-text: #ff6b73;
    --nv-ink: #121a23;
    --nv-sans: 'Geist', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', sans-serif;
    --nv-mono: 'Geist Mono', 'Noto Sans JP', ui-monospace, monospace;
    --nv-gutter: clamp(20px, 5vw, 40px);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body.fiit-nova {
    margin: 0;
    background: var(--nv-bg);
    color: var(--nv-text);
    font-family: var(--nv-sans);
    font-size: 16px;
    line-height: 1.8;
    -webkit-font-smoothing: antialiased;
}

.fiit-nova .site-shell { overflow-x: clip; }
.fiit-nova img { max-width: 100%; height: auto; }
.fiit-nova a { color: var(--nv-text); text-decoration: none; transition: color 0.15s; }
.fiit-nova a:hover { color: var(--nv-red-text); }
.fiit-nova :focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 4px; }
.fiit-nova h1, .fiit-nova h2, .fiit-nova h3, .fiit-nova p, .fiit-nova ul, .fiit-nova ol, .fiit-nova dl, .fiit-nova dd { margin: 0; }
.fiit-nova ul, .fiit-nova ol { padding: 0; list-style: none; }
.fiit-nova .site-main:focus { outline: none; }

.fiit-nova .screen-reader-text {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.fiit-nova .nv-skip:focus {
    position: fixed; top: 12px; left: 12px; z-index: 100; width: auto; height: auto; margin: 0; padding: 12px 18px;
    clip: auto; background: #fff; color: var(--nv-ink); border-radius: 10px; font-weight: 600;
}

/* ---------- layout ---------- */
.nv-wrap { max-width: 1160px; margin: 0 auto; padding-left: var(--nv-gutter); padding-right: var(--nv-gutter); }
.nv-sec { padding-top: clamp(72px, 10vw, 140px); }
.nv-sec--center { text-align: center; }

.nv-eyebrow { font-family: var(--nv-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--nv-red-text); }
.nv-h2 { margin-top: 14px !important; font-size: clamp(28px, 4.4vw, 54px); font-weight: 700; line-height: 1.2; letter-spacing: -0.03em; }
.nv-h2 .nv-dim { color: #8e8e99; }
.nv-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 48px; }
.nv-head__lead { max-width: 440px; font-size: 15px; color: var(--nv-muted); }
.nv-grad {
    background: linear-gradient(100deg, #ff9a5a 0%, #ff3b47 45%, #e0368f 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: #ff3b47;
}

/* ---------- buttons ---------- */
.nv-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px;
    border: 1px solid #fff; border-radius: 12px; background: #fff; color: var(--nv-bg) !important;
    font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
}
.nv-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 32px rgba(255, 255, 255, 0.18); }
.nv-btn--ghost { border-color: rgba(255, 255, 255, 0.22); background: rgba(255, 255, 255, 0.04); color: #fff !important; font-weight: 500; }
.nv-btn--ghost:hover { background: rgba(255, 255, 255, 0.1); box-shadow: none; }
.nv-btn--sm { min-height: 48px; padding: 0 22px; font-size: 14px; }
.nv-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.nv-arrow { flex: none; width: 14px; height: 14px; }
.nv-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; font-weight: 500; }

/* ---------- header ---------- */
.nv-header { position: sticky; top: 0; z-index: 50; padding: 16px clamp(12px, 3vw, 24px) 0; margin-bottom: -76px; pointer-events: none; }
.nv-header__bar {
    position: relative; max-width: 1160px; margin: 0 auto; padding: 8px 10px 8px 20px; pointer-events: auto;
    display: flex; align-items: center; justify-content: space-between; gap: 4px 28px;
    background: #fff; color: var(--nv-ink); border-radius: 16px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
}
.nv-header__brand { display: flex; align-items: center; min-height: 44px; }
.nv-header__brand img { display: block; width: 114px; height: 40px; object-fit: contain; }
.nv-nav { display: flex; align-items: center; gap: 0 26px; font-size: 14px; font-weight: 500; }
.nv-nav__list { display: flex; align-items: center; gap: 0 26px; }
.fiit-nova .nv-nav a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--nv-ink); }
.fiit-nova .nv-nav a:hover { color: var(--nv-red); }
.fiit-nova .nv-nav a[aria-current='page'] { color: var(--nv-red); font-weight: 700; }
.nv-badge { font-family: var(--nv-mono); font-size: 10px; letter-spacing: 0.06em; padding: 1px 6px; border-radius: 999px; background: var(--nv-red); color: #fff; }
.fiit-nova .nv-nav .nv-nav__cta { gap: 8px; padding: 0 18px; border-radius: 10px; background: var(--nv-ink); color: #fff; font-weight: 600; }
.fiit-nova .nv-nav .nv-nav__cta:hover { background: var(--nv-red); color: #fff; }
.nv-menu { display: none; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 10px; background: var(--nv-ink); cursor: pointer; }
.nv-menu span:not(.screen-reader-text) { display: block; width: 18px; height: 2px; margin: 4px auto; background: #fff; border-radius: 2px; transition: transform 0.2s, opacity 0.2s; }
.nv-menu[aria-expanded='true'] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nv-menu[aria-expanded='true'] span:nth-child(2) { opacity: 0; }
.nv-menu[aria-expanded='true'] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 860px) {
    .nv-menu { display: block; }
    .nv-nav {
        display: none; position: absolute; top: calc(100% + 8px); left: 0; right: 0; flex-direction: column; align-items: stretch;
        padding: 12px 20px 20px; background: #fff; border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); font-size: 16px;
    }
    .nv-nav.is-open { display: flex; }
    .nv-nav__list { flex-direction: column; align-items: stretch; }
    .fiit-nova .nv-nav a { min-height: 52px; border-bottom: 1px solid #e7e8ea; }
    .fiit-nova .nv-nav .nv-nav__cta { margin-top: 16px; justify-content: center; border-bottom: 0; }
}

/* ---------- hero (top) ---------- */
.nv-hero {
    position: relative; padding-top: 76px; border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    background:
        radial-gradient(ellipse 75% 55% at 50% 100%, rgba(237, 17, 28, 0.4), rgba(237, 17, 28, 0) 70%),
        radial-gradient(ellipse 35% 30% at 18% 85%, rgba(255, 120, 40, 0.16), rgba(255, 120, 40, 0) 70%),
        radial-gradient(ellipse 35% 30% at 82% 85%, rgba(200, 30, 140, 0.16), rgba(200, 30, 140, 0) 70%),
        radial-gradient(ellipse 40% 30% at 50% 0%, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0) 70%),
        var(--nv-bg);
}
.nv-gridbg {
    position: absolute; inset: 0; pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
    background-size: 64px 64px;
    -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 40%, #000 30%, transparent 85%);
    mask-image: radial-gradient(ellipse 70% 70% at 50% 40%, #000 30%, transparent 85%);
}
.nv-hero__orb { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 54%; display: block; pointer-events: none; }
.nv-hero__inner { position: relative; max-width: 1040px; margin: 0 auto; padding: clamp(60px, 8vw, 108px) var(--nv-gutter) clamp(280px, 33vw, 450px); text-align: center; }
.nv-pill {
    display: inline-flex; align-items: center; gap: 10px; min-height: 36px; padding: 0 14px 0 6px; border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.16); background: rgba(255, 255, 255, 0.05); font-size: 13px; color: #e4e4e7;
}
.nv-pill__tag { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; background: var(--nv-red); color: #fff; font-family: var(--nv-mono); font-size: 11px; letter-spacing: 0.06em; }
.nv-hero__title { margin-top: 28px !important; font-size: clamp(38px, 7.6vw, 100px); font-weight: 700; line-height: 1.1; letter-spacing: -0.04em; color: #fff; }
.nv-hero__lead { margin: 28px auto 0 !important; max-width: 660px; font-size: clamp(15px, 1.5vw, 18px); color: #b4b4bd; line-height: 1.9; }

.nv-prompt { margin: 40px auto 0; max-width: 680px; padding: 1px; border-radius: 18px; background: linear-gradient(100deg, rgba(255, 154, 90, 0.9), rgba(237, 17, 28, 0.9) 50%, rgba(224, 54, 143, 0.9)); box-shadow: 0 0 60px rgba(237, 17, 28, 0.35); }
.fiit-nova .nv-prompt__link { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 0 10px 0 20px; border-radius: 17px; background: #0c0c0f; color: var(--nv-text); text-align: left; }
.nv-prompt__icon { flex: none; width: 20px; height: 20px; color: var(--nv-red-text); }
.nv-prompt__text { flex: 1; min-width: 0; font-size: clamp(14px, 1.5vw, 17px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nv-prompt__caret { display: inline-block; width: 2px; height: 1.1em; margin-left: 3px; vertical-align: -0.18em; background: var(--nv-red-text); animation: nv-blink 1s steps(1) infinite; }
.nv-prompt__send { flex: none; display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: 12px; background: #fff; color: var(--nv-bg); font-weight: 600; font-size: 14px; }
@keyframes nv-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .nv-prompt__caret { animation: none; } }
@media (max-width: 480px) { .nv-prompt__send span { display: none; } .nv-prompt__send { padding: 0 14px; } }

.nv-chips { margin-top: 16px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; font-size: 13px; }
.fiit-nova .nv-chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.16); background: rgba(6, 6, 8, 0.6); color: #d4d4d8; }
.fiit-nova .nv-chip:hover { border-color: var(--nv-red-text); color: #fff; }

.nv-facts { position: relative; padding-bottom: 28px; }
.nv-facts dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1px; background: var(--nv-line); border: 1px solid var(--nv-line); border-radius: 16px; overflow: hidden; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.nv-facts div { background: rgba(6, 6, 8, 0.72); padding: 18px 22px; }
.nv-facts dt { font-family: var(--nv-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--nv-muted); }
.nv-facts dd { margin-top: 4px; font-size: 20px; font-weight: 600; }

/* ---------- page hero (sub pages) ---------- */
.nv-phero {
    position: relative; padding-top: 76px; border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    background:
        radial-gradient(ellipse 60% 80% at 85% 100%, rgba(237, 17, 28, 0.36), rgba(237, 17, 28, 0) 70%),
        radial-gradient(ellipse 35% 50% at 100% 60%, rgba(224, 54, 143, 0.2), rgba(224, 54, 143, 0) 70%),
        radial-gradient(ellipse 30% 40% at 60% 110%, rgba(255, 120, 40, 0.18), rgba(255, 120, 40, 0) 70%),
        var(--nv-bg);
}
.nv-phero .nv-gridbg { -webkit-mask-image: radial-gradient(ellipse 60% 90% at 80% 70%, #000 20%, transparent 80%); mask-image: radial-gradient(ellipse 60% 90% at 80% 70%, #000 20%, transparent 80%); }
.nv-phero__inner { position: relative; padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(64px, 8vw, 112px); }
.nv-crumb { font-family: var(--nv-mono); font-size: 12px; color: var(--nv-muted); }
.fiit-nova .nv-crumb a { color: var(--nv-muted); }
.nv-crumb [aria-current] { color: var(--nv-text); }
.nv-phero .nv-eyebrow { margin-top: 36px; }
.nv-phero__title { margin-top: 16px !important; max-width: 900px; font-size: clamp(34px, 6vw, 80px); font-weight: 700; line-height: 1.14; letter-spacing: -0.04em; }
.nv-phero__lead { margin-top: 24px !important; max-width: 620px; font-size: clamp(15px, 1.5vw, 18px); color: #b4b4bd; line-height: 1.9; }
.nv-phero .nv-btns { margin-top: 36px; }

/* ---------- vision ---------- */
.nv-vision__text { margin: 20px auto 0 !important; max-width: 980px; font-size: clamp(30px, 5.2vw, 68px); font-weight: 700; line-height: 1.25; letter-spacing: -0.035em; }
.nv-vision__lead { margin: 24px auto 0 !important; max-width: 620px; color: var(--nv-muted); }

/* ---------- cards ---------- */
.nv-card { border-radius: 20px; border: 1px solid var(--nv-line); background: linear-gradient(180deg, var(--nv-panel-2), var(--nv-panel)); color: var(--nv-text); }
a.nv-card { transition: border-color 0.2s, transform 0.2s; }
.fiit-nova a.nv-card:hover { border-color: rgba(255, 107, 115, 0.6); transform: translateY(-2px); color: var(--nv-text); }
.nv-tag { font-family: var(--nv-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--nv-muted); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 999px; padding: 2px 10px; }
.nv-tag--red { background: var(--nv-red); border-color: var(--nv-red); color: #fff; padding: 3px 12px; }

.nv-biz { margin-top: 48px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 16px; }
.nv-biz__core {
    grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 32px 56px; align-items: center; padding: clamp(28px, 4vw, 48px);
    border-radius: 24px; border: 1px solid rgba(237, 17, 28, 0.5);
    background: radial-gradient(ellipse 70% 120% at 100% 0%, rgba(237, 17, 28, 0.32), rgba(237, 17, 28, 0) 70%), radial-gradient(ellipse 50% 80% at 100% 100%, rgba(224, 54, 143, 0.18), rgba(224, 54, 143, 0) 70%), var(--nv-panel);
}
.nv-biz__core > * { flex: 1 1 340px; min-width: 0; }
.nv-biz__core h3 { margin-top: 20px; font-size: clamp(30px, 4vw, 48px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.2; }
.nv-biz__core p { margin-top: 12px; max-width: 460px; font-size: 15px; color: var(--nv-text-2); }
.nv-biz__more { margin-top: 24px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.nv-window { border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(6, 6, 8, 0.85); overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5); }
.nv-window__bar { display: flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border-bottom: 1px solid var(--nv-line); font-family: var(--nv-mono); font-size: 11px; color: var(--nv-muted); }
.nv-window__bar i { width: 9px; height: 9px; border-radius: 50%; background: #3a3a42; }
.nv-window__bar i:last-of-type { margin-right: 10px; }
.nv-window__body { padding: 18px; display: grid; gap: 10px; font-size: 13px; }
.nv-window__row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 10px; background: #15151a; border: 1px solid rgba(255, 255, 255, 0.08); }
.nv-window__row b { font-family: var(--nv-mono); font-size: 11px; font-weight: 400; color: var(--nv-red-text); }
.nv-window__row--on { background: linear-gradient(100deg, rgba(237, 17, 28, 0.3), rgba(224, 54, 143, 0.16)); border-color: rgba(237, 17, 28, 0.55); }
.nv-window__row--on b { color: #ffb0b5; }
.nv-biz__item { display: flex; flex-direction: column; justify-content: space-between; gap: 56px; padding: 32px; }
.nv-biz__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--nv-muted); }
.nv-biz__item h3 { font-size: 28px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.3; }
.nv-biz__item h3 span { color: #6b6b76; }
.nv-biz__item p { margin-top: 10px; font-size: 14px; color: var(--nv-muted); }

.nv-ai { margin-top: 48px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 12px; }
.nv-ai__card { display: flex; flex-direction: column; justify-content: space-between; gap: 44px; min-height: 212px; padding: 24px; }
.nv-ai__top { display: flex; align-items: center; justify-content: space-between; color: var(--nv-muted); }
.nv-ai__no { font-family: var(--nv-mono); font-size: 12px; color: var(--nv-red-text); }
.nv-ai__cat { font-size: 12px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 999px; padding: 1px 10px; }
.nv-ai__card h3 { font-size: 19px; font-weight: 600; line-height: 1.4; letter-spacing: -0.01em; }
.nv-ai__card p { margin-top: 8px; font-size: 13.5px; line-height: 1.7; color: var(--nv-muted); }

/* ---------- cells (bordered grid) ---------- */
.nv-cells { margin-top: 44px !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 1px; background: var(--nv-line); border: 1px solid var(--nv-line); border-radius: 20px; overflow: hidden; }
.nv-cells--4 { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); }
.nv-cell { background: var(--nv-panel); padding: 30px 28px 34px; }
.nv-cell__no { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-bottom: 18px; border-radius: 10px; background: var(--nv-chip); border: 1px solid rgba(255, 255, 255, 0.12); font-family: var(--nv-mono); font-size: 13px; }
.nv-cell:last-child .nv-cell__no { background: var(--nv-red); border-color: var(--nv-red); color: #fff; box-shadow: 0 0 28px rgba(237, 17, 28, 0.6); }
.nv-cell h3 { font-size: 20px; font-weight: 600; line-height: 1.5; }
.nv-cell p { margin-top: 8px; font-size: 14px; color: var(--nv-muted); }

/* ---------- lists / tables ---------- */
.nv-rows { margin-top: 36px; border-bottom: 1px solid var(--nv-line); }
.nv-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 28px; padding: 24px 4px; border-top: 1px solid var(--nv-line); }
.nv-row time, .nv-row__date { flex: none; font-family: var(--nv-mono); font-size: 13px; color: var(--nv-muted); }
.nv-row__cat { flex: none; font-size: 12px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 999px; padding: 1px 10px; color: var(--nv-text-2); }
.nv-row__title { flex: 1 1 320px; font-size: clamp(16px, 1.6vw, 19px); font-weight: 500; }

.nv-table { margin-top: 36px !important; font-size: 15px; border-bottom: 1px solid var(--nv-line); }
.nv-table > div { display: flex; flex-wrap: wrap; gap: 4px 32px; padding: 18px 4px; border-top: 1px solid var(--nv-line); }
.nv-table dt { flex: 0 0 200px; color: var(--nv-muted); }
.nv-table dd { flex: 1 1 300px; }
.nv-table--sm { margin-top: 24px !important; font-size: 14px; }
.nv-table--sm > div { padding: 12px 0; gap: 4px 20px; }
.nv-table--sm dt { flex: 0 0 72px; }
.nv-table--sm dd { flex: 1 1 200px; }
.nv-table .nv-hist { font-family: var(--nv-mono); color: #ff8088; }

.nv-checks { display: grid; gap: 10px; font-size: 15px; }
.nv-checks li { position: relative; padding-left: 28px; }
.nv-checks li::before { content: ''; position: absolute; left: 2px; top: 0.55em; width: 12px; height: 7px; border-left: 2px solid var(--nv-red-text); border-bottom: 2px solid var(--nv-red-text); transform: rotate(-45deg); }
.fiit-nova .nv-checks a { text-decoration: underline; }

/* ---------- split / product ---------- */
.nv-split { display: flex; flex-wrap: wrap; gap: 40px 72px; }
.nv-split > * { flex: 1 1 340px; min-width: 0; }
.nv-split__lead { margin-top: 20px !important; max-width: 420px; font-size: 15px; color: var(--nv-muted); }
.nv-pad { padding: clamp(24px, 4vw, 44px); }
.nv-stack { margin-top: 44px; display: grid; gap: 16px; }
.nv-product { display: flex; flex-wrap: wrap; gap: 32px 56px; padding: clamp(28px, 4vw, 48px); }
.nv-product > * { flex: 1 1 340px; min-width: 0; }
.nv-product h3 { margin-top: 18px; font-size: clamp(30px, 4vw, 46px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.2; }
.nv-product p { margin-top: 12px; max-width: 460px; font-size: 15px; color: var(--nv-text-2); }
.nv-product .nv-btn { margin-top: 24px; }
.nv-product .nv-checks { align-self: center; }
.nv-duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 16px; }
.nv-duo h2 { margin-top: 14px; font-size: clamp(24px, 3vw, 36px); font-weight: 700; line-height: 1.3; letter-spacing: -0.02em; }
.nv-duo .nv-btn { margin-top: 28px; }

/* ---------- jobs ---------- */
.nv-job { border-top: 1px solid var(--nv-line); }
.nv-job summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 28px; padding: 26px 4px; cursor: pointer; list-style: none; }
.nv-job summary::-webkit-details-marker { display: none; }
.nv-job__title { flex: 1 1 260px; font-size: clamp(20px, 2.4vw, 28px); font-weight: 700; letter-spacing: -0.02em; }
.nv-job__meta { flex: 1 1 260px; font-size: 14px; color: var(--nv-muted); }
.nv-job__toggle { flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--nv-line-strong); position: relative; }
.nv-job__toggle::before, .nv-job__toggle::after { content: ''; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; background: #fff; transition: transform 0.2s; }
.nv-job__toggle::after { transform: rotate(90deg); }
.nv-job[open] .nv-job__toggle::after { transform: rotate(0); }
.nv-job__body { padding: 0 4px 30px; }
.nv-job__body > p { max-width: 720px; font-size: 15px; color: var(--nv-text-2); }
.nv-job__tags { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.nv-job__grid { margin-top: 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 12px; }
.nv-job__grid > div { padding: 16px 18px; border-radius: 14px; background: var(--nv-panel); border: 1px solid var(--nv-line); font-size: 14px; }
.nv-job__grid dt { font-family: var(--nv-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--nv-muted); }
.nv-job__grid dd { margin-top: 4px; }
.nv-job__grid ul { display: grid; gap: 2px; }

/* ---------- access ---------- */
.nv-access { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 16px; }
.nv-access__addr { flex: 1 1 320px; padding: 32px; }
.nv-access__addr strong { display: block; font-size: 18px; font-weight: 600; line-height: 1.7; }
.nv-access__addr p { margin-top: 16px; font-size: 14px; color: var(--nv-muted); }
.nv-access__map { flex: 1.6 1 420px; min-height: 300px; border-radius: 20px; overflow: hidden; border: 1px solid var(--nv-line); }
.nv-access__map iframe { display: block; width: 100%; height: 100%; min-height: 300px; border: 0; filter: grayscale(1) invert(0.92) contrast(0.9); }

/* ---------- CTA ---------- */
.nv-cta {
    position: relative; overflow: hidden; border-radius: 28px; border: 1px solid rgba(255, 255, 255, 0.12); text-align: center;
    padding: clamp(52px, 8vw, 110px) clamp(24px, 5vw, 64px);
    background:
        radial-gradient(ellipse 80% 90% at 50% 120%, rgba(237, 17, 28, 0.6), rgba(237, 17, 28, 0) 70%),
        radial-gradient(ellipse 40% 60% at 15% 110%, rgba(255, 120, 40, 0.25), rgba(255, 120, 40, 0) 70%),
        radial-gradient(ellipse 40% 60% at 85% 110%, rgba(224, 54, 143, 0.25), rgba(224, 54, 143, 0) 70%),
        var(--nv-panel);
}
.nv-cta .nv-gridbg { background-size: 48px 48px; -webkit-mask-image: radial-gradient(ellipse 60% 80% at 50% 100%, #000, transparent 80%); mask-image: radial-gradient(ellipse 60% 80% at 50% 100%, #000, transparent 80%); }
.nv-cta > *:not(.nv-gridbg) { position: relative; }
.nv-cta .nv-eyebrow { color: #ff8088; }
.nv-cta h2 { margin-top: 16px; font-size: clamp(28px, 5vw, 64px); font-weight: 700; line-height: 1.2; letter-spacing: -0.035em; }
.nv-cta p:not(.nv-eyebrow) { margin: 20px auto 0; max-width: 560px; font-size: 15px; color: var(--nv-text-2); }
.nv-cta .nv-btns { margin-top: 36px; justify-content: center; }

/* ---------- contact / forms (Contact Form 7 output) ---------- */
.nv-contact { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 900px) { .nv-contact { grid-template-columns: minmax(0, 1fr); } }
.nv-side { display: grid; gap: 16px; }
.nv-side__card { padding: 28px; }
.nv-side__tel { display: block; margin-top: 10px; font-family: var(--nv-mono); font-size: 28px; font-weight: 500; }
.nv-side__note { margin-top: 6px; font-size: 13px; color: var(--nv-muted); }
.nv-side .nv-checks { margin-top: 14px; font-size: 14px; }
.nv-side__link { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 28px; }
.nv-side__link strong { display: block; font-size: 17px; font-weight: 600; }
.nv-side__link small { font-size: 13px; color: var(--nv-muted); }

.nv-form { padding: clamp(24px, 4vw, 44px); }
.nv-form > h2, .nv-form > h3, .nv-form .wp-block-heading { margin: 40px 0 20px; font-size: clamp(22px, 2.6vw, 30px); font-weight: 700; letter-spacing: -0.02em; scroll-margin-top: 110px; }
.nv-form > :first-child { margin-top: 0; }
.nv-form [id] { scroll-margin-top: 110px; }
.nv-form p { margin: 0 0 20px; }
.nv-form label { display: block; font-size: 14px; font-weight: 500; }
.nv-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.nv-form :is(input[type='text'], input[type='email'], input[type='tel'], input[type='url'], input[type='number'], input[type='date'], select, textarea) {
    width: 100%; min-height: 52px; padding: 12px 16px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.18);
    background: var(--nv-bg); color: var(--nv-text); font: inherit; font-size: 16px; line-height: 1.6;
}
.nv-form textarea { min-height: 160px; resize: vertical; }
.nv-form select { -webkit-appearance: none; appearance: none; padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23a1a1aa' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 5 4 4 4-4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.nv-form select option { background: #15151a; color: var(--nv-text); }
.nv-form ::placeholder { color: #71717a; }
.nv-form :is(input, select, textarea):focus { outline: 2px solid var(--nv-red-text); outline-offset: 1px; border-color: transparent; }
.nv-form input[type='checkbox'], .nv-form input[type='radio'] { width: 20px; height: 20px; margin: 0 10px 0 0; vertical-align: -4px; accent-color: var(--nv-red); }
.nv-form .wpcf7-list-item { display: inline-block; margin: 0 20px 8px 0; }
.nv-form .wpcf7-list-item label { display: inline-flex; align-items: center; min-height: 44px; font-weight: 400; }
.nv-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.nv-form :is(.wpcf7-submit, button[type='submit'], input[type='submit']) {
    display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 36px; border: 0; border-radius: 12px;
    background: #fff; color: var(--nv-bg); font: inherit; font-weight: 600; font-size: 16px; cursor: pointer; transition: transform 0.15s, box-shadow 0.15s;
}
.nv-form :is(.wpcf7-submit, button[type='submit'], input[type='submit']):hover { transform: translateY(-1px); box-shadow: 0 8px 32px rgba(255, 255, 255, 0.18); }
.nv-form :is(.wpcf7-submit, input[type='submit']):disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }
.nv-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; color: #ff8088; }
.nv-form .wpcf7-not-valid { border-color: #ff8088 !important; }
.nv-form .wpcf7-response-output { margin: 20px 0 0 !important; padding: 14px 18px !important; border-radius: 12px; border: 1px solid var(--nv-line-strong) !important; font-size: 14px; }
.nv-form .wpcf7 form.sent .wpcf7-response-output { border-color: #4ade80 !important; color: #86efac; }
.nv-form .wpcf7 form:is(.invalid, .failed, .unaccepted, .spam) .wpcf7-response-output { border-color: #ff8088 !important; color: #ffb0b5; }
.nv-form .wpcf7-spinner { margin: 0 0 0 12px; }
.fiit-nova .nv-form a { text-decoration: underline; }
.nv-form hr { margin: 40px 0; border: 0; border-top: 1px solid var(--nv-line); }

/* ---------- footer ---------- */
.nv-footer { padding-top: clamp(64px, 8vw, 104px); padding-bottom: 40px; }
.nv-footer__top { display: flex; flex-wrap: wrap; gap: 40px 72px; justify-content: space-between; }
.nv-footer__company { flex: 1 1 300px; }
.nv-footer__logo { display: inline-flex; align-items: center; padding: 8px 16px; border-radius: 12px; background: #fff; }
.nv-footer__logo img { display: block; width: 97px; height: 34px; object-fit: contain; }
.nv-footer__company p { margin-top: 20px; font-size: 13px; color: var(--nv-muted); }
.fiit-nova .nv-footer__company p a { color: #d4d4d8; }
.nv-footer__nav { flex: 2 1 480px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 28px 24px; font-size: 14px; }
.nv-footer__title { margin-bottom: 8px !important; font-family: var(--nv-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--nv-muted); }
.fiit-nova .nv-footer__nav a { display: flex; align-items: center; min-height: 36px; color: #d4d4d8; }
.fiit-nova .nv-footer__nav a:hover { color: var(--nv-red-text); }
.nv-footer__bottom { margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--nv-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; font-family: var(--nv-mono); font-size: 12px; color: var(--nv-muted); }

@media (max-width: 640px) {
    .nv-table dt { flex-basis: 100%; }
    .nv-biz__item { gap: 32px; padding: 24px; }
}
