.nnbk {
    --nnbk-blue: #2856ca;
    --nnbk-blue-dark: #173a99;
    --nnbk-blue-soft: #eaf0ff;
    --nnbk-ink: #141619;
    --nnbk-text: #30343b;
    --nnbk-muted: #6c7079;
    --nnbk-line: rgba(20, 22, 25, 0.10);
    --nnbk-surface: #ffffff;
    --nnbk-bg: #f4f5f7;
    --nnbk-success: #178558;
    --nnbk-warning: #af6d00;
    --nnbk-radius-lg: 34px;
    --nnbk-radius-md: 24px;
    --nnbk-radius-sm: 16px;
    --nnbk-shadow:
        0 24px 70px
        rgba(20, 22, 25, 0.10);
}

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

/*
 * Az author stílusok felülírják a böngésző alapértelmezett
 * [hidden] szabályát. Emiatt korábban a Vissza, Tovább és Küldés
 * gombok egyszerre is láthatóvá válhattak. Ez minden foglalóelemnél
 * egyértelműen visszaállítja a rejtett állapotot.
 */
.nnbk [hidden] {
    display: none !important;
}

.nnbk {
    width: 100%;
    max-width: 100%;
    color: var(--nnbk-text);
    background:
        radial-gradient(
            circle at 8% 4%,
            rgba(40, 86, 202, 0.12),
            transparent 34%
        ),
        radial-gradient(
            circle at 94% 28%,
            rgba(126, 91, 239, 0.09),
            transparent 30%
        ),
        var(--nnbk-bg);
    font-family:
        "Space Grotesk",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    overflow: clip;
}

.nnbk button,
.nnbk input,
.nnbk select,
.nnbk textarea {
    font: inherit;
}

.nnbk button,
.nnbk label {
    -webkit-tap-highlight-color: transparent;
}

.nnbk label {
    pointer-events: auto !important;
    touch-action: manipulation;
}

.nnbk input[type="checkbox"],
.nnbk input[type="radio"] {
    pointer-events: auto !important;
    opacity: 1 !important;
    min-width: 0;
    min-height: 0;
    max-width: none;
    max-height: none;
}

.nnbk button {
    appearance: none;
}

.nnbk img {
    display: block;
    width: 100%;
}

.nnbk-shell {
    width:
        min(
            calc(100% - 40px),
            1420px
        );
    margin-inline: auto;
}

.nnbk-hero {
    padding:
        clamp(44px, 7vw, 92px)
        0
        28px;
}

.nnbk-hero-card {
    position: relative;
    isolation: isolate;
    min-height:
        clamp(360px, 39vw, 540px);
    padding:
        clamp(34px, 6vw, 82px);
    color: #ffffff;
    background:
        radial-gradient(
            circle at 78% 18%,
            rgba(86, 132, 255, 0.46),
            transparent 31%
        ),
        radial-gradient(
            circle at 12% 86%,
            rgba(91, 220, 255, 0.18),
            transparent 38%
        ),
        linear-gradient(
            135deg,
            #111318,
            #16234a 62%,
            #254fb7
        );
    border:
        1px solid
        rgba(255, 255, 255, 0.10);
    border-radius:
        var(--nnbk-radius-lg);
    box-shadow:
        0 38px 100px
        rgba(20, 32, 75, 0.21);
    overflow: hidden;
}

.nnbk-hero-card::before,
.nnbk-hero-card::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
}

.nnbk-hero-card::before {
    top: -180px;
    right: -120px;
    width: 490px;
    height: 490px;
    border:
        1px solid
        rgba(255, 255, 255, 0.10);
    box-shadow:
        0 0 0 54px
        rgba(255, 255, 255, 0.025);
}

.nnbk-hero-card::after {
    right: 9%;
    bottom: -140px;
    width: 300px;
    height: 300px;
    background:
        rgba(255, 255, 255, 0.055);
    filter: blur(2px);
}

.nnbk-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    margin: 0 0 22px;
    padding: 0 12px;
    color:
        rgba(255, 255, 255, 0.88);
    background:
        rgba(255, 255, 255, 0.08);
    border:
        1px solid
        rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.10em;
    text-transform: uppercase;
}

.nnbk-hero h1 {
    max-width: 900px;
    margin: 0;
    color: #ffffff;
    font-size:
        clamp(48px, 7.1vw, 102px);
    font-weight: 650;
    line-height: 0.92;
    letter-spacing: -0.068em;
}

.nnbk-hero h1 span {
    display: block;
    color: #9fbcff;
}

.nnbk-hero-lead {
    max-width: 700px;
    margin: 28px 0 0;
    color:
        rgba(255, 255, 255, 0.72);
    font-size:
        clamp(16px, 1.45vw, 20px);
    line-height: 1.62;
}

.nnbk-hero-trust {
    display: flex;
    flex-wrap: wrap;
    margin-top: 34px;
    gap: 10px;
}

.nnbk-hero-trust span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 13px;
    color:
        rgba(255, 255, 255, 0.82);
    background:
        rgba(255, 255, 255, 0.075);
    border:
        1px solid
        rgba(255, 255, 255, 0.10);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 650;
}

.nnbk-hero-trust svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: #9fbcff;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-main {
    padding:
        20px
        0
        clamp(80px, 10vw, 140px);
}

.nnbk-layout {
    display: grid;
    grid-template-columns:
        minmax(250px, 310px)
        minmax(0, 1fr);
    align-items: start;
    gap:
        clamp(18px, 2.5vw, 34px);
}

.nnbk-sidebar {
    position: sticky;
    top: 18px;
    padding: 20px;
    background:
        rgba(255, 255, 255, 0.82);
    border:
        1px solid
        rgba(20, 22, 25, 0.08);
    border-radius:
        var(--nnbk-radius-md);
    box-shadow:
        0 14px 45px
        rgba(20, 22, 25, 0.07);
    backdrop-filter: blur(18px);
}

.nnbk-sidebar-label {
    display: block;
    margin:
        1px
        0
        13px;
    color: var(--nnbk-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.nnbk-progress {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nnbk-progress-button {
    display: grid;
    grid-template-columns:
        34px
        minmax(0, 1fr);
    align-items: center;
    width: 100%;
    min-height: 50px;
    padding: 7px 9px;
    color: var(--nnbk-muted);
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: 14px;
    gap: 10px;
    cursor: pointer;
    transition:
        color 180ms ease,
        background 180ms ease,
        transform 180ms ease;
}

.nnbk-progress-button:hover {
    color: var(--nnbk-ink);
    background:
        rgba(40, 86, 202, 0.06);
}

.nnbk-progress-button[aria-current="step"] {
    color: var(--nnbk-ink);
    background:
        linear-gradient(
            135deg,
            rgba(40, 86, 202, 0.11),
            rgba(126, 91, 239, 0.07)
        );
}

.nnbk-progress-button[data-complete="true"] {
    color: var(--nnbk-blue);
}

.nnbk-progress-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: currentColor;
    background: #ffffff;
    border:
        1px solid
        rgba(20, 22, 25, 0.10);
    border-radius: 50%;
    font-size: 11px;
    font-weight: 800;
}

.nnbk-progress-button[aria-current="step"]
.nnbk-progress-number {
    color: #ffffff;
    background: var(--nnbk-blue);
    border-color: var(--nnbk-blue);
    box-shadow:
        0 8px 18px
        rgba(40, 86, 202, 0.24);
}

.nnbk-progress-copy strong,
.nnbk-progress-copy small {
    display: block;
}

.nnbk-progress-copy strong {
    color: inherit;
    font-size: 13px;
    font-weight: 700;
}

.nnbk-progress-copy small {
    margin-top: 2px;
    color: var(--nnbk-muted);
    font-size: 9px;
    line-height: 1.3;
}

.nnbk-sidebar-summary {
    margin-top: 17px;
    padding: 15px;
    color:
        rgba(255, 255, 255, 0.72);
    background:
        linear-gradient(
            145deg,
            #171a20,
            #202b4a
        );
    border-radius: 17px;
}

.nnbk-sidebar-summary span,
.nnbk-sidebar-summary strong,
.nnbk-sidebar-summary small {
    display: block;
}

.nnbk-sidebar-summary span {
    color: #9fbcff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.10em;
    text-transform: uppercase;
}

.nnbk-sidebar-summary strong {
    margin-top: 8px;
    color: #ffffff;
    font-size: 15px;
    line-height: 1.35;
}

.nnbk-sidebar-summary small {
    margin-top: 5px;
    font-size: 10px;
    line-height: 1.45;
}

.nnbk-wizard {
    min-width: 0;
    background:
        rgba(255, 255, 255, 0.91);
    border:
        1px solid
        rgba(20, 22, 25, 0.08);
    border-radius:
        var(--nnbk-radius-lg);
    box-shadow: var(--nnbk-shadow);
    overflow: hidden;
}

.nnbk-panel {
    min-height: 720px;
    padding:
        clamp(28px, 4.4vw, 64px);
}

.nnbk-panel[hidden] {
    display: none !important;
}

.nnbk-panel-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom:
        clamp(28px, 4vw, 48px);
    gap: 22px;
}

.nnbk-panel-heading {
    max-width: 800px;
}

.nnbk-step-label {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 0 10px;
    color: var(--nnbk-blue);
    background: var(--nnbk-blue-soft);
    border:
        1px solid
        rgba(40, 86, 202, 0.11);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.nnbk-panel h2 {
    margin:
        14px
        0
        0;
    color: var(--nnbk-ink);
    font-size:
        clamp(36px, 4.7vw, 68px);
    font-weight: 650;
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.nnbk-panel-intro {
    max-width: 720px;
    margin:
        18px
        0
        0;
    color: var(--nnbk-muted);
    font-size:
        clamp(14px, 1.25vw, 17px);
    line-height: 1.62;
}

.nnbk-selection-pill {
    display: none;
    flex: 0 0 auto;
    align-items: center;
    min-height: 38px;
    padding: 0 13px;
    color: var(--nnbk-blue);
    background:
        rgba(40, 86, 202, 0.07);
    border:
        1px solid
        rgba(40, 86, 202, 0.12);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 750;
}

.nnbk-selection-pill:not(:empty) {
    display: inline-flex;
}

.nnbk-service-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.nnbk-service-card {
    position: relative;
    min-height: 310px;
    padding: 0;
    color: #ffffff;
    text-align: left;
    background: #1b1e24;
    border:
        2px solid
        transparent;
    border-radius:
        24px;
    box-shadow:
        0 15px 35px
        rgba(20, 22, 25, 0.09);
    overflow: hidden;
    cursor: pointer;
    transition:
        transform 260ms
        cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 260ms ease,
        border-color 200ms ease;
}

.nnbk-service-card:first-child {
    grid-column:
        span 2;
    min-height: 370px;
}

.nnbk-service-card:hover {
    transform:
        translateY(-5px);
    box-shadow:
        0 25px 55px
        rgba(20, 22, 25, 0.15);
}

.nnbk-service-card[aria-pressed="true"] {
    border-color: #8eaeff;
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.12),
        0 25px 55px
        rgba(20, 22, 25, 0.16);
}

.nnbk-service-card:focus,
.nnbk-package-card:focus {
    outline: none;
}

.nnbk-service-card:focus-visible,
.nnbk-package-card:focus-visible {
    border-color: var(--nnbk-blue);
    outline:
        3px solid
        rgba(40, 86, 202, 0.34);
    outline-offset: 3px;
}

.nnbk-service-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition:
        transform 700ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.nnbk-service-card:hover img {
    transform: scale(1.045);
}

.nnbk-service-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            180deg,
            rgba(14, 17, 22, 0.03) 15%,
            rgba(14, 17, 22, 0.30) 46%,
            rgba(14, 17, 22, 0.94) 100%
        );
    pointer-events: none;
}

