/* =============================================================
   Nová homepage (pages/index_new.html)
   Vše pod prefixem .nh-, aby nekolidovalo se starým main.css.
   Breakpointy: desktop ≥ 1024px (předloha „parallax"),
   tablet 768–1023px, mobil < 768px (předloha „mobil").
   ============================================================= */

.nh {
    --nh-navy: #232741;
    --nh-cream: #F2F1ED;
    --nh-orange: #ED7B45;
    --nh-orange-dark: #D4612B;
    --nh-teal: #4CBFB4;
    --nh-teal-dark: #2D8A7E;
    --nh-teal-darker: #23726A;
    --nh-teal-light: #8FD6CE;
    --nh-aqua: #CDEDEF;
    --nh-yellow: #F4B942;
    --nh-text-2: #5A6274;
    --nh-text-3: #8A91A5;
    --nh-border: #ECE9E1;
    --nh-border-btn: #C6CADB;
    --nh-serif: 'DM Serif Display', Georgia, serif;
    --nh-sans: 'Plus Jakarta Sans', -apple-system, sans-serif;
    --nh-hand: 'Caveat', cursive;

    display: block;
    font-family: var(--nh-sans);
    font-size: 16px;
    line-height: 1.65;
    color: var(--nh-navy);
    text-align: left;
    -webkit-font-smoothing: antialiased;
}

