SEOHlídač.cz
88ze 100

SEO test webu arpem.cz

https://arpem.cz/

Výsledek dobrý Měřeno 15. 10. 2026 02:15 85 kontrol

Poslat e-mailem
Zobrazujeme uložený výsledek z 15. 10. 2026 02:15.

Web se od té doby mohl změnit — tlačítkem „Otestovat znovu“ spustíte čerstvé měření.

Shrnutí

Web arpem.cz získal v testu 88 ze 100 bodů — výsledek je dobrý. Z celkem 85 kontrol jich 71 prošlo bez chyby, 14 skončilo s upozorněním a 0 označil test jako chybu. Měření proběhlo 15. 10. 2026 02:15.

  • 71 v pořádku
  • 14 upozornění
  • 0 chyb

Srovnání s ostatními weby

Lepší než 99 % webů, které prošly SEOHlídačem — 23. místo z 9 752.

050100 bodů

Skóre podle oblastí

Co opravit jako první

Nálezy, které berou nejvíc bodů. Jejich oprava by přinesla až +5 bodů celkového skóre.

  1. Jedna hlavní adresa webuZabezpečení · upozornění
    +1 b.
  2. Vynucení HTTPS (HSTS)Zabezpečení · upozornění
    +1 b.
  3. Soubor security.txtZabezpečení · upozornění
    +1 b.
  4. Zabezpečení domény (DNSSEC)Doména a e-mail · upozornění
    +1 b.
  5. Soubor llms.txtAI viditelnost · upozornění
    +1 b.
  6. Obchodní podmínkyPrávní náležitosti · upozornění
    +1 b.
Kompletní výsledek a postup oprav jsou zdarma po registraci.

Ve veřejném výstupu jsou detaily problémů záměrně skryté. Po potvrzení e-mailu uvidíte celý report, historii a doporučení krok za krokem — a web vám budeme hlídat.

Registrovat zdarma

Google PageSpeed

94Výkon (mobil)
91Přístupnost
92Osvědčené postupy
100SEO
100Výkon (desktop)

Otevřít podrobný report v PageSpeed Insights

Všechny kontroly

100 🌐 Načtení stránky 7 kontrol · vše v pořádku 10 / 10 b.

Status kód: 200

URL vrací úspěšný HTTP stav.

1 / 1

Typ obsahu: text/html

Server vrací HTML obsah.

1 / 1

Počet přesměrování

URL míří přímo nebo přes jedno přesměrování.

2 / 2

Protokol: HTTPS

URL používá šifrovaný HTTPS protokol.

1 / 1

Délka URL adresy: 17 znaků

URL má přiměřenou délku.

1 / 1

Soubor robots.txt: https://arpem.cz/robots.txt

robots.txt je dostupný a obsahuje odkaz na sitemap.

2 / 2

Sitemap: https://arpem.cz/sitemap.xml

Sitemap je dostupná a vypadá jako XML.

2 / 2
100 📝 Analýza obsahu 11 kontrol · vše v pořádku 15 / 15 b.

Nastavení znakové sady: utf-8

Stránka má nastavenou znakovou sadu.

1 / 1

Pozice meta tagu se znakovou sadou: 47 B

Znaková sada je v prvních 1024 bytech.

1 / 1

Jazyk stránky: cs

HTML tag obsahuje jazyk stránky.

1 / 1

Meta titulek: Spedice a silniční přeprava po ČR a EU — Arpem Logistics

Titulek má přiměřenou délku.

2 / 2

Meta popis: Silniční přeprava FTL a LTL po ČR a Evropské unii, ADR i nadrozměrné náklady. V pracovní době odpovídáme do 30 minut s konkrétní cenou.

Meta popis má přiměřenou délku.

2 / 2

Nadpis H1: místo , ať zůstane jeden hlavní nadpis na stránku */
.page-banner-foto{ min-height:400px; border-bottom:1px solid var(--line); }
.page-banner-foto h1{ font-size:clamp(2.1rem,4.68vw,3.1rem); font-weight:700; max-width:16ch; color:var(--cream); }
.page-banner-foto p.lead{ color:rgba(241,238,232,0.82); max-width:56ch; margin-top:16px; font-size:1.06rem; }
/* fotka týmu jako plynoucí pozadí na O nás — táhne se za nadpisem
i za dalšími sekcemi (Jak pracujeme, Váš kontakt), dokud nedojde
jejich společná výška, pak se stránka vrací k normálnímu pozadí. */
.bg-flow{ position:relative; overflow:hidden; }
.bg-flow > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; }
.bg-flow > .scrim{ position:absolute; inset:0; background:rgba(19,37,57,0.74); }
.bg-flow-content{ position:relative; z-index:1; }
/* Na úzké obrazovce je fotka na výšku hodně přiblížená a text by padal
lidem přes obličej. Proto tam sahá jen za nadpis a zbytek stránky má
čisté tmavé pozadí — text zůstane čitelný a fotka pořád funguje. */
@media (max-width:760px){
.bg-flow{ background:var(--navy); }
.bg-flow > img, .bg-flow > .scrim{ height:78vh; bottom:auto; }
}
.bg-flow .flow-banner{ padding:130px 0 26px; }
/* Sekce uvnitř fotky na sebe navazují jako jeden souvislý text, ne jako
samostatné bloky. Kdyby si každá držela svoje odsazení jako jinde na webu,
sečetlo by se spodní s horním a mezi nadpisem a odstavcem by zůstala díra. */
.bg-flow section.block{ padding:44px 0 0; }
.bg-flow section.block:first-of-type{ padding-top:28px; }
.bg-flow section.block:last-of-type{ padding-bottom:60px; }
.bg-flow .section-head{ margin-bottom:22px; }
.bg-flow .flow-banner h1{ font-size:clamp(2.1rem,4.68vw,3.1rem); font-weight:700; max-width:16ch; color:var(--cream); margin:0; }
.bg-flow .flow-banner p.lead{ color:rgba(241,238,232,0.85); max-width:56ch; margin-top:16px; font-size:1.06rem; }
/* O nás: úvodní odstavec a tři sloupce s texty pod ním */
.onas-uvod{ color:rgba(241,238,232,0.86); max-width:70ch; font-size:1.06rem; line-height:1.7; margin:0; }
/* Nadpis vlevo, text vpravo. Odstavce mají hodně rozdílnou délku, tak
jdou pod sebou — ve sloupcích vedle sebe by pod těmi kratšími zůstala
díra. Každé téma je ve vlastním rámečku, stejném jako mají časté otázky. */
.onas-radky{ display:flex; flex-direction:column; gap:10px; }
.onas-radek{
border:1px solid var(--line); border-radius:var(--radius);
background:var(--surface); padding:22px 24px;
display:grid; grid-template-columns:0.7fr 1.3fr; gap:36px; align-items:start;
}
.onas-radek h3{ font-size:1.02rem; font-weight:700; margin:0; color:var(--fg); }
.onas-radek p{ color:var(--fg-muted); font-size:0.95rem; line-height:1.7; margin:0; }
@media (max-width:900px){
.onas-radek{ grid-template-columns:1fr; gap:10px; }
}

/* Horní lišta je pevná a překrývá stránku. Bez tohohle by odskok na kotvu
(třeba z tlačítka Poptávka) zarovnal sekci s okrajem okna a lišta by
jí schovala nadpis. Odsazení odpovídá výšce lišty s rezervou. */
[id]{ scroll-margin-top:96px; }

