/* ==========================================================
   Směr E — Kinematický
   Studená čerň, ledová ocel, celoobrazovkové kapitoly.
   Vše „leží ve tmě" — jen typografie, fotky, tenké linky a prostor.
   ========================================================== */

:root {
    /* ---- Podklad a text ---- */
    --c-base: 8 9 11;             /* #08090B hluboká studená čerň */
    --c-cream: 242 244 246;       /* #F2F4F6 studená bílá — hlavní text (18,3:1) */
    --c-ink: 3 4 5;               /* #030405 text na akcentních plochách */

    /* ---- Akcent: ledová ocel (7,8:1 na podkladu, 8,0:1 s tmavým textem) ---- */
    --c-copper: 111 168 199;      /* #6FA8C7 */
    --c-copper-light: 156 203 226;/* #9CCBE2 (11,4:1) */
    --c-copper-dark: 63 110 138;  /* #3F6E8A (3,6:1 — jen velké prvky a linky) */

    /* ---- Povrchy a linky ---- */
    --c-surface: 16 19 23;        /* #101317 */
    --c-line: 35 40 46;           /* #23282E */

    /* ---- Tlumené texty (kontrast na #08090B: 18,3 / 10,5 / 6,8 / 4,8) ---- */
    --c-sand-100: 214 220 226;    /* #D6DCE2 */
    --c-sand-200: 179 189 199;    /* #B3BDC7 */
    --c-sand-300: 140 152 164;    /* #8C98A4 */
    --c-sand-500: 112 126 140;    /* #707E8C */
    /* ---- Plochy a okraje ---- */
    --c-sand-700: 38 43 49;       /* #262B31 */
    --c-sand-800: 20 23 26;       /* #14171A */
    --c-sand-900: 13 15 17;       /* #0D0F11 */

    /* ---- Vrstvy: v kinematickém směru jen odstíny šeromodré tmy ---- */
    --c-strata-ornice: 18 22 27;
    --c-strata-jil: 14 17 21;
    --c-strata-sterk: 22 26 31;
    --c-strata-skala: 10 12 15;

    --font-display: 'Archivo Black';
    --font-body: 'IBM Plex Sans';
    --font-tech: 'IBM Plex Sans';
}

/* ==========================================================
   TYPOGRAFIE
   ========================================================== */

h1, h2, h3, h4 {
    font-family: var(--font-display), 'Helvetica Neue', Arial Black, Arial, sans-serif;
    /* Archivo Black má jedinou tučnost — syntetické ztučnění by rozmazalo tvary */
    font-weight: 400 !important;
    font-synthesis-weight: none;
    letter-spacing: -0.03em;
    line-height: 0.96;
    text-transform: none !important;   /* filmový směr nekřičí verzálkami */
    overflow-wrap: break-word;
}

/* Drobné technické popisky nejsou terminál — jen prostrkaný grotesk */
.font-mono {
    font-family: var(--font-tech), system-ui, -apple-system, sans-serif;
    letter-spacing: 0.24em;
    font-weight: 500;
    text-transform: uppercase;
}

/* Kotvy pod pevnou hlavičkou */
section[id],
footer[id],
main[id] { scroll-margin-top: 5.5rem; }

/* Viditelný fokus na tmavém podkladu */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
    outline: 2px solid rgb(var(--c-copper-light));
    outline-offset: 3px;
}

/* ==========================================================
   PŘEPISY SDÍLENÝCH KOMPONENT
   (vnitřní stránky používají sdílené šablony — ztlumíme brutalismus)
   ========================================================== */

/* Vrstvy podloží → chladné odstíny tmy místo hnědých zemin */
.strata-surface { background: linear-gradient(180deg, rgb(var(--c-base)) 0%, rgb(var(--c-surface)) 100%); }
.strata-ornice  { background: linear-gradient(180deg, rgb(var(--c-surface)) 0%, rgb(var(--c-base)) 100%); }
.strata-jil     { background: linear-gradient(180deg, rgb(var(--c-base)) 0%, rgb(var(--c-strata-sterk)) 100%); }
.strata-sterk   { background: linear-gradient(180deg, rgb(var(--c-strata-sterk)) 0%, rgb(var(--c-base)) 100%); }
.strata-skala   { background: linear-gradient(180deg, rgb(var(--c-base)) 0%, rgb(var(--c-strata-skala)) 100%); }
.strata-bedrock { background: linear-gradient(180deg, rgb(var(--c-strata-skala)) 0%, rgb(var(--c-ink)) 100%); }
.strata::before { opacity: 0.22; }

