const { useState, useEffect, useRef } = React;
// ============================================================
// TWEAKABLE DEFAULTS (host rewrites this JSON on persistence)
// ============================================================
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"heroVariant": "split",
"accent": "#D8232A",
"density": "comfortable",
"showServiceIcons": true,
"showPriceTable": true,
"ctaStyle": "solid"
} /*EDITMODE-END*/;
// ============================================================
// LOGO
// The uploaded file's name uses *decomposed* Unicode (s + U+030C
// combining caron, not precomposed š/U+0161) — so the URL-encoded
// path uses %CC%8C for the caron rather than %C5%A1.
// ============================================================
const LOGO_SRC = "uploads/Logo%20plos%CC%8Cina%20Mojko.png";
// SVG fallback wordmark in case the bitmap fails to load (e.g. when
// the file is moved or renamed during dev handoff).
function LogoFallback({ height = 42 }) {
return (
);
}
function LogoImg({ height = 42, alt = "Plošina Mojko" }) {
const [failed, setFailed] = useState(false);
if (failed) return ;
return (
setFailed(true)} />);
}
// ============================================================
// CONTENT — Czech, real services from the brief
// ============================================================
const SERVICES = [
{
id: "strechy",
title: "Čištění střech a fasád",
short: "Mech, lišejníky, prach, oxidace — i na špatně dostupných místech.",
long: "Strojní očištění střešní krytiny a fasád. Pracujeme z plošiny, nemusíme tedy chodit po střeše a krytinu nepoškodíme. Vhodné pro rodinné domy, bytovky, průmyslové haly i historické objekty."
},
{
id: "okna",
title: "Mytí oken a prosklených stěn",
short: "Showroomy, salóny, výlohy a budovy s vysokými skly.",
long: "Specializujeme se na vysoké prosklené plochy, autosalony, showroomy, výlohy, prosklené atria. Tam, kde tyčový mop nestačí, dosáhne plošina bezpečně a rychle."
},
{
id: "solar",
title: "Čištění solárních panelů",
short: "Prach, pyl, ptačí trus — vše, co snižuje výkon FVE.",
long: "Pravidelné čištění fotovoltaických panelů obnovuje jejich výkon. Pracujeme šetrně, bez chemie. Dosáhneme i na střechy bytových domů a hal, kam se z lana ani z žebříku dostat nedá."
},
{
id: "okapy",
title: "Čištění okapů a svodů",
short: "Listí, mech, hnízda. Z plošiny rychle a bez rizika.",
long: "Kompletní pročištění žlabů a svislých svodů. Kontrola spádu, drobné opravy uchycení. Doporučujeme 1–2× ročně, ideálně po podzimu."
},
{
id: "orez",
title: "Ořez a kácení stromů",
short: "Od konce větve směrem ke kmeni — bezpečně a šetrně.",
long: "Klíčový rozdíl oproti stromolezcům: každou větev seřezáváme od konce. Strom se odlehčuje postupně, bez náhlých zlomů, bez rizika pro okolí. Vhodné na zahrady s plotem, nad chodníky, u domu.",
highlight: true
},
{
id: "rimsy",
title: "Údržba říms a zábrany proti ptactvu",
short: "Čištění, drobné opravy a instalace ochrany proti ptactvu.",
long: "Pracujeme pro města, obce, SVJ i správce nemovitostí. Čištění říms, soch a ozdobných prvků, drobné údržbové práce. Souvisejíci instalace ochrany proti holubům — hrotové systémy, sítě, napínací dráty."
}];
const PRICES = [
{ label: "Mytí oken / prosklených stěn", from: "od 25 Kč / m²", note: "podle výšky a stavu" },
{ label: "Čištění střechy", from: "od 80 Kč / m²", note: "obvykle s impregnací" },
{ label: "Čištění okapů", from: "od 35 Kč / bm", note: "kontrola spádu zdarma" },
{ label: "Ořez stromu", from: "individuálně", note: "po prohlídce na místě" },
{ label: "Plošina s obsluhou", from: "1 200 Kč / hod", note: "doprava účtována zvlášť" }];
const FAQ = [
{
q: "Půjčujete plošinu i bez obsluhy?",
a: "Ne. Plošinu zapůjčuji vždy s vlastní obsluhou — z dlouhodobé zkušenosti vím, že se stroj při samovolném půjčování poškozuje. Vy řeknete, co je potřeba, my pomůžeme."
},
{
q: "Do jaké výšky se dostanete?",
a: "Pracovní výška plošiny Dinolift 150-T je 15 m, stranový dosah 10,1 m. Stroj má kompaktní rozměry, jednu nápravu a elektrický pohon — dostaneme se i tam, kam se autoplošina nedostane. Do dvorů, na trávník, k boční fasádě."
},
{
q: "Pracujete celoročně?",
a: "Ano. V zimě omezujeme mokré práce (mytí oken při mrazu), zato je to ideální období pro ořezy stromů a kontroly okapů."
},
{
q: "Kde působíte?",
a: "Kolín a okolí jako základna, po domluvě dojedeme i dál po Středočeském kraji a do Prahy. Doprava se účtuje podle vzdálenosti."
},
{
q: "Vystavujete faktury pro firmy a obce?",
a: "Samozřejmě. Pracujeme pro SVJ, města, obce i firmy. Doklady, předávací protokoly a doložení BOZP standardně."
}];
// ============================================================
// SMALL UI PIECES
// ============================================================
function StripedPlaceholder({ label, ratio = "16/9", tone = "warm", src, alt, eager = false }) {
const bg = tone === "warm" ? "#EAE4D8" : "#D8DDE2";
const stripe = tone === "warm" ? "#DCD3C0" : "#C6CDD4";
return (
Čištění střech, mytí prosklených stěn, solárních panelů, ořezy stromů
a údržba ve výškách — z plošiny s pracovní výškou 15 m
{" "}a stranovým dosahem 10,1 m. Bezpečně, šetrně,
vždy s vlastní obsluhou.
);
}
function WhyUs() {
const items = [
{
k: "Ořez od konce větve",
v: "Strom odlehčujeme postupně, větve neřežeme u kmene. Bez náhlých zlomů, bez poškození plotu a zahrady pod stromem.",
tag: "exkluzivně"
},
{
k: "Kompaktní rozměry",
v: "Dinolift 150-T má jednu nápravu a elektrický pohon pro citlivé popojíždění. Tichý chod, nepoškodí trávník ani zámkovou dlažbu. Při ustavení 3,8 × 3,8 m — pevně a stabilně."
},
{
k: "Vždy s obsluhou",
v: "Plošinu půjčujeme pouze s odbornou asistencí naší obsluhy. Přijedeme na místo a pomůžeme Vám s vyhotovením zakázky.",
tag: "důležité"
},
{
k: "Pojištění a doklady",
v: "Pojištění odpovědnosti samozřejmostí. BOZP, předávací protokoly. Standardně pro SVJ, firmy a obce."
}];
return (
Proč s námi
Čtyři důvody, proč to lidi nechávají na nás
{items.map((it, i) =>
{String(i + 1).padStart(2, "0")}
{it.k}
{it.tag && {it.tag}}
{it.v}
)}
);
}
function Process() {
const steps = [
{ n: "01", k: "Zavoláte / napíšete", v: "Krátce popíšete, co je potřeba. Stačí fotka a adresa." },
{ n: "02", k: "Domluvíme prohlídku", v: "Většinou zdarma. Změříme výšky, posoudíme přístup." },
{ n: "03", k: "Pošleme cenu", v: "Pevná cena, žádné překvapení. Termín obvykle do 14 dnů." },
{ n: "04", k: "Realizace", v: "Přijedeme, postavíme plošinu, uděláme práci. Uklidíme po sobě." }];
return (
Jak to chodí
Od telefonátu po dokončení
{steps.map((s) =>
{s.n}
{s.k}
{s.v}
)}
);
}
function Gallery() {
const items = [
{ l: "fasáda bytového domu — před / po", r: "3/4", src: "uploads/fotky/ref-fasada-bd.jpg", alt: "Očištěná fasáda bytového domu — výsledek mytí z plošiny" },
{ l: "prosklená stěna autosalonu", r: "1/1", src: "uploads/fotky/ref-autosalon.jpg", alt: "Mytí prosklené stěny autosalonu z pracovní plošiny" },
{ l: "solární panely na střeše haly", r: "3/4", src: "uploads/fotky/ref-solar.jpg", alt: "Čištění solárních panelů na střeše haly" },
{ l: "ořez ořešáku nad chodníkem", r: "1/1", src: "uploads/fotky/ref-orech.jpg", alt: "Ořez ořešáku nad chodníkem z pracovní plošiny" },
{ l: "římsa kostela, město Kolín", r: "3/4", src: "uploads/fotky/ref-rimsa.jpg", alt: "Údržba římsy historického objektu v Kolíně" },
{ l: "instalace hrotů proti holubům", r: "1/1", src: "uploads/fotky/ref-hroty.jpg", alt: "Instalace hrotů a zábran proti holubům na římse" }];
return (
Reference
Odkud jsme se naposledy vrátili
Galerie z reálných zakázek. Klikněte na poptávku, pokud chcete podobnou věc vyřešit.
{items.map((it, i) =>
)}
„Velice dobrá spolupráce. Domluva s panem Mojkem byla skvělá,
plošinu přivezl přesně podle dohody. Hodnotím 5/5. Doporučuji.“
— Patrik Š. • zdroj: Firmy.cz
„Moc děkujeme za zajištění plošiny. Pán je ochotný, plošinu
dovezl i odvezl. Doporučujeme.“
— H. Raduščák • zdroj: Firmy.cz
);
}
function Pricing({ tweaks }) {
if (!tweaks.showPriceTable) return null;
return (
Ceník
Orientační ceny
Přesnou cenu posílám až po prohlídce nebo z fotek. Tady je rámec, aby bylo z čeho vyjít.
{PRICES.map((p, i) =>
{p.label}
{p.from}
{p.note}
)}
Ceny jsou bez DPH (nejsem plátce). Doprava se účtuje paušálem podle
vzdálenosti od Kolína.