header{
position:fixed; top:0; left:0; right:0; z-index:20;
background:transparent; border-bottom:1px solid transparent;
transition:background-color .3s ease, border-color .3s ease;
}
header.scrolled{ background:rgba(19,37,57,0.82); backdrop-filter:blur(10px); border-bottom-color:var(--line); }
/* Na úvodní stránce je lišta nahoře průhledná a leží na světlé fotce.
Bez tohohle jsou šedé odkazy nad oblohou skoro nečitelné — plné bílé
písmo a jemný stín drží kontrast, dokud se hlavička neposune. */
header:not(.scrolled):not(.solid) nav a.navlink{ color:rgba(241,238,232,0.92); text-shadow:0 1px 3px rgba(19,37,57,0.55); }
header:not(.scrolled):not(.solid) .callnum,
header:not(.scrolled):not(.solid) .header-hours{ text-shadow:0 1px 3px rgba(19,37,57,0.55); }
header:not(.scrolled):not(.solid) .header-hours{ color:rgba(241,238,232,0.75); }
header.solid{ background:rgba(19,37,57,0.82); backdrop-filter:blur(10px); border-bottom-color:var(--line); position:sticky; }
/* padding-block, ne padding: shorthand by přebil vodorovných 28px z .wrap (stejná specificita, pozdější pravidlo) */
.header-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:16px; }
.logo{ display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--fg); }
/* Logo je na výšku vystředěné v liště (align-items:center na .header-row),
žádný posun dolů — vodorovně zůstává u levého kraje. */
.logo{ transition:transform .4s var(--ease); }
/* Logo je obrázek, ne text sázený písmem. Dokud byl nápis textem, závisel
na tom, jestli se stihlo načíst písmo — a v jazycích, kde stránka potřebuje
oba soubory písma, to bylo znát. Obrázek vypadá vždycky stejně. */
.logo-obr{ height:46px; width:auto; display:block; }
@media (max-width:560px){ .logo-obr{ height:38px; } }
.logo:hover{ transform:scale(1.04); }
nav{ display:flex; align-items:center; gap:32px; }
nav .links{ display:flex; gap:28px; position:relative; }
nav a.navlink{
font-size:14.5px; font-weight:500; text-decoration:none; color:var(--fg-muted);
padding-bottom:3px; position:relative; transition:color .25s ease;
}
nav a.navlink{ border-bottom:2px solid transparent; }
nav a.navlink:hover{ color:var(--fg); font-weight:700; }
nav a.navlink.active{ color:var(--fg); border-color:var(--amber); font-weight:700; }
/* rezervace mista pro tucny rez, aby menu pri najeti nepreskakovalo */
nav a.navlink::after{
content:attr(data-text); display:block; height:0; overflow:hidden;
visibility:hidden; font-weight:700; pointer-events:none;
}
@media (max-width:760px){ nav .links{ display:none; } }