/* Hustá technická mřížka patří jinému směru — tady jen tma */
.bg-grid { background-image: none; }
.bg-hazard {
    background-image: linear-gradient(90deg, rgb(var(--c-copper)) 0%, rgb(var(--c-copper) / 0) 60%);
    opacity: 0.55;
}

/* Tvrdé industriální stíny → měkká filmová hloubka */
.hard-shadow { box-shadow: 0 18px 40px -24px rgb(0 0 0 / 0.9); }
.hard-shadow-lg { box-shadow: 0 30px 64px -30px rgb(0 0 0 / 0.95); }
.hard-shadow-hover { transition: transform 0.5s ease, box-shadow 0.5s ease; }
.hard-shadow-hover:hover {
    box-shadow: 0 26px 52px -26px rgb(0 0 0 / 0.9);
    transform: translateY(-4px);
}

/* Ostré hrany bez zaoblení, ale bez brutalistních rámů */
a[class*="bg-copper"],
button[class*="bg-copper"] { border-radius: 0; }

/* Modré rámečky na vnitřních stránkách ztlumíme na tenkou linku */
main .border-copper-dark:not([class*="bg-copper"]),
section .border-copper-dark:not([class*="bg-copper"]) { border-color: rgb(var(--c-line)); }

/* Plovoucí CTA z tail.ejs — kruh místo brutalistního čtverce */
.fixed.bottom-6.right-6 {
    border-radius: 9999px;
    border-color: rgb(var(--c-copper-light));
    box-shadow: 0 14px 36px -14px rgb(0 0 0 / 0.9);
}

/* Reveal je pomalejší a filmovější */
.reveal { transform: translateY(48px); transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal-left { transform: translateX(-32px); transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal-right { transform: translateX(32px); transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1); }

/* ==========================================================
   NAVIGACE — minimální, průhledná nad fotkou
   ========================================================== */

#navbar {
    background-color: transparent;
    border-bottom: 1px solid transparent;
    transition: background-color 0.5s ease, border-color 0.5s ease;
}
/* JS přidá .hard-shadow po odscrollování → lišta ztmavne */
#navbar.hard-shadow {
    background-color: rgb(var(--c-base) / 0.92);
    border-bottom-color: rgb(var(--c-line));
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.cine-nav {
    max-width: 90rem;
    margin: 0 auto;
    height: 5rem;                 /* přesně 80 px — vnitřní stránky mají py-20 */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 0 1.5rem;
}
@media (min-width: 1024px) { .cine-nav { padding: 0 3.5rem; } }

.cine-nav-link {
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgb(var(--c-sand-100));
    transition: color 0.3s ease;
    white-space: nowrap;
}
.cine-nav-link:hover { color: rgb(var(--c-cream)); }
.cine-nav-link.is-active { color: rgb(var(--c-copper-light)); }

.cine-nav-cta {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgb(var(--c-cream));
    border: 1px solid rgb(var(--c-cream) / 0.45);
    padding: 0.7rem 1.5rem;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    white-space: nowrap;
}
.cine-nav-cta:hover {
    background-color: rgb(var(--c-copper));
    border-color: rgb(var(--c-copper));
    color: rgb(var(--c-ink));
}

.cine-burger {
    color: rgb(var(--c-cream));
    padding: 0.5rem;
    margin-right: -0.5rem;
    background: transparent;
    border: 0;
    line-height: 0;
}

/* Mobilní menu = tmavý celoobrazovkový panel */
.cine-mobile-menu {
    position: fixed;
    left: 0;
    right: 0;
    top: 5rem;
    bottom: 0;
    z-index: 40;
    background-color: rgb(var(--c-base) / 0.97);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.25rem;
    padding: 2rem 1.5rem 4rem;
    overflow-y: auto;
}
@media (min-width: 768px) { .cine-mobile-menu { display: none; } }