.nnbk-service-index,
.nnbk-service-arrow,
.nnbk-service-copy {
    position: absolute;
    z-index: 2;
}

.nnbk-service-index {
    top: 17px;
    left: 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 35px;
    height: 28px;
    padding: 0 9px;
    color: #ffffff;
    background:
        rgba(14, 17, 22, 0.52);
    border:
        1px solid
        rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    backdrop-filter: blur(12px);
}

.nnbk-service-arrow {
    top: 17px;
    right: 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #1c2437;
    background: #ffffff;
    border-radius: 50%;
    box-shadow:
        0 8px 24px
        rgba(0, 0, 0, 0.18);
}

.nnbk-service-arrow svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-service-copy {
    right: 22px;
    bottom: 22px;
    left: 22px;
}

.nnbk-service-copy span {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 0 9px;
    color: #c6d5ff;
    background:
        rgba(73, 111, 211, 0.26);
    border:
        1px solid
        rgba(159, 188, 255, 0.20);
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.nnbk-service-copy strong {
    display: block;
    margin-top: 10px;
    color: #ffffff;
    font-size:
        clamp(23px, 2.3vw, 34px);
    font-weight: 650;
    line-height: 1;
    letter-spacing: -0.04em;
}

.nnbk-service-copy small {
    display: block;
    max-width: 520px;
    margin-top: 8px;
    color:
        rgba(255, 255, 255, 0.69);
    font-size: 12px;
    line-height: 1.48;
}

.nnbk-package-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 14px;
}

.nnbk-package-grid[data-count="1"] {
    grid-template-columns:
        minmax(0, 720px);
    justify-content: center;
}

.nnbk-package-dots {
    display: none;
}

.nnbk-package-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 530px;
    padding: 23px;
    color: var(--nnbk-text);
    text-align: left;
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f8f9fb
        );
    border:
        1px solid
        rgba(20, 22, 25, 0.10);
    border-radius:
        24px;
    box-shadow:
        0 12px 35px
        rgba(20, 22, 25, 0.07);
    overflow: hidden;
    cursor: pointer;
    transition:
        transform 240ms
        cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 240ms ease,
        border-color 200ms ease;
}

.nnbk-package-card:hover {
    transform:
        translateY(-5px);
    box-shadow:
        0 24px 50px
        rgba(20, 22, 25, 0.12);
}

.nnbk-package-card[aria-pressed="true"] {
    border-color:
        rgba(40, 86, 202, 0.68);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.10),
        0 24px 50px
        rgba(20, 22, 25, 0.12);
}

.nnbk-package-card[data-hot="true"] {
    --nnbk-hot-gradient:
        linear-gradient(
            125deg,
            #114fc2,
            #137fda,
            #08a9c9,
            #24b98a,
            #6959d7,
            #114fc2
        );
    --nnbk-hot-shadow:
        rgba(30, 107, 218, 0.31);
    --nnbk-hot-ink:
        #145db6;

    isolation: isolate;
    color: #ffffff;
    background: var(--nnbk-hot-gradient);
    background-size: 360% 360%;
    border-color:
        rgba(255, 255, 255, 0.27);
    box-shadow:
        0 31px 90px
        var(--nnbk-hot-shadow);
    animation:
        nnbkHotDance
        9s
        ease
        infinite;
}

.nnbk-package-card[data-hot="true"]::after {
    content: "";
    position: absolute;
    inset: -65% -50%;
    z-index: 0;
    opacity: 0.52;
    background:
        linear-gradient(
            105deg,
            transparent 40%,
            rgba(255, 255, 255, 0.42) 49%,
            transparent 58%
        );
    transform:
        translateX(-65%)
        rotate(7deg);
    animation:
        nnbkHotShine
        6.5s
        ease-in-out
        infinite;
    pointer-events: none;
}

.nnbk-package-card[data-hot="true"] > * {
    position: relative;
    z-index: 1;
}

@keyframes nnbkHotDance {
    0%,
    100% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }
}

@keyframes nnbkHotShine {
    0%,
    20% {
        transform:
            translateX(-65%)
            rotate(7deg);
    }

    62%,
    100% {
        transform:
            translateX(65%)
            rotate(7deg);
    }
}

.nnbk-package-card[data-hot="true"]
.nnbk-package-description,
.nnbk-package-card[data-hot="true"]
.nnbk-package-features,
.nnbk-package-card[data-hot="true"]
.nnbk-package-price small {
    color:
        rgba(255, 255, 255, 0.67);
}

.nnbk-package-card[data-hot="true"]
.nnbk-package-title,
.nnbk-package-card[data-hot="true"]
.nnbk-package-price strong {
    color: #ffffff;
}

.nnbk-package-hot {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    min-height: 27px;
    margin-bottom: 15px;
    padding: 0 9px;
    color: var(--nnbk-hot-ink);
    background:
        rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.nnbk-package-kicker {
    display: block;
    color: var(--nnbk-blue);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.nnbk-package-card[data-hot="true"]
.nnbk-package-kicker {
    color:
        rgba(255, 255, 255, 0.77);
}

.nnbk-package-title {
    display: block;
    margin-top: 10px;
    color: var(--nnbk-ink);
    font-size:
        clamp(24px, 2.15vw, 34px);
    font-weight: 650;
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.nnbk-package-description {
    display: block;
    min-height: 68px;
    margin-top: 13px;
    color: var(--nnbk-muted);
    font-size: 12px;
    line-height: 1.52;
}

.nnbk-package-price {
    display: block;
    margin:
        21px
        0
        17px;
}

.nnbk-package-price strong,
.nnbk-package-price small {
    display: block;
}

.nnbk-package-price strong {
    color: var(--nnbk-ink);
    font-size:
        clamp(29px, 3vw, 42px);
    font-weight: 650;
    line-height: 1;
    letter-spacing: -0.05em;
}

.nnbk-package-price small {
    margin-top: 5px;
    color: var(--nnbk-muted);
    font-size: 10px;
}

.nnbk-package-features {
    display: grid;
    margin: 0;
    padding: 0;
    color: var(--nnbk-muted);
    list-style: none;
    gap: 10px;
}

.nnbk-package-features li {
    position: relative;
    padding-left: 20px;
    font-size: 11px;
    line-height: 1.45;
}

.nnbk-package-features li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    color: #5a83ef;
    font-weight: 900;
}

.nnbk-package-select {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin-top: auto;
    padding: 0 15px;
    color: var(--nnbk-blue);
    background:
        rgba(40, 86, 202, 0.08);
    border:
        1px solid
        rgba(40, 86, 202, 0.15);
    border-radius: 14px;
    font-size: 11px;
    font-weight: 800;
}

.nnbk-package-card[data-hot="true"]
.nnbk-package-select {
    color: var(--nnbk-hot-ink);
    background:
        rgba(255, 255, 255, 0.94);
    border-color:
        rgba(255, 255, 255, 0.82);
}

.nnbk-package-card[aria-pressed="true"]
.nnbk-package-select::after {
    content: " ✓";
}

.nnbk-school-extras {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    margin-top: 24px;
    padding: 18px;
    background:
        linear-gradient(
            145deg,
            rgba(40, 86, 202, 0.075),
            rgba(119, 86, 231, 0.055)
        );
    border:
        1px solid
        rgba(40, 86, 202, 0.15);
    border-radius: 22px;
    box-shadow:
        inset 0 1px 0
        rgba(255, 255, 255, 0.75);
    gap: 12px;
}

.nnbk-school-extras[hidden] {
    display: none !important;
}

.nnbk-school-extra-head {
    grid-column:
        1 / -1;
    padding:
        4px
        3px
        9px;
}

.nnbk-school-extra-head span,
.nnbk-school-extra-head strong,
.nnbk-school-extra-head small {
    display: block;
}

.nnbk-school-extra-head span {
    color: var(--nnbk-blue);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.nnbk-school-extra-head strong {
    margin-top: 7px;
    color: var(--nnbk-ink);
    font-size:
        clamp(20px, 2vw, 28px);
    letter-spacing: -0.035em;
}

.nnbk-school-extra-head small {
    max-width: 720px;
    margin-top: 7px;
    color: var(--nnbk-muted);
    font-size: 11px;
    line-height: 1.5;
}

.nnbk-extra-card {
    position: relative;
    display: grid;
    grid-template-columns:
        26px
        minmax(0, 1fr);
    align-items: flex-start;
    isolation: isolate;
    width: 100%;
    max-width: 100%;
    min-height: 148px;
    margin: 0;
    padding: 20px;
    background:
        rgba(255, 255, 255, 0.94);
    border:
        1px solid
        rgba(40, 86, 202, 0.16);
    border-radius: 19px;
    box-shadow:
        0 12px 30px
        rgba(30, 46, 85, 0.06);
    gap: 14px;
    cursor: pointer;
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease,
        background 180ms ease;
    touch-action: manipulation;
}

.nnbk-extra-card:hover {
    transform:
        translateY(-2px);
    border-color:
        rgba(40, 86, 202, 0.37);
}

.nnbk-extra-card:has(input:checked),
.nnbk-extra-card.nnbk-is-selected {
    background: #ffffff;
    border-color:
        rgba(40, 86, 202, 0.70);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.09),
        0 16px 38px
        rgba(30, 46, 85, 0.09);
}

.nnbk-extra-card input {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
}

.nnbk-extra-card > span {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    color: inherit;
}

.nnbk-extra-card strong,
.nnbk-extra-card span,
.nnbk-extra-card small {
    display: block;
}

.nnbk-extra-card strong {
    color: var(--nnbk-ink);
    font-size: 15px;
}

.nnbk-extra-card span {
    margin-top: 6px;
    color: var(--nnbk-blue);
    font-size: 12px;
    font-weight: 750;
}

.nnbk-extra-card small {
    margin-top: 9px;
    color: var(--nnbk-muted);
    font-size: 10px;
    line-height: 1.4;
}

.nnbk-date-control {
    position: relative;
}

.nnbk-date-control input {
    padding-right: 58px;
    cursor: pointer;
}

.nnbk-date-control input::-webkit-calendar-picker-indicator {
    display: none;
}

.nnbk-calendar-button {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    color: #ffffff;
    background: var(--nnbk-blue);
    border: 0;
    border-radius: 11px;
    cursor: pointer;
}

.nnbk-calendar-button:hover {
    background: var(--nnbk-blue-dark);
}

.nnbk-calendar-button svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-calendar-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: grid;
    place-items: center;
    padding: 24px;
    background:
        rgba(11, 14, 22, 0.56);
    backdrop-filter:
        blur(15px);
    -webkit-backdrop-filter:
        blur(15px);
}

.nnbk-calendar-modal[hidden] {
    display: none !important;
}

.nnbk-calendar-dialog {
    width:
        min(
            520px,
            calc(100vw - 40px)
        );
    padding: 24px;
    color: var(--nnbk-text);
    background:
        linear-gradient(
            155deg,
            rgba(255, 255, 255, 0.99),
            rgba(242, 246, 255, 0.99)
        );
    border:
        1px solid
        rgba(255, 255, 255, 0.75);
    border-radius: 28px;
    box-shadow:
        0 35px 100px
        rgba(8, 14, 32, 0.34);
}

.nnbk-calendar-top,
.nnbk-calendar-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    gap: 12px;
}