/* mobilní menu — checkbox, bez JS; pod 760 px nahrazuje skryté .links */
/* checkbox je jen vizuálně skrytý (ne display:none), aby šel ovládat klávesnicí a četl ho screen reader */
.nav-toggle{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; clip-path:inset(50%); overflow:hidden; }
@media (min-width:761px){ .nav-toggle{ display:none; } }
.nav-toggle:focus-visible ~ .wrap .burger{ outline:2px solid var(--amber); outline-offset:3px; border-radius:6px; }
.burger{ display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:44px; height:44px; margin-right:-8px; cursor:pointer; flex:none; }
.burger span{ display:block; width:22px; height:2px; background:var(--cream); border-radius:2px; transition:transform .3s var(--ease), opacity .2s ease; }
/* absolute, ne v toku: otevření nesmí odsunout obsah (header .solid je sticky, index fixed — chová se pak stejně) */
.mobile-menu{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; padding:6px 28px 18px; background:var(--navy); border-bottom:1px solid var(--line); }
/* Menu je neprůhledné natvrdo. S poloprůhledným pozadím a rozostřením
prosvítal text stránky mezi položkami a menu bylo nečitelné. */
.mobile-menu a{ text-decoration:none; color:var(--fg); font-size:16px; font-weight:600; padding:14px 2px; border-bottom:1px solid var(--line); }
.mobile-menu a:last-child{ border-bottom:none; }
.mobile-menu a.active{ color:var(--amber); }
/* Tlačítko Poptávka se do úzké lišty nevejde vedle hamburgeru, tak je
uvnitř rozbaleného menu. Poptávka je i tak hned v úvodním bloku. */
.mobile-menu a.mobile-poptavka{
margin-top:14px; border-bottom:none; color:var(--on-amber);
/* .btn je flex, takže na vystředění nestačí text-align */
justify-content:center; padding:14px 20px;
}
/* Na úzkých telefonech se do lišty nevejde logo, telefon, tlačítko Poptávka
i hamburger zároveň — hamburger se vytlačoval mimo obrazovku a menu tím
pádem nešlo otevřít vůbec. Pod 560 px proto tlačítko Poptávka z lišty mizí;
poptávka je dostupná z menu i z tlačítka v úvodním bloku. */
@media (max-width:560px){
nav{ gap:16px; }
nav .btn-primary{ display:none; }
}
@media (max-width:760px){
.burger{ display:flex; }
header:has(.nav-toggle:checked){ background:rgba(19,37,57,0.97); }
.nav-toggle:checked ~ .mobile-menu{ display:flex; }
.nav-toggle:checked ~ .wrap .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle:checked ~ .wrap .burger span:nth-child(2){ opacity:0; }
.nav-toggle:checked ~ .wrap .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

.btn{
display:inline-flex; align-items:center; gap:8px;
font-weight:600; font-size:14.5px; padding:12px 22px; border-radius:100px;
text-decoration:none; border:1px solid transparent; white-space:nowrap;
transition:background-color .25s ease, border-color .25s ease, opacity .25s ease;
}
.btn-primary{ background:var(--amber); color:var(--on-amber); }
.btn-primary:hover{ background:#d9752f; }
.btn-outline{ border-color:var(--line-strong); color:var(--fg); }
.btn-outline:hover{ border-color:var(--amber); }
.invert .btn-outline:hover{ background:rgba(19,37,57,0.06); }

/* page banner (non-home pages) */
.page-banner{ padding:132px 0 44px; border-bottom:1px solid var(--line); position:relative; overflow:hidden; }
.page-banner h1{ font-size:clamp(2.2rem,5.13vw,3.4rem); font-weight:700; }
.page-banner p.lead{ font-size:1.08rem; color:var(--fg-muted); max-width:56ch; margin-top:16px; }

/* hero (home only, full-bleed) */
.hero{ position:relative; overflow:hidden; min-height:100vh; display:flex; align-items:flex-end; }
.hero-bg{ position:absolute; inset:0; z-index:0; background:var(--navy); }
/* cross-fading slideshow — opacity + transform only, so it stays on the GPU */
.hero-bg .slide{
position:absolute; inset:0; opacity:0;
animation:heroFade 24s linear infinite;
will-change:opacity;
}
.hero-bg .slide img{
width:100%; height:100%; object-fit:cover; display:block;
animation:heroZoom 24s ease-out infinite;
will-change:transform;
}
.hero-bg .slide:nth-child(1), .hero-bg .slide:nth-child(1) img{ animation-delay:0s; }
.hero-bg .slide:nth-child(2), .hero-bg .slide:nth-child(2) img{ animation-delay:8s; }
.hero-bg .slide:nth-child(3), .hero-bg .slide:nth-child(3) img{ animation-delay:16s; }
/* třetí fotka je výrazně tmavší než ostatní — pod scrimem zanikala; filtr je statický (neanimuje se) */
.hero-bg .slide:nth-child(3) img{ filter:brightness(1.5) saturate(1.06); }
@keyframes heroFade{
0%{ opacity:0; } 4%{ opacity:1; } 29%{ opacity:1; } 35%{ opacity:0; } 100%{ opacity:0; }
}
@keyframes heroZoom{
0%{ transform:scale(1.0); } 35%{ transform:scale(1.08); } 100%{ transform:scale(1.08); }
}
@media (prefers-reduced-motion: reduce){
.hero-bg .slide{ animation:none !important; opacity:0; }
.hero-bg .slide:first-child{ opacity:1; }
.hero-bg .slide img{ animation:none !important; transform:none; }
}
/* Video na pozadí úvodního bloku. Leží nad fotkami, takže než se stáhne
a rozjede, je vidět první fotka — nikdy prázdná plocha. Na telefonech
se vůbec nestahuje: má 1,4 MB, což je třicetkrát víc než celá stránka,
a na mobilních datech by to bylo znát. Zdroj videa doplní skript až
nad 760 px, do té doby je element prázdný. */
.hero-video{
position:absolute; inset:0; width:100%; height:100%;
object-fit:cover; display:block; opacity:0;
transition:opacity .8s ease;
}
.hero-video.bezi{ opacity:1; }
@media (max-width:760px){ .hero-video{ display:none; } }
@media (prefers-reduced-motion: reduce){ .hero-video{ display:none; } }
.hero-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, rgba(19,37,57,0.82) 0%, rgba(19,37,57,0.42) 55%, rgba(19,37,57,0.5) 100%); }
.hero-content{ position:relative; z-index:2; width:100%; padding:56px 0 76px; }
.hero-content > .wrap{ opacity:0; transform:translateY(16px); animation:heroIn .7s ease-out .1s forwards; }
@keyframes heroIn{ to{ opacity:1; transform:none; } }
.hero h1{ font-size:clamp(2.6rem,8.15vw,5.4rem); font-weight:700; line-height:1.02; letter-spacing:-0.02em; max-width:18ch; }
.hero p.lead{ font-size:1.15rem; color:rgba(241,238,232,0.85); max-width:50ch; margin-top:24px; }
.hero .cta-row{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
/* Doplněk těsně pod tlačítkem — čte se jako jeho popiska, proto menší
a tlumenější než okolní text a zarovnaný s levou hranou tlačítka. */
.hero-slib{
font-size:0.92rem; font-weight:500; color:rgba(241,238,232,0.8);
margin-top:12px; max-width:46ch;
}

section.block{ padding:68px 0; position:relative; }
/* Na mobilu jde všechno pod sebou, takže sedmkrát 68 px nahoře a dole
je skoro tisíc pixelů samotného vzduchu. Na širokém monitoru dává smysl,
na telefonu se tím jen roluje. */
@media (max-width:620px){
section.block{ padding:48px 0; }
.career{ padding:48px 0; }
}
section.block.blok-tesne-nahoru{ padding-top:20px; }
/* blok pro dopravce je vedlejší sdělení — potlačený oproti hlavním sekcím */
section.dopravci-blok{ padding:56px 0; border-top:1px solid var(--line); }
.dopravci-blok p, .dopravci-blok li{ font-size:0.92rem; }
.dopravci-blok .btn{ font-size:13.5px; padding:10px 18px; }
.section-head{ margin-bottom:30px; }
.section-head h2{ font-size:clamp(1.7rem,3.47vw,2.3rem); font-weight:700; }
.hairline{ border-top:1px solid var(--line); }
/* --surface se v invert MUSÍ přepsat: karty (.step, .service…) jinak zůstanou tmavé pod tmavým textem */
.invert{ --fg:var(--navy); --fg-muted:rgba(19,37,57,0.66); --fg-faint:rgba(19,37,57,0.44); --line:rgba(19,37,57,0.16); --line-strong:rgba(19,37,57,0.32); --surface:var(--cream); background:var(--cream); color:var(--fg); }

/* šest služeb ve dvou řadách po třech — na čtyři sloupce by druhá řada
zůstala z poloviny prázdná */
.services-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:900px){ .services-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .services-grid{ grid-template-columns:1fr; } }
.service{
background:var(--surface); padding:30px 26px; display:flex; flex-direction:column; gap:16px;
border-radius:var(--radius); border:1px solid var(--line);
transition:transform .3s var(--ease), border-color .3s var(--ease);
}
.service:hover{
transform:scale(1.04);
border-color:rgba(232,131,62,0.5);
}
.service .icon{ width:30px; height:30px; color:var(--amber); }
.service .icon svg{ width:100%; height:100%; }
.service h3{ font-size:1.08rem; font-weight:700; }
.service p{ font-size:0.92rem; color:var(--fg-muted); margin:0; }
/* Na mobilu jsou karty pod sebou, takže jich bylo přes patnáct set pixelů
rolování. Ikona se posadí vedle nadpisu místo nad něj, zmenší se na 22 px
a karta se stáhne. Nadpisy se vedle ikony pořád vejdou na jeden řádek. */
@media (max-width:620px){
.service{ display:grid; grid-template-columns:auto 1fr; align-items:center;
padding:18px 20px; gap:9px; }
.service .icon{ grid-column:1; grid-row:1; width:22px; height:22px; }
.service h3{ grid-column:2; grid-row:1; font-size:1.02rem; }
.service p{ grid-column:1 / -1; grid-row:2; }
}