.cine-mobile-link {
    font-family: var(--font-display), 'Helvetica Neue', Arial, sans-serif;
    font-size: clamp(1.9rem, 9vw, 2.75rem);
    line-height: 1;
    letter-spacing: -0.03em;
    color: rgb(var(--c-cream));
    transition: color 0.3s ease;
}
.cine-mobile-link:hover { color: rgb(var(--c-copper-light)); }
.cine-mobile-link.is-active { color: rgb(var(--c-copper-light)); }

/* ==========================================================
   KAPITOLY — celoobrazovkové bloky s fotkou pod textem
   ========================================================== */

.cine-chapter {
    position: relative;
    display: flex;
    min-height: 100vh;
    overflow: hidden;
}
@supports (min-height: 100svh) {
    .cine-chapter { min-height: 100svh; }
}

.cine-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 90rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
@media (min-width: 1024px) { .cine-inner { padding-left: 3.5rem; padding-right: 3.5rem; } }

/* Fotka přes celou plochu, chladně vygradovaná a ztlumená */
.cine-photo {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.cine-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.42) contrast(1.08) brightness(0.62);
}

/* Pomalý filmový nájezd */
.cine-kenburns img {
    transform-origin: 52% 45%;
    animation: cine-kenburns 26s ease-in-out infinite alternate;
}
@keyframes cine-kenburns {
    from { transform: scale(1.04); }
    to   { transform: scale(1.13); }
}

/* Překryvy: text leží NA fotce, proto musí být podklad opravdu tmavý.
   Nejsvětlejší pixel fotky spadne po filtru a překryvu pod 8 % jasu → bílý text >12:1. */
.cine-veil,
.cine-veil-right,
.cine-veil-center {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}
.cine-veil {
    background:
        linear-gradient(180deg, rgb(var(--c-base) / 0.88) 0%, rgb(var(--c-base) / 0.30) 24%, rgb(var(--c-base) / 0.66) 64%, rgb(var(--c-base)) 100%),
        linear-gradient(90deg, rgb(var(--c-base) / 0.84) 0%, rgb(var(--c-base) / 0.34) 55%, rgb(var(--c-base) / 0.06) 100%),
        radial-gradient(118% 88% at 50% 44%, rgb(20 34 48 / 0.10) 28%, rgb(var(--c-ink) / 0.72) 100%);
}
.cine-veil-right {
    background:
        linear-gradient(180deg, rgb(var(--c-base) / 0.88) 0%, rgb(var(--c-base) / 0.30) 24%, rgb(var(--c-base) / 0.66) 64%, rgb(var(--c-base)) 100%),
        linear-gradient(270deg, rgb(var(--c-base) / 0.84) 0%, rgb(var(--c-base) / 0.34) 55%, rgb(var(--c-base) / 0.06) 100%),
        radial-gradient(118% 88% at 50% 44%, rgb(20 34 48 / 0.10) 28%, rgb(var(--c-ink) / 0.72) 100%);
}
.cine-veil-center {
    background:
        linear-gradient(180deg, rgb(var(--c-base) / 0.90) 0%, rgb(var(--c-base) / 0.55) 30%, rgb(var(--c-base) / 0.70) 70%, rgb(var(--c-base)) 100%),
        radial-gradient(110% 82% at 50% 50%, rgb(20 34 48 / 0.14) 20%, rgb(var(--c-ink) / 0.82) 100%);
}

/* Na mobilu je text vždy přes celou šířku → ztmavit rovnoměrně, ne jen jednu stranu */
@media (max-width: 767px) {
    .cine-veil,
    .cine-veil-right {
        background:
            linear-gradient(180deg, rgb(var(--c-base) / 0.90) 0%, rgb(var(--c-base) / 0.56) 28%, rgb(var(--c-base) / 0.80) 72%, rgb(var(--c-base)) 100%),
            radial-gradient(125% 85% at 50% 48%, rgb(20 34 48 / 0.12) 18%, rgb(var(--c-ink) / 0.80) 100%);
    }
}

/* Velké tiché číslo kapitoly v rohu (dekorace, aria-hidden) */
.cine-mark {
    position: absolute;
    z-index: 2;
    top: 5.5rem;
    right: 1.25rem;
    font-family: var(--font-display), 'Helvetica Neue', Arial, sans-serif;
    font-size: clamp(3.25rem, 11vw, 8.5rem);
    line-height: 0.78;
    letter-spacing: -0.06em;
    color: rgb(var(--c-cream) / 0.09);
    pointer-events: none;
    user-select: none;
}
@media (min-width: 1024px) { .cine-mark { right: 3.5rem; top: 7rem; } }
.cine-mark-bl { top: auto; bottom: 2rem; right: auto; left: 1.25rem; }
@media (min-width: 1024px) { .cine-mark-bl { left: 3.5rem; bottom: 3rem; } }

