:root {
  --navy: #020617;
  --slate: #0f172a;
  --card: #111c30;
  --line: #243044;
  --muted: #94a3b8;
  --text: #e2e8f0;
  --amber: #f59e0b;
  --amber-dark: #b45309;
  --light: #f6f8fb;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--slate);
  color: var(--text);
  font-family: "DM Sans", system-ui, sans-serif;
  line-height: 1.65;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
.wrap { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(2,6,23,.93); backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
}
.nav { min-height: 72px; display: flex; align-items: center; gap: 24px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 900; letter-spacing: .16em; }
.brand img { width: 44px; height: 46px; object-fit: contain; }
.nav-links { margin-left: auto; display: flex; align-items: center; gap: 22px; }
.nav-links a { text-decoration: none; color: #cbd5e1; font-size: .9rem; }
.nav-links a:hover { color: var(--amber); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 22px; border-radius: 12px;
  background: var(--amber); color: var(--navy); text-decoration: none;
  font-weight: 800; border: 1px solid var(--amber);
}
.btn:hover { background: #fbbf24; }
.btn.secondary { background: transparent; color: white; border-color: #475569; }
.btn.secondary:hover { border-color: var(--amber); color: var(--amber); }
.hero {
  position: relative; overflow: hidden; padding: 82px 0 76px;
  background-color: var(--navy);
  background-image: linear-gradient(110deg, rgba(2,6,23,.93), rgba(15,23,42,.75)), var(--hero-image, linear-gradient(135deg,#0f172a,#020617));
  background-position: center;
  background-size: cover;
}
.hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 80% 30%,rgba(245,158,11,.13),transparent 34%); }
.hero-content { position: relative; z-index: 1; max-width: 820px; }
.breadcrumb { font-size: .82rem; color: #94a3b8; margin-bottom: 22px; }
.breadcrumb a { color: #cbd5e1; }
.eyebrow { display:inline-block; padding:6px 12px; border:1px solid rgba(245,158,11,.35); border-radius:999px; color:var(--amber); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
h1,h2,h3 { line-height: 1.12; margin: 0; }
h1 { font-family:"Bebas Neue", sans-serif; font-size:clamp(3.2rem,8vw,6.4rem); letter-spacing:.01em; margin:22px 0; }
h1 span { color: var(--amber); }
.lead { font-size:clamp(1.05rem,2vw,1.25rem); color:#cbd5e1; max-width:720px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.proof { display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:32px; color:#cbd5e1; font-size:.9rem; }
.proof span::before { content:"✓"; color:var(--amber); font-weight:900; margin-right:8px; }
section { padding:76px 0; }
.light { background:var(--light); color:#0f172a; }
.dark { background:var(--navy); }
.section-head { max-width:760px; margin-bottom:38px; }
.section-head h2 { font-family:"Bebas Neue", sans-serif; font-size:clamp(2.3rem,5vw,4rem); letter-spacing:.02em; }
.section-head p { color:#475569; }
.dark .section-head p { color:var(--muted); }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.card { background:white; border:1px solid #dbe3ec; border-radius:18px; padding:26px; box-shadow:0 12px 32px rgba(15,23,42,.06); }
.dark .card { background:var(--card); border-color:var(--line); box-shadow:none; }
.card h3 { font-size:1.1rem; margin-bottom:10px; }
.card p { color:#475569; margin:0; }
.dark .card p { color:var(--muted); }
.step-num { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--amber); color:var(--navy); font-weight:900; margin-bottom:18px; }
.price-box { display:grid; grid-template-columns:1.15fr .85fr; gap:30px; align-items:center; padding:34px; border-radius:22px; background:linear-gradient(135deg,#111c30,#020617); border:1px solid var(--line); }
.price { font-family:"Bebas Neue",sans-serif; color:var(--amber); font-size:clamp(3.2rem,7vw,5.4rem); line-height:1; }
.price-note { color:var(--muted); font-size:.92rem; }
.checklist { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.checklist li { padding-left:28px; position:relative; }
.checklist li::before { content:"✓"; position:absolute; left:0; color:var(--amber); font-weight:900; }
/* ── Prokliky mezi službami ──
   Servisní stránky spolu dosud nekomunikovaly: každá odkazovala jen na úvod,
   takže kdo přišel z reklamy na střechy, neměl jak se dostat k dlažbě.
   Karta je proto celá klikatelná, ne jen odkaz v textu. */
.card-link { display:block; text-decoration:none; transition:border-color .15s, transform .15s, box-shadow .15s; }
.card-link:hover { border-color:var(--amber); transform:translateY(-2px); box-shadow:0 16px 38px rgba(15,23,42,.10); }
.card-link h3 { color:#0f172a; margin-bottom:8px; }
.card-link:hover h3 { color:var(--amber-dark); }
.card-link .card-price { display:block; margin-top:12px; color:var(--amber-dark); font-weight:800; font-size:.9rem; }
.dark .card-link h3 { color:#fff; }
.dark .card-link:hover h3 { color:var(--amber); }

.local-box { padding:28px; border-radius:18px; border:1px solid #dbe3ec; background:white; }
.local-box strong { color:var(--amber-dark); }
.faq { display:grid; gap:12px; }
details { background:white; border:1px solid #dbe3ec; border-radius:14px; padding:0 20px; }
summary { cursor:pointer; font-weight:800; padding:18px 30px 18px 0; position:relative; list-style:none; }
summary::after { content:"+"; position:absolute; right:0; color:var(--amber-dark); font-size:1.4rem; }
details[open] summary::after { content:"−"; }
details p { color:#475569; margin:0 0 18px; }
.cta { text-align:center; background:linear-gradient(135deg,#0f172a,#020617); }
.cta h2 { font-family:"Bebas Neue",sans-serif; font-size:clamp(2.5rem,6vw,4.8rem); }
.cta p { color:#cbd5e1; max-width:650px; margin:16px auto 26px; }
footer { padding:34px 0 110px; background:var(--navy); border-top:1px solid var(--line); color:#94a3b8; font-size:.84rem; }
.footer-row { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }

/* ── Garance v hero (risk reversal hned pod CTA) ── */
.hero-guarantee { margin-top:18px; color:#e2e8f0; font-size:.9rem; line-height:1.5; border-left:3px solid var(--amber); padding:8px 0 8px 12px; background:rgba(15,23,42,.35); border-radius:0 8px 8px 0; }
.hero-guarantee strong { color:#fff; }

/* ── Loss aversion: řetěz poškození ── */
.damage-list { list-style:none; margin:0 0 28px; padding:0; display:grid; gap:14px; max-width:760px; }
.damage-list li { display:flex; gap:12px; align-items:flex-start; color:#475569; line-height:1.6; }
.damage-list li span { flex:0 0 auto; width:24px; height:24px; border-radius:999px; background:rgba(245,158,11,.16); color:#b45309; font-weight:800; font-size:.75rem; display:inline-flex; align-items:center; justify-content:center; }

/* ── Cenové ukotvení ── */
.anchor-box { max-width:760px; border:1px solid var(--line); border-radius:14px; padding:6px 18px 16px; background:#fff; }
.anchor-line { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:13px 0; border-bottom:1px solid var(--line); }
.anchor-line:last-of-type { border-bottom:0; }
.anchor-line span { color:#64748b; }
.anchor-line b { color:#64748b; white-space:nowrap; }
.anchor-line.is-ours span { color:#0f172a; font-weight:700; }
.anchor-line.is-ours b { color:#b45309; font-size:1.1rem; }
.anchor-note { margin:10px 0 0; color:#94a3b8; font-size:.76rem; line-height:1.55; }

/* ── Garance v CTA ── */
.guarantee-card { margin:26px auto 0; max-width:640px; text-align:left; background:rgba(2,6,23,.30); border:1px solid rgba(245,158,11,.4); border-radius:14px; padding:18px 20px; }
.guarantee-card > strong { display:block; color:var(--amber); font-size:.78rem; letter-spacing:.09em; text-transform:uppercase; margin-bottom:10px; }
.guarantee-card p { margin:0 0 10px; font-size:.86rem; line-height:1.6; }
.guarantee-card p:last-child { margin-bottom:0; }
.guarantee-card .bonus { border-top:1px solid rgba(245,158,11,.28); padding-top:10px; color:var(--amber); font-weight:700; }
.mobile-actions { display:none; }
#cookieBar { position:fixed; left:0; right:0; bottom:0; z-index:150; background:#0f172a; border-top:1px solid #334155; padding:14px 20px; box-shadow:0 -8px 30px rgba(0,0,0,.35); }
#cookieBar.hidden { display:none; }
.cookie-inner { width:min(960px,100%); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.cookie-inner p { margin:0; color:#cbd5e1; font-size:.84rem; }
.cookie-buttons { display:flex; gap:8px; }
.cookie-buttons button { min-height:44px; border-radius:9px; padding:0 16px; font-weight:800; cursor:pointer; }
.cookie-reject { background:transparent; border:1px solid #64748b; color:white; }
.cookie-accept { background:var(--amber); border:1px solid var(--amber); color:var(--navy); }
@media(max-width:760px){
  .wrap { width:min(100% - 32px,1120px); }
  .nav-links a:not(.btn) { display:none; }
  .nav-links { gap:8px; }
  .nav-links .btn { padding:0 13px; font-size:.82rem; }
  .hero { padding:58px 0 56px; }
  .grid-3,.grid-2,.price-box { grid-template-columns:1fr; }
  section { padding:56px 0; }
  .mobile-actions { position:fixed; z-index:120; left:0; right:0; bottom:0; display:flex; gap:8px; padding:10px 12px; background:rgba(2,6,23,.96); border-top:1px solid var(--line); }
  .mobile-actions .btn { flex:1; padding:0 10px; }
  /* Cookie lištu vidí každý první návštěvník (tedy veškerý provoz z reklamy).
     Skrývat kvůli ní volací lištu znamenalo nechat ho bez klikatelného
     telefonu – posuneme ji proto nad ni, místo abychom ji schovávali. */
  body.cookie-choice-pending #cookieBar { bottom:74px; }
  #cookieBar { padding:12px 14px; }
  .cookie-inner { flex-direction:column; align-items:stretch; gap:10px; }
  .cookie-buttons button { flex:1; }
  footer { padding-bottom:105px; }
}