/* proces jako číslovaná osa — vizuální odlehčení mezi mřížkami karet */
.timeline{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin-top:8px; }
@media (max-width:1080px){ .timeline{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:700px){ .timeline{ grid-template-columns:1fr; } }
.tl-item{ position:relative; padding:34px 22px 4px 0; }
.tl-item::before{
content:''; position:absolute; left:0; top:14px; right:0; height:1px;
background:var(--line);
}
.tl-item::after{
content:''; position:absolute; left:0; top:9px; width:11px; height:11px;
border-radius:50%; background:var(--amber);
}
@media (max-width:700px){
.tl-item{ padding:0 0 22px 26px; }
.tl-item::before{ left:5px; top:16px; bottom:0; right:auto; width:1px; height:auto; }
.tl-item:last-child::before{ display:none; }
.tl-item::after{ top:4px; }
}
.tl-item .n{ font-size:11.5px; font-weight:700; letter-spacing:0.08em; color:var(--amber); }
.tl-item h3{ font-size:1.02rem; font-weight:700; margin:8px 0 7px; }
.tl-item p{ font-size:0.9rem; color:var(--fg-muted); margin:0; }

.insurance-note{ display:flex; align-items:center; gap:10px; margin-top:30px; font-size:12.5px; font-weight:600; color:var(--fg-muted); letter-spacing:0.03em; }
.insurance-note .node{ width:7px; height:7px; background:var(--amber); flex:none; border-radius:50%; }

.about-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:46px; }
@media (max-width:860px){ .about-grid{ grid-template-columns:1fr; gap:30px; } }
.about-grid p{ color:var(--fg-muted); max-width:56ch; }
/* vizitky: menší karty, ale pořád rozložené po šířce stránky se
stejnými mezerami — ne slepené u levého okraje */
.founders{ display:grid; grid-template-columns:1fr 1fr; gap:22px; max-width:900px; }
.founders-1{ grid-template-columns:1fr; }
.founders-2{ grid-template-columns:repeat(2,1fr); }
.founders-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .founders-3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .founders, .founders-2, .founders-3{ grid-template-columns:1fr; } }
/* Vizitka: fotka přes celou kartu, jméno a pozice na pevné tmavé ploše
dole (žádný gradient, jen plná barva s průhledností). Na najetí myší
nebo klik/ťuknutí se ta plocha zvětší a odkryje popis a kontakt —
šipka vedle jména se otočí, ať je jasné, že jde o rozbalovací prvek.
Fotka i karta si drží pořád stejnou velikost, nic jinde na stránce
se najetím nehýbe. */
.founder{
position:relative; overflow:hidden; aspect-ratio:3/4.3;
border-radius:var(--radius); border:1px solid var(--line);
transition:border-color .3s ease;
}
.founder:hover{ border-color:rgba(232,131,62,0.45); }
.founder .avatar{
position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
}
.founder .card-overlay{
position:absolute; left:0; right:0; bottom:0; background:rgba(19,37,57,0.74);
padding:16px 18px;
}
.founder .card-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.founder .fname{ font-weight:700; font-size:1.02rem; color:#F1EEE8; }
.founder .frole{ font-size:0.84rem; font-weight:400; color:rgba(241,238,232,0.68); margin-top:3px; }
.founder .chevron{ flex:none; width:18px; height:18px; color:var(--amber); margin-top:2px; transition:transform .25s ease; }
.founder .card-extra{
max-height:0; opacity:0; overflow:hidden; margin-top:0;
transition:max-height .35s ease, opacity .25s ease, margin-top .35s ease;
}
.founder .card-extra p{ font-size:0.88rem; color:rgba(241,238,232,0.85); line-height:1.55; margin:0; }
.founder .card-extra .person-contact{
margin-top:12px; padding-top:12px; border-top:1px solid rgba(241,238,232,0.22); line-height:1.8; font-size:0.88rem;
}
.founder .card-extra .person-contact a{ color:#F1EEE8; text-decoration:none; border-bottom:1px solid rgba(241,238,232,0.35); }
.founder .card-extra .person-contact a:hover{ color:var(--amber); border-color:var(--amber); }
/* @media (hover:hover) — na dotykových displejích se najetí myší
nesimuluje, tam funguje jen ťuknutí přes .expanded třídu ze skriptu */
@media (hover:hover){
.founder:hover .card-extra{ max-height:240px; opacity:1; margin-top:12px; }
.founder:hover .chevron{ transform:rotate(180deg); }
}
.founder.expanded .card-extra{ max-height:240px; opacity:1; margin-top:12px; }
.founder.expanded .chevron{ transform:rotate(180deg); }

/* Na telefonu se vizitka překlápí do řádku. Fotka přes celou kartu
zabírala 457 px, takže tři lidé znamenali skoro půldruhého tisíce
pixelů rolování — a kontakt byl navíc schovaný pod ťuknutím, což je
na stránce Kontakt to poslední, co chcete. Tady je fotka malá,
telefon a e-mail rovnou vidět a nic se nerozbaluje. */
@media (max-width:620px){
.founder{
aspect-ratio:auto; display:flex; align-items:flex-start; gap:14px;
padding:14px; background:rgba(241,238,232,0.05);
}
.founder .avatar{
position:static; width:76px; height:76px; flex:none;
border-radius:50%; object-position:top center;
}
.founder .card-overlay{ position:static; background:none; padding:0; flex:1; min-width:0; }
.founder .chevron{ display:none; }
.founder .card-extra{ max-height:none; opacity:1; overflow:visible; margin-top:10px; }
.founder .card-extra p:not(.person-contact){ display:none; } /* popis role je i v nadpisu */
.founder .card-extra .person-contact{ margin-top:0; padding-top:8px; line-height:1.4; }
/* telefon i e-mail se ťukají prstem, tak ať mají do čeho ťuknout */
.founder .card-extra .person-contact a{ display:inline-block; padding:9px 0; }
}

.career{ padding:68px 0; position:relative; overflow:hidden; }
.career h2{ font-size:clamp(1.8rem,3.92vw,2.6rem); font-weight:700; max-width:20ch; }
.career p{ color:var(--fg-muted); max-width:56ch; margin-top:16px; font-size:1.04rem; }
.career .cta-row{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.career-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:start; }
@media (max-width:860px){ .career-grid{ grid-template-columns:1fr; } }
.career .stat-list{ display:flex; flex-direction:column; gap:16px; }
.career .stat{ border-top:1px solid var(--line); padding-top:14px; }
.career .stat .k{ font-size:0.86rem; font-weight:600; color:var(--fg-faint); }
.career .stat .v{ font-size:0.98rem; margin-top:4px; }

.teaser-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.teaser-link{ font-size:14.5px; font-weight:600; text-decoration:none; color:var(--amber); white-space:nowrap; display:inline-flex; align-items:center; gap:6px; padding-bottom:6px; }
.teaser-link .arrow{ transition:transform .3s var(--ease); }
.teaser-link:hover .arrow{ transform:translateX(5px); }
/* Na dotykovém displeji je 29px vysoký odkaz málo — palec se netrefí. */
@media (max-width:620px){
.teaser-link{ padding-top:6px; padding-bottom:12px; }
body .kontakt-card .v a, body .contact-item .v a{ display:inline-block; padding:7px 0; }
/* svislé odsazení u řádkového odkazu nezvětší řádek, jen plochu na ťuknutí */
body .inline-link, body .udaje dd a, body .mapa-pata .odkaz{ padding:8px 0; }
/* Odkazy jsou podtržené spodním rámečkem, a ten se svislým odsazením
odlepí od písmen a plave pod textem. Na mobilu se proto podtrhává
přes text-decoration, které drží u účaří bez ohledu na odsazení. */
body .inline-link, body .udaje dd a, body .kontakt-card .v a, body .contact-item .v a,
body .founder .card-extra .person-contact a{
border-bottom-color:transparent;
text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px;
}
}

.kontakt-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:28px; }
@media (max-width:700px){ .kontakt-grid{ grid-template-columns:1fr; } }
.kontakt-card{ background:var(--surface); padding:30px 26px; border-radius:var(--radius); border:1px solid var(--line); transition:transform .4s var(--ease), border-color .4s var(--ease); }
.kontakt-card:hover{ transform:translateY(-6px); border-color:rgba(232,131,62,0.4); }
.kontakt-card .k{ font-size:0.86rem; font-weight:600; color:var(--fg-faint); }
.kontakt-card .v{ font-size:1.2rem; margin-top:8px; font-weight:600; }
.kontakt-card .v a{ text-decoration:none; border-bottom:1px solid var(--line-strong); }
.kontakt-card .v a:hover{ border-color:var(--amber); color:var(--amber); }
.kontakt-card p{ font-size:0.9rem; color:var(--fg-muted); margin:8px 0 0; }

/* Časté otázky jako rozbalovací seznam — vidět je jen tučná otázka,
dokud se na ni neklikne */
.faq-list{ display:flex; flex-direction:column; gap:10px; }
.faq-item{
border:1px solid var(--line); border-radius:var(--radius);
background:var(--surface); padding:2px 20px;
}
.faq-item summary{
list-style:none; cursor:pointer; padding:16px 32px 16px 0; position:relative;
font-weight:700; font-size:1rem; color:var(--fg);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
content:'+'; position:absolute; right:2px; top:50%; transform:translateY(-50%);
font-size:1.4rem; font-weight:400; color:var(--amber); line-height:1;
}
.faq-item[open] summary::after{ content:'–'; }
.faq-item[open] summary{ padding-bottom:6px; }
.faq-item p{ margin:0 0 18px; color:var(--fg-muted); }

/* Kariéra: otevřené pozice jako rozbalovací seznam */
.job-list{ display:flex; flex-direction:column; gap:12px; }
.job-item{
border:1px solid var(--line); border-radius:var(--radius);
background:var(--surface); padding:4px 26px;
}
.job-item summary{
list-style:none; cursor:pointer; padding:22px 36px 22px 0; position:relative;
display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;
}
.job-item summary::-webkit-details-marker{ display:none; }
.job-item summary::after{
content:'+'; position:absolute; right:2px; top:50%; transform:translateY(-50%);
font-size:1.6rem; font-weight:400; color:var(--amber); line-height:1;
}
.job-item[open] summary::after{ content:'–'; }
/* Název pozice je nadpis (h2), ne jen tučný text — Google i čtečky tak
poznají, co je na téhle stránce to hlavní. Vzhled zůstává stejný. */
.job-title{ font-weight:700; font-size:1.15rem; margin:0; }
.job-meta{ font-size:0.86rem; color:var(--fg-faint); }
.job-body{ padding-bottom:28px; }
.job-body p{ color:var(--fg-muted); }
.job-body h3{ font-size:0.86rem; font-weight:700; color:var(--amber); letter-spacing:0.04em; margin:22px 0 10px; }
.job-body h4:first-child{ margin-top:2px; }
.job-body .checklist{ margin-top:0; }

/* Kontakt: kratší bloky pod sebou, ať se nemusí tolik scrollovat */
.pg-kontakt .page-banner{ padding:148px 0 34px; }
/* Kontakt má jen nadpis bez podtitulku, tak stačí zhruba poloviční
pruh než u ostatních stránek — jinak působí zbytečně roztažený. */
.pg-kontakt .page-banner-foto{ min-height:220px; }
.pg-kontakt .page-banner-foto .band-inner{ padding:26px 0; }
.pg-kontakt section.block{ padding:52px 0; }
.pg-kontakt .about-grid{ gap:44px; }
.pg-kontakt .udaje{ gap:7px 18px; }
.pg-kontakt .udaje dd{ font-size:0.95rem; }
.pg-kontakt .panel{ padding:32px 30px; }
.pg-kontakt .form-grid{ gap:14px; }
.pg-kontakt .field{ gap:5px; }
.pg-kontakt .field input, .pg-kontakt .field textarea, .pg-kontakt .field select{ padding:10px 13px; }
.pg-kontakt .field textarea{ min-height:84px; }
@media (max-width:600px){ .pg-kontakt .panel{ padding:22px 18px; } }

/* checklist (kariéra / proč Arpem) */
.checklist{ display:grid; grid-template-columns:1fr 1fr; gap:14px 40px; margin-top:8px; }
@media (max-width:760px){ .checklist{ grid-template-columns:1fr; } }
.checklist li{ list-style:none; display:flex; gap:12px; align-items:flex-start; font-size:1rem; color:var(--fg-muted); }
.checklist{ padding:0; margin-left:0; }
.checklist li .tick{ color:var(--amber); flex:none; margin-top:3px; font-weight:700; }

/* process steps */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.steps-4{ grid-template-columns:repeat(4,1fr); }
.steps-5{ grid-template-columns:repeat(5,1fr); }
@media (max-width:1080px){ .steps-5{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:980px){ .steps-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .steps, .steps-4, .steps-5{ grid-template-columns:1fr; } }

/* rychlý kontakt v hlavičce */
/* telefon sedí v jedné řadě s odkazy v menu */
/* Odkazy v menu mají pod textem 3px odsazení a 2px podtržítko, takže je
flexbox vystředí o 2,5px výš než text bez nich. Stejných 5px pod číslem
ho posadí na přesně stejnou úroku jako "Služby", "O nás" a zbytek. */
.callnum{
font-size:15px; font-weight:700; color:var(--fg); text-decoration:none;
display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
padding-bottom:5px;
transition:color .25s ease;
}
.callnum:hover{ color:var(--amber); }
.callnum svg{ width:15px; height:15px; flex:none; }
/* Na užších obrazovkách zbyde z odkazu jen ikonka sluchátka. Sama o sobě
má 15 px, což je na prst málo — dostane proto kolem sebe odsazení, aby
se dala trefit. Volání je na mobilu ta nejčastější akce. */
@media (max-width:860px){
.callnum span.num{ display:none; }
.callnum{ padding:12px; margin-right:-6px; }
.callnum svg{ width:22px; height:22px; }
}

/* provozní doba těsně pod lištou, začíná pod prvním znakem telefonního
čísla (za ikonkou), ne pod ikonkou samotnou */
.header-hours{
display:flex; justify-content:flex-end; align-items:flex-start; gap:32px;
font-size:11.5px; color:var(--fg-faint); white-space:nowrap;
padding-bottom:4px; margin-top:-36px;
}
/* Neviditelná kopie ikonky a čísla drží stejnou šířku, jakou zabírá
telefon nahoře — takže "hodiny" končí přesně tam, kde končí i telefon,
ať je okno jakkoliv široké. Čas je nad ní absolutně posazený, začíná
22px od kraje (15px ikonka + 7px mezera), tedy přesně pod "+". */
.header-hours .hodiny{ position:relative; display:inline-block; }
.header-hours .mira{
visibility:hidden; display:inline-flex; align-items:center; gap:7px;
font-size:15px; font-weight:700;
}
.header-hours .mira svg{ width:15px; height:15px; flex:none; }
.header-hours .cas{
position:absolute; left:22px; top:50%; transform:translateY(-50%);
}
.header-hours .ghost{
visibility:hidden; height:0; padding-top:0; padding-bottom:0;
border-top:0; border-bottom:0; overflow:hidden;
}
@media (max-width:860px){ .header-hours{ display:none; } }
.step{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:26px; }
.step .n{ font-size:13px; font-weight:700; color:var(--amber); letter-spacing:0.08em; }
/* amber na bílé kartě neprojde AA (2.7:1) — ztmavený odstín stejného tónu (4.6:1) */
.invert .step .n{ color:#b4571e; }
.step h3{ font-size:1.05rem; font-weight:700; margin:10px 0 8px; }
.step p{ font-size:0.92rem; color:var(--fg-muted); margin:0; }

/* form */
.form-wrap{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:34px 30px; }
@media (max-width:600px){ .form-wrap{ padding:24px 20px; } }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:600px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:7px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:0.9rem; font-weight:600; color:var(--fg-muted); }
.field input, .field textarea, .field select{
font-family:inherit; font-size:1rem; color:var(--fg);
background:rgba(241,238,232,0.05); border:1px solid var(--line);
border-radius:10px; padding:12px 14px; width:100%;
transition:border-color .2s ease, background-color .2s ease;
}
.field textarea{ min-height:110px; resize:vertical; }
/* Safari na iPhonu dává poli s datem vlastní vnitřní šířku a to pak vyjede
ven z formuláře. Vypnutím nativního vzhledu a min-width:0 se srovná
s ostatními poli; hodnota se navíc zarovná doleva jako všude jinde. */
@media (max-width:620px){
.field input[type="date"]{
-webkit-appearance:none; appearance:none;
min-width:0; max-width:100%; display:block;
}
.field input[type="date"]::-webkit-date-and-time-value{ text-align:left; margin:0; min-width:0; }
.field input[type="date"]::-webkit-calendar-picker-indicator{ margin-left:auto; }
}
.field input:focus, .field textarea:focus, .field select:focus{
outline:none; border-color:var(--amber); background:rgba(241,238,232,0.08);
}
/* nápověda v poli musí číst jako pozadí, ne jako vyplněná hodnota */
.field input::placeholder, .field textarea::placeholder{ color:rgba(241,238,232,0.26); }
.field select option{ background:var(--navy); color:var(--cream); }
.form-actions{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:22px; }
.form-note{ font-size:0.85rem; color:var(--fg-faint); margin:0; }
.form-status{ font-size:0.95rem; margin:16px 0 0; padding:14px 16px; border-radius:10px; display:none; }
.form-status.show{ display:block; }
.form-status.ok{ background:rgba(232,131,62,0.12); border:1px solid rgba(232,131,62,0.4); color:var(--fg); }
button.btn{ font-family:inherit; cursor:pointer; }
.form-legend{
font-size:0.95rem; font-weight:700; color:var(--fg-muted); margin:0 0 16px; padding-bottom:10px;
border-bottom:1px solid var(--line);
}
/* formulář na béžovém podkladu potřebuje světlejší pole a tmavý text */
.invert .form-wrap{ background:rgba(19,37,57,0.04); border-color:rgba(19,37,57,0.16); }
.invert .field input, .invert .field textarea, .invert .field select{
background:var(--cream); border-color:rgba(19,37,57,0.28); color:var(--navy);
}
.invert .field input::placeholder, .invert .field textarea::placeholder{ color:rgba(19,37,57,0.3); }
.invert .field input:focus, .invert .field textarea:focus, .invert .field select:focus{
border-color:var(--amber); background:var(--cream);
}
.invert .field select option{ background:var(--cream); color:var(--navy); }
.invert .form-status.ok{ background:rgba(232,131,62,0.14); border-color:rgba(232,131,62,0.45); color:var(--navy); }

/* béžová "záložka" nalepená na navy stránku, ne pruh přes celou šířku */
.panel{
background:var(--cream); color:var(--navy);
border:1px solid rgba(19,37,57,0.18); border-radius:var(--radius);
padding:38px 34px;
--fg:var(--navy); --fg-muted:rgba(19,37,57,0.66); --fg-faint:rgba(19,37,57,0.44);
--line:rgba(19,37,57,0.16); --line-strong:rgba(19,37,57,0.3);
}
@media (max-width:600px){ .panel{ padding:26px 20px; } }
.panel h2{ color:var(--navy); }
.panel.vyzva{ padding:44px 34px; }
.panel.vyzva h2{ font-size:clamp(1.5rem,3.17vw,2.1rem); margin-bottom:12px; }
.panel.vyzva p{ color:var(--fg-muted); max-width:52ch; margin:0; }
.panel.vyzva .cta-row{ justify-content:flex-start; margin-top:26px; }
.panel .form-wrap{ background:transparent; border:0; padding:0; }
.panel .field input, .panel .field textarea, .panel .field select{
background:var(--cream); border-color:rgba(19,37,57,0.28); color:var(--navy);
}
.panel .field input::placeholder, .panel .field textarea::placeholder{ color:rgba(19,37,57,0.3); }
.panel .field input:focus, .panel .field textarea:focus, .panel .field select:focus{ border-color:var(--amber); }
.panel .field select option{ background:var(--cream); color:var(--navy); }
.panel .form-status.ok{ background:rgba(232,131,62,0.16); border-color:rgba(232,131,62,0.5); color:var(--navy); }

/* vizitka hlavniho kontaktu */
.founder.primary{ border-color:var(--amber); border-width:2px; }

/* firemni udaje */
.udaje{ display:grid; grid-template-columns:auto 1fr; gap:10px 22px; margin-top:4px; }
.udaje dt{ font-size:0.92rem; font-weight:600; color:var(--fg-faint); padding-top:2px; }
.udaje dd{ margin:0; font-size:1rem; }
.udaje dd a{ text-decoration:none; border-bottom:1px solid var(--line-strong); }
.udaje dd a:hover{ color:var(--amber); border-color:var(--amber); }

/* mapa: nacte se az po souhlasu, aby web nenastavoval cizi cookies bez svoleni */
.mapa{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--surface); position:relative; }
.mapa svg{ display:block; width:100%; height:auto; }
.mapa iframe{ display:block; width:100%; height:340px; border:0; }
.mapa-prekryv{
position:absolute; inset:0; display:flex; flex-direction:column;
align-items:center; justify-content:center; gap:14px; text-align:center; padding:24px;
background:rgba(19,37,57,0.72);
}
.mapa-prekryv p{ margin:0; font-size:0.92rem; color:rgba(241,238,232,0.8); max-width:34ch; }
.mapa-pata{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:14px 18px; border-top:1px solid var(--line); }
.mapa-pata .misto{ font-weight:700; }
.mapa-pata .odkaz{ font-size:14px; font-weight:600; color:var(--amber); text-decoration:none; white-space:nowrap; }
.mapa-pata .odkaz:hover{ text-decoration:underline; }

/* souhlas se zpracovanim */
.souhlas{ display:flex; gap:11px; align-items:flex-start; margin-top:22px; font-size:0.9rem; }
.souhlas input{ width:18px; height:18px; margin-top:2px; flex:none; accent-color:var(--amber); }
.souhlas label{ color:var(--fg-muted); line-height:1.5; }
.gdpr-detail{ margin-top:16px; font-size:0.85rem; color:var(--fg-faint); }
.gdpr-detail summary{ cursor:pointer; font-weight:600; color:var(--fg-muted); }
.gdpr-detail summary:hover{ color:var(--amber); }
.gdpr-detail p{ margin:10px 0 0; line-height:1.6; }

.inline-link{ color:var(--amber); text-decoration:none; border-bottom:1px solid rgba(232,131,62,0.4); }
/* Přepínač jazyků. V liště je vidět jen vlaječka, zbytek se rozbalí
po kliknutí — čtyři vlajky vedle sebe by lištu zbytečně zaplnily. */
.jazyky{ position:relative; margin-left:14px; }
.jazyk-tlacitko{ display:flex; align-items:center; gap:5px; background:none;
border:1px solid var(--line); border-radius:6px; padding:5px 7px;
cursor:pointer; color:var(--fg-muted); }
.jazyk-tlacitko:hover{ border-color:var(--fg-faint); color:var(--fg); }
.jazyk-tlacitko svg:first-child, .jazyk-seznam a svg:first-child{
width:20px; height:14px; border-radius:2px; flex:none;
box-shadow:0 0 0 1px rgba(19,37,57,0.12); }
.jazyk-tlacitko .sipka{ width:13px; height:13px; transition:transform .2s var(--ease); }
.jazyk-tlacitko[aria-expanded="true"] .sipka{ transform:rotate(180deg); }
.jazyk-seznam{ position:absolute; right:0; top:calc(100% + 6px); z-index:40;
min-width:158px; background:var(--cream); color:var(--navy); border:1px solid var(--line);
border-radius:var(--radius); padding:5px;
box-shadow:0 12px 28px rgba(19,37,57,0.16); }
/* Barvy tu musí být napevno. Hlavička nad fotkou má světlý text a ten by
se do rozbaleného seznamu propsal — krémové písmo na krémovém podkladu. */
.jazyk-seznam a{ display:flex; align-items:center; gap:9px; padding:8px 10px;
border-radius:5px; text-decoration:none; color:var(--navy); font-size:0.92rem; }
.jazyk-seznam a:hover{ background:rgba(19,37,57,0.06); }
.jazyk-seznam a[aria-current]{ font-weight:700; color:var(--amber); }
@media (max-width:900px){ nav > .jazyky{ display:none; } }
/* v mobilním menu není kam rozbalovat, tak jsou jazyky rovnou vidět */
.mobile-menu .jazyky{ margin:16px 0 0; }
.mobile-menu .jazyk-tlacitko{ display:none; }
.mobile-menu .jazyk-seznam{ position:static; display:flex; flex-wrap:wrap;
gap:6px; box-shadow:none; background:none; border:0; padding:0; }
.mobile-menu .jazyk-seznam[hidden]{ display:flex; }
/* Mobilní menu má tmavé pozadí, takže tady musí být písmo světlé —
opačně než v rozbalovacím seznamu v liště, který je na krémové. */
.mobile-menu .jazyk-seznam a{ border:1px solid rgba(241,238,232,0.22);
color:var(--cream); padding:11px 14px; }
.mobile-menu .jazyk-seznam a:hover{ background:rgba(241,238,232,0.1); }
.mobile-menu .jazyk-seznam a[aria-current]{ color:var(--amber);
border-color:rgba(232,131,62,0.5); }
/* Lišta, která cizojazyčnému návštěvníkovi nabídne jeho verzi. Drží se
dole, aby nezakrývala obsah, a dá se zavřít. */
.jazyk-pruh{ position:fixed; left:16px; right:16px; bottom:16px; z-index:60;
display:flex; align-items:center; gap:16px; flex-wrap:wrap;
background:var(--navy); color:var(--cream); padding:14px 18px;
border-radius:var(--radius); box-shadow:0 10px 30px rgba(19,37,57,0.25); }
.jazyk-pruh span{ flex:1 1 220px; font-size:0.95rem; }
.jazyk-pruh button{ background:none; border:0; color:rgba(241,238,232,0.7);
font-size:1.4rem; line-height:1; cursor:pointer; padding:0 4px; }
.jazyk-pruh button:hover{ color:var(--cream); }
@media (max-width:560px){ .jazyk-pruh{ left:10px; right:10px; bottom:10px; } }
.invert .jazyky a:hover{ background:rgba(241,238,232,0.1); }
@media (max-width:900px){ .jazyky{ display:none; } }
.mobile-menu .jazyky{ display:flex; margin:16px 0 0; gap:6px; }
.mobile-menu .jazyky a{ font-size:0.9rem; padding:8px 12px;
border:1px solid var(--line); }
/* řádek s pojistkou v jazykových verzích — na úzké obrazovce se zalomí */
.dokumenty{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:8px; }
.inline-link:hover{ border-bottom-color:var(--amber); }
.field input:invalid:not(:placeholder-shown){ border-color:rgba(255,120,90,0.6); }

footer{ border-top:1px solid var(--line); padding:44px 0 26px; }
.contact-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; gap:36px; } }
.contact-list{ display:flex; flex-direction:column; gap:18px; }
.contact-item .k{ font-size:0.86rem; font-weight:600; color:var(--fg-faint); }
.contact-item .v{ font-size:1.02rem; margin-top:4px; }
.contact-item a{ text-decoration:none; border-bottom:1px solid var(--line-strong); }
.contact-item a:hover{ border-color:var(--amber); color:var(--amber); }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-top:36px; padding-top:20px; border-top:1px solid var(--line); font-size:0.82rem; font-weight:400; color:var(--fg-faint); }
.foot-nav{ display:flex; gap:10px; }
.foot-bottom span:first-child{ max-width:70ch; }