/* ---- Nadpisy kapitol ---- */
.cine-h1 {
    font-size: clamp(2.4rem, 10.5vw, 8.25rem);
    line-height: 0.92;
    letter-spacing: -0.04em;
}
.cine-h2 {
    font-size: clamp(1.95rem, 7.2vw, 5.25rem);
    line-height: 0.94;
    letter-spacing: -0.035em;
}
.cine-h3 {
    font-size: clamp(1.45rem, 4.6vw, 2.35rem);
    line-height: 1.02;
    letter-spacing: -0.025em;
}

/* ---- Drobné popisky ---- */
.cine-kicker {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgb(var(--c-copper-light));
}
.cine-kicker-no {
    color: rgb(var(--c-sand-300));
    letter-spacing: 0.18em;
    flex-shrink: 0;
}
.cine-kicker-line {
    flex: 1 1 auto;
    max-width: 5rem;
    height: 1px;
    background: rgb(var(--c-copper) / 0.5);
}

.cine-lead {
    font-size: clamp(1.05rem, 2.1vw, 1.5rem);
    line-height: 1.55;
    font-weight: 300;
    color: rgb(var(--c-sand-100));
}

.cine-rule {
    height: 1px;
    border: 0;
    background: linear-gradient(90deg, rgb(var(--c-copper) / 0.55) 0%, rgb(var(--c-cream) / 0.07) 100%);
}

/* ---- Tlačítka: ploché obdélníky, žádné stíny ---- */
.cine-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1.05rem 2.1rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.cine-btn-primary { background-color: rgb(var(--c-copper)); color: rgb(var(--c-ink)); }
.cine-btn-primary:hover { background-color: rgb(var(--c-copper-light)); }
.cine-btn-ghost { border: 1px solid rgb(var(--c-cream) / 0.42); color: rgb(var(--c-cream)); }
.cine-btn-ghost:hover { border-color: rgb(var(--c-cream)); background-color: rgb(var(--c-cream) / 0.08); }

/* ---- Textový odkaz se šipkou ---- */
.cine-link {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgb(var(--c-copper-light));
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgb(var(--c-copper) / 0.45);
    transition: color 0.3s ease, border-color 0.3s ease, gap 0.3s ease;
}
.cine-link:hover { color: rgb(var(--c-cream)); border-color: rgb(var(--c-cream)); gap: 1.1rem; }
.cine-link svg { width: 1.15rem; height: 1.15rem; flex-shrink: 0; }

/* ---- Ukazatel scrollu ---- */
.cine-scrollcue {
    position: absolute;
    left: 50%;
    bottom: 1.5rem;
    transform: translateX(-50%);
    z-index: 3;
    width: 1px;
    height: 3.5rem;
    background: rgb(var(--c-cream) / 0.16);
    overflow: hidden;
}
.cine-scrollcue span {
    position: absolute;
    left: 0;
    top: 0;
    width: 1px;
    height: 55%;
    background: rgb(var(--c-copper-light));
    animation: cine-drop 2.6s cubic-bezier(0.6, 0, 0.4, 1) infinite;
}
@keyframes cine-drop {
    0%   { transform: translateY(-100%); opacity: 0; }
    25%  { opacity: 1; }
    100% { transform: translateY(200%); opacity: 0; }
}

/* ==========================================================
   ČÍSLA / MĚŘÍTKO
   ========================================================== */

.cine-stat {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.4rem 0;
    border-top: 1px solid rgb(var(--c-line));
}
.cine-stat:last-child { border-bottom: 1px solid rgb(var(--c-line)); }
.cine-stat-value {
    font-family: var(--font-display), 'Helvetica Neue', Arial, sans-serif;
    font-size: clamp(1.9rem, 5.4vw, 3.6rem);
    line-height: 0.95;
    letter-spacing: -0.04em;
    color: rgb(var(--c-cream));
    overflow-wrap: break-word;
}
.cine-stat-label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: rgb(var(--c-sand-300));
    text-align: right;
    flex-shrink: 0;
    max-width: 45%;
}