.nnbk-calendar-top {
    padding:
        2px
        2px
        19px;
    border-bottom:
        1px solid
        rgba(20, 22, 25, 0.08);
}

.nnbk-calendar-top span,
.nnbk-calendar-top strong {
    display: block;
}

.nnbk-calendar-top span {
    color: var(--nnbk-blue);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.nnbk-calendar-top strong {
    margin-top: 5px;
    color: var(--nnbk-ink);
    font-size: 21px;
    letter-spacing: -0.035em;
    overflow-wrap: anywhere;
}

.nnbk-calendar-close,
.nnbk-calendar-nav button {
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    padding: 0;
    color: var(--nnbk-ink);
    background: #ffffff;
    border:
        1px solid
        rgba(20, 22, 25, 0.10);
    border-radius: 50%;
    box-shadow:
        0 8px 22px
        rgba(20, 30, 55, 0.08);
    cursor: pointer;
}

.nnbk-calendar-close {
    width: 38px;
    height: 38px;
    font-size: 24px;
    font-weight: 350;
    line-height: 1;
}

.nnbk-calendar-nav {
    padding:
        19px
        1px
        14px;
}

.nnbk-calendar-nav strong {
    min-width: 0;
    color: var(--nnbk-ink);
    font-size: 16px;
    font-weight: 780;
    letter-spacing: -0.025em;
    text-align: center;
    text-transform: capitalize;
    overflow-wrap: anywhere;
}

.nnbk-calendar-nav button {
    width: 42px;
    height: 42px;
    color: var(--nnbk-blue);
    font-size: 27px;
}

.nnbk-calendar-nav button:disabled {
    color: #adb2bd;
    background: #f0f1f4;
    box-shadow: none;
    cursor: not-allowed;
}

.nnbk-calendar-weekdays,
.nnbk-calendar-grid {
    display: grid;
    grid-template-columns:
        repeat(7, minmax(0, 1fr));
    gap: 7px;
}

.nnbk-calendar-weekdays {
    margin-bottom: 7px;
}

.nnbk-calendar-weekdays span {
    display: grid;
    place-items: center;
    min-height: 25px;
    color: #8a909c;
    font-size: 10px;
    font-weight: 800;
}

.nnbk-calendar-day,
.nnbk-calendar-blank {
    min-width: 0;
    aspect-ratio: 1;
}

.nnbk-calendar-day {
    display: grid;
    place-items: center;
    padding: 0;
    color: #242831;
    background:
        rgba(255, 255, 255, 0.75);
    border:
        1px solid
        rgba(20, 22, 25, 0.07);
    border-radius: 15px;
    font-size: 13px;
    font-weight: 720;
    cursor: pointer;
    transition:
        transform 160ms ease,
        color 160ms ease,
        background 160ms ease,
        box-shadow 160ms ease;
}

.nnbk-calendar-day:hover:not(:disabled) {
    color: var(--nnbk-blue);
    background: #ffffff;
    box-shadow:
        0 9px 24px
        rgba(40, 86, 202, 0.12);
    transform:
        translateY(-2px);
}

.nnbk-calendar-day[data-today="true"] {
    color: var(--nnbk-blue);
    border-color:
        rgba(40, 86, 202, 0.35);
}

.nnbk-calendar-day[data-selected="true"] {
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #2856ca,
            #547be0
        );
    border-color: transparent;
    box-shadow:
        0 11px 27px
        rgba(40, 86, 202, 0.28);
}

.nnbk-calendar-day:disabled {
    color: #b9bec8;
    background:
        rgba(235, 237, 242, 0.68);
    border-color: transparent;
    cursor: not-allowed;
}

.nnbk-calendar-legend {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    color: var(--nnbk-muted);
    font-size: 9px;
    gap: 7px;
}

.nnbk-calendar-legend span {
    width: 9px;
    height: 9px;
    background: var(--nnbk-blue);
    border-radius: 50%;
}

html.nnbk-calendar-open {
    overflow: hidden;
}

.nnbk-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.nnbk-field {
    min-width: 0;
}

.nnbk-field--full {
    grid-column:
        1 / -1;
}

.nnbk-field label,
.nnbk-group-label {
    display: block;
    margin:
        0
        0
        8px;
    color: var(--nnbk-ink);
    font-size: 11px;
    font-weight: 750;
}

.nnbk-field label em,
.nnbk-group-label em {
    color: var(--nnbk-blue);
    font-style: normal;
}

.nnbk-field input:not([type="checkbox"]):not([type="radio"]),
.nnbk-field select,
.nnbk-field textarea {
    display: block;
    width: 100%;
    min-height: 52px;
    padding:
        0
        15px;
    color: var(--nnbk-text);
    background:
        rgba(255, 255, 255, 0.96);
    border:
        1px solid
        rgba(20, 22, 25, 0.13);
    border-radius: 15px;
    outline: 0;
    transition:
        border-color 160ms ease,
        box-shadow 160ms ease,
        background 160ms ease;
}

.nnbk-field textarea {
    min-height: 145px;
    padding:
        14px
        15px;
    resize: vertical;
}

.nnbk-field input:not([type="checkbox"]):not([type="radio"]):focus,
.nnbk-field select:focus,
.nnbk-field textarea:focus {
    background: #ffffff;
    border-color:
        rgba(40, 86, 202, 0.70);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.09);
}

.nnbk-field input:not([type="checkbox"]):not([type="radio"])[readonly] {
    color: #444b57;
    background:
        rgba(40, 86, 202, 0.05);
    border-color:
        rgba(40, 86, 202, 0.17);
    box-shadow:
        inset 3px 0 0
        var(--nnbk-blue);
    cursor: not-allowed;
}

.nnbk-field-help {
    display: block;
    margin:
        7px
        2px
        0;
    color: var(--nnbk-muted);
    font-size: 9px;
    line-height: 1.45;
}

.nnbk-choice-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.nnbk-choice-grid--locations {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
}

.nnbk-choice {
    position: relative;
    display: flex;
    align-items: flex-start;
    min-height: 122px;
    padding: 18px;
    color: var(--nnbk-text);
    background:
        rgba(255, 255, 255, 0.94);
    border:
        1px solid
        rgba(20, 22, 25, 0.11);
    border-radius: 18px;
    gap: 13px;
    cursor: pointer;
    touch-action: manipulation;
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.nnbk-choice:hover {
    transform:
        translateY(-2px);
    border-color:
        rgba(40, 86, 202, 0.28);
}

.nnbk-choice:has(input:checked) {
    border-color:
        rgba(40, 86, 202, 0.65);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.09);
}

.nnbk-choice.nnbk-is-selected {
    border-color:
        rgba(40, 86, 202, 0.65);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.09);
}

.nnbk-choice--studio {
    overflow: hidden;
}

.nnbk-choice--studio::before {
    content: "";
    position: absolute;
    inset: -120%;
    opacity: 0.24;
    background:
        conic-gradient(
            from 0deg,
            transparent,
            #f3c55f,
            transparent,
            #ffe6a5,
            transparent
        );
    animation:
        nnbkGoldDance
        9s
        linear
        infinite;
    pointer-events: none;
}

@keyframes nnbkGoldDance {
    to {
        transform:
            rotate(360deg);
    }
}

.nnbk-choice input {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
}

