:root{
    --rf-bg:#0f0f10;
    --rf-card:#151618;
    --rf-text:#e9edf1;
    --rf-sub:#9aa3ad;
    --rf-accent:#c6322c;
    --rf-border:#24262a;
    --rf-radius:14px;
}

/* HERO */
.rf-case__hero{
    position:relative; isolation:isolate;
    background: #0d0e10;
    min-height: 60svh;
    display:grid; align-content:end;
    padding: clamp(24px, 4vw, 48px) 16px;
    background-image: var(--case-hero);
    background-size: cover; background-position:center;
}
.rf-case__hero-overlay{
    position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(10,10,12,.1) 0%, rgba(10,10,12,.55) 80%, rgba(10,10,12,.85) 100%);
    z-index:0;
}
.rf-case__head, .rf-case__breadcrumbs{ position:relative; z-index:1; }
.rf-case__head{ max-width:1200px; margin: 8px auto 0; color:#fff; }
.rf-case__title{
    margin:0 0 6px 0;
    font:800 clamp(28px, 4vw, 44px)/1.1 "Montserrat",system-ui;
    letter-spacing:.2px;
}
.rf-case__meta{
    display:flex; flex-wrap:wrap; gap:10px; align-items:center;
    color:#dfe6ee; font:500 14px/1.2 "Open Sans",system-ui;
}
.rf-chip{ display:inline-flex; align-items:center; gap:6px;
    padding:6px 10px; background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.18);
    color:#fff; font:600 12px/1 "Montserrat",system-ui;
}
.rf-dot{ width:4px; height:4px; background:rgba(255,255,255,.5); display:inline-block; border-radius:50%; }