/* Velké pořadové číslo u položek (proč my, postup) */
.cine-num {
    font-family: var(--font-display), 'Helvetica Neue', Arial, sans-serif;
    font-size: clamp(1.75rem, 3.4vw, 2.5rem);
    line-height: 1;
    letter-spacing: -0.04em;
    color: rgb(var(--c-copper));
}

/* ==========================================================
   SLUŽBY — celoplošné pásy s fotkou
   ========================================================== */

.cine-band {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 78vh;
    overflow: hidden;
}
@media (min-width: 768px) {
    .cine-band { min-height: 84vh; align-items: center; }
}

/* ==========================================================
   FILMOVÝ PÁS REALIZACÍ
   ========================================================== */

.cine-strip {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    padding-bottom: 1.5rem;
    scrollbar-width: thin;
    scrollbar-color: rgb(var(--c-copper-dark)) rgb(var(--c-sand-800));
}
.cine-strip::-webkit-scrollbar { height: 3px; }
.cine-strip::-webkit-scrollbar-track { background: rgb(var(--c-sand-800)); }
.cine-strip::-webkit-scrollbar-thumb { background: rgb(var(--c-copper-dark)); }

.cine-strip-item {
    flex: 0 0 82vw;
    scroll-snap-align: start;
    margin: 0;
}
@media (min-width: 768px) { .cine-strip-item { flex: 0 0 42vw; } }
@media (min-width: 1280px) { .cine-strip-item { flex: 0 0 30vw; } }

.cine-strip-photo {
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background-color: rgb(var(--c-sand-900));
}
.cine-strip-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.4) contrast(1.06) brightness(0.78);
    transition: filter 0.7s ease, transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.cine-strip-item:hover .cine-strip-photo img {
    filter: saturate(0.72) contrast(1.04) brightness(1);
    transform: scale(1.04);
}
.cine-strip-caption {
    display: block;
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px solid rgb(var(--c-line));
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    color: rgb(var(--c-sand-100));
}

/* ==========================================================
   PŘED / PO — letterbox bez rámu
   ========================================================== */

.cine-ba {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: rgb(var(--c-sand-900));
    touch-action: pan-y;
    user-select: none;
}
@media (min-width: 768px) { .cine-ba { aspect-ratio: 21 / 9; } }

.cine-ba-layer { position: absolute; inset: 0; }
.cine-ba-layer img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.5) contrast(1.05) brightness(0.92);
}
.cine-ba-slider {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: ew-resize;
    z-index: 30;
}
.cine-ba-handle {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgb(var(--c-cream));
    pointer-events: none;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cine-ba-knob {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 9999px;
    background: rgb(var(--c-cream));
    color: rgb(var(--c-ink));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ==========================================================
   KONTAKT (patička)
   ========================================================== */

.cine-contact-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem 1.5rem;
    padding: 1.3rem 0;
    border-top: 1px solid rgb(var(--c-line));
}
.cine-contact-who {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: rgb(var(--c-sand-300));
}
.cine-contact-val {
    font-family: var(--font-display), 'Helvetica Neue', Arial, sans-serif;
    font-size: clamp(1.15rem, 3.2vw, 1.75rem);
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: rgb(var(--c-cream));
    transition: color 0.3s ease;
    overflow-wrap: break-word;
}
a.cine-contact-val:hover { color: rgb(var(--c-copper-light)); }

.cine-label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgb(var(--c-sand-300));
    margin-bottom: 0.4rem;
}
.cine-field {
    width: 100%;
    background-color: transparent;
    border: 0;
    border-bottom: 1px solid rgb(var(--c-sand-700));
    color: rgb(var(--c-cream));
    font-family: var(--font-body), system-ui, sans-serif;
    font-size: 1rem;
    padding: 0.8rem 0;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.cine-field::placeholder { color: rgb(var(--c-sand-500)); }
.cine-field:focus {
    outline: none;
    border-bottom-color: rgb(var(--c-copper));
    box-shadow: 0 1px 0 0 rgb(var(--c-copper));
}
textarea.cine-field { resize: vertical; min-height: 6.5rem; }

/* Mapa v tmavém režimu */
.cine-map {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: rgb(var(--c-sand-900));
}
@media (min-width: 768px) { .cine-map { aspect-ratio: 32 / 9; } }
.cine-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    filter: invert(0.92) grayscale(1) contrast(1.05) brightness(0.92);
}
.cine-map::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgb(var(--c-base) / 0.55) 0%, rgb(var(--c-base) / 0.1) 40%, rgb(var(--c-base) / 0.75) 100%);
}