html { scroll-behavior: smooth; }
body.nh-body { background: #F2F1ED; }
#header.nh-header-reset { padding: 0; }

/* --- reset starých globálních stylů (main.css + rebranding !important) --- */
.nh h1, .nh h2, .nh h3 {
    margin: 0;
    font-weight: 400;
    text-transform: none;
    text-align: inherit;
    letter-spacing: normal;
    line-height: 1.2;
}
.nh p {
    margin: 0;
    line-height: var(--lh, 1.65) !important;
}
.nh a { color: inherit; text-decoration: none; }
.nh a:hover { text-decoration: none; }
.nh ul, .nh ol { margin: 0; padding: 0; list-style: none; }
.nh figure, .nh blockquote { margin: 0; }
.nh blockquote::before, .nh blockquote::after { content: none; }
.nh img { display: block; max-width: 100%; }
.nh picture { display: contents; }
.nh picture source { display: none; }
.nh button { font: inherit; }

.nh-mobile-only { display: none; }

/* ---------- společné prvky ---------- */

.nh-sec { position: relative; padding: 72px 32px 76px; }
.nh-sec--cream { background: var(--nh-cream); }
.nh-sec--white { background: #fff; }
.nh-sec--aqua { background: var(--nh-aqua); }
.nh-sec__head { text-align: center; margin-bottom: 46px; }
.nh-center { text-align: center; }

.nh-eyebrow {
    font: 600 13px var(--nh-sans);
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--nh-orange);
    margin-bottom: 14px;
}
.nh-eyebrow--bold { font-size: 12px; font-weight: 700; letter-spacing: 2px; margin-bottom: 12px; }

.nh .nh-h2 {
    font: 400 44px/1.2 var(--nh-serif);
    color: var(--nh-navy);
    margin-bottom: 14px;
}
.nh-lead {
    --lh: 1.7;
    font: 400 17px var(--nh-sans);
    color: var(--nh-text-2);
    max-width: 600px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.nh-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font: 600 12px var(--nh-sans);
    letter-spacing: 1.4px;
    text-transform: uppercase;
    padding: 8px 18px;
    border-radius: 9999px;
    margin-bottom: 20px;
}
.nh-pill--teal { background: rgba(76,191,180,.12); border: 1px solid rgba(76,191,180,.3); color: var(--nh-teal); }
.nh-pill--teal-light { background: rgba(76,191,180,.1); border: 1px solid rgba(76,191,180,.25); color: var(--nh-teal-dark); }
.nh-pill--orange { background: rgba(237,123,69,.1); border: 1px solid rgba(237,123,69,.25); color: var(--nh-orange-dark); }

.nh-teal { color: var(--nh-teal-dark) !important; }
.nh-orange { color: var(--nh-orange); }
.nh-orange-dark { color: var(--nh-orange-dark) !important; }
.nh-star { color: var(--nh-yellow); }

.nh-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 9999px;
    font: 600 15px var(--nh-sans);
    color: var(--nh-navy);
    transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.nh-btn:hover { transform: translateY(-1px); }
.nh-btn--primary {
    background: var(--nh-orange);
    color: #fff !important;
    font-weight: 700;
    box-shadow: 0 10px 28px rgba(237,123,69,.4);
}
.nh-btn--primary:hover { background: var(--nh-orange-dark); }
.nh-btn--xl { font-size: 17px; padding: 18px 44px; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.nh-btn--cta { font-size: 17px; padding: 19px 48px; }
.nh-btn--outline { border: 1.5px solid var(--nh-border-btn); padding: 14px 34px; }
.nh-btn--outline:hover { border-color: var(--nh-navy); }
.nh-btn--white { background: #fff; }
.nh-btn--bold { font-weight: 700; padding: 14px 30px; }

/* vlnité přechody */
.nh-wave {
    position: absolute;
    left: 0;
    width: 100%;
    height: 60px;
    fill: currentColor;
    pointer-events: none;
}
.nh-wave--top { top: -1px; }
.nh-wave--bottom { bottom: -1px; }

/* =============================================================
   HERO — „Nástěnka z ateliéru" (handoff newhomepage/design_handoff_hero)
   Desktop ≥ 1024 px: kamera po zdi (.nhw-d). Menší šířky: okno do zdi (.nhw-m).
   Proměnné styly (kamera, vyskočené fotky, bubliny) nastavuje js/homepage-hero.js.
   ============================================================= */

@keyframes sbSwap { 0%,32.4% { opacity: 0; } 32.5%,82.4% { opacity: 1; } 82.5%,100% { opacity: 0; } }
@keyframes sbUmb { 0%,62% { opacity: 0; } 65% { opacity: 1; } 70% { opacity: .85; } 82%,100% { opacity: 0; } }
@keyframes sbFlash { 0% { opacity: 0; } 14% { opacity: .5; } 100% { opacity: 0; } }

/* Hero sahá až pod fixní .sb-header — ta je nahoře průhledná a v tmavém
   motivu bílá, takže se do hera prolne stejně jako na ostatních stránkách.
   --nh-head = výška hlavičky, o kterou je potřeba odsadit obsah hera. */
.nhw { position: relative; margin-top: 0; --nh-head: 92px; }
.nhw [hidden] { display: none !important; }
.nhw button { margin: 0; -webkit-appearance: none; appearance: none; line-height: normal; }
.nhw-m { display: none; }

/* ---------- desktop ---------- */

.nhw-d {
    --nhw-col: 560px;
    position: relative;
    height: max(680px, 100vh);
    overflow: hidden;
    background: #3a3a3d;
}
/* kamera: kompozitovaná vrstva pro plynulý pohyb; zeď uvnitř (stage) nese ostře vykreslené měřítko — viz JS place()/bake() */
.nhw-d__cam {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform-origin: 0 0;
    will-change: transform, opacity;
}
.nhw-d__fly,
.nhw-d__stage {
    position: absolute;
    left: 0;
    top: 0;
    width: 1600px;
    height: 1081.96px;
    transform-origin: 0 0;
}
.nhw-d__fly { will-change: transform; }
.nh .nhw-d__fly img,
.nh .nhw-d__stage img {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    -webkit-user-select: none;
    user-select: none;
    -webkit-user-drag: none;
}
.nh .nhw-d__wall { left: 0; }
.nh .nhw-d__mirror { left: -100%; }
/* dlaždice zdi v plném rozlišení — po stažení se plynule prolnou přes základní obrázek */
.nh .nhw-d__stage .nhw-tile { pointer-events: none; opacity: 0; transition: opacity .6s ease; }
.nh .nhw-d__stage .nhw-tile.is-in { opacity: 1; }

/* loader, když fotka sekce ještě není stažená */
@keyframes nhwSpin { to { transform: rotate(360deg); } }
.nhw-loader {
    position: absolute;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px 10px 14px;
    border-radius: 9999px;
    background: rgba(24,26,44,.72);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: #fff;
    font: 600 13px/1.2 var(--nh-sans);
    white-space: nowrap;
    box-shadow: 0 8px 24px rgba(0,0,0,.35);
    opacity: 0;
    transform: translate(-50%, -50%) scale(.92);
    transition: opacity .25s ease, transform .25s ease;
    pointer-events: none;
}
.nhw-loader.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1); transition-delay: .15s; }
.nhw-loader__spin {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2.5px solid rgba(255,255,255,.3);
    border-top-color: var(--nh-orange);
    animation: nhwSpin .8s linear infinite;
}
.nhw-d .nhw-loader { left: calc(50% + var(--nhw-col) / 2); top: 50%; }
.nhw-m .nhw-loader { left: 50%; top: 42%; }

/* vybraná fotka: v klidu neviditelná (na zdi je vidět skutečný výtisk), při vyskočení se vynoří */
.nhw-lift { position: absolute; transform-origin: 50% 50%; opacity: 0; z-index: 1; }
.nhw-lift__photo {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background-size: cover;
    background-position: 50% 50%;
    transition: box-shadow .8s ease;
}
.nhw-lift__alt,
.nhw-lift__then,
.nhw-lift__orig { position: absolute; inset: 0; background-size: cover; background-position: 50% 50%; }
.nhw-lift__alt,
.nhw-lift__then { opacity: 0; }
.nhw-lift__orig { background-position: 50% 30%; -webkit-clip-path: inset(0 0 0 100%); clip-path: inset(0 0 0 100%); }
.nhw-lift__umb {
    position: absolute;
    width: 160%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(255,255,255,1) 0, rgba(255,255,255,.9) 8%, rgba(255,255,255,.35) 26%, rgba(255,255,255,0) 55%);
    mix-blend-mode: screen;
    opacity: 0;
    pointer-events: none;
}
.nhw-wipe-line {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 100%;
    width: 2px;
    margin-left: -1px;
    background: #fff;
    box-shadow: 0 0 8px 2px rgba(255,255,255,.9);
    opacity: 0;
}
/* štítek a bubliny drží na obrazovce stálou velikost bez ohledu na zoom kamery */
.nhw-lift__tagwrap {
    position: absolute;
    left: 4%;
    top: 3%;
    transform-origin: 0 0;
    transform: scale(calc(var(--inv, 1) / var(--k, 1)));
    opacity: 0;
}
.nhw-tag {
    font: 700 13px/1.3 var(--nh-sans);
    letter-spacing: .5px;
    color: #fff;
    padding: 5px 12px;
    border-radius: 9999px;
    box-shadow: 0 4px 12px rgba(0,0,0,.35);
    white-space: nowrap;
    transition: background .4s;
}
/* vrstva nad zdí pro bubliny a štítky (mimo .nhw-d__cam, aby je jejich změna nepřekreslovala) */
.nhw-d__over { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.nhw-d__over .nhw-lift__tagwrap { transform: none; }
.nhw-bub { position: absolute; width: 0; height: 0; pointer-events: none; }
.nhw-bub__scale { position: absolute; transform: scale(calc(var(--inv, 1) / var(--k, 1))); }
.nhw-bub__pop {
    opacity: 0;
    transform: scale(.3);
    transition: transform .55s cubic-bezier(.34,1.7,.6,1), opacity .2s ease;
}
.nhw-bub__body {
    position: relative;
    width: -webkit-max-content;
    width: max-content;
    max-width: 260px;
    background: #fff;
    color: var(--nh-navy);
    border-radius: 18px;
    padding: 8px 18px 9px;
    font: 700 28px/1.05 var(--nh-hand);
    box-shadow: 0 10px 26px rgba(0,0,0,.35);
    text-wrap: balance;
}
.nhw-bub__body--dark { background: var(--nh-navy); color: #fff; }
.nhw-bub__tail { position: absolute; width: 18px; fill: #fff; }
.nhw-bub__body--dark .nhw-bub__tail { fill: var(--nh-navy); }

.nhw-doodle { position: absolute; aspect-ratio: 1; pointer-events: none; }
.nhw-doodle svg { display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.45)); }
.nhw-doodle path { fill: none; stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; stroke-dashoffset: 100; }

/* „Místo pro vás" — kartička se připne na prázdné místo zdi */
.nhw-slot {
    position: absolute;
    left: 63%;
    top: 53.5%;
    width: 5.4%;
    aspect-ratio: 10 / 13;
    transform: translateY(-35%) rotate(-14deg);
    transform-origin: 50% 0;
    opacity: 0;
    transition: transform .9s cubic-bezier(.2,.9,.3,1.3), opacity .4s ease;
    pointer-events: none;
}
.nhw-slot.is-on { transform: translateY(0) rotate(-3deg); opacity: 1; }
.nhw-slot__card {
    position: absolute;
    inset: 0;
    background: #fffdf6;
    box-shadow: 0 10px 22px rgba(0,0,0,.45);
    overflow: hidden;
}
/* karta se kreslí v 400 × 520 px a zmenší se na svoje místo ve zdi (5,4 % z 1600 px = 86,4 px) */
.nhw-slot__inner {
    position: absolute;
    left: 0;
    top: 0;
    width: 400px;
    height: 520px;
    transform: scale(0.216);
    transform-origin: 0 0;
    padding: 24px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}
.nhw-slot__frame {
    flex: 1;
    border: 4.5px dashed rgba(35,39,65,.45);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 14px;
    padding: 28px;
}
.nhw-slot__plus { font: 700 60px/1 var(--nh-hand); color: var(--nh-orange); }
.nhw-slot__text { font: 700 42px/1.05 var(--nh-hand); color: var(--nh-navy); }
.nhw-slot__foot {
    height: 18%;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 12px var(--nh-sans);
    letter-spacing: 1.8px;
    color: var(--nh-text-3);
    text-transform: uppercase;
}
.nhw-slot__pin {
    position: absolute;
    left: 50%;
    top: -4px;
    width: 9px;
    height: 9px;
    margin-left: -4.5px;
    border-radius: 50%;
    background: var(--nh-orange);
    box-shadow: 0 2px 3px rgba(0,0,0,.45), inset 0 -1px 2px rgba(0,0,0,.25);
}

/* čitelnost textu vlevo + vinětace */
.nhw-d__shade {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        /* ztmavení pod hlavičkou — bílé menu leží nad zdí fotek a ta je místy světlá */
        linear-gradient(180deg, rgba(20,22,36,.78) 0, rgba(20,22,36,.33) 55%, rgba(20,22,36,0) 100%) top / 100% calc(var(--nh-head) + 40px) no-repeat,
        linear-gradient(90deg, rgba(24,26,44,.88) 0, rgba(24,26,44,.7) 30%, rgba(24,26,44,.15) 50%, rgba(24,26,44,0) 60%),
        radial-gradient(ellipse 80% 75% at 68% 50%, rgba(20,22,36,0) 50%, rgba(20,22,36,.45) 100%);
}
.nhw-d__flash {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: radial-gradient(circle at 68% 50%, rgba(255,255,255,.9), rgba(255,255,255,0) 60%);
    animation: sbFlash .75s ease-out both;
}

/* textový sloupec */
.nhw-d__text {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: var(--nhw-col);
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: calc(40px + var(--nh-head)) 0 40px 56px;  /* text vycentrovat pod hlavičkou, ne za ni */
    box-sizing: border-box;
}
.nhw-label {
    align-self: flex-start;
    font: 700 28px/1.3 var(--nh-hand);
    color: #fff;
    background: var(--nh-orange);
    padding: 1px 16px 3px;
    margin-bottom: 22px;
    transform: rotate(-2deg);
    box-shadow: 0 6px 18px rgba(0,0,0,.3);
}
.nh .nhw-title {
    margin: 0 0 18px;
    font: 400 58px/1.05 var(--nh-serif);
    color: #fff;
    text-wrap: balance;
}
.nh .nhw-lead {
    --lh: 1.6;
    margin: 0 0 30px;
    max-width: 440px;
    font: 400 17px var(--nh-sans);
    color: rgba(255,255,255,.9);
    text-wrap: pretty;
}
.nhw-actions { display: flex; gap: 18px; align-items: center; margin-bottom: 44px; }
.nh .nhw-cta {
    font: 700 16px/1.2 var(--nh-sans);
    color: #fff;
    background: var(--nh-orange);
    border-radius: 9999px;
    padding: 16px 34px;
    box-shadow: 0 10px 26px rgba(0,0,0,.35);
    transition: background-color .15s ease;
}
.nh .nhw-cta:hover { background: #d9652f; color: #fff; }
.nh .nhw-phone { font: 600 15px var(--nh-sans); color: #fff; }
.nh .nhw-phone:hover { color: var(--nh-orange); }

.nhw-info {
    max-width: 420px;
    min-height: 112px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.22);
    transition: opacity .4s ease, transform .5s ease;
}
.nhw-info.is-hidden { opacity: 0; transform: translateY(8px); }
.nhw-info__kicker {
    font: 700 12px/1.4 var(--nh-sans);
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--nh-orange);
    margin-bottom: 8px;
}
.nhw-info__title { font: 400 28px/1.15 var(--nh-serif); color: #fff; margin-bottom: 6px; }
.nhw-info__text { font: 400 15px/1.55 var(--nh-sans); color: rgba(255,255,255,.8); text-wrap: pretty; }
.nhw-dots { display: flex; align-items: center; gap: 8px; margin-top: 16px; }
.nhw-dots__label {
    font: 600 12px var(--nh-sans);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(255,255,255,.6);
    margin-right: 4px;
}
.nh .nhw-dot {
    cursor: pointer;
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 13px var(--nh-sans);
    color: #fff;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.4);
    transition: all .3s;
}
.nhw-dot:hover { border-color: #fff; }
.nhw-dot.is-active { color: var(--nh-navy); background: #fffdf6; }

/* menu sekcí */
.nhw-d__menu {
    position: absolute;
    left: calc(var(--nhw-col) + 40px);
    right: 36px;
    bottom: 30px;
    z-index: 4;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
.nh .nhw-pill,
.nh .nhw-resume {
    cursor: pointer;
    position: relative;
    overflow: hidden;
    font: 600 14px var(--nh-sans);
    color: #fff;
    border-radius: 9999px;
    padding: 10px 18px;
}
.nhw-pill {
    background: rgba(24,26,44,.45);
    border: 1px solid rgba(255,255,255,.28);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition: background .3s, color .3s, border-color .3s;
}
.nhw-pill:hover { border-color: rgba(255,255,255,.7); }
.nhw-pill.is-active { background: #fffdf6; color: var(--nh-navy); }
.nhw-pill__prog { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: rgba(237,123,69,.22); }
.nhw-pill__name { position: relative; }
.nh .nhw-resume {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    background: var(--nh-orange);
    border: 1px solid var(--nh-orange);
    box-shadow: 0 6px 18px rgba(0,0,0,.35);
}
.nhw-resume:hover { background: #d9652f; }
.nhw-resume svg { width: 9px; height: 11px; }

/* užší desktop: textový sloupec se zúží, kamera rámuje větší volnou plochu */
@media (max-width: 1279px) {
    .nhw-d { --nhw-col: 470px; }
    .nhw-d__text { padding-left: 40px; }
    .nhw-label { font-size: 24px; margin-bottom: 18px; }
    .nh .nhw-title { font-size: 48px; }
    .nh .nhw-lead { font-size: 16px; max-width: 400px; }
    .nhw-info__title { font-size: 25px; }
    .nhw-d__menu { right: 24px; }
    .nh .nhw-pill, .nh .nhw-resume { font-size: 13px; padding: 9px 15px; }
}

/* ---------- mobil + tablet (< 1024 px): okno do zdi ---------- */

@media (max-width: 1023px) {
    /* desktopová část zůstává jen pro čtečky a vyhledávače (jediné H1 stránky) */
    .nhw-d {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        -webkit-clip-path: inset(50%);
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .nhw-d__fly, .nhw-d__stage, .nhw-d__menu, .nhw-actions, .nhw-info, .nhw-label { display: none; }

    .nhw-m { display: flex; flex-direction: column; background: #1c1e30; }
}
@media (max-width: 900px) {
    .nhw { --nh-head: 64px; }
}

.nhw-m__window {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background-color: #15172a;
    background-size: cover;
    background-position: 50% 50%;
    touch-action: pan-y;
    -webkit-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    cursor: grab;
}
.nhw-m__track { position: absolute; left: 0; top: 0; height: 100%; display: flex; will-change: transform; }
.nhw-slide { position: relative; flex: none; height: 100%; overflow: hidden; }
.nhw-slide__crop {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: 50% 50%;
    pointer-events: none;
}
.nhw-slide__vig {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse 90% 70% at 50% 40%, rgba(20,22,36,0) 40%, rgba(20,22,36,.55) 100%);
}
.nhw-slide__dim { position: absolute; inset: 0; pointer-events: none; transition: background .5s; }
.nhw-slide__lift { position: absolute; transform-origin: 50% 50%; opacity: 0; will-change: transform, opacity; pointer-events: none; }
.nhw-slide__photo {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background-size: cover;
    background-position: 50% 50%;
    transition: box-shadow .6s;
}
.nhw-slide__orig {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: 50% 30%;
    -webkit-clip-path: inset(0 0 0 100%);
    clip-path: inset(0 0 0 100%);
}
.nhw-slide__tag {
    display: none;
    position: absolute;
    font: 700 11px/1.3 var(--nh-sans);
    letter-spacing: .4px;
    color: #fff;
    padding: 5px 10px;
    border-radius: 9999px;
    box-shadow: 0 4px 10px rgba(0,0,0,.35);
    transition: background .4s;
    pointer-events: none;
}
.nhw-slide__bubrow { position: absolute; left: 18px; right: 18px; display: flex; pointer-events: none; }
.nhw-slide__bub {
    position: relative;
    max-width: 84%;
    background: #fff;
    color: var(--nh-navy);
    border-radius: 16px;
    padding: 8px 16px 9px;
    font: 700 23px/1.05 var(--nh-hand);
    box-shadow: 0 8px 20px rgba(0,0,0,.35);
    opacity: 0;
    transform: scale(.3) rotate(-1.5deg);
    transform-origin: 30% 0;
    transition: transform .5s cubic-bezier(.34,1.7,.6,1), opacity .2s;
    text-wrap: balance;
}
.nhw-slide__bub.is-dark { background: var(--nh-navy); color: #fff; }
.nhw-slide__bub svg { position: absolute; top: -12px; right: 24px; width: 20px; height: 13px; fill: #fff; }
.nhw-slide__bub.is-dark svg { fill: var(--nh-navy); }

/* totéž ztmavení na mobilu — leží nad fotkou, ale pod ukazatelem sekcí */
.nhw-m__window::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: calc(var(--nh-head) + 40px);
    background: linear-gradient(180deg, rgba(20,22,36,.78) 0, rgba(20,22,36,.33) 55%, rgba(20,22,36,0) 100%);
    pointer-events: none;
    z-index: 1;
}
/* ukazatel sekcí pod hlavičku, ne za logo */
.nhw-m__bars { position: absolute; left: 12px; right: 12px; top: calc(10px + var(--nh-head)); display: flex; gap: 4px; pointer-events: none; z-index: 2; }
.nhw-m__bar { flex: 1; height: 3px; border-radius: 2px; background: rgba(255,255,255,.3); overflow: hidden; }
.nhw-m__bar i { display: block; height: 100%; width: 0; background: #fff; }

.nhw-m__pause {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.nhw-m__dots { display: flex; align-items: center; gap: 6px; }
.nh .nhw-mdot {
    cursor: pointer;
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 12px var(--nh-sans);
    color: #fff;
    background: rgba(20,22,36,.45);
    border: 1px solid rgba(255,255,255,.55);
    transition: all .25s;
}
.nhw-mdot.is-active { color: var(--nh-navy); background: #fff; }
.nhw-m__state {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    font: 700 11px var(--nh-sans);
    color: #fff;
    background: rgba(20,22,36,.65);
    padding: 6px 11px;
    border-radius: 9999px;
}
.nhw-m__state svg { width: 8px; height: 10px; }

.nhw-m__panel { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 16px 18px 18px; background: #1c1e30; }
.nhw-m__chips {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
    margin: 0 -18px;
    padding: 0 18px;
}
.nhw-m__chips::-webkit-scrollbar { display: none; }
.nh .nhw-chip {
    flex: none;
    cursor: pointer;
    font: 600 12.5px var(--nh-sans);
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 9999px;
    padding: 8px 13px;
    transition: all .3s;
}
.nhw-chip.is-active { color: var(--nh-navy); background: #fff; }
.nhw-m__info { min-height: 86px; }
.nhw-m__kicker {
    font: 700 11px/1.4 var(--nh-sans);
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--nh-orange);
    margin-bottom: 6px;
}
.nhw-m__title { font: 400 26px/1.1 var(--nh-serif); color: #fff; margin-bottom: 6px; }
.nhw-m__text { font: 400 14px/1.5 var(--nh-sans); color: rgba(255,255,255,.78); text-wrap: pretty; }
.nh .nhw-m__cta {
    display: block;
    margin-top: auto;
    text-align: center;
    font: 700 15px/1.2 var(--nh-sans);
    color: #fff;
    background: var(--nh-orange);
    border-radius: 9999px;
    padding: 15px 20px;
}
.nh .nhw-m__cta:hover { background: #d9652f; color: #fff; }

/* tablet: okno a text vedle sebe, ať okno 3:4 nezabere víc než výšku obrazovky */
@media (min-width: 640px) and (max-width: 1023px) {
    .nhw-m { flex-direction: row; align-items: center; gap: 36px; padding: 28px 32px; }
    .nhw-m__window { flex: none; width: min(50%, calc((100vh - 150px) * .75)); min-width: 300px; border-radius: 14px; }
    .nhw-m__panel { padding: 0; gap: 18px; min-width: 0; }
    .nhw-m__chips { flex-wrap: wrap; margin: 0; padding: 0; overflow: visible; }
    .nhw-m__title { font-size: 32px; }
    .nhw-m__text { font-size: 15px; }
    .nh .nhw-m__cta { margin-top: 6px; align-self: flex-start; padding: 15px 34px; }
}

/* =============================================================
   ČERSTVĚ Z AKCÍ
   ============================================================= */

.nh-galleries { text-align: center; padding: 64px 32px; }
.nh .nh-galleries__title { font-size: 40px; margin-bottom: 44px; }
.nh-galleries__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: 1240px; margin: 0 auto; }
.nh-gcard {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(35,39,65,.07);
    text-align: left;
    transition: box-shadow .2s ease, transform .2s ease;
}
.nh-gcard:hover { box-shadow: 0 10px 30px rgba(35,39,65,.13); transform: translateY(-2px); }
.nh-gcard__media { position: relative; display: block; height: 200px; overflow: hidden; }
.nh-gcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nh-gcard__slide { opacity: 0; }
.nh-gcard__slide.is-active { opacity: 1; }
/* ukazatel, kolikátá fotka z coveru je zrovna vidět (stejné chování jako na starém webu) */
.nh-gcard__bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 3px;
    background: var(--nh-orange);
    opacity: 0;
    transition: opacity .15s ease;
}
.nh-gcard.is-scrubbing .nh-gcard__bar { opacity: 1; }
.nh-gcard__lock { width: 15px; height: 15px; color: #E23B4E; vertical-align: -3px; margin-left: 6px; }
.nh-gcard__body { padding: 16px 18px 18px; }
.nh-gcard__name { font: 700 13px var(--nh-sans); letter-spacing: .5px; text-transform: uppercase; color: var(--nh-navy); }
.nh-gcard__date { font: 500 13.5px var(--nh-sans); color: var(--nh-text-3); margin-top: 5px; }
.nh-galleries__more { margin-top: 36px; }

/* =============================================================
   PARALLAX OKÉNKA — clip-path + fixní vrstva uvnitř (bez JS)
   ============================================================= */

.nh-plx { position: relative; height: 520px; clip-path: inset(0); }
.nh-plx__bg {
    position: fixed;
    top: 0;
    left: 0;
    width: max(100vw, 1280px);
    height: 100vh;
    z-index: -1;
    background: center / cover no-repeat;
}
.nh-plx__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(35,39,65,.25), transparent 40%, rgba(35,39,65,.2)); }

.nh-plx--photos .nh-plx__bg {
    background-image: url('../images/homepage/parallax-photos.jpg');
    background-image: image-set(url('../images/homepage/parallax-photos.webp') type('image/webp'), url('../images/homepage/parallax-photos.jpg') type('image/jpeg'));
}
.nh-plx--collage-photo { height: 500px; }
.nh-plx--collage-photo .nh-plx__bg {
    /* ?v= ručně: tenhle obrázek se nebere přes _pic.html, takže na něj HOMEPAGE_IMG_V
       nedosáhne, a Cloudflare by pod stejnou adresou držel starou koláž 31 dní.
       Při výměně souboru číslo zvednout (platí i pro mobilní variantu níž). */
    background-image: url('../images/homepage/collage-2.jpg?v=3');
    background-image: image-set(url('../images/homepage/collage-2.webp?v=3') type('image/webp'), url('../images/homepage/collage-2.jpg?v=3') type('image/jpeg'));
}
.nh-plx--crowd { height: 480px; }
.nh-plx--crowd .nh-plx__bg {
    background-image: url('../images/homepage/jiz-crowd.jpg');
    background-image: image-set(url('../images/homepage/jiz-crowd.webp') type('image/webp'), url('../images/homepage/jiz-crowd.jpg') type('image/jpeg'));
}
.nh-plx--crowd .nh-plx__shade { background: linear-gradient(180deg, rgba(35,39,65,.5), rgba(35,39,65,.25) 55%, rgba(35,39,65,.45)); }
.nh-plx__content {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0 32px;
}
.nh .nh-plx__title { font: 400 40px/1.25 var(--nh-serif); color: #fff; margin-bottom: 12px; text-shadow: 0 2px 16px rgba(0,0,0,.4); }
.nh-plx__text { font: 400 17px var(--nh-sans); color: rgba(255,255,255,.9); text-shadow: 0 1px 8px rgba(0,0,0,.4); }

/* živá AI koláž */
@keyframes sbTileB { 0%,33% { opacity: 0; } 39%,64% { opacity: 1; } 70%,100% { opacity: 0; } }
@keyframes sbTileC { 0%,66% { opacity: 0; } 72%,97% { opacity: 1; } 100% { opacity: 0; } }

.nh-plx--collage { height: 560px; }
.nh-collage {
    background: #1B1E33;
    display: grid;
    grid-template-columns: 1fr 1fr 1.65fr 1fr 1fr;
    gap: 14px;
    padding: 14px;
}
.nh-collage__tile { position: relative; border-radius: 16px; overflow: hidden; }
.nh-collage__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 10%; }
.nh-collage__tile--group img { object-position: center 40%; }
.nh .nh-tile-b { animation: sbTileB 15s ease-in-out infinite; animation-delay: var(--d, 0s); }
.nh .nh-tile-c { animation: sbTileC 15s ease-in-out infinite; animation-delay: var(--d, 0s); }
.nh-collage__badge {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 2;
    background: rgba(35,39,65,.8);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    color: #fff;
    font: 700 11px var(--nh-sans);
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 7px 15px;
    border-radius: 9999px;
}

/* =============================================================
   ČÍSLA + REFERENCE
   ============================================================= */

.nh-refs { text-align: center; padding: 64px 32px 76px; }
.nh .nh-refs__title { font: 400 56px/1.2 var(--nh-serif); color: var(--nh-navy); margin-bottom: 14px; }
.nh-refs__lead { max-width: 620px; margin-bottom: 44px !important; }
.nh-stats { display: flex; justify-content: center; gap: 70px; margin-bottom: 56px; }
.nh-stats__num { font: 400 36px/1.2 var(--nh-serif); color: var(--nh-orange); }
.nh-stats__label { font: 600 14px var(--nh-sans); color: var(--nh-text-3); margin-top: 4px; }
.nh-refs__label { font: 600 12px var(--nh-sans); letter-spacing: 2px; text-transform: uppercase; color: var(--nh-text-3); margin-bottom: 20px; }
.nh-refs__partners-label { font: 700 12px var(--nh-sans); letter-spacing: 2px; text-transform: uppercase; color: var(--nh-orange); margin-bottom: 14px; }
.nh-refs__partners { font: 400 15px var(--nh-sans); color: var(--nh-text-2); margin-bottom: 40px !important; }
.nh-refs__partners b { color: var(--nh-teal-dark); }

@keyframes sbMarquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.nh-marquee {
    overflow: hidden;
    max-width: 1240px;
    margin: 0 auto 16px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.nh-marquee--agencies { margin-bottom: 50px; }
.nh-marquee__track { display: flex; width: max-content; animation: sbMarquee 48s linear infinite; }
.nh-marquee__set { display: flex; align-items: center; gap: 48px; padding-right: 48px; }
.nh-marquee img { height: var(--h); width: auto; max-width: none; filter: grayscale(1); opacity: .55; }
.nh-marquee--agencies img { opacity: .5; }

/* Kolotoč recenzí: pruh tří karet, který se sám posouvá a dá se i prolistovat.
   Posun řeší nativní scroll se snapem — na mobilu tím vyjde potah prstem zdarma. */
.nh-revs { position: relative; max-width: 1140px; margin: 0 auto 34px; }
.nh-revs__viewport { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; }
.nh-revs__viewport::-webkit-scrollbar { display: none; }
.nh-reviews { display: flex; gap: 26px; align-items: stretch; text-align: left; padding: 4px; }
.nh-revs__nav {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 44px; height: 44px; border-radius: 50%;
    background: #fff; border: 1px solid var(--nh-border); color: var(--nh-navy);
    box-shadow: 0 4px 18px rgba(35,39,65,.1);
    display: flex; align-items: center; justify-content: center; cursor: pointer;
    transition: opacity .2s, background .2s;
}
.nh-revs__nav svg { width: 20px; height: 20px; }
.nh-revs__nav:hover { background: var(--nh-cream); }
.nh-revs__nav[disabled] { opacity: .3; cursor: default; }
.nh-revs__nav--prev { left: -22px; }
.nh-revs__nav--next { right: -22px; }
@media (max-width: 1220px) { .nh-revs__nav--prev { left: 4px; } .nh-revs__nav--next { right: 4px; } }
@media (hover: none) { .nh-revs__nav { display: none; } }
.nh-review {
    flex: 0 0 calc((100% - 52px) / 3);
    scroll-snap-align: start;
    background: #fff;
    border: 1px solid var(--nh-border);
    border-radius: 20px;
    padding: 28px 28px 24px;
    box-shadow: 0 2px 16px rgba(35,39,65,.04);
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;
}
.nh a.nh-review { color: inherit; text-decoration: none; }
.nh a.nh-review:hover { box-shadow: 0 8px 26px rgba(35,39,65,.1); transform: translateY(-2px); }
.nh-review__stars { color: var(--nh-yellow); font-size: 16px; line-height: 1; letter-spacing: 2px; margin-bottom: 12px; }
.nh-review__text { font: 400 15.5px/1.65 var(--nh-sans); color: var(--nh-navy); margin-bottom: 20px; flex: 1; padding: 0; border: 0;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; }
.nh-review__author { display: flex; align-items: center; gap: 13px; }
.nh-review__avatar { flex: none; width: 46px; height: 46px; border-radius: 50%; object-fit: cover; background: var(--nh-cream); }
.nh-review__avatar--letter { color: #fff; font: 400 20px/46px var(--nh-serif); text-align: center; }
.nh-review__name { display: block; font: 700 14.5px/1.4 var(--nh-sans); color: var(--nh-navy); }
.nh-review__meta { display: flex; align-items: center; gap: 6px; font: 500 13px/1.4 var(--nh-sans); color: var(--nh-text-3); margin-top: 2px; }
.nh-review__meta b { font-weight: 600; color: var(--nh-text-2); }
.nh-review__ico { width: 14px; height: 14px; }

.nh-ratings {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 34px;
    background: #fff;
    border: 1px solid var(--nh-border);
    border-radius: 20px;
    box-shadow: 0 2px 16px rgba(35,39,65,.04);
    max-width: 1140px;
    margin: 0 auto 38px;
    padding: 22px 34px;
    font: 500 15px var(--nh-sans);
    color: var(--nh-text-2);
}
.nh-ratings__title { font: 700 14px var(--nh-sans); color: var(--nh-navy); }
.nh-ratings__item { display: inline-flex; align-items: center; gap: 8px; transition: color .15s ease; }
a.nh-ratings__item:hover { color: var(--nh-orange); }
a.nh-ratings__item:hover b { color: var(--nh-orange); }
.nh-ratings__item svg { width: 18px; height: 18px; }
.nh-ratings__item b { color: var(--nh-navy); }
.nh-ratings__item b.nh-orange { color: var(--nh-orange); }
.nh-ratings__item b.nh-teal { color: var(--nh-teal-dark); }

/* =============================================================
   AI SEKCE
   ============================================================= */

.nh-ai { position: relative; background: var(--nh-navy); text-align: center; padding: 96px 32px 90px; overflow: hidden; }
.nh-ai__glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 60% 45% at 25% 0%, rgba(76,191,180,.12), transparent 60%),
        radial-gradient(ellipse 50% 40% at 85% 100%, rgba(237,123,69,.09), transparent 55%);
}
.nh-ai__inner { position: relative; z-index: 1; }
.nh-ai__badge { margin-bottom: 22px; }
.nh .nh-ai__title { font: 400 46px/1.2 var(--nh-serif); color: #fff; margin-bottom: 16px; }
.nh-ai__lead { --lh: 1.7; font: 400 17px var(--nh-sans); color: rgba(255,255,255,.6); max-width: 600px; margin: 0 auto 52px !important; }

/* --- interaktivní fotobudka --- */
@keyframes sbPrint { 0% { opacity: 0; transform: translateY(-54px) scale(.9); } 60% { opacity: 1; } 100% { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes sbPulse { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.08); } }
@keyframes sbShotFlash { 0% { opacity: 1; } 100% { opacity: 0; } }
@keyframes sbBob { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-7px); } }

.nh-booth { max-width: 1080px; margin: 60px auto 110px; position: relative; }
.nh-booth__panel {
    position: relative;
    background: #2A2F4D;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 30px;
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
    min-height: 430px;
    padding: 40px 48px 40px 560px;
    text-align: left;
    display: flex;
    flex-direction: column;
}
.nh-booth__head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.nh-booth__try { font: 700 26px/1.2 var(--nh-hand); color: var(--nh-yellow); }
.nh-booth__chips { display: flex; gap: 8px; }
.nh-chip {
    cursor: pointer;
    user-select: none;
    font: 700 13px/1.2 var(--nh-sans) !important;
    padding: 10px 22px;
    border-radius: 9999px;
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(255,255,255,.06);
    color: #fff;
    transition: background-color .15s ease;
}
.nh-chip:hover { background: rgba(255,255,255,.14); }
.nh-chip.is-active { background: var(--nh-teal); color: var(--nh-navy); }
.nh-booth__lead { font: 400 15px var(--nh-sans); color: rgba(255,255,255,.6); max-width: 440px; margin-top: 6px !important; }
.nh-booth__note { color: rgba(255,255,255,.38); }

.nh-booth__machine { position: absolute; left: 22px; top: -52px; bottom: -58px; }
.nh-booth__img { height: 100%; width: auto; max-width: none !important; filter: drop-shadow(0 24px 40px rgba(0,0,0,.4)); pointer-events: none; transition: opacity .2s ease; }
.nh-booth__img--idle { position: relative; }
.nh-booth__img--cover { position: absolute; left: 0; top: 0; opacity: 0; }
.nh-booth.has-photo .nh-booth__img--idle { opacity: 0; }
.nh-booth.has-photo .nh-booth__img--cover { opacity: 1; }

.nh-booth__screen { position: absolute; left: 20.51%; top: 42.41%; width: 50.59%; height: 33%; overflow: hidden; }
.nh-booth__screen--ui { pointer-events: none; clip-path: polygon(0.5% 0.8%, 99.5% 6.6%, 99.5% 99.4%, 0.5% 90.1%); }
.nh-booth__trigger { background: transparent; border: 0; padding: 0; margin: 0; cursor: pointer; z-index: 2; }
.nh-booth__trigger:focus-visible { outline: 2px solid var(--nh-yellow); outline-offset: 2px; }
.nh-booth__screen--photo { display: none; }
.nh-booth.has-photo .nh-booth__screen--photo { display: block; }
.nh-booth__photo { position: absolute; inset: 0; background: #3E4356 center / contain no-repeat; }
.nh-booth__real {
    position: absolute;
    left: 13px;
    top: 13px;
    background: rgba(35,39,65,.8);
    color: #fff;
    font: 700 9.5px/1.3 var(--nh-sans);
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 5px 11px;
    border-radius: 9999px;
}

.nh-booth__count, .nh-booth__teaser, .nh-booth__gen, .nh-booth__start { display: none; }
.nh-booth__count {
    position: absolute;
    inset: 0;
    background: rgba(27,30,51,.55);
    align-items: center;
    justify-content: center;
    font: 400 78px/1 var(--nh-serif);
    color: #fff;
    text-shadow: 0 4px 24px rgba(0,0,0,.5);
}
.nh-booth.is-counting .nh-booth__count { display: flex; }
/* bublina sedí nad tlačítkem Start na displeji (souřadnice jsou v % stroje) */
.nh-booth__teaser { position: absolute; left: 50%; top: 42%; width: 56%; margin-left: -28%; animation: sbBob 1.8s ease-in-out infinite; text-align: center; z-index: 3; pointer-events: none; }
.nh-booth.is-teaser .nh-booth__teaser { display: block; }
.nh-booth__teaser-bubble {
    display: inline-block;  /* ať se bublina smrskne na text, ne na šířku kontejneru */
    background: var(--nh-yellow);
    color: var(--nh-navy);
    font: 700 21px/1.2 var(--nh-hand);
    padding: 7px 18px 8px;
    border-radius: 14px 14px 14px 3px;
    box-shadow: 0 6px 16px rgba(0,0,0,.4);
    white-space: nowrap;
}
.nh-booth__teaser svg { width: 40px; height: 34px; display: block; margin: 0 auto 0 34%; }
.nh-booth__gen {
    position: absolute;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    background: rgba(35,39,65,.88);
    color: #fff;
    font: 700 12px/1.3 var(--nh-sans);
    letter-spacing: .6px;
    padding: 9px 18px;
    border-radius: 9999px;
    white-space: nowrap;
    animation: sbPulse 1.1s ease-in-out infinite;
}
.nh-booth.is-gen .nh-booth__gen { display: block; }
.nh-booth__start {
    position: absolute;
    left: 50%;
    bottom: 16px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 34%, #F0596B, #D92B3F 70%);
    border: 2px solid rgba(255,255,255,.55);
    color: #fff;
    font: 700 14px/56px var(--nh-sans);
    text-align: center;
    box-shadow: 0 6px 18px rgba(0,0,0,.5);
    animation: sbPulse 1.6s ease-in-out infinite;
    transform: translateX(-50%);
}
.nh-booth.can-reshoot .nh-booth__start { display: block; }

/* záblesk — prvky vkládá JS při každém cvaknutí */
.nh-booth__flash-glow {
    position: absolute;
    left: 8%;
    top: -9%;
    width: 74%;
    height: 34%;
    background: radial-gradient(ellipse 50% 50% at 50% 46%, rgba(255,252,230,.98) 0%, rgba(255,248,205,.55) 45%, rgba(255,248,205,0) 72%);
    filter: blur(4px);
    pointer-events: none;
    animation: sbShotFlash .5s ease-out both;
}
.nh-booth__flash-halo {
    position: absolute;
    left: -30%;
    top: -34%;
    width: 150%;
    height: 90%;
    background: radial-gradient(ellipse 50% 50% at 50% 50%, rgba(255,250,220,.5) 0%, rgba(255,250,220,0) 70%);
    pointer-events: none;
    animation: sbShotFlash .55s ease-out both;
}
.nh-booth__flash-screen { position: absolute; inset: 0; background: #fff; animation: sbShotFlash .45s ease-out both; }

.nh-booth__tray { position: relative; flex: 1; min-height: 300px; }
.nh-booth__empty {
    position: absolute;
    left: 50%;
    top: 56%;
    transform: translate(-50%, -50%);
    border: 2px dashed rgba(255,255,255,.25);
    border-radius: 20px;
    padding: 52px 44px;
    text-align: center;
    font: 400 15px/1.6 var(--nh-sans);
    color: rgba(255,255,255,.45);
    width: 280px;
}
.nh-booth.has-prints .nh-booth__empty { display: none; }
.nh-print { position: absolute; left: 50%; top: 56%; }
.nh-print__card { background: #fff; padding: 11px 11px 12px; box-shadow: 0 22px 50px rgba(0,0,0,.45); animation: sbPrint .7s cubic-bezier(.2,.8,.3,1) both; }
.nh-print__img { background: center 10% / cover no-repeat; }
.nh-print__label { font: 700 21px/1.2 var(--nh-hand); color: var(--nh-navy); text-align: center; padding-top: 7px; }

/* --- AI bloky --- */
.nh-ai__block { max-width: 1080px; margin: 0 auto 64px; text-align: left; }
.nh-ai__block--unique { margin-bottom: 80px; }
.nh-ai__block-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 26px; }
.nh-ai__block-title { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.nh .nh-ai__block-title h3 { font: 400 30px/1.2 var(--nh-serif) !important; color: var(--nh-yellow); }
.nh-ai__num { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--nh-yellow); color: var(--nh-yellow); font: 400 18px/33px var(--nh-serif); text-align: center; }
.nh-ai__block-text { font: 400 15.5px var(--nh-sans); color: rgba(255,255,255,.65); max-width: 520px; }
.nh-ai__block--unique .nh-ai__block-text { margin-bottom: 26px !important; }
.nh-ai__price { text-align: right; }
.nh-ai__price-value { font: 700 20px var(--nh-sans); color: var(--nh-teal); }
.nh-ai__price-note { font: 600 13px/1.5 var(--nh-sans); letter-spacing: 1px; text-transform: uppercase; color: rgba(255,255,255,.5); }
.nh-ai__row-label { font: 600 12px var(--nh-sans); letter-spacing: 1.4px; text-transform: uppercase; color: rgba(255,255,255,.5); margin-bottom: 10px; }
.nh-ai__row-label--groups { margin-top: 22px; }
.nh-ai__catalog { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.nh-ai__catalog img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center 12%; border-radius: 14px; }
.nh-ai__row-label span { color: rgba(255,255,255,.32); text-transform: none; letter-spacing: .2px; }
.nh-ai__catalog--groups { grid-template-columns: repeat(3, 1fr); }
.nh-ai__catalog--groups img { aspect-ratio: 3 / 2; object-position: center 20%; }
/* fotka na výšku v řadě 3:2 — ořez vést přes obličeje, ne přes temeno */
.nh .nh-pos-faces { object-position: center 42%; }
/* originál, ze kterého AI varianty vznikly */
.nh-ai__orig { position: relative; }
.nh-ai__orig img { position: absolute; inset: 0; height: 100%; }
.nh-ai__orig::before { content: ''; display: block; padding-top: 66.67%; }
.nh-ai__orig-badge {
    position: absolute;
    left: 12px;
    bottom: 12px;
    background: rgba(35,39,65,.82);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    color: #fff;
    font: 700 11px/1.3 var(--nh-sans);
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 7px 14px;
    border-radius: 9999px;
}
.nh-ai__catalog-foot { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 20px; flex-wrap: wrap; }
.nh-ai__catalog-foot p { --lh: 1.6; font: 400 15px var(--nh-sans); color: rgba(255,255,255,.55); }
.nh-btn-yellow {
    flex: none;
    font: 700 13px/1.2 var(--nh-sans);
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--nh-navy) !important;
    background: var(--nh-yellow);
    border-radius: 12px;
    padding: 13px 26px;
    transition: transform .15s ease, background-color .15s ease;
}
.nh-btn-yellow:hover { background: #F7C862; transform: translateY(-1px); }
/* filtry na míru: hotové „plakáty" a svislé video — nic neořezávat, vejít do stejného rámu */
.nh-ai__unique { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.nh-ai__unique img, .nh-ai__unique video {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: contain;
    background: rgba(255,255,255,.04);
    border-radius: 14px;
}

.nh-ai__keying {
    max-width: 1080px;
    margin: 0 auto;
    text-align: left;
    border-top: 1px solid rgba(255,255,255,.14);
    padding-top: 56px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: center;
}
.nh .nh-ai__keying-title { font: 400 30px/1.2 var(--nh-serif) !important; color: var(--nh-teal-light); margin-bottom: 12px; }
.nh-ai__keying-text { --lh: 1.7; font: 400 15.5px var(--nh-sans); color: rgba(255,255,255,.65); max-width: 440px; }
.nh-ai__keying-note { --lh: 1.6; font: 400 13.5px var(--nh-sans); color: rgba(255,255,255,.4); margin-top: 14px !important; }
.nh-ai__keying-pair { display: flex; align-items: center; gap: 18px; }
.nh-ai__keying-item img { width: 250px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
.nh-ai__keying-item--result .nh-ai__keying-stack { border: 2px solid var(--nh-teal); }
/* výsledek: vyřezané postavy vespod, přes ně se prolínají tři digitální pozadí */
.nh-ai__keying-stack { position: relative; box-sizing: border-box; width: 250px; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: #fff; }
.nh-ai__keying-stack img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 0; border: 0; }
/* Vlevo: fotka z akce → vyřezané postavy → zpátky.
   Vpravo: polární záře je vespod pořád vidět, firemní grafika a festival
   se přes ni prolnou a zase odkryjí (a → b → c → b → a), takže pod nimi je
   v každou chvíli neprůhledný obrázek a nikdy neprobleskne bílé pozadí.
   Animace stojí, dokud se sekce neobjeví na obrazovce (třídu is-on dává
   homepage.js) — jinak by při doscrollování běžela odněkud z půlky a první
   by byl vidět výřez místo původní fotky. */
@keyframes sbKeyCut { 0%, 42% { opacity: 0; } 50%, 92% { opacity: 1; } 100% { opacity: 0; } }
@keyframes sbKeyB { 0%, 30% { opacity: 0; } 38%, 92% { opacity: 1; } 100% { opacity: 0; } }
@keyframes sbKeyC { 0%, 63% { opacity: 0; } 70%, 85% { opacity: 1; } 92%, 100% { opacity: 0; } }
.nh .nh-key-cut { animation: sbKeyCut 16s ease-in-out infinite; }
.nh .nh-key-b { animation: sbKeyB 16s ease-in-out infinite; }
.nh .nh-key-c { animation: sbKeyC 16s ease-in-out infinite; }
.nh .nh-ai__keying .nh-key-cut,
.nh .nh-ai__keying .nh-key-b,
.nh .nh-ai__keying .nh-key-c { animation-play-state: paused; }
.nh .nh-ai__keying.is-on .nh-key-cut,
.nh .nh-ai__keying.is-on .nh-key-b,
.nh .nh-ai__keying.is-on .nh-key-c { animation-play-state: running; }
.nh-ai__keying-cap { font: 600 12px var(--nh-sans); letter-spacing: 1px; text-transform: uppercase; color: rgba(255,255,255,.5); margin-top: 10px; text-align: center; }
.nh-ai__keying-item--result .nh-ai__keying-cap { color: var(--nh-teal-light); }
.nh-ai__keying-arrow { width: 52px; height: 26px; flex: none; margin-bottom: 26px; }

/* =============================================================
   SPECIÁLNÍ AKCE — JIZERSKÁ 50
   ============================================================= */

.nh-special__hero { position: relative; max-width: 1240px; margin: 0 auto 50px; border-radius: 24px; overflow: hidden; box-shadow: 0 20px 50px rgba(35,39,65,.15); }
.nh-special__hero img { width: 100%; height: 480px; object-fit: cover; }
.nh-special__hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(35,39,65,.85)); }
.nh-special__hero-content { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 34px 40px; }
.nh-special__hero-title { font: 400 30px/1.2 var(--nh-serif); color: #fff; margin-bottom: 6px; }
.nh-special__hero-text { font: 400 16px/1.5 var(--nh-sans); color: rgba(255,255,255,.85); }
.nh-special__hero-stats { display: flex; gap: 46px; text-align: center; flex: none; }
.nh-special__stat-num { font: 400 32px/1.2 var(--nh-serif); color: var(--nh-teal); }
.nh-special__stat-label { font: 600 11px var(--nh-sans); letter-spacing: 1.2px; text-transform: uppercase; color: rgba(255,255,255,.8); }

.nh-steps { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 22px; align-items: start; max-width: 1060px; margin: 0 auto 56px; }
.nh-step { text-align: center; }
.nh-step__icon { width: 52px; height: 52px; border-radius: 16px; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; }
.nh-step__icon svg { width: 24px; height: 24px; }
.nh-step__icon--teal { background: rgba(76,191,180,.14); }
.nh-step__icon--orange { background: rgba(237,123,69,.12); }
.nh-step__title { font: 700 15.5px/1.4 var(--nh-sans); color: var(--nh-navy); margin-bottom: 7px; }
.nh-step__text { font: 400 14.5px/1.6 var(--nh-sans); color: var(--nh-text-2); }
.nh-steps__arrow { width: 34px; height: 20px; margin-top: 16px; }

.nh-case { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; max-width: 1240px; margin: 0 auto; align-items: center; }
.nh-case__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.nh-case__photos img { width: 100%; height: 380px; object-fit: cover; border-radius: 20px; }
.nh .nh-case__title { font: 400 32px/1.3 var(--nh-serif) !important; color: var(--nh-navy); margin-bottom: 14px; }
.nh-case__lead { --lh: 1.7; font: 400 16px var(--nh-sans); color: var(--nh-text-2); margin-bottom: 26px !important; }
.nh-checks { display: flex; flex-direction: column; gap: 13px; margin-bottom: 32px !important; }
.nh-checks li { display: flex; gap: 12px; align-items: flex-start; font: 500 15px/1.5 var(--nh-sans); color: var(--nh-navy); }
.nh-checks li::before {
    content: '✓';
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(76,191,180,.15);
    color: var(--nh-teal-dark);
    font: 700 12px/22px var(--nh-sans);
    text-align: center;
}

/* =============================================================
   KODIAQ
   ============================================================= */

.nh-kodiaq > * { max-width: 1240px; margin-left: auto; margin-right: auto; }
.nh .nh-kodiaq__title { font-size: 40px; line-height: 1.25; }
.nh-kodiaq__lead { max-width: 640px; }
.nh-kodiaq__features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-bottom: 42px; }
.nh-feature { background: #fff; border-radius: 20px; padding: 26px 24px; box-shadow: 0 2px 14px rgba(35,39,65,.05); }
.nh .nh-feature h3 { font: 700 15px/1.4 var(--nh-sans) !important; color: var(--nh-navy); margin-bottom: 8px; }
.nh-feature p { font: 400 14px var(--nh-sans); color: var(--nh-text-2); }
.nh-kodiaq__media { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 38px; }
.nh-kodiaq__media img, .nh-kodiaq__media video { width: 100%; height: 250px; object-fit: cover; display: block; border-radius: 18px; background: var(--nh-navy); }

/* =============================================================
   PRODUKTY
   ============================================================= */

.nh-products { text-align: center; padding: 72px 32px 80px; }
.nh-products .nh-lead { max-width: 560px; }
.nh-products .nh-sec__head { margin-bottom: 52px; }
.nh-products__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; max-width: 1240px; margin: 0 auto; }
.nh-product {
    border: 1px solid var(--nh-border);
    border-radius: 24px;
    overflow: hidden;
    text-align: left;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 24px rgba(35,39,65,.06);
    transition: box-shadow .2s ease, transform .2s ease;
}
.nh-product:hover { box-shadow: 0 12px 34px rgba(35,39,65,.12); transform: translateY(-2px); }
.nh-product__img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.nh-product__body { padding: 26px 28px 30px; display: flex; flex-direction: column; flex: 1; }
.nh-product__name { font: 400 26px/1.2 var(--nh-serif); color: var(--nh-navy); }
.nh-product__sub { font: 700 12.5px var(--nh-sans); letter-spacing: .8px; text-transform: uppercase; margin: 4px 0 14px; }
.nh-product__text { font: 400 14.5px var(--nh-sans); color: var(--nh-text-2); margin-bottom: 20px !important; flex: 1; }
.nh-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.nh-tags span { font: 600 11px/1.3 var(--nh-sans); color: #3A4358; background: var(--nh-cream); border-radius: 9999px; padding: 6px 14px; }
.nh-product__link { font: 700 14px var(--nh-sans); }
.nh-product__link:hover { color: var(--nh-orange) !important; }

/* =============================================================
   CENÍK
   ============================================================= */

.nh-pricing { text-align: center; padding: 72px 32px 78px; }
.nh .nh-pricing .nh-h2 { margin-bottom: 12px; }
.nh-pricing__lead { color: #3A4358; max-width: 560px; margin-bottom: 50px !important; }
.nh-pricing__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; max-width: 1180px; margin: 0 auto 30px; align-items: stretch; }
.nh-price {
    position: relative;
    background: #fff;
    border-radius: 24px;
    padding: 34px 30px;
    text-align: left;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 20px rgba(35,39,65,.06);
}
.nh-price--featured { border: 2px solid var(--nh-teal); box-shadow: 0 18px 44px rgba(76,191,180,.2); }
.nh-price__badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--nh-teal);
    color: #fff;
    font: 700 11px/1.3 var(--nh-sans);
    letter-spacing: .6px;
    text-transform: uppercase;
    padding: 7px 18px;
    border-radius: 9999px;
    white-space: nowrap;
    box-shadow: 0 6px 16px rgba(76,191,180,.35);
}
.nh-price__label { font: 700 13px var(--nh-sans); letter-spacing: .8px; text-transform: uppercase; color: var(--nh-teal-dark); margin-bottom: 14px; }
.nh-price--featured .nh-price__label { color: var(--nh-teal-darker); }
.nh-price__value { font: 400 40px/1.2 var(--nh-serif); color: var(--nh-navy); }
.nh-price__value span { font-size: 18px; color: var(--nh-text-3); }
.nh-price__sub { font: 500 13.5px var(--nh-sans); color: var(--nh-text-2); margin-top: 8px; }
.nh-price__extra { font: 400 12.5px var(--nh-sans); color: var(--nh-text-3); margin-top: 4px; padding-bottom: 20px; border-bottom: 1px solid var(--nh-border); margin-bottom: 20px; }
.nh-price__list { display: flex; flex-direction: column; gap: 10px; font: 500 14px/1.45 var(--nh-sans); color: var(--nh-navy); flex: 1; margin-bottom: 26px !important; }
.nh-price__list li::before { content: '✓ '; }
.nh-price__btn {
    display: block;
    text-align: center;
    font: 700 14.5px/1.2 var(--nh-sans);
    color: var(--nh-navy);
    border: 1.5px solid var(--nh-border-btn);
    border-radius: 9999px;
    padding: 13px 0;
    transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.nh-price__btn:hover { border-color: var(--nh-navy); transform: translateY(-1px); }
.nh-price--featured .nh-price__btn {
    color: #fff !important;
    background: var(--nh-teal);
    border-color: var(--nh-teal);
    padding: 14px 0;
    box-shadow: 0 8px 20px rgba(76,191,180,.3);
}
.nh-price--featured .nh-price__btn:hover { background: var(--nh-teal-dark); border-color: var(--nh-teal-dark); }

.nh-custom {
    position: relative;
    overflow: hidden;
    background: linear-gradient(120deg, #1B2335, #232741);
    border-radius: 24px;
    max-width: 1100px;
    margin: 0 auto 28px;
    padding: 32px 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    text-align: left;
}
.nh-custom__glow { position: absolute; inset: 0; background: radial-gradient(ellipse 40% 80% at 100% 50%, rgba(76,191,180,.18), transparent 60%); pointer-events: none; }
.nh-custom__text { position: relative; z-index: 1; }
.nh-custom__title { font: 400 24px/1.2 var(--nh-serif); color: #fff; margin-bottom: 8px; }
.nh-custom__text p { --lh: 1.6; font: 400 14.5px var(--nh-sans); color: rgba(255,255,255,.65); max-width: 620px; }
.nh-custom__action { position: relative; z-index: 1; flex: none; text-align: center; }
.nh-custom__note { font: 600 12px var(--nh-sans); letter-spacing: .8px; text-transform: uppercase; color: var(--nh-teal); margin-bottom: 12px; }
.nh-custom__btn { display: inline-block; font: 700 14.5px/1.2 var(--nh-sans); color: var(--nh-navy) !important; background: #fff; border-radius: 9999px; padding: 13px 26px; transition: transform .15s ease; }
.nh-custom__btn:hover { transform: translateY(-1px); }
.nh-pricing__addons { --lh: 1.7; font: 500 13.5px var(--nh-sans); color: #3A4358; }
.nh-pricing__vat { font: 400 12.5px var(--nh-sans); color: var(--nh-text-2); margin-top: 8px !important; }

/* =============================================================
   CTA + JAK TO FUNGUJE
   ============================================================= */

.nh-cta { background: var(--nh-cream); padding: 60px 32px 0; }
.nh-cta__grid { display: grid; grid-template-columns: 1fr 340px; gap: 56px; max-width: 1050px; margin: 0 auto; align-items: flex-start; }
.nh-cta__text { padding-bottom: 50px; }
.nh .nh-cta__title { font: 400 46px/1.2 var(--nh-serif) !important; color: var(--nh-navy); margin-bottom: 14px; }
.nh-cta__lead { margin: 0 0 40px !important; }
.nh-cta__steps { display: flex; flex-direction: column; gap: 22px; margin-bottom: 44px !important; }
.nh-cta__steps li { display: flex; gap: 18px; align-items: center; font: 400 15.5px/1.55 var(--nh-sans); color: var(--nh-text-2); }
.nh-cta__steps b { font: 700 16px var(--nh-sans); color: var(--nh-navy); }
.nh-cta__num { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--nh-aqua); color: var(--nh-navy); font: 400 20px/40px var(--nh-serif); text-align: center; }
.nh-cta__actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.nh-cta__contact { font: 500 15px var(--nh-sans); color: var(--nh-navy); }
.nh-cta__contact a:hover { color: var(--nh-orange); }
.nh .nh-cta__img { width: 340px; justify-self: center; margin-top: -120px; position: relative; z-index: 2; }

/* =============================================================
   TABLET (768–1099 px pro fotobudku, 768–1023 px pro zbytek)
   ============================================================= */

@media (max-width: 1099px) {
    /* fotobudka ve sloupcovém (mobilním) layoutu */
    .nh-booth { max-width: 400px; margin: 0 auto 56px; }
    .nh-booth__panel { border-radius: 26px; min-height: 0; padding: 26px 20px 24px; }
    .nh-booth__head { flex-direction: column; align-items: center; gap: 14px; }
    .nh-booth__try { font-size: 24px; text-align: center; }
    .nh-booth__chips { justify-content: center; }
    .nh-chip { padding: 11px 20px; }
    .nh-booth__lead { --lh: 1.6; font-size: 13.5px; text-align: center; max-width: 300px; margin: 12px auto 0 !important; }
    .nh-booth__machine { position: relative; left: auto; top: auto; bottom: auto; width: min(300px, 82vw); aspect-ratio: 1536 / 1509; margin: 22px auto 0; }
    .nh-booth__img { width: 100%; height: auto; filter: drop-shadow(0 20px 34px rgba(0,0,0,.4)); }
    .nh-booth__flash-halo { display: none; }
    .nh-booth__real { left: 8px; top: 8px; font-size: 8px; letter-spacing: 1px; padding: 4px 9px; }
    .nh-booth__count { font-size: 46px; }
    .nh-booth__teaser { top: 38%; width: 70%; margin-left: -35%; }
    .nh-booth__teaser-bubble { font-size: 15px; padding: 5px 12px 6px; border-radius: 11px 11px 11px 3px; }
    .nh-booth__teaser svg { width: 24px; height: 21px; margin: 0 auto 0 37%; }
    .nh-booth__gen { bottom: 8px; font-size: 9.5px; letter-spacing: .4px; padding: 7px 13px; }
    .nh-booth__start { bottom: 9px; width: 46px; height: 46px; font-size: 11px; line-height: 42px; }
    .nh-booth__tray { flex: none; min-height: 0; height: 300px; margin-top: 10px; }
    .nh-booth__empty { top: 52%; border-radius: 18px; padding: 40px 30px; font-size: 14px; width: 210px; }
    .nh-print { top: 52%; }
    .nh-print__card { padding: 9px 9px 10px; }
    .nh-print__label { font-size: 18px; padding-top: 6px; }
    .nh-booth__foot { --lh: 1.6; display: block; font: 400 12.5px var(--nh-sans); color: rgba(255,255,255,.38); text-align: center; margin-top: 6px !important; }
    .nh-booth .nh-desktop-only { display: none; }
    .nh-booth .nh-mobile-only { display: inline; }
    .nh-booth p.nh-mobile-only { display: block; }
}

@media (max-width: 1023px) {
    .nh-galleries__grid { grid-template-columns: repeat(2, 1fr); }
    .nh-stats { flex-wrap: wrap; gap: 26px 48px; }
    .nh-revs { max-width: 560px; }
    .nh-review { flex-basis: 100%; }
    .nh-ai__keying { grid-template-columns: 1fr; }
    .nh-special__hero-content { flex-direction: column; align-items: flex-start; }
    .nh-case { grid-template-columns: 1fr; max-width: 640px; }
    .nh-kodiaq__features, .nh-kodiaq__media { grid-template-columns: repeat(2, 1fr); }
    .nh-products__grid, .nh-pricing__grid { grid-template-columns: 1fr; max-width: 440px; gap: 26px; }
    .nh-custom { flex-direction: column; align-items: flex-start; max-width: 440px; }
    .nh-custom__action { text-align: left; }
    .nh-cta__grid { grid-template-columns: 1fr; max-width: 560px; }
    .nh .nh-cta__img { display: none; }
}

/* =============================================================
   MOBIL (< 768 px) — předloha „mobil"
   ============================================================= */

@media (max-width: 767px) {
    .nh-desktop-only { display: none !important; }
    .nh-mobile-only { display: inline; }

    .nh-wave { height: 34px; }
    .nh-sec { padding: 56px 20px 64px; }
    .nh-sec__head { margin-bottom: 34px; }
    .nh .nh-h2 { font-size: 30px; line-height: 1.25; margin-bottom: 12px; }
    .nh-lead { font-size: 15px; max-width: 420px; }
    .nh-pill { font-size: 11px; padding: 7px 16px; margin-bottom: 16px; }
    .nh-eyebrow { font-size: 12px; margin-bottom: 12px; }
    .nh-eyebrow--bold { font-size: 11px; margin-bottom: 10px; }
    .nh-btn { font-size: 14px; }
    .nh-btn--outline { padding: 13px 30px; }
    .nh-btn--bold { padding: 13px 26px; }

    /* galerie — horizontální karusel */
    .nh-galleries { padding: 52px 0 56px; }
    .nh .nh-galleries__title { font-size: 30px; margin-bottom: 30px; padding: 0 24px; }
    .nh-galleries__grid {
        display: flex;
        gap: 14px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding: 4px 20px 18px;
    }
    .nh-gcard { flex: none; width: 230px; scroll-snap-align: center; }
    .nh-gcard__media { height: 160px; }
    .nh-gcard__body { padding: 14px 16px 16px; }
    .nh-gcard__name { font-size: 12px; }
    .nh-gcard__date { font-size: 12.5px; }
    .nh-galleries__more { margin-top: 20px; }

    /* parallax → statické obrázky */
    .nh-plx { height: 340px; }
    .nh-plx--crowd, .nh-plx--collage-photo { height: 320px; }
    .nh-plx--collage { height: 400px; }
    .nh-plx__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
    .nh-plx--photos .nh-plx__bg {
        background-image: url('../images/homepage/parallax-photos-m.jpg');
        background-image: image-set(url('../images/homepage/parallax-photos-m.webp') type('image/webp'), url('../images/homepage/parallax-photos-m.jpg') type('image/jpeg'));
    }
    .nh-plx--collage-photo .nh-plx__bg {
        background-image: url('../images/homepage/collage-2-m.jpg?v=3');
        background-image: image-set(url('../images/homepage/collage-2-m.webp?v=3') type('image/webp'), url('../images/homepage/collage-2-m.jpg?v=3') type('image/jpeg'));
    }
    .nh-plx--crowd .nh-plx__bg {
        background-image: url('../images/homepage/jiz-crowd-m.jpg');
        background-image: image-set(url('../images/homepage/jiz-crowd-m.webp') type('image/webp'), url('../images/homepage/jiz-crowd-m.jpg') type('image/jpeg'));
    }
    .nh-plx--crowd .nh-plx__shade { background: linear-gradient(180deg, rgba(35,39,65,.5), rgba(35,39,65,.3) 55%, rgba(35,39,65,.5)); }
    .nh-plx__content { padding: 0 28px; }
    .nh .nh-plx__title { font-size: 27px; margin-bottom: 10px; }
    .nh-plx__text { --lh: 1.6; font-size: 15px; max-width: 340px; }
    .nh-collage { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1.1fr 1fr; gap: 10px; padding: 10px; }
    .nh-collage__tile { border-radius: 14px; }
    .nh-collage__tile--group { grid-column: 1 / -1; order: 1; }
    .nh-collage__tile:nth-child(4), .nh-collage__tile:nth-child(5) { order: 2; }
    .nh-collage__badge { left: 12px; bottom: 12px; font-size: 10px; padding: 6px 13px; }

    /* čísla + reference */
    .nh-refs { padding: 56px 20px 64px; }
    .nh .nh-refs__title { font-size: 34px; margin-bottom: 12px; }
    .nh-refs__lead { max-width: 420px; margin-bottom: 36px !important; }
    .nh-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 12px; max-width: 360px; margin: 0 auto 44px; }
    .nh-stats__num { font-size: 30px; }
    .nh-stats__label { font-size: 13px; margin-top: 3px; }
    .nh-refs__label { font-size: 11px; margin-bottom: 16px; }
    .nh-marquee { margin: 0 -20px 14px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
    .nh-marquee--agencies { margin-bottom: 40px; }
    .nh-marquee__set { gap: 34px; padding-right: 34px; }
    .nh-marquee img { height: calc(var(--h) * .75); }
    .nh-refs__partners-label { font-size: 11px; margin-bottom: 12px; }
    .nh-refs__partners { --lh: 1.9; font-size: 13.5px; max-width: 340px; margin: 0 auto 32px !important; }
    .nh-revs { max-width: 420px; margin-bottom: 26px; }
    .nh-reviews { gap: 16px; }
    .nh-review { padding: 24px 24px 20px; }
    .nh-review__stars { font-size: 15px; margin-bottom: 10px; }
    .nh-review__text { font-size: 15px; margin-bottom: 16px; }
    .nh-review__author { gap: 12px; }
    .nh-review__avatar { width: 42px; height: 42px; font-size: 18px; line-height: 42px; }
    .nh-review__name { font-size: 14px; }
    .nh-review__meta { font-size: 12.5px; }
    .nh-ratings { flex-direction: column; gap: 12px; max-width: 420px; margin-bottom: 30px; padding: 20px 24px; font-size: 14px; }
    .nh-ratings__title { font-size: 13px; }

    /* AI sekce */
    .nh-ai { padding: 72px 20px 64px; }
    .nh-ai__badge { display: inline-block; font-size: 10.5px; line-height: 1.6; letter-spacing: 1.2px; padding: 8px 16px; border-radius: 14px; max-width: 300px; margin-bottom: 20px; }
    .nh .nh-ai__title { font-size: 32px; margin-bottom: 14px; }
    .nh-ai__lead { font-size: 15px; max-width: 400px; margin-bottom: 40px !important; }
    .nh-ai__block { max-width: 400px; margin-bottom: 52px; }
    .nh-ai__block--unique { margin-bottom: 60px; }
    .nh-ai__block-head { display: block; margin-bottom: 0; }
    .nh-ai__block-title { gap: 12px; }
    .nh-ai__num { width: 32px; height: 32px; font-size: 16px; line-height: 29px; }
    .nh .nh-ai__block-title h3 { font-size: 25px !important; }
    .nh-ai__block-text { font-size: 14.5px; margin-bottom: 14px !important; }
    .nh-ai__block--unique .nh-ai__block-text { margin-bottom: 20px !important; }
    .nh-ai__price { display: flex; align-items: baseline; gap: 10px; text-align: left; margin-bottom: 20px; }
    .nh-ai__price-value { flex: none; font-size: 19px; }
    .nh-ai__price-note { font-size: 11.5px; letter-spacing: .8px; }
    .nh-ai__catalog {
        display: flex;
        gap: 11px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        margin: 0 -20px;
        padding: 0 20px 14px;
    }
    .nh-ai__catalog img { flex: none; width: 140px; border-radius: 13px; scroll-snap-align: start; }
    .nh-ai__catalog--groups img { width: 230px; }
    .nh-ai__orig { flex: none; width: 230px; scroll-snap-align: start; }
    .nh-ai__orig img { width: 230px; border-radius: 13px; }
    .nh-ai__orig-badge { left: 8px; bottom: 8px; font-size: 10px; padding: 5px 11px; }
    .nh-ai__row-label span { display: block; }
    .nh-ai__row-label { font-size: 11px; letter-spacing: 1.2px; margin-bottom: 8px; }
    .nh-ai__row-label--groups { margin-top: 10px; }
    .nh-ai__catalog-foot { display: block; margin-top: 8px; }
    .nh-ai__catalog-foot p { font-size: 14px; margin-bottom: 18px !important; }
    .nh-btn-yellow { display: inline-block; font-size: 12.5px; padding: 14px 22px; }
    .nh-ai__unique { grid-template-columns: 1fr 1fr; gap: 11px; }
    .nh-ai__unique img, .nh-ai__unique video { border-radius: 13px; }
    .nh-ai__keying { max-width: 400px; padding-top: 44px; gap: 26px; }
    .nh .nh-ai__keying-title { font-size: 25px !important; margin-bottom: 10px; }
    .nh-ai__keying-text { font-size: 14.5px; }
    .nh-ai__keying-note { font-size: 13px; margin-top: 10px !important; }
    .nh-ai__keying-pair { flex-direction: column; gap: 12px; align-items: stretch; }
    .nh-ai__keying-item, .nh-ai__keying-item img, .nh-ai__keying-stack { width: 100%; }
    .nh-ai__keying-cap { font-size: 11px; margin-top: 8px; }
    .nh-ai__keying-arrow { width: 44px; height: 22px; margin: 11px 0; transform: rotate(90deg); align-self: center; }

    /* Jizerská */
    .nh-special__hero { max-width: 440px; margin-bottom: 40px; border-radius: 20px; }
    .nh-special__hero img { height: 420px; }
    .nh-special__hero-shade { background: linear-gradient(180deg, transparent 30%, rgba(35,39,65,.9)); }
    .nh-special__hero-content { gap: 18px; padding: 24px 24px 26px; }
    .nh-special__hero-title { font-size: 24px; }
    .nh-special__hero-text { font-size: 14px; line-height: 1.55; }
    .nh-special__hero-stats { gap: 30px; }
    .nh-special__stat-num { font-size: 26px; }
    .nh-special__stat-label { font-size: 10px; }
    .nh-steps { display: flex; flex-direction: column; align-items: center; gap: 14px; max-width: 340px; margin-bottom: 46px; }
    .nh-step__icon { width: 48px; height: 48px; border-radius: 15px; margin-bottom: 12px; }
    .nh-step__icon svg { width: 22px; height: 22px; }
    .nh-step__title { font-size: 15px; margin-bottom: 6px; }
    .nh-step__text { font-size: 14px; }
    .nh-steps__arrow { width: 28px; height: 16px; margin: 6px 0; transform: rotate(90deg); }
    .nh-case { max-width: 440px; gap: 26px; }
    .nh-case__photos { gap: 12px; }
    .nh-case__photos img { height: 220px; border-radius: 16px; }
    .nh .nh-case__title { font-size: 24px !important; margin-bottom: 12px; }
    .nh-case__lead { font-size: 15px; margin-bottom: 22px !important; }
    .nh-checks { gap: 12px; margin-bottom: 26px !important; }
    .nh-checks li { gap: 11px; font-size: 14px; }

    /* Kodiaq */
    .nh-kodiaq > * { max-width: 440px; }
    .nh-kodiaq .nh-sec__head { margin-bottom: 32px; }
    .nh .nh-kodiaq__title { font-size: 28px; }
    .nh-kodiaq__features { grid-template-columns: 1fr; gap: 12px; margin-bottom: 28px; }
    .nh-feature { border-radius: 18px; padding: 20px 22px; }
    .nh .nh-feature h3 { margin-bottom: 6px; }
    .nh-feature p { --lh: 1.6; }
    .nh-kodiaq__media { gap: 12px; margin-bottom: 28px; }
    .nh-kodiaq__media img, .nh-kodiaq__media video { height: 180px; border-radius: 16px; }

    /* produkty */
    .nh-products { padding: 56px 20px 64px; }
    .nh-products .nh-sec__head { margin-bottom: 36px; }
    .nh-products__grid { max-width: 400px; gap: 22px; }
    .nh-product { border-radius: 22px; }
    .nh-product__img { aspect-ratio: auto; }
    .nh-product__img--smilebox { height: 400px; }
    .nh-product__img--printka { height: 350px; }
    .nh-product__img--fotoautomat { height: 450px; }
    .nh-product__body { padding: 22px 24px 26px; }
    .nh-product__name { font-size: 24px; }
    .nh-product__sub { font-size: 12px; margin-bottom: 12px; }
    .nh-product__text { font-size: 14px; margin-bottom: 16px !important; }
    .nh-tags { margin-bottom: 18px; }
    .nh-tags span { padding: 6px 13px; }

    /* ceník */
    .nh-pricing { padding: 56px 20px 64px; }
    .nh-pricing__lead { max-width: 400px; margin-bottom: 40px !important; }
    .nh-pricing__grid { max-width: 400px; margin-bottom: 26px; }
    .nh-price { border-radius: 22px; padding: 28px 26px; }
    .nh-price--featured { padding: 32px 26px 28px; }
    .nh-price__label { font-size: 12.5px; margin-bottom: 12px; }
    .nh-price__value { font-size: 36px; }
    .nh-price__value span { font-size: 17px; }
    .nh-price__sub { font-size: 13px; margin-top: 7px; }
    .nh-price__extra { font-size: 12px; padding-bottom: 16px; margin-bottom: 16px; }
    .nh-price__list { gap: 9px; font-size: 13.5px; margin-bottom: 22px !important; }
    .nh-price__btn { font-size: 14px; }
    .nh-custom { max-width: 400px; border-radius: 22px; padding: 28px 26px; margin-bottom: 24px; display: block; }
    .nh-custom__title { font-size: 22px; }
    .nh-custom__text p { font-size: 14px; margin-bottom: 20px !important; }
    .nh-custom__action { display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: center; gap: 16px; }
    .nh-custom__note { font-size: 11px; margin: 0; }
    .nh-custom__btn { font-size: 14px; padding: 13px 24px; }
    .nh-pricing__addons { font-size: 13px; max-width: 340px; margin: 0 auto !important; }
    .nh-pricing__vat { font-size: 12px; }

    /* CTA */
    .nh-cta { padding: 56px 24px 40px; }
    .nh-cta__grid { max-width: 400px; }
    .nh-cta__text { padding-bottom: 0; }
    .nh .nh-cta__title { font-size: 32px !important; margin-bottom: 12px; }
    .nh-cta__lead { font-size: 15px; margin-bottom: 30px !important; }
    .nh-cta__steps { gap: 18px; margin-bottom: 34px !important; }
    .nh-cta__steps li { gap: 15px; align-items: flex-start; font-size: 14.5px; }
    .nh-cta__steps li > div { padding-top: 2px; }
    .nh-cta__steps b { font-size: 15px; }
    .nh-cta__num { width: 38px; height: 38px; font-size: 18px; line-height: 38px; }
    .nh-cta__actions { flex-direction: column; gap: 14px; }
    .nh-btn--cta { font-size: 16px; padding: 18px 44px; }
}

/* dotyková zařízení: fixní parallax vrstvy jsou na iOS nespolehlivé → statický obrázek */
@media (hover: none) and (min-width: 768px) {
    .nh-plx__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .nh .nh-key-cut, .nh .nh-key-b, .nh .nh-key-c { animation: none; opacity: 0; }
    html { scroll-behavior: auto; }
    .nh-marquee__track,
    .nh .nh-tile-b,
    .nh .nh-tile-c { animation: none; }
    .nh .nh-tile-b, .nh .nh-tile-c { opacity: 0; }
}