/* orientační mapka */
.mapa{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--surface); }
.mapa svg{ display:block; width:100%; height:auto; }
.mapa-pata{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:16px 20px; border-top:1px solid var(--line); }
.mapa-pata .misto{ font-weight:700; }
.mapa-pata .odkaz{ font-size:14px; font-weight:600; color:var(--amber); text-decoration:none; white-space:nowrap; }
.mapa-pata .odkaz:hover{ text-decoration:underline; }
.foot-nav a{ text-decoration:none; color:inherit; transition:color .25s ease; }
.foot-nav a:hover{ color:var(--amber); }














Služby
O nás
Kariéra
Kontakt

ČeštinaEnglishDeutschPolski


+420 799 907 625

Poptávka




Služby
O nás
Kariéra
Kontakt
Poptávka
ČeštinaEnglishDeutschPolski





+420 799 907 625

Po–Pá 7:00–20:00

Poptávka















Silniční přeprava po ČR a Evropě.

Stránka obsahuje právě jeden H1 nadpis.

2 / 2

Počet nadpisů: 25

Stránka má přiměřené množství nadpisů.

1 / 1

Počet obrázků: 9

Stránka obsahuje obrázky.

1 / 1

Počet obrázků bez popisu: OK

Všechny obrázky mají atribut alt.