.nnbk-choice input[type="radio"],
.nnbk-extra-card input[type="checkbox"],
.nnbk-check-row input[type="checkbox"] {
    position: relative;
    display: inline-grid;
    flex: 0 0 26px !important;
    place-content: center;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    max-width: 26px !important;
    max-height: 26px !important;
    margin:
        1px
        0
        0;
    padding: 0;
    appearance: none !important;
    -webkit-appearance: none !important;
    background: #ffffff;
    border:
        2px solid
        rgba(40, 86, 202, 0.34);
    box-shadow:
        0 2px 7px
        rgba(20, 35, 70, 0.08);
    cursor: pointer;
    transition:
        background 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.nnbk-choice input[type="radio"] {
    border-radius: 50%;
}

.nnbk-choice input[type="radio"]::before {
    content: "";
    width: 10px;
    height: 10px;
    background: var(--nnbk-blue);
    border-radius: 50%;
    transform: scale(0);
    transition:
        transform 150ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.nnbk-choice input[type="radio"]:checked {
    border-color: var(--nnbk-blue);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.09);
}

.nnbk-choice input[type="radio"]:checked::before {
    transform: scale(1);
}

.nnbk-extra-card input[type="checkbox"],
.nnbk-check-row input[type="checkbox"] {
    border-radius: 7px;
}

.nnbk-extra-card input[type="checkbox"]::before,
.nnbk-check-row input[type="checkbox"]::before {
    content: "";
    width: 14px;
    height: 10px;
    background: #ffffff;
    clip-path:
        polygon(
            8% 43%,
            0 55%,
            40% 96%,
            100% 17%,
            87% 6%,
            39% 69%
        );
    transform: scale(0);
    transition:
        transform 150ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.nnbk-extra-card input[type="checkbox"]:checked,
.nnbk-check-row input[type="checkbox"]:checked {
    background: var(--nnbk-blue);
    border-color: var(--nnbk-blue);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.09);
}

.nnbk-extra-card input[type="checkbox"]:checked::before,
.nnbk-check-row input[type="checkbox"]:checked::before {
    transform: scale(1);
}

.nnbk-choice-copy {
    position: relative;
    z-index: 1;
}

.nnbk-choice-copy strong,
.nnbk-choice-copy small,
.nnbk-choice-copy span {
    display: block;
}

.nnbk-choice-copy strong {
    color: var(--nnbk-ink);
    font-size: 14px;
}

.nnbk-choice-copy span {
    margin-top: 5px;
    color: var(--nnbk-blue);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.nnbk-choice-copy small {
    margin-top: 7px;
    color: var(--nnbk-muted);
    font-size: 10px;
    line-height: 1.45;
}

.nnbk-location-details {
    margin-top: 18px;
}

.nnbk-location-details[hidden] {
    display: none !important;
}

.nnbk-check-row {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns:
        26px
        minmax(0, 1fr);
    align-items: flex-start;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 14px;
    background:
        rgba(40, 86, 202, 0.045);
    border:
        1px solid
        rgba(40, 86, 202, 0.10);
    border-radius: 15px;
    gap: 11px;
    cursor: pointer;
    touch-action: manipulation;
}

.nnbk-consent-list {
    display: grid;
    gap: 10px;
}

.nnbk-field label.nnbk-check-row {
    display: grid;
    margin: 0;
}

.nnbk-check-row input {
    grid-column: 1;
    align-self: start;
    justify-self: start;
    flex: 0 0 26px !important;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    max-width: 26px !important;
    max-height: 26px !important;
    margin: 1px 0 0 !important;
    accent-color: var(--nnbk-blue);
}

.nnbk-check-row span {
    grid-column: 2;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    color: var(--nnbk-muted);
    font-size: 11px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.nnbk-check-row:has(input:checked),
.nnbk-check-row.nnbk-is-selected {
    background:
        rgba(40, 86, 202, 0.09);
    border-color:
        rgba(40, 86, 202, 0.32);
}

.nnbk-honeypot {
    position: fixed !important;
    top: -10000px !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.nnbk-check-row a {
    color: var(--nnbk-blue);
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.nnbk-summary {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(270px, 0.72fr);
    align-items: start;
    gap: 18px;
}

.nnbk-summary-card {
    padding: 23px;
    background: #ffffff;
    border:
        1px solid
        rgba(20, 22, 25, 0.10);
    border-radius: 21px;
}

.nnbk-summary-card--dark {
    color: #ffffff;
    background:
        radial-gradient(
            circle at 90% 8%,
            rgba(83, 127, 246, 0.36),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            #151820,
            #22345f
        );
    border-color:
        rgba(255, 255, 255, 0.10);
}

.nnbk-summary-title {
    margin: 0;
    color: var(--nnbk-ink);
    font-size: 19px;
    font-weight: 700;
}

.nnbk-summary-card--dark
.nnbk-summary-title {
    color: #ffffff;
}

.nnbk-summary-list {
    display: grid;
    margin:
        17px
        0
        0;
    padding: 0;
    list-style: none;
    gap: 0;
}

.nnbk-summary-list li {
    display: grid;
    grid-template-columns:
        minmax(120px, 0.55fr)
        minmax(0, 1fr);
    padding:
        12px
        0;
    border-bottom:
        1px solid
        rgba(20, 22, 25, 0.08);
    gap: 14px;
}

.nnbk-summary-list li:last-child {
    border-bottom: 0;
}

.nnbk-summary-list span {
    color: var(--nnbk-muted);
    font-size: 10px;
}

.nnbk-summary-list strong {
    color: var(--nnbk-ink);
    font-size: 11px;
    font-weight: 700;
    text-align: right;
    overflow-wrap: anywhere;
}

.nnbk-estimate-label {
    display: block;
    color: #a9c1ff;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.10em;
    text-transform: uppercase;
}

.nnbk-estimate-price {
    display: block;
    margin-top: 14px;
    color: #ffffff;
    font-size:
        clamp(37px, 4.5vw, 61px);
    font-weight: 650;
    line-height: 0.94;
    letter-spacing: -0.06em;
}

.nnbk-estimate-note {
    display: block;
    margin-top: 15px;
    color:
        rgba(255, 255, 255, 0.62);
    font-size: 10px;
    line-height: 1.5;
}

.nnbk-reference {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    margin-top: 19px;
    padding: 0 10px;
    color: #d6e1ff;
    background:
        rgba(255, 255, 255, 0.08);
    border:
        1px solid
        rgba(255, 255, 255, 0.11);
    border-radius: 999px;
    font-size: 9px;
    font-weight: 750;
}

.nnbk-notice {
    display: none;
    margin:
        18px
        0
        0;
    padding: 14px 15px;
    color: #8b3d19;
    background: #fff4ec;
    border:
        1px solid
        rgba(180, 83, 34, 0.18);
    border-radius: 14px;
    font-size: 10px;
    line-height: 1.5;
}

.nnbk-notice[data-visible="true"] {
    display: block;
}

.nnbk-security {
    display: flex;
    align-items: center;
    margin-top: 16px;
    padding: 14px 16px;
    color: #4f586b;
    background:
        linear-gradient(
            135deg,
            rgba(40, 86, 202, 0.055),
            rgba(87, 128, 236, 0.085)
        );
    border:
        1px solid
        rgba(40, 86, 202, 0.13);
    border-radius: 16px;
    gap: 12px;
}

.nnbk-security-icon {
    display: inline-flex;
    flex: 0 0 39px;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #2856ca,
            #6a88e7
        );
    border-radius: 12px;
    box-shadow:
        0 9px 22px
        rgba(40, 86, 202, 0.18);
}

.nnbk-security-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-security strong,
.nnbk-security small {
    display: block;
}

.nnbk-security strong {
    color: var(--nnbk-ink);
    font-size: 11px;
}

.nnbk-security small {
    margin-top: 3px;
    color: var(--nnbk-muted);
    font-size: 9px;
    line-height: 1.45;
}

.nnbk-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 88px;
    padding:
        16px
        clamp(22px, 4.4vw, 64px);
    background:
        rgba(248, 249, 251, 0.96);
    border-top:
        1px solid
        rgba(20, 22, 25, 0.08);
    gap: 16px;
}

.nnbk-footer-copy {
    max-width: 460px;
    color: var(--nnbk-muted);
    font-size: 9px;
    line-height: 1.45;
}

.nnbk-footer-copy[data-error="true"] {
    color: #b24d2a;
    font-weight: 750;
}

.nnbk-footer-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
    max-width: 100%;
    gap: 9px;
}

.nnbk-footer-actions > .nnbk-button {
    min-width: 0;
}

.nnbk-footer[data-final-step="true"] {
    justify-content: flex-end;
}

.nnbk-footer[data-final-step="true"]
.nnbk-footer-copy {
    display: none;
}

.nnbk-footer[data-final-step="true"]
.nnbk-footer-actions {
    width:
        min(
            100%,
            420px
        );
}

.nnbk-footer[data-final-step="true"]
.nnbk-button--submit {
    display: inline-flex;
    width: 100%;
}

.nnbk-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    min-height: 46px;
    padding:
        0
        18px;
    gap: 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: anywhere;
    cursor: pointer;
    transition:
        transform 180ms ease,
        background 180ms ease,
        box-shadow 180ms ease;
}

.nnbk-button:hover {
    transform:
        translateY(-2px);
}

.nnbk-button--back {
    color: var(--nnbk-text);
    background: #ffffff;
    border:
        1px solid
        rgba(20, 22, 25, 0.13);
}

.nnbk-button--next,
.nnbk-button--submit {
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #2856ca,
            #4e75dc
        );
    border:
        1px solid
        rgba(40, 86, 202, 0.15);
    box-shadow:
        0 10px 24px
        rgba(40, 86, 202, 0.22);
}

.nnbk-button[disabled] {
    opacity: 0.48;
    transform: none;
    cursor: not-allowed;
}

.nnbk-button svg {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    margin-left: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-success {
    display: none;
    min-height: 720px;
    padding:
        clamp(42px, 8vw, 100px);
    text-align: center;
}

.nnbk-success[data-visible="true"] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.nnbk-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #2856ca,
            #6488ec
        );
    border-radius: 50%;
    box-shadow:
        0 18px 45px
        rgba(40, 86, 202, 0.25);
}

.nnbk-success-icon svg {
    width: 31px;
    height: 31px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-success h2 {
    max-width: 800px;
    margin:
        27px
        0
        0;
    color: var(--nnbk-ink);
    font-size:
        clamp(41px, 6vw, 78px);
    font-weight: 650;
    line-height: 0.94;
    letter-spacing: -0.06em;
}

.nnbk-success p {
    max-width: 650px;
    margin:
        20px
        0
        0;
    color: var(--nnbk-muted);
    font-size: 14px;
    line-height: 1.62;
}

.nnbk-success-reference {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    margin-top: 22px;
    padding: 0 13px;
    color: var(--nnbk-blue);
    background: var(--nnbk-blue-soft);
    border:
        1px solid
        rgba(40, 86, 202, 0.12);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
}

.nnbk-success-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 29px;
    gap: 9px;
}

.nnbk-success-actions a {
    text-decoration: none;
}

.nnbk-field-error {
    color: #b24d2a !important;
}

.nnbk-field-error input,
.nnbk-field-error select,
.nnbk-field-error textarea {
    border-color:
        rgba(178, 77, 42, 0.62) !important;
    box-shadow:
        0 0 0 4px
        rgba(178, 77, 42, 0.08) !important;
}