/* BREADCRUMBS */
.rf-case__breadcrumbs{
    max-width:1200px; margin:0 auto; padding-bottom: 10px;
    display:flex; flex-wrap:wrap; gap:10px; align-items:center; color:#e9edf1;
    font:600 12px/1 "Montserrat",system-ui;
}
.rf-case__crumb{ color:#f1f5f9; text-decoration:none; opacity:.9; }
.rf-case__crumb:hover{ opacity:1; text-decoration:underline; }
.rf-case__crumb-dot{ width:3px; height:3px; background:#cbd5e1; display:inline-block; opacity:.7; }
.rf-case__crumb--active{ opacity:1; }

/* WRAP / GRID */
.rf-case{ background:#0f0f10; color:var(--rf-text); }
.rf-case__wrap{ max-width:1200px; margin: 0 auto; padding: clamp(24px, 3vw, 40px) 16px 80px; }
.rf-case__grid{ display:grid; grid-template-columns: 1.6fr .9fr; gap: 20px; }
@media (max-width: 980px){
    .rf-case__grid{ grid-template-columns: 1fr; }
}

/* CARDS */
.rf-card{
    background:var(--rf-card); border:1px solid var(--rf-border);
    padding: clamp(14px, 2vw, 20px);
}
.rf-card__title{
    margin:0 0 10px 0;
    font:700 20px/1.2 "Montserrat",system-ui;
    letter-spacing:.2px; color:#f4f7fb;
}
.rf-card__text{ margin:.25rem 0 0; color:#cbd2d9; font:400 15px/1.6 "Open Sans",system-ui; }

.rf-list{ margin:10px 0 0 0; padding-left: 1.1rem; color:#cbd2d9; }
.rf-list li{ margin:.25rem 0; }

/* GALLERY */
.rf-case__gallery{
    display:grid; grid-template-columns: repeat(12, 1fr); gap:12px;
}
.rf-gal__item{ grid-column: span 6; position:relative; display:block; }
@media (max-width: 680px){ .rf-gal__item{ grid-column: span 12; } }
.rf-gal__img{
    display:block; width:100%; padding-bottom: 66%;
    background-size:cover; background-position:center;
    border:1px solid #23262b;
    transition: transform .18s ease, box-shadow .22s ease, border-color .2s ease;
}
.rf-gal__item:hover .rf-gal__img{ transform: translateY(-2px); border-color:#34383e; box-shadow:0 10px 28px rgba(0,0,0,.35); }

/* ASIDE META */
.rf-card--meta .rf-meta{
    display:grid; grid-template-columns: 1fr; gap:18px; margin:18px 0 0;
}
.rf-meta dt{ color:#9aa3ad; font:600 12px/1 "Montserrat",system-ui; text-transform:uppercase; letter-spacing:.4px; }
.rf-meta dd{ margin:4px 0 0; color:#e9edf1; font:500 14px/1.2 "Open Sans",system-ui; }

/* TAGS */
.rf-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.rf-tag{
    display:inline-flex; align-items:center; gap:6px;
    padding:6px 10px; background:#191b1e; border:1px solid #272a2f; color:#c3c9d0;
    font:600 12px/1 "Montserrat",system-ui; letter-spacing:.2px;
}

/* CTA */
.rf-cta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.rf-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:10px 14px; text-decoration:none;
    font:700 14px/1 "Montserrat",system-ui; letter-spacing:.2px;
    border:1px solid var(--rf-border); background:#17191c; color:#e9edf1;
    transition: transform .15s ease, background .2s ease, border-color .2s ease;
}
.rf-btn:hover{ transform: translateY(-1px); border-color:#34383e; background:#1c1f23; }
.rf-btn--accent{ background:var(--rf-accent); border-color:#d13a34; }
.rf-btn--accent:hover{ background:#b82f2a; }
.rf-btn--ghost{ background:transparent; }

/* Downloads */
.rf-downloads{ list-style:none; margin:8px 0 0; padding:0; }
.rf-downloads li{ margin:.3rem 0; }
.rf-downloads a{ color:#d7deea; text-decoration:none; border-bottom:1px dashed #3a3d42; }
.rf-downloads a:hover{ color:#fff; border-bottom-color:#5a5f66; }

/* === LIGHT THEME OVERRIDES === */
:root{
    --rf-bg:#ffffff;
    --rf-card:#ffffff;
    --rf-text:#0f1216;
    --rf-sub:#5b6673;
    --rf-accent:#c6322c;     /* nechávám jako akcent, ne "primary" */
    --rf-border:#e7e9ee;
    --rf-radius:14px;
}

/* Sekce / pozadí */
.rf-case{ background:var(--rf-bg); color:var(--rf-text); }
.rf-case__wrap{ padding: clamp(24px, 3vw, 40px) 16px 80px; }

/* HERO: obrázek + overlay do bíla dole */
.rf-case__hero{
    background-color:#f7f8fa;         /* jen barva, ne shorthand background */
    background-image: var(--case-hero);
    background-size: cover;
    background-position: center;
}
.rf-case__hero-overlay{
    /* shora jemné ztmavení kvůli čitelnosti na fotce, dole bílý přechod */
    background:
            linear-gradient(180deg,
            rgba(0,0,0,.20) 0%,
            rgba(0,0,0,.08) 40%,
            rgba(255,255,255,.78) 82%,
            #ffffff 100%
            );
}

/* Texty v hero (tmavé) */
.rf-case__head{ color:var(--rf-text); }
.rf-case__title{
    color:var(--rf-text);
    text-shadow:none;
}
.rf-case__meta{
    color:#3a4350;
}
.rf-chip{
    background:rgba(0,0,0,.04);
    border-color:#e7e9ee;
    color:#242a33;
}
.rf-dot{ background:#c9cfd8; }

/* Breadcrumbs (tmavé, jemné) */
.rf-case__breadcrumbs{ color:#475161; }
.rf-case__crumb{ color:#2a3038; }
.rf-case__crumb-dot{ background:#c9cfd8; }

/* Karty */
.rf-card{
    background:var(--rf-card);
    border:1px solid var(--rf-border);
    box-shadow:0 2px 10px rgba(18, 31, 53, .04);
}
.rf-card__title{ color:#101318; }
.rf-card__text, .rf-list{ color:#4b5563; }

/* Galerie: světlejší rámečky a hover */
.rf-gal__img{
    border:1px solid #e4e7ee;
    box-shadow:0 1px 0 rgba(17,24,39,.02);
}
.rf-gal__item:hover .rf-gal__img{
    border-color:#d6dbe6;
    box-shadow:0 10px 22px rgba(18, 31, 53, .10);
}

/* Aside meta */
.rf-meta dt{ color:#6b7685; }
.rf-meta dd{ color:#1f2937; }

/* Štítky */
.rf-tag{
    background:#fafbfc;
    border-color:#e7e9ee;
    color:#3b4552;
}

/* CTA tlačítka – světle */
.rf-cta{ margin-top:14px; }
.rf-btn{
    border:1px solid var(--rf-border);
    background:#fafbfc;
    color:#111827;
}
.rf-btn:hover{
    transform: translateY(-1px);
    border-color:#d6dbe6;
    background:#ffffff;
}
.rf-btn--accent{
    background:var(--rf-accent);
    border-color:#b02c27;
    color:#fff;
}
.rf-btn--accent:hover{ background:#a12823; }
.rf-btn--ghost{
    background:transparent;
    color:#374151;
}

/* Downloads */
.rf-downloads a{
    color:#1f2937;
    border-bottom:1px dashed #cbd5e1;
}
.rf-downloads a:hover{
    color:#111827;
    border-bottom-color:#94a3b8;
}

/* rodič MUSÍ mít overflow: visible */
.rf-case__grid {
    overflow: visible;
}

/* samotný sticky blok */
.rf-sticky {
    position: sticky;
    top: 120px; /* odsazení od horní lišty / headeru */
    align-self: flex-start;
}

/* pojistka pro mobil */
@media (max-width: 1024px) {
    .rf-sticky {
        position: static;
        top: auto;
    }
}