1 / 1

Interní odkazy: follow: 29, nofollow: 0

Stránka obsahuje interní odkazy.

2 / 2

Odstavce: souvislý text: 2983 znaků, text celkem: 4204 znaků

Podstatná část textu je v odstavcích, seznamech nebo tabulkách.

1 / 1
100 🧱 HTML5 6 kontrol · vše v pořádku 6 / 6 b.

Použití HTML5: OK

Stránka používá HTML5 doctype.

1 / 1

Použití záhlaví: OK

Stránka obsahuje element header.

1 / 1

Použití zápatí: OK

Stránka obsahuje element footer.

1 / 1

Použití navigace: OK

Stránka obsahuje element nav.

1 / 1

Rozdělení obsahu do sekcí: 10

Obsah je rozdělen do sekcí.

1 / 1

Zastaralé elementy: -

Stránka neobsahuje zastaralé HTML elementy.

1 / 1
100 💬 Sociální sítě 9 kontrol · vše v pořádku 14 / 14 b.

Nastavení jazyku: cs_CZ

Open Graph jazyk je nastavený.

1 / 1

Nastavení typu obsahu: website

Open Graph typ je nastavený.

1 / 1

Nastavení URL: https://arpem.cz/

Open Graph URL je nastavená.

2 / 2

Titulek stránky: Spedice a silniční přeprava po ČR a EU — Arpem Logistics