@media (max-width: 1080px) {

    .nnbk-layout {
        grid-template-columns: 1fr;
    }

    .nnbk-sidebar {
        position: sticky;
        z-index: 20;
        top: 8px;
        padding: 10px;
        border-radius: 18px;
    }

    .nnbk-sidebar-label,
    .nnbk-sidebar-summary,
    .nnbk-progress-copy small {
        display: none;
    }

    .nnbk-progress {
        grid-template-columns:
            repeat(6, minmax(0, 1fr));
        gap: 3px;
    }

    .nnbk-progress-button {
        grid-template-columns: 1fr;
        justify-items: center;
        min-height: 53px;
        padding: 5px 2px;
        text-align: center;
        gap: 2px;
    }

    .nnbk-progress-number {
        width: 27px;
        height: 27px;
        font-size: 9px;
    }

    .nnbk-progress-copy strong {
        font-size: 8px;
    }

    .nnbk-package-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .nnbk-package-dots {
        align-items: center;
        justify-content: center;
        min-height: 26px;
        margin:
            0
            0
            14px;
        gap: 7px;
    }

    .nnbk-package-dots:not([hidden]) {
        display: flex;
    }

    .nnbk-package-dot {
        width: 8px;
        height: 8px;
        padding: 0;
        background:
            rgba(40, 86, 202, 0.20);
        border: 0;
        border-radius: 999px;
        cursor: pointer;
        transition:
            width 180ms ease,
            background 180ms ease,
            transform 180ms ease;
    }

    .nnbk-package-dot[aria-current="true"] {
        width: 23px;
        background: var(--nnbk-blue);
    }

}

@media (min-width: 721px) {
    .nnbk-package-dots {
        display: none !important;
    }
}

@media (max-width: 720px) {

    .nnbk-shell {
        width:
            calc(100% - 20px);
    }

    .nnbk-hero {
        padding:
            24px
            0
            12px;
    }

    .nnbk-hero-card {
        min-height: 470px;
        padding:
            34px
            23px;
        border-radius: 27px;
    }

    .nnbk-hero h1 {
        font-size:
            clamp(47px, 14.2vw, 68px);
    }

    .nnbk-hero-lead {
        margin-top: 22px;
        font-size: 15px;
    }

    .nnbk-main {
        padding-top: 10px;
    }

    .nnbk-layout {
        gap: 10px;
    }

    .nnbk-sidebar {
        top: 4px;
        margin-inline: 2px;
    }

    .nnbk-progress-copy strong {
        font-size: 7px;
    }

    .nnbk-wizard {
        border-radius: 27px;
    }

    .nnbk-panel {
        min-height: 650px;
        padding:
            31px
            18px
            26px;
    }

    .nnbk-panel-head {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 28px;
        gap: 12px;
    }

    .nnbk-panel h2 {
        font-size:
            clamp(38px, 11.2vw, 53px);
    }

    .nnbk-service-grid {
        display: flex;
        width:
            calc(100% + 36px);
        margin-inline: -18px;
        padding:
            2px
            18px
            18px;
        gap: 11px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
    }

    .nnbk-service-card {
        -webkit-tap-highlight-color:
            rgba(40, 86, 202, 0.16);
    }

    .nnbk-service-card:focus-visible {
        border-color:
            var(--nnbk-blue) !important;
        outline-color:
            rgba(40, 86, 202, 0.38);
    }

    .nnbk-service-grid::-webkit-scrollbar,
    .nnbk-package-grid::-webkit-scrollbar {
        display: none;
    }

    .nnbk-service-card,
    .nnbk-service-card:first-child {
        flex:
            0 0
            calc(100vw - 64px);
        min-height: 440px;
        scroll-snap-align: center;
    }

    .nnbk-service-copy {
        right: 19px;
        bottom: 19px;
        left: 19px;
    }

    .nnbk-service-copy strong {
        font-size: 29px;
    }

    .nnbk-package-grid {
        display: flex;
        width:
            calc(100% + 36px);
        margin-inline: -18px;
        padding:
            4px
            18px
            20px;
        gap: 11px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
    }

    .nnbk-package-card {
        flex:
            0 0
            calc(100vw - 60px);
        min-height: 520px;
        scroll-snap-align: center;
    }

    .nnbk-date-control input {
        min-height: 58px;
        padding-right: 64px;
        font-size: 16px;
    }

    .nnbk-calendar-button {
        top: 7px;
        right: 7px;
        width: 44px;
        height: 44px;
        border-radius: 13px;
    }

    .nnbk-calendar-modal {
        align-items: end;
        padding: 10px;
    }

    .nnbk-calendar-dialog {
        width: 100%;
        max-height:
            calc(100dvh - 20px);
        padding:
            21px
            16px
            18px;
        border-radius: 26px;
        overflow-y: auto;
    }

    .nnbk-calendar-weekdays,
    .nnbk-calendar-grid {
        gap: 4px;
    }

    .nnbk-calendar-day {
        min-height: 42px;
        border-radius: 12px;
        font-size: 12px;
    }

    .nnbk-check-row {
        grid-template-columns:
            29px
            minmax(0, 1fr);
        align-items: flex-start;
        padding: 16px 14px;
        gap: 13px;
    }

    .nnbk-extra-card {
        grid-template-columns:
            29px
            minmax(0, 1fr);
    }

    .nnbk-check-row input[type="checkbox"],
    .nnbk-extra-card input[type="checkbox"] {
        flex-basis: 29px !important;
        width: 29px !important;
        height: 29px !important;
        min-width: 29px !important;
        min-height: 29px !important;
        max-width: 29px !important;
        max-height: 29px !important;
        border-radius: 9px;
    }

    .nnbk-check-row span {
        font-size: 12px;
        line-height: 1.52;
    }

    .nnbk-school-extras,
    .nnbk-form-grid,
    .nnbk-choice-grid,
    .nnbk-choice-grid--locations,
    .nnbk-summary {
        grid-template-columns: 1fr;
    }

    .nnbk-field--full {
        grid-column: auto;
    }

    .nnbk-summary-list li {
        grid-template-columns:
            minmax(95px, 0.5fr)
            minmax(0, 1fr);
    }

    .nnbk-footer {
        align-items: stretch;
        flex-direction: column;
        padding:
            15px
            18px
            18px;
    }

    .nnbk-footer-copy {
        order: 2;
        text-align: center;
    }

    .nnbk-footer-actions {
        display: flex;
        flex-wrap: nowrap;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .nnbk-footer[data-final-step="true"]
    .nnbk-footer-actions {
        display: block;
        width: 100%;
        max-width: none;
    }

    .nnbk-footer[data-final-step="true"]
    .nnbk-button--submit {
        display: flex;
        width: 100% !important;
        max-width: 100%;
        margin: 0;
    }

    .nnbk-button {
        flex:
            1
            1
            0;
        width: 100%;
        min-width: 0;
        min-height: 48px;
        padding:
            13px
            12px;
        line-height: 1.2;
        text-align: center;
        white-space: normal;
    }

    .nnbk-button svg {
        flex: 0 0 17px;
    }

    .nnbk-button--submit {
        flex:
            1
            1
            100%;
        min-height: 54px;
        font-size: 11px;
        letter-spacing: -0.01em;
    }

    .nnbk-success {
        min-height: 650px;
        padding:
            42px
            20px;
    }
}

@media (max-width: 430px) {

    .nnbk-progress-copy strong {
        display: none;
    }

    .nnbk-progress-button {
        min-height: 42px;
    }

    .nnbk-progress-number {
        width: 29px;
        height: 29px;
    }

    .nnbk-service-card,
    .nnbk-service-card:first-child {
        flex-basis:
            calc(100vw - 50px);
    }

    .nnbk-package-card {
        flex-basis:
            calc(100vw - 47px);
    }

    .nnbk-success-actions {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .nnbk-success-actions .nnbk-button {
        width: 100%;
    }
}


/* =========================================================
   2.1.4 – RESZPONZÍV STABILITÁS, CSOMAGLAPOZÁS ÉS IDŐPONT UI
========================================================= */

/* A globálisan fix HTML-header alatt mindig maradjon hely. */
.nnbk {
    padding-top: var(--nn-header-height, 84px);
}

.nnbk-panel {
    scroll-margin-top:
        calc(var(--nn-header-height, 84px) + 24px);
}

.nnbk-sidebar {
    top:
        calc(var(--nn-header-height, 84px) + 14px);
}

/* Elementor- és témastílusokkal szembeni méretbiztonság. */
.nnbk-shell,
.nnbk-layout,
.nnbk-sidebar,
.nnbk-wizard,
.nnbk-panel,
.nnbk-panel-head,
.nnbk-form-grid,
.nnbk-field,
.nnbk-choice-grid,
.nnbk-choice,
.nnbk-school-extras,
.nnbk-extra-card,
.nnbk-summary,
.nnbk-summary-card,
.nnbk-footer,
.nnbk-footer-actions {
    min-width: 0;
    max-width: 100%;
}

.nnbk h1,
.nnbk h2,
.nnbk h3,
.nnbk p,
.nnbk strong,
.nnbk small,
.nnbk span,
.nnbk label,
.nnbk button,
.nnbk a {
    overflow-wrap: anywhere;
}

/* Csomaglapozó: látható asztali és mobilnézetben is. */
.nnbk-package-navigation {
    display: grid;
    grid-template-columns:
        minmax(150px, 0.78fr)
        minmax(190px, 1fr)
        minmax(150px, 0.78fr);
    align-items: stretch;
    width: 100%;
    margin: 0 0 10px;
    padding: 9px;
    background:
        linear-gradient(
            135deg,
            rgba(40, 86, 202, 0.09),
            rgba(111, 83, 224, 0.06)
        );
    border:
        1px solid
        rgba(40, 86, 202, 0.14);
    border-radius: 20px;
    box-shadow:
        inset 0 1px 0
        rgba(255, 255, 255, 0.78);
    gap: 9px;
}

.nnbk-package-navigation[hidden] {
    display: none !important;
}

.nnbk-package-nav-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 48px;
    margin: 0;
    padding: 10px 14px;
    gap: 8px;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #2856ca,
            #5579dc
        );
    border:
        1px solid
        rgba(40, 86, 202, 0.18);
    border-radius: 14px;
    box-shadow:
        0 10px 24px
        rgba(40, 86, 202, 0.18);
    font-size: 11px;
    font-weight: 820;
    line-height: 1.2;
    cursor: pointer;
    transition:
        transform 180ms ease,
        box-shadow 180ms ease,
        opacity 180ms ease;
}

.nnbk-package-nav-button:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow:
        0 14px 30px
        rgba(40, 86, 202, 0.26);
}

.nnbk-package-nav-button:disabled {
    opacity: 0.34;
    box-shadow: none;
    cursor: not-allowed;
}