/* Loga partnerů: bílé siluety, ať drží jednotný filmový tón */
.cine-partner img {
    filter: brightness(0) invert(1);
    opacity: 0.42;
    transition: opacity 0.4s ease;
}
.cine-partner:hover img { opacity: 0.95; }

/* ==========================================================
   OMEZENÍ POHYBU
   (přepisuje i vlastní animace — theme.css se načítá po sdíleném CSS)
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
    .reveal,
    .reveal-left,
    .reveal-right { opacity: 1; transform: none; transition: none; }
    .cine-kenburns img { animation: none; transform: scale(1.04); }
    .cine-scrollcue span { animation: none; opacity: 0.6; }
    .cine-photo img,
    .cine-strip-photo img { transition: none; }
    .cine-strip-item:hover .cine-strip-photo img { transform: none; }
    .cine-link:hover { gap: 0.7rem; }
    .hard-shadow-hover,
    .hard-shadow-hover:hover { transition: none; transform: none; }
}

/* ==========================================================
   NÍZKÁ OKNA (notebooky)
   Monumentální typografie nesmí vytlačit CTA pod okraj obrazovky —
   nadpis se proto škáluje i podle VÝŠKY okna, ne jen šířky.
   ========================================================== */

.cine-h1 { font-size: clamp(2.4rem, min(10.5vw, 13vh), 8.25rem); }
.cine-h2 { font-size: clamp(1.95rem, min(7.2vw, 9vh), 5.25rem); }

@media (max-height: 820px) and (min-width: 768px) {
    .cine-chapter .cine-inner { padding-top: 6.5rem; padding-bottom: 4rem; }
    .cine-h1 { font-size: clamp(2.2rem, min(8.6vw, 11vh), 6rem); }
    .cine-lead { font-size: 1.02rem; line-height: 1.5; }
    .cine-scrollcue { height: 2.5rem; bottom: 1rem; }
}

/* ==========================================================
   TVAROSLOVÍ — LETTERBOX A KRUH
   Plochy jsou širokoúhlé obdélníky bez rámů; kulaté je jen to,
   čeho se dá dotknout (ovladače). Kontrast tvarů dělá rytmus.
   ========================================================== */

/* Filmový formát u pásu realizací */
.cine-strip-photo { aspect-ratio: 2.39 / 1; }
@media (max-width: 767px) { .cine-strip-photo { aspect-ratio: 16 / 9; } }

/* Plochy: bez zaoblení a bez rámů */
.project-card-wrapper article,
figure, iframe, input, textarea, select { border-radius: 0; }
.project-card-wrapper article { border: 0; background-color: rgb(var(--c-surface)); }

/* Ovladače jsou kulaté — jediný kruhový tvar na webu */
.filter-btn {
    border-radius: 999px;
    border: 1px solid rgb(var(--c-cream) / 0.3);
    background-color: transparent;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.filter-btn.active {
    background-color: rgb(var(--c-copper));
    border-color: rgb(var(--c-copper));
    color: rgb(var(--c-ink));
}

/* Vstupy: podtržítko, ne box */
input, textarea, select {
    border-width: 0 0 1px 0;
    background-color: transparent;
    padding-left: 0;
    padding-right: 0;
}

/* Letterbox: tenké černé pruhy nahoře a dole nad fotkou kapitoly */
.cine-chapter .cine-photo::before,
.cine-chapter .cine-photo::after {
    content: "";
    position: absolute;
    left: 0; right: 0;
    height: 2.75rem;
    background: rgb(var(--c-ink));
    z-index: 1;
}
.cine-chapter .cine-photo::before { top: 0; }
.cine-chapter .cine-photo::after { bottom: 0; }

/* Vstupy: podtržítko, ne box */
#contact-form input, #contact-form textarea {
    border-radius: 0;
    border-width: 0 0 1px 0;
    background-color: transparent;
    padding-left: 0;
    padding-right: 0;
}