Open Graph titulek je nastavený.

2 / 2

Popis stránky: Silniční přeprava FTL a LTL po ČR a Evropské unii, ADR i nadrozměrné náklady. V pracovní době odpovídáme do 30 minut s konkrétní cenou.

Open Graph popis je nastavený.

2 / 2

Titulní obrázek: https://arpem.cz/og-image-2.jpg

Open Graph obrázek je nastavený.

2 / 2

Rozměry titulního obrázku: 1200 × 630 px

Titulní obrázek má doporučené rozlišení.

2 / 2

Karta pro X / Twitter: summary_large_image

Stránka má nastavený typ náhledové karty.

1 / 1

Odkazy na sociální profily: LinkedIn

Web odkazuje na profily na sociálních sítích.

1 / 1
100 🔑 Klíčová slova 3 kontrol · vše v pořádku 3 / 3 b.

Počet slov na stránce: 528

Stránka obsahuje dostatečné množství textu.

2 / 2

Nejčastější slova na stránce: arpem | dopravce | přeprava | služby | kontakt | poptávka | pojištění | kariéra | zásilky | poptávky

Nejčastější slova byla zjištěna.

1 / 1

Konzistence klíčových slov: arpem 7x, dopravce 7x, přeprava 5x, služby 5x, kontakt 4x, poptávka 4x, pojištění 4x, kariéra 3x, zásilky 3x, poptávky 3x