.nnbk-package-nav-button svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-package-navigation-copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 6px 10px;
    text-align: center;
}

.nnbk-package-navigation-copy strong,
.nnbk-package-navigation-copy small {
    display: block;
}

.nnbk-package-navigation-copy strong {
    color: var(--nnbk-ink);
    font-size: 12px;
    letter-spacing: -0.015em;
}

.nnbk-package-navigation-copy small {
    margin-top: 3px;
    color: var(--nnbk-muted);
    font-size: 9px;
    line-height: 1.35;
}

.nnbk-package-dots:not([hidden]) {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 27px;
    margin: 0 0 13px;
    gap: 7px;
}

.nnbk-package-dot {
    width: 9px;
    height: 9px;
    margin: 0;
    padding: 0;
    background: rgba(40, 86, 202, 0.20);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    transition:
        width 180ms ease,
        background 180ms ease,
        transform 180ms ease;
}

.nnbk-package-dot[aria-current="true"] {
    width: 30px;
    background: var(--nnbk-blue);
    box-shadow:
        0 5px 13px
        rgba(40, 86, 202, 0.22);
}

.nnbk-package-card--navigated {
    animation:
        nnbkPackageNavigatePulse
        500ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes nnbkPackageNavigatePulse {
    0% {
        transform: scale(1);
    }
    45% {
        transform: scale(0.985);
    }
    100% {
        transform: scale(1);
    }
}

/* Fancy, de natív és stabil időválasztó. */
.nnbk-time-control {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns:
        48px
        minmax(0, 1fr)
        42px;
    align-items: center;
    min-width: 0;
    min-height: 62px;
    padding: 6px;
    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.98),
            rgba(235, 241, 255, 0.96)
        );
    border:
        1px solid
        rgba(40, 86, 202, 0.18);
    border-radius: 18px;
    box-shadow:
        0 12px 30px
        rgba(30, 48, 96, 0.08),
        inset 0 1px 0
        rgba(255, 255, 255, 0.9);
    gap: 4px;
    overflow: hidden;
    transition:
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.nnbk-time-control--alternative {
    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.98),
            rgba(244, 239, 255, 0.96)
        );
    border-color:
        rgba(104, 76, 202, 0.17);
}

.nnbk-time-control:focus-within {
    border-color:
        rgba(40, 86, 202, 0.70);
    box-shadow:
        0 0 0 4px
        rgba(40, 86, 202, 0.09),
        0 16px 34px
        rgba(30, 48, 96, 0.12);
    transform: translateY(-1px);
}

.nnbk-time-icon {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #2856ca,
            #6d8ce4
        );
    border-radius: 13px;
    box-shadow:
        0 9px 20px
        rgba(40, 86, 202, 0.23);
}

.nnbk-time-control--alternative
.nnbk-time-icon {
    background:
        linear-gradient(
            135deg,
            #6048bb,
            #8d74dc
        );
    box-shadow:
        0 9px 20px
        rgba(96, 72, 187, 0.21);
}

.nnbk-time-icon svg,
.nnbk-time-chevron svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nnbk-field .nnbk-time-control select {
    position: relative;
    z-index: 2;
    width: 100%;
    min-width: 0;
    min-height: 48px;
    margin: 0;
    padding: 0 8px;
    color: var(--nnbk-ink);
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none !important;
    outline: 0;
    appearance: none;
    -webkit-appearance: none;
    font-size: 15px;
    font-weight: 720;
    cursor: pointer;
}

.nnbk-time-chevron {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: var(--nnbk-blue);
    background:
        rgba(255, 255, 255, 0.72);
    border:
        1px solid
        rgba(40, 86, 202, 0.12);
    border-radius: 12px;
    pointer-events: none;
}

.nnbk-time-control--alternative
.nnbk-time-chevron {
    color: #6048bb;
    border-color:
        rgba(96, 72, 187, 0.12);
}

/* A naptár minden kijelzőn ténylegesen középre kerül. */
.nnbk-calendar-modal {
    display: flex;
    align-items: center !important;
    justify-content: center !important;
    padding:
        max(16px, env(safe-area-inset-top))
        max(14px, env(safe-area-inset-right))
        max(16px, env(safe-area-inset-bottom))
        max(14px, env(safe-area-inset-left));
    overflow: auto;
}

.nnbk-calendar-dialog {
    width: min(520px, 100%);
    max-width: 100%;
    max-height:
        calc(
            100dvh -
            max(32px, env(safe-area-inset-top)) -
            max(32px, env(safe-area-inset-bottom))
        );
    margin: auto;
    overflow-y: auto;
    overscroll-behavior: contain;
}

@media (max-width: 1024px) {

    .nnbk {
        padding-top: var(--nn-header-height, 68px);
    }

    .nnbk-panel {
        scroll-margin-top:
            calc(var(--nn-header-height, 68px) + 76px);
    }

    .nnbk-sidebar {
        top:
            calc(var(--nn-header-height, 68px) + 6px);
    }

    .nnbk-package-navigation {
        grid-template-columns:
            minmax(132px, 0.78fr)
            minmax(150px, 1fr)
            minmax(132px, 0.78fr);
    }
}

@media (max-width: 720px) {

    .nnbk {
        overflow-x: hidden;
    }

    .nnbk-shell {
        width: calc(100% - 16px);
    }

    .nnbk-hero-card {
        min-height: 0;
        padding: 34px 20px 38px;
    }

    .nnbk-hero h1 {
        font-size:
            clamp(42px, 12.4vw, 58px);
        line-height: 0.96;
        letter-spacing: -0.058em;
    }

    .nnbk-panel {
        min-height: 0;
        padding: 28px 16px 24px;
    }

    .nnbk-panel h2 {
        font-size:
            clamp(34px, 9.8vw, 46px);
        line-height: 0.98;
        letter-spacing: -0.05em;
    }

    .nnbk-service-grid,
    .nnbk-package-grid {
        width: 100%;
        max-width: 100%;
        margin-inline: 0;
        padding: 4px 2px 18px;
        scroll-padding-inline: 2px;
        gap: 10px;
    }

    .nnbk-service-card,
    .nnbk-service-card:first-child {
        flex:
            0 0
            88%;
        width: 88%;
        max-width: 88%;
        min-height: 420px;
    }

    .nnbk-package-card {
        flex:
            0 0
            91%;
        width: 91%;
        max-width: 91%;
        min-height: 0;
        padding: 21px;
    }

    .nnbk-package-navigation {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
        padding: 8px;
        border-radius: 18px;
        gap: 8px;
    }

    .nnbk-package-navigation-copy {
        grid-column: 1 / -1;
        grid-row: 1;
        min-height: 47px;
        padding: 4px 7px 8px;
    }

    .nnbk-package-nav-button:first-of-type {
        grid-column: 1;
        grid-row: 2;
    }

    .nnbk-package-nav-button:last-of-type {
        grid-column: 2;
        grid-row: 2;
    }

    .nnbk-package-nav-button {
        min-height: 50px;
        padding: 10px 8px;
        font-size: 10px;
    }

    .nnbk-form-grid,
    .nnbk-school-extras,
    .nnbk-choice-grid,
    .nnbk-choice-grid--locations,
    .nnbk-summary {
        width: 100%;
        grid-template-columns: minmax(0, 1fr);
    }

    .nnbk-field input:not([type="checkbox"]):not([type="radio"]),
    .nnbk-field select,
    .nnbk-field textarea {
        max-width: 100%;
        font-size: 16px;
    }

    .nnbk-date-control,
    .nnbk-time-control {
        width: 100%;
        max-width: 100%;
    }

    .nnbk-time-control {
        grid-template-columns:
            46px
            minmax(0, 1fr)
            40px;
        min-height: 60px;
    }

    .nnbk-time-icon {
        width: 42px;
        height: 42px;
    }

    .nnbk-footer-actions {
        display: grid;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 8px;
    }

    .nnbk-footer-actions .nnbk-button {
        width: 100%;
        min-width: 0;
        margin: 0;
    }

    .nnbk-footer[data-final-step="true"]
    .nnbk-footer-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .nnbk-calendar-modal {
        align-items: center !important;
        justify-content: center !important;
        padding:
            max(14px, env(safe-area-inset-top))
            10px
            max(14px, env(safe-area-inset-bottom));
    }

    .nnbk-calendar-dialog {
        width: min(430px, 100%);
        max-height:
            calc(
                100dvh -
                max(28px, env(safe-area-inset-top)) -
                max(28px, env(safe-area-inset-bottom))
            );
        padding: 19px 14px 16px;
        border-radius: 24px;
    }

    .nnbk-calendar-day {
        min-height: 40px;
    }

    .nnbk-summary-list li {
        grid-template-columns: minmax(0, 1fr);
        gap: 5px;
    }

    .nnbk-summary-list strong {
        text-align: left;
    }
}

@media (max-width: 420px) {

    .nnbk-shell {
        width: calc(100% - 12px);
    }

    .nnbk-progress {
        gap: 2px;
    }

    .nnbk-progress-button {
        min-width: 0;
        min-height: 40px;
        padding: 4px 1px;
    }

    .nnbk-progress-number {
        width: 27px;
        height: 27px;
        font-size: 8px;
    }

    .nnbk-package-nav-button span {
        font-size: 9px;
    }

    .nnbk-time-control {
        grid-template-columns:
            43px
            minmax(0, 1fr)
            37px;
        padding: 5px;
    }

    .nnbk-time-icon {
        width: 39px;
        height: 39px;
        border-radius: 12px;
    }

    .nnbk-time-chevron {
        width: 35px;
        height: 35px;
    }

    .nnbk-field .nnbk-time-control select {
        padding: 0 4px;
        font-size: 14px;
    }

    .nnbk-footer-actions {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {

    .nnbk *,
    .nnbk *::before,
    .nnbk *::after {
        animation: none !important;
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

/* =========================================================
   NNBK 3.0 – RESPONSIVE BOOKING, BILLING AND PAYMENT UI
========================================================= */
html,body{max-width:100%;overflow-x:clip}.nnbk-v3,.nnbk-v3 *{box-sizing:border-box}.nnbk-v3{--nnbk-blue:#2856ca;--nnbk-blue-dark:#1f46ad;--nnbk-ink:#141619;--nnbk-muted:#667085;--nnbk-line:#e2e7f0;--nnbk-purple-a:#6335dc;--nnbk-purple-b:#ae3fd5;width:100%;max-width:100%;overflow:clip;padding-top:clamp(68px,7vw,92px)}body.admin-bar .nnbk-v3{padding-top:clamp(68px,7vw,92px)}.nnbk-v3 .nnbk-shell{width:min(1320px,calc(100% - 32px));max-width:100%;margin-inline:auto}.nnbk-v3 .nnbk-layout{min-width:0}.nnbk-v3 .nnbk-wizard,.nnbk-v3 .nnbk-panel,.nnbk-v3 .nnbk-panel-head,.nnbk-v3 .nnbk-panel-heading{min-width:0;max-width:100%}.nnbk-v3 h1,.nnbk-v3 h2,.nnbk-v3 h3,.nnbk-v3 p,.nnbk-v3 span,.nnbk-v3 small,.nnbk-v3 strong,.nnbk-v3 label,.nnbk-v3 li{overflow-wrap:anywhere;word-break:normal}.nnbk-v3 button,.nnbk-v3 input,.nnbk-v3 select,.nnbk-v3 textarea{max-width:100%;font:inherit}.nnbk-v3 .nnbk-panel[hidden]{display:none!important}

.nnbk-service-rail-wrap{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:10px;margin:8px 0 8px;max-width:100%}.nnbk-service-rail{display:flex;gap:10px;min-width:0;max-width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain;padding:5px 2px 8px}.nnbk-service-rail::-webkit-scrollbar{display:none}.nnbk-service-chip{flex:0 0 auto;min-height:46px;padding:11px 17px;border:1px solid #dce3ef;border-radius:999px;background:#fff;color:#263047;font-weight:700;white-space:nowrap;scroll-snap-align:center;cursor:pointer;box-shadow:0 8px 22px rgba(20,22,25,.05);transition:.22s ease}.nnbk-service-chip[aria-selected="true"]{color:#fff;background:linear-gradient(135deg,var(--nnbk-blue),#5d39c8);border-color:transparent;box-shadow:0 12px 30px rgba(40,86,202,.28);transform:translateY(-1px)}.nnbk-rail-arrow{display:grid!important;place-items:center;width:46px!important;height:46px!important;min-width:46px!important;padding:0!important;border:1px solid #dce3ef!important;border-radius:50%!important;background:#fff!important;color:var(--nnbk-ink)!important;font-size:27px!important;line-height:1!important;cursor:pointer;box-shadow:0 8px 20px rgba(20,22,25,.07)!important}.nnbk-service-indicators{display:flex;justify-content:center;gap:6px;margin:0 0 22px}.nnbk-service-indicator{width:18px;height:4px;border-radius:999px;background:#dce2ed;transition:.2s}.nnbk-service-indicator[data-active="true"]{width:38px;background:var(--nnbk-blue)}

.nnbk-v3 .nnbk-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}.nnbk-v3 .nnbk-service-card{position:relative;display:grid;grid-template-rows:minmax(190px,1fr) auto;min-width:0;min-height:390px;height:auto!important;overflow:hidden;border-radius:25px;text-align:left}.nnbk-v3 .nnbk-service-card img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover}.nnbk-v3 .nnbk-service-copy{position:relative;z-index:2;align-self:end;display:grid;gap:7px;width:100%;min-width:0;padding:90px 20px 22px;background:linear-gradient(180deg,transparent,rgba(8,12,22,.94));color:#fff}.nnbk-v3 .nnbk-service-copy>span{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.nnbk-v3 .nnbk-service-copy strong{font-size:clamp(20px,2vw,29px);line-height:1.08}.nnbk-v3 .nnbk-service-copy small{display:block;min-height:0!important;max-height:none!important;font-size:14px;line-height:1.5;color:rgba(255,255,255,.82)}.nnbk-v3 .nnbk-service-index,.nnbk-v3 .nnbk-service-arrow{z-index:3}

.nnbk-v3 .nnbk-package-navigation{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;margin:18px 0 12px}.nnbk-v3 .nnbk-package-nav-button{min-height:48px;white-space:nowrap}.nnbk-v3 .nnbk-package-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(min(88%,390px),1fr);grid-template-columns:none!important;gap:18px;max-width:100%;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scrollbar-width:none;padding:8px 3px 20px;overscroll-behavior-inline:contain}.nnbk-v3 .nnbk-package-grid::-webkit-scrollbar{display:none}.nnbk-v3 .nnbk-package-card{display:flex;flex-direction:column;min-width:0;height:auto!important;min-height:100%;max-height:none!important;overflow:visible;scroll-snap-align:center}.nnbk-v3 .nnbk-package-card h3,.nnbk-v3 .nnbk-package-description,.nnbk-v3 .nnbk-package-card li{max-width:100%;white-space:normal!important}.nnbk-v3 .nnbk-package-card ul{flex:1;margin-bottom:22px}.nnbk-v3 .nnbk-package-card li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start}.nnbk-v3 .nnbk-package-select{width:100%;min-height:50px;margin-top:auto}.nnbk-v3 .nnbk-package-dots{display:flex!important;justify-content:center;gap:7px;margin:0 0 6px}.nnbk-v3 .nnbk-package-dot{width:22px!important;height:5px!important;min-height:5px!important;padding:0!important;border:0!important;border-radius:999px!important;background:#d7deea!important}.nnbk-v3 .nnbk-package-dot[data-active="true"]{width:42px!important;background:var(--nnbk-blue)!important}.nnbk-v3 .nnbk-school-extras{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.nnbk-v3 .nnbk-school-extra-head{grid-column:1/-1}.nnbk-v3 .nnbk-extra-card{min-width:0;height:auto!important}.nnbk-v3 .nnbk-extra-card>span{min-width:0}

.nnbk-v3 .nnbk-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.nnbk-v3 .nnbk-field{min-width:0}.nnbk-v3 .nnbk-field--full{grid-column:1/-1}.nnbk-v3 .nnbk-field input,.nnbk-v3 .nnbk-field select,.nnbk-v3 .nnbk-field textarea{width:100%!important;min-width:0!important;min-height:52px}.nnbk-v3 .nnbk-field textarea{min-height:120px;resize:vertical}.nnbk-v3 .nnbk-field-error input,.nnbk-v3 .nnbk-field-error select,.nnbk-v3 .nnbk-field-error textarea,.nnbk-v3 .nnbk-field-error button{outline:2px solid #d63638!important;outline-offset:2px}.nnbk-time-grid{align-items:end}.nnbk-date-picker-button,.nnbk-fancy-time{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;width:100%!important;min-width:0;min-height:58px;padding:12px 16px!important;border:1px solid rgba(40,86,202,.16)!important;border-radius:18px!important;background:linear-gradient(135deg,#f9fbff,#eef3ff)!important;color:#192540!important;text-align:left!important;box-shadow:0 12px 30px rgba(40,86,202,.09)!important}.nnbk-date-picker-button span:nth-child(2),.nnbk-fancy-time select{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}.nnbk-date-picker-button--alternative,.nnbk-fancy-time--alternative{color:#fff!important;background:linear-gradient(135deg,var(--nnbk-purple-a),var(--nnbk-purple-b))!important;border-color:rgba(255,255,255,.22)!important;box-shadow:0 14px 34px rgba(105,53,216,.28)!important}.nnbk-date-picker-button--alternative:hover,.nnbk-date-picker-button--alternative:focus-visible,.nnbk-fancy-time--alternative:focus-within{transform:translateY(-1px);box-shadow:0 18px 40px rgba(105,53,216,.36)!important}.nnbk-fancy-time select{appearance:none;border:0!important;outline:0!important;background:transparent!important;color:inherit!important;padding:0!important;height:auto!important;min-height:34px!important}.nnbk-fancy-time option{color:#141619;background:#fff}.nnbk-date-icon,.nnbk-fancy-time-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:rgba(40,86,202,.11);font-size:18px}.nnbk-date-picker-button--alternative .nnbk-date-icon,.nnbk-fancy-time--alternative .nnbk-fancy-time-icon{background:rgba(255,255,255,.16)}

.nnbk-v3 .nnbk-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.nnbk-v3 .nnbk-choice{min-width:0;height:auto!important;min-height:130px}.nnbk-v3 .nnbk-choice span{min-width:0}.nnbk-billing-card{margin-top:25px;padding:clamp(18px,3vw,28px);border:1px solid var(--nnbk-line);border-radius:25px;background:#f8faff}.nnbk-billing-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:22px}.nnbk-billing-switch label{position:relative;min-width:0}.nnbk-billing-switch input{position:absolute;opacity:0}.nnbk-billing-switch span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 14px;border:1px solid #dce3ef;border-radius:15px;background:#fff;font-weight:750;text-align:center;cursor:pointer}.nnbk-billing-switch input:checked+span{background:var(--nnbk-blue);border-color:var(--nnbk-blue);color:#fff;box-shadow:0 10px 24px rgba(40,86,202,.22)}.nnbk-v3 .nnbk-consent-list{display:grid;gap:10px;margin-top:22px}.nnbk-v3 .nnbk-check-row{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;gap:11px!important;align-items:start!important;min-width:0;padding:13px 14px;border:1px solid #e3e8f1;border-radius:14px;background:#fff}.nnbk-v3 .nnbk-check-row input{width:20px!important;height:20px!important;min-width:20px!important;margin:1px 0 0!important}.nnbk-v3 .nnbk-check-row span{min-width:0;line-height:1.5}

.nnbk-payment-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:22px;align-items:start}.nnbk-payment-methods{display:grid;gap:12px}.nnbk-payment-method{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 28px;align-items:center;gap:14px;min-width:0;padding:17px;border:1px solid var(--nnbk-line);border-radius:19px;background:#fff;cursor:pointer;box-shadow:0 8px 24px rgba(20,22,25,.045)}.nnbk-payment-method input{position:absolute;opacity:0}.nnbk-payment-method[data-selected="true"]{border-color:var(--nnbk-blue);background:#f2f6ff;box-shadow:0 14px 34px rgba(40,86,202,.13)}.nnbk-payment-method.is-disabled{opacity:.55;cursor:not-allowed}.nnbk-payment-method-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#eef3ff;color:var(--nnbk-blue);font-size:21px;font-weight:800}.nnbk-payment-method strong,.nnbk-payment-method small{display:block}.nnbk-payment-method small{margin-top:4px;color:var(--nnbk-muted);line-height:1.4}.nnbk-payment-check{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#dfe5ef;color:transparent}.nnbk-payment-method[data-selected="true"] .nnbk-payment-check{background:var(--nnbk-blue);color:#fff}.nnbk-coupon-box{margin-top:18px;padding:18px;border:1px solid var(--nnbk-line);border-radius:19px;background:#fff}.nnbk-coupon-box>label{display:block;margin-bottom:8px;font-weight:750}.nnbk-coupon-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.nnbk-coupon-row input{min-width:0;min-height:50px}.nnbk-coupon-row button{min-height:50px;padding:10px 17px;border:0;border-radius:13px;background:var(--nnbk-ink);color:#fff;font-weight:750}.nnbk-coupon-box p{min-height:20px;margin:10px 0 0;color:#1e7a49;font-size:13px}.nnbk-coupon-box p[data-error="true"]{color:#b42318}.nnbk-payment-summary{position:sticky;top:105px;padding:24px;border-radius:25px;background:linear-gradient(145deg,#141619,#24315a);color:#fff;box-shadow:0 24px 60px rgba(20,22,25,.21)}.nnbk-payment-summary>span{display:block;margin-bottom:18px;color:#abc0ff;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.nnbk-payment-summary>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.11)}.nnbk-payment-summary small{color:rgba(255,255,255,.67)}.nnbk-payment-summary .nnbk-total-row{padding-top:18px;border:0}.nnbk-payment-summary .nnbk-total-row strong{font-size:28px}.nnbk-payment-summary p{margin:18px 0 0;color:rgba(255,255,255,.62);font-size:12px;line-height:1.5}

.nnbk-v3 .nnbk-summary{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px}.nnbk-v3 .nnbk-summary-list li{display:grid;grid-template-columns:minmax(120px,.42fr) minmax(0,.58fr);gap:14px;align-items:start}.nnbk-v3 .nnbk-summary-list strong{text-align:right;min-width:0}.nnbk-v3 .nnbk-footer{position:relative!important;bottom:auto!important;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:100%;margin-top:22px;padding:16px 0;background:transparent!important}.nnbk-v3 .nnbk-footer-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.nnbk-v3 .nnbk-button{min-height:50px;white-space:normal;text-align:center}.nnbk-v3 .nnbk-notice:not(:empty){display:block;margin-top:18px;padding:14px;border-radius:14px;background:#fff0ef;color:#a42828}

.nnbk-calendar-modal[hidden]{display:none!important}.nnbk-calendar-modal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow:auto}.nnbk-calendar-backdrop{position:absolute;inset:0;background:rgba(8,11,18,.67);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.nnbk-calendar-dialog{position:relative;z-index:1;box-sizing:border-box;width:min(100%,430px);max-height:calc(100dvh - 32px);overflow:auto;padding:20px;border:1px solid rgba(255,255,255,.65);border-radius:27px;background:rgba(255,255,255,.97);box-shadow:0 30px 100px rgba(0,0,0,.35);animation:nnbkCalendarIn .22s ease-out}.nnbk-calendar-dialog header{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:10px}.nnbk-calendar-dialog header h2{margin:0;text-align:center;font-size:20px;text-transform:capitalize}.nnbk-calendar-dialog header button{width:46px!important;height:46px!important;padding:0!important;border:0!important;border-radius:14px!important;background:#eef3ff!important;color:#2856ca!important;font-size:28px!important}.nnbk-calendar-weekdays,.nnbk-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.nnbk-calendar-weekdays{margin:18px 0 7px;color:#748098;font-size:11px;font-weight:800;text-align:center}.nnbk-calendar-days button,.nnbk-calendar-blank{aspect-ratio:1;min-width:0!important;min-height:0!important;padding:0!important;border:0!important;border-radius:12px!important;background:#f4f6fa!important;color:#202a3e!important;font-weight:700}.nnbk-calendar-days button:hover:not(:disabled),.nnbk-calendar-days button:focus-visible{background:#dfe8ff!important;color:#2856ca!important}.nnbk-calendar-days button[data-selected="true"]{background:#2856ca!important;color:#fff!important}.nnbk-calendar-days button[data-today="true"]{box-shadow:inset 0 0 0 2px #2856ca}.nnbk-calendar-days button:disabled{opacity:.28;cursor:not-allowed}.nnbk-calendar-dialog footer{display:flex;justify-content:flex-end;margin-top:15px}.nnbk-calendar-cancel{min-height:44px;padding:10px 17px;border:0;border-radius:13px;background:#141619;color:#fff;font-weight:750}.nnbk-modal-open{overflow:hidden!important}@keyframes nnbkCalendarIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}

@media(max-width:1024px){.nnbk-v3{padding-top:82px}.nnbk-v3 .nnbk-layout{grid-template-columns:1fr}.nnbk-v3 .nnbk-sidebar{position:static;max-width:100%;overflow:hidden}.nnbk-v3 .nnbk-progress{display:flex;overflow-x:auto;scrollbar-width:none;gap:8px;padding-bottom:7px}.nnbk-v3 .nnbk-progress::-webkit-scrollbar{display:none}.nnbk-v3 .nnbk-progress li{flex:0 0 auto}.nnbk-v3 .nnbk-progress-button{min-width:155px}.nnbk-v3 .nnbk-sidebar-summary{display:none}.nnbk-v3 .nnbk-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nnbk-payment-summary{position:static}.nnbk-payment-layout,.nnbk-v3 .nnbk-summary{grid-template-columns:1fr}.nnbk-v3 .nnbk-package-grid{grid-auto-columns:minmax(min(82%,380px),1fr)}}

@media(max-width:767px){.nnbk-v3{padding-top:76px}.nnbk-v3 .nnbk-shell{width:min(100% - 20px,1320px)}.nnbk-v3 .nnbk-hero-card,.nnbk-v3 .nnbk-panel{padding-inline:clamp(15px,4.5vw,22px)!important}.nnbk-v3 .nnbk-hero-card h1{font-size:clamp(38px,12vw,58px);line-height:.98}.nnbk-v3 .nnbk-hero-trust{display:grid;grid-template-columns:1fr;gap:7px}.nnbk-service-rail-wrap{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px}.nnbk-rail-arrow{width:38px!important;height:38px!important;min-width:38px!important;font-size:23px!important}.nnbk-service-chip{min-height:42px;padding:9px 14px;font-size:13px}.nnbk-v3 .nnbk-service-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:13px;padding:2px 2px 14px;scrollbar-width:none}.nnbk-v3 .nnbk-service-grid::-webkit-scrollbar{display:none}.nnbk-v3 .nnbk-service-card{flex:0 0 min(84vw,330px);min-height:385px;scroll-snap-align:center}.nnbk-v3 .nnbk-package-navigation{grid-template-columns:1fr 1fr}.nnbk-v3 .nnbk-package-navigation-copy{grid-column:1/-1;grid-row:1;text-align:center}.nnbk-v3 .nnbk-package-nav-button{width:100%;justify-content:center}.nnbk-v3 .nnbk-package-grid{grid-auto-columns:calc(100% - 18px);gap:12px}.nnbk-v3 .nnbk-form-grid,.nnbk-v3 .nnbk-choice-grid,.nnbk-v3 .nnbk-school-extras,.nnbk-billing-switch{grid-template-columns:1fr}.nnbk-v3 .nnbk-field--full,.nnbk-v3 .nnbk-school-extra-head{grid-column:auto}.nnbk-date-picker-button,.nnbk-fancy-time{min-height:56px}.nnbk-payment-layout{gap:16px}.nnbk-coupon-row{grid-template-columns:1fr}.nnbk-coupon-row button{width:100%}.nnbk-v3 .nnbk-summary-list li{grid-template-columns:1fr;gap:4px}.nnbk-v3 .nnbk-summary-list strong{text-align:left}.nnbk-v3 .nnbk-footer{align-items:stretch;flex-direction:column}.nnbk-v3 .nnbk-footer-copy{font-size:12px}.nnbk-v3 .nnbk-footer-actions{display:grid;grid-template-columns:1fr 1.35fr;width:100%}.nnbk-v3 .nnbk-footer-actions .nnbk-button{width:100%;min-width:0;padding:12px 9px!important}.nnbk-v3 .nnbk-footer-actions .nnbk-button[hidden]{display:none!important}.nnbk-v3 .nnbk-button--submit{grid-column:1/-1}.nnbk-calendar-dialog{padding:16px;border-radius:23px}.nnbk-calendar-weekdays,.nnbk-calendar-days{gap:3px}.nnbk-calendar-days button{border-radius:9px!important}.elementor-widget-container:has(.nnbk-v3),.elementor-element:has(>.elementor-widget-container>.nnbk-v3){max-width:100%!important;overflow:visible!important}}

@media(max-width:430px){.nnbk-v3 .nnbk-shell{width:calc(100% - 14px)}.nnbk-v3 .nnbk-panel{border-radius:22px!important}.nnbk-v3 .nnbk-progress-button{min-width:140px;padding:9px!important}.nnbk-v3 .nnbk-service-card{flex-basis:calc(100vw - 44px);min-height:370px}.nnbk-v3 .nnbk-package-grid{grid-auto-columns:100%}.nnbk-v3 .nnbk-package-card{padding:20px!important;border-radius:21px!important}.nnbk-v3 .nnbk-payment-method{grid-template-columns:42px minmax(0,1fr) 24px;padding:14px;gap:10px}.nnbk-payment-method-icon{width:40px;height:40px}.nnbk-payment-summary{padding:20px}.nnbk-v3 .nnbk-footer-actions{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.nnbk-calendar-modal{padding:8px}.nnbk-calendar-dialog{width:100%;max-height:calc(100dvh - 16px)}}

@media(max-width:360px){.nnbk-v3{padding-top:72px}.nnbk-v3 .nnbk-shell{width:calc(100% - 10px)}.nnbk-v3 .nnbk-hero-card,.nnbk-v3 .nnbk-panel{padding-inline:13px!important}.nnbk-v3 .nnbk-service-card{flex-basis:calc(100vw - 34px)}.nnbk-service-rail-wrap{grid-template-columns:34px minmax(0,1fr) 34px}.nnbk-rail-arrow{width:34px!important;height:34px!important;min-width:34px!important}.nnbk-date-picker-button,.nnbk-fancy-time{padding:10px 12px!important;gap:8px}.nnbk-date-icon,.nnbk-fancy-time-icon{width:30px;height:30px}.nnbk-v3 .nnbk-footer-actions{grid-template-columns:1fr}.nnbk-v3 .nnbk-button--submit{grid-column:auto}.nnbk-calendar-dialog header{grid-template-columns:40px minmax(0,1fr) 40px}.nnbk-calendar-dialog header button{width:40px!important;height:40px!important}.nnbk-calendar-dialog header h2{font-size:17px}}

@media(prefers-reduced-motion:reduce){.nnbk-v3 *,.nnbk-calendar-dialog{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