Přehled nejčastějších slov pro kontrolu titulku, popisu a nadpisů.

0 / 0
100 ⚡ Načítání zdrojů 5 kontrol · vše v pořádku 4 / 4 b.

Použití komprese: zstd

Server používá kompresi odpovědi.

1 / 1

Velikost HTML: 71.4 kB

Velikost HTML je přiměřená.

1 / 1

Počet požadavků: 12

Počet požadavků je přiměřený.

1 / 1

Cache hlavičky: public, max-age=0, must-revalidate

Server posílá cache pravidla.

1 / 1

Soubory k načtení: CSS: 0, JavaScript: 1, Obrázky: 9, Ikony: 1

Přehled odkazovaných CSS, JS a obrázků.

0 / 0
100 🔎 Ostatní 5 kontrol · vše v pořádku 7 / 7 b.

Responsivita: meta viewport nalezen

Stránka má meta viewport.

1 / 1

Použití schema.org: 2 bloků

Stránka používá strukturovaná data.

2 / 2

Použití Google Tag Manager: nepoužívá se

Web GTM nepoužívá. To není chyba, GTM je jen jeden ze způsobů, jak nasadit měření.

1 / 1

Canonical URL: https://arpem.cz/

Canonical URL je nastavená.

1 / 1

Robots meta noindex: nenalezeno

Stránka není blokovaná meta noindex.

2 / 2
77 🔒 Zabezpečení 10 kontrol · 3 k řešení 10 / 13 b.

Platnost SSL certifikátu: platí ještě 79 dní (Google Trust Services)

Certifikát je platný a nekončí v nejbližších dnech.

2 / 2

Přesměrování HTTP na HTTPS: HTTP verze vrací 301

Nezabezpečená verze trvale přesměrovává na HTTPS.

2 / 2

Jedna hlavní adresa webu: www.arpem.cz vrací 200

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Ošetření neexistujících stránek: neexistující adresa vrací 404

Neexistující adresa správně vrací stav 404.

1 / 1

Vynucení HTTPS (HSTS): chybí

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Bezpečnostní hlavičky: všechny nastavené

Server posílá hlavní bezpečnostní hlavičky.

1 / 1

Prozrazení verzí software: server verze neprozrazuje

Server neprozrazuje konkrétní verze.

1 / 1

Soubor security.txt: chybí

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Nezabezpečené zdroje na stránce: žádné

Všechny zdroje se načítají přes HTTPS.

2 / 2

Ikona webu (favicon): nalezena (HTML)

Web má vlastní ikonu v záložce prohlížeče.

1 / 1
88 ✉️ Doména a e-mail 5 kontrol · 1 k řešení 7 / 8 b.

Platnost domény: zaplaceno do 18. 12. 2026 (64 dní)

Doména má dostatečnou rezervu do konce registrace.

2 / 2

Zabezpečení domény (DNSSEC): nepodepsaná

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

SPF záznam: v=spf1 include:_spf.google.com ~all

SPF je nastavený a uzavřený.

2 / 2

DMARC záznam: v=DMARC1; p=quarantine; rua=mailto:nikol.lindakova@arpem.cz; pct=100; adkim=r; aspf=r

DMARC je nastavený a vynucuje pravidla.

2 / 2

Podpora IPv6: AAAA záznam nalezen

Web je dostupný i přes IPv6.

1 / 1
89 🤖 AI viditelnost 6 kontrol · 1 k řešení 8 / 9 b.

Přístup AI robotů: všichni sledovaní roboti mají přístup

robots.txt nebrání AI vyhledávačům v přístupu.

2 / 2

Soubor llms.txt: chybí

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Vizitka firmy ve strukturovaných datech: LocalBusiness: Arpem Logistics

Strojově čitelná vizitka firmy je kompletní.

2 / 2

Typy strukturovaných dat: LocalBusiness, PostalAddress, OpeningHoursSpecification

Stránka popisuje obsah strukturovanými daty.

1 / 1

Časté dotazy (FAQ schema): na stránce nejsou dotazy

Stránka nemá sekci častých dotazů, FAQ schema tu není potřeba.

1 / 1

Obsah dostupný bez JavaScriptu: 652 slov přímo v HTML

Text je v HTML dostupný i bez JavaScriptu.

2 / 2
88 ⚖️ Právní náležitosti 5 kontrol · 1 k řešení 7 / 8 b.

IČO na webu: 19937024 — Arpem Logistics s.r.o.

IČO je uvedené a odpovídá zápisu v ARES.

2 / 2

Kontaktní údaje: e-mail, telefon, adresa

Na úvodní stránce jsou kontaktní údaje.

1 / 1

Zásady ochrany osobních údajů: /ochrana-osobnich-udaju

Web odkazuje na zásady ochrany osobních údajů.

2 / 2

Souhlas s cookies: sledovací nástroje nenalezeny

Na stránce neběží měřicí nástroje, které by vyžadovaly souhlas.

2 / 2

Obchodní podmínky: odkaz nenalezen

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1
100 🚀 PageSpeed skóre 5 kontrol · vše v pořádku 7 / 7 b.

Výkon (mobil): 94/100

Výkon má dobré skóre. LCP 3,0 s · FCP 1,7 s · TBT 0 ms · CLS 0.

2 / 2

Přístupnost: 91/100

Přístupnost má dobré skóre.

1 / 1

Osvědčené postupy: 92/100

Osvědčené postupy má dobré skóre.

1 / 1

SEO: 100/100

SEO má dobré skóre.

2 / 2

Výkon (desktop): 100/100

Výkon má dobré skóre. LCP 0,6 s · FCP 0,5 s · TBT 0 ms · CLS 0.

1 / 1
0 🚀 Doporučení PageSpeed 8 kontrol · 8 k řešení 0 / 8 b.

Zlepšete zobrazování obrázků: mobil i desktop

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Minifikujte kód CSS: mobil i desktop

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Prvky používají zakázané atributy ARIA: jen mobil

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Barvy pozadí a popředí nemají dostatečný kontrastní poměr: mobil i desktop

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Do konzole byly zaprotokolovány chyby prohlížeče: mobil i desktop

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Problémy byly zaprotokolovány na panelu `Issues` v Chrome DevTools: mobil i desktop

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Vynucené přeformátování: mobil i desktop

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Zjištění požadavku LCP: jen desktop

Detail problému a doporučený postup opravy krok za krokem jsou dostupné po bezplatné registraci.

🔒 Odemknout zdarma
0 / 1

Poslat výsledek e-mailem

Pošleme vám souhrn tohoto testu s odkazem na celý výsledek, ať ho máte po ruce nebo ho můžete přeposlat svému webaři. Jde o jednorázovou zprávu, k odběru čehokoli vás tím nepřihlašujeme.

Adresu použijeme jen k odeslání tohoto výsledku. Podrobnosti najdete v obchodních podmínkách a zásadách ochrany osobních údajů.

Poslední veřejné SEO testy

Podívejte se, jak na tom jsou další weby, které prošly SEOHlídačem.