/* =========================================================================
   WEB EXPRESS 2.0 — frontend (překlad Lovable návrhu do ToRo)
   Barvy, fonty, rádiusy a stíny jsou proměnné v :root. U barev je vždy hex
   fallback a hned za ním původní oklch hodnota z návrhu.
   ========================================================================= */
:root{
  --radius:0.75rem;
  --radius-sm:calc(var(--radius) - 4px);
  --radius-lg:calc(var(--radius) + 4px);

  --brand:#a63122;               --brand:oklch(0.484 0.184 26.5);
  --brand-foreground:#fdfcfa;    --brand-foreground:oklch(0.99 0.005 60);
  --ink:#212121;                 --ink:oklch(0.205 0 0);
  --cream:#fdfbf8;               --cream:oklch(0.982 0.008 47);

  --background:#ffffff;
  --foreground:#212121;          --foreground:oklch(0.205 0 0);
  --card:#ffffff;
  --primary:var(--brand);
  --primary-foreground:var(--brand-foreground);
  --secondary:#f2f2f2;           --secondary:oklch(0.955 0 0);
  --secondary-foreground:var(--foreground);
  --muted:#f2f2f2;               --muted:oklch(0.955 0 0);
  --muted-foreground:#7b736d;    --muted-foreground:oklch(0.52 0.015 40);
  --border:#e5e5e5;              --border:oklch(0.9 0 0);
  --line:var(--border);
  --surface-soft:var(--secondary);
  --footer:var(--ink);
  --footer-foreground:var(--cream);

  --font-sans:"Nunito",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-display:var(--font-sans);

  --shadow-soft:0 2px 10px -2px rgba(33,33,33,.08);
  --shadow-lift:0 24px 60px -24px rgba(33,33,33,.25);
}

*,*::before,*::after{box-sizing:border-box;}
*{border-color:var(--border);}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}}
body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;padding-top:84px;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;margin:0;line-height:1.12;letter-spacing:-.02em;}
p{margin:0;}
button{font-family:inherit;cursor:pointer;}
::selection{background:color-mix(in oklab,var(--brand) 25%,transparent);}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px;}

/* ---------------- utilities ---------------- */
.site-shell{width:min(100% - 2rem,72rem);margin-inline:auto;}
.shell-narrow{max-width:64rem;}
.shell-slim{max-width:48rem;}
.section-space{padding-block:clamp(3.5rem,6vw,5rem);}
.section-title{font-size:clamp(1.75rem,3.5vw,2.25rem);font-weight:800;}
.lead{color:var(--muted-foreground);line-height:1.7;font-size:1.125rem;max-width:34rem;}
.eyebrow{margin:0 0 .5rem;font-size:.8125rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--brand);}
.eyebrow-line{display:none;}
.bold{font-weight:700;}
.lucide{flex:none;}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.section-cta{margin-top:1.75rem;}
.star{color:var(--brand);}

/* ---------------- tlačítka ---------------- */
.button-primary{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:.5rem;
  border:0;border-radius:var(--radius);background:var(--brand);padding:.75rem 1.5rem;
  color:var(--brand-foreground);font-weight:800;font-size:.9375rem;transition:filter .15s,transform .15s;}
.button-primary:hover{filter:brightness(1.08);}
.button-primary:active{transform:translateY(1px);}
.button-secondary{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:.5rem;
  border:1px solid var(--line);border-radius:var(--radius);background:transparent;padding:.75rem 1.5rem;font-weight:700;}
.button-secondary:hover{background:var(--secondary);}
.button-block{width:100%;}
.button-lg{min-height:3.5rem;padding-inline:2rem;font-size:1rem;}
@media (max-width:639px){.button-lg{width:100%;}}

/* ---------------- hlavička ---------------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.9rem;}
.brand{display:flex;align-items:center;gap:.75rem;}
.brand-mark{display:flex;width:3.25rem;height:3.25rem;align-items:center;justify-content:center;flex:none;
  border:3px solid var(--brand);background:#fff;color:var(--brand);font-size:.6875rem;font-weight:800;
  letter-spacing:-.02em;white-space:nowrap;}
.brand-mark-sm{width:3rem;height:3rem;border-width:2px;font-size:.5625rem;}
.brand-txt strong{display:block;font-size:1rem;font-weight:800;}
.brand-sub{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-foreground);}
.main-nav{display:none;align-items:center;gap:1.4rem;}
.nav-link{font-size:.875rem;font-weight:700;color:var(--muted-foreground);}
.nav-link:hover{color:var(--foreground);}
.header-cta{min-height:2.75rem;padding-inline:1.1rem;}
.burger{display:inline-flex;width:2.75rem;height:2.75rem;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--radius);background:#fff;}
.mobile-nav{display:none;border-top:1px solid var(--line);background:#fff;}
.mobile-nav.open{display:block;}
.mobile-nav .site-shell{display:flex;flex-direction:column;padding-block:.75rem 1.25rem;}
.mobile-nav a{padding:.7rem 0;font-weight:700;}
@media (min-width:1024px){.main-nav{display:flex;}.burger{display:none;}}

/* ---------------- hero ---------------- */
.hero{position:relative;padding-block:2.5rem 4rem;border-bottom:1px solid var(--line);}
@media (min-width:768px){.hero{padding-block:3.5rem 5rem;}}
.hero-grid{display:grid;gap:2.5rem;align-items:center;}
@media (min-width:1024px){.hero-grid{grid-template-columns:1.12fr .88fr;gap:4rem;}}
.pill{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:999px;
  background:var(--secondary);color:var(--brand);padding:.375rem .75rem;font-size:.8125rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.03em;}
.pill-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--brand);}
.hero-title{margin-top:1.25rem;font-size:clamp(2.25rem,5vw,3.75rem);max-width:20ch;}
.hero-title .accent{color:var(--brand);}
.hero-sub{margin-top:1.25rem;max-width:46ch;font-size:1.125rem;color:var(--muted-foreground);}
.checklist{list-style:none;margin:1.75rem 0 0;padding:0;display:grid;gap:.75rem;}
@media (min-width:640px) and (max-width:1023px){.checklist{grid-template-columns:repeat(3,1fr);}}
.checklist li{display:flex;gap:.75rem;font-weight:700;}
.check{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;flex:none;
  border-radius:50%;background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand);}

/* ---------------- karta s formulářem ---------------- */
.form-card-wrap{position:relative;}
.form-card-wrap::before{content:"";position:absolute;inset:-1rem;z-index:-1;border-radius:var(--radius-lg);background:var(--secondary);}
.form-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);
  padding:1.5rem;box-shadow:var(--shadow-lift);scroll-margin-top:6rem;}
@media (min-width:768px){.form-card{padding:2rem;}}
.form-card-title{margin-top:.25rem;font-size:1.5rem;}
.form-card-note{margin:.5rem 0 1.25rem;font-size:.9375rem;color:var(--muted-foreground);}
.call-line{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);text-align:center;font-size:.9375rem;font-weight:700;}
.call-line a{color:var(--brand);}

.lead-form{display:grid;gap:.75rem;}
.lead-form input[type=text],.lead-form input[type=tel],.lead-form input[type=email]{
  width:100%;min-height:3rem;padding:.625rem .875rem;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--card);color:var(--foreground);font:inherit;}
.lead-form input::placeholder{color:var(--muted-foreground);}
.consent{display:flex;gap:.625rem;align-items:flex-start;font-size:.8125rem;}
.consent input{margin-top:.2rem;width:1rem;height:1rem;flex:none;accent-color:var(--brand);}
.consent a{text-decoration:underline;}
.form-note{text-align:center;font-size:.8125rem;color:var(--muted-foreground);}
.form-err{border-radius:var(--radius);background:#fee2e2;color:#991b1b;padding:.75rem 1rem;font-size:.875rem;font-weight:700;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-done{border-radius:var(--radius);background:var(--card);padding:1.5rem;text-align:center;box-shadow:var(--shadow-soft);}
.form-done-title{font-size:1.125rem;font-weight:800;}
.form-done p+p{margin-top:.5rem;color:var(--muted-foreground);}
.on-brand input{border-color:transparent;}
.on-brand .form-note,.on-brand .consent{color:var(--brand-foreground);opacity:.9;}
.on-brand .button-primary{background:var(--ink);color:var(--cream);}
.on-brand .form-done{background:rgba(255,255,255,.12);color:var(--brand-foreground);box-shadow:none;}

/* ---------------- náhled webu ---------------- */
.preview{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-soft);}
.preview-chrome{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--secondary);border-bottom:1px solid var(--line);}
.preview-dots{display:flex;gap:.3rem;}
.preview-dots i{width:.5rem;height:.5rem;border-radius:50%;background:#cfcfcf;}
.preview-url{flex:1;background:#fff;border-radius:999px;padding:.1875rem .625rem;font-size:.6875rem;
  color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.preview-figure{position:relative;aspect-ratio:3/2;background:var(--secondary);}
.preview-figure picture{display:block;width:100%;height:100%;}
.preview-figure img{width:100%;height:100%;object-fit:cover;}
.preview-bar{position:absolute;inset-inline:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;
  gap:1rem;padding:1.25rem;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,0));}
.preview-bar h4{font-size:1.0625rem;font-weight:800;}
.preview-bar p{font-size:.8125rem;opacity:.9;}
.preview-cta{flex:none;border-radius:var(--radius-sm);background:var(--theme,var(--brand));color:#fff;
  padding:.375rem .75rem;font-size:.75rem;font-weight:800;white-space:nowrap;}
.preview-compact .preview-bar{padding:1rem;}
.preview-compact .preview-bar h4{font-size:.9375rem;}
.theme-construction{--theme:#b4642a;}
.theme-bakery{--theme:#a8641e;}
.theme-architecture{--theme:#3f4b45;}
.theme-physio{--theme:#2f6f66;}

.hero-preview{position:relative;margin-top:2.25rem;max-width:42rem;display:none;}
@media (min-width:640px){.hero-preview{display:block;}}
@media (min-width:1024px){.hero-preview{margin-right:-5rem;}}
.preview-note{position:absolute;right:1.25rem;bottom:-1rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--card);padding:.625rem 1rem;box-shadow:var(--shadow-soft);}
.preview-note strong{display:block;font-size:.8125rem;color:var(--brand);}
.preview-note span{font-size:.8125rem;font-weight:700;}

.phone-frame{width:11rem;margin-inline:auto;border:8px solid var(--ink);border-radius:1.75rem;overflow:hidden;
  background:var(--ink);box-shadow:var(--shadow-soft);}
.phone-shot{position:relative;aspect-ratio:9/16;background:#fff;}
.phone-shot picture{display:block;width:100%;height:100%;}
.phone-shot img{width:100%;height:100%;object-fit:cover;}

/* ---------------- pruh důvěry ---------------- */
.trust{border-block:1px solid var(--line);background:var(--secondary);padding-block:1rem;}
.trust p{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.25rem .75rem;
  text-align:center;font-size:.9375rem;font-weight:700;}
.trust .sep{color:var(--muted-foreground);}
.trust a:hover{text-decoration:underline;text-underline-offset:4px;}

/* ---------------- tmavé a barevné bloky ---------------- */
.block-ink{background:var(--ink);color:var(--cream);}
.block-soft{background:var(--secondary);}
.block-brand{background:var(--brand);color:var(--brand-foreground);}
.problem-grid{display:grid;gap:2.5rem;align-items:center;}
@media (min-width:768px){.problem-grid{grid-template-columns:1fr 1fr;}.problem-fig{rotate:2deg;}}
.problem-text{font-size:1.25rem;line-height:1.6;}
@media (min-width:768px){.problem-text{font-size:1.5rem;}}
.problem-claim{margin-top:.75rem;font-weight:800;}
.problem-fig{margin:0;}
.problem-fig figcaption{margin-top:.75rem;text-align:center;font-size:.9375rem;font-weight:700;opacity:.8;}

/* ---------------- ukázky ---------------- */
.showcase-head{display:flex;flex-direction:column;gap:1rem;}
@media (min-width:768px){.showcase-head{flex-direction:row;align-items:flex-end;justify-content:space-between;}}
.showcase-head .section-title{margin-top:.25rem;max-width:24ch;}
.showcase-head .lead{max-width:32ch;font-size:1rem;}
.showcase{display:flex;gap:1.25rem;margin-top:2.25rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;}
.showcase>*{flex:0 0 82%;scroll-snap-align:start;}
@media (min-width:640px){.showcase>*{flex-basis:46%;}}
@media (min-width:1024px){.showcase{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible;}
  .showcase>*{flex:initial;}}
.showcase .preview{transition:transform .3s;}
.showcase article:hover .preview{transform:translateY(-4px);}
.showcase-meta{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;
  margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);}
.showcase-meta h3{font-size:1rem;font-weight:800;}
.showcase-meta p{font-size:.8125rem;font-weight:700;color:var(--muted-foreground);}
.showcase-cta{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-top:2rem;
  padding-left:1.25rem;border-left:4px solid var(--brand);}
@media (min-width:640px){.showcase-cta{flex-direction:row;align-items:center;justify-content:space-between;}}

/* ---------------- karty ---------------- */
.cards{display:grid;gap:1rem;margin-top:2rem;}
@media (min-width:768px){.cards-4{grid-template-columns:repeat(4,1fr);}.cards-3{grid-template-columns:repeat(3,1fr);}}
.card{border-radius:var(--radius);background:var(--card);padding:1.5rem;box-shadow:var(--shadow-soft);}
.card-outline{border:1px solid var(--line);box-shadow:none;}
.card-num{font-size:.875rem;font-weight:800;color:var(--brand);}
.card h3{margin-top:.5rem;font-size:1.125rem;}
.card-when{margin-top:.25rem;font-size:.9375rem;font-weight:700;color:var(--brand);}
.card-desc{margin-top:.75rem;font-size:.9375rem;color:var(--muted-foreground);}

/* ---------------- co je v ceně ---------------- */
.includes{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:.75rem;}
@media (min-width:640px){.includes{grid-template-columns:1fr 1fr;}}
.includes li{display:flex;gap:.75rem;align-items:flex-start;border-radius:var(--radius);background:var(--card);
  padding:1rem;box-shadow:var(--shadow-soft);font-size:.9375rem;}
.includes .lucide{color:var(--brand);margin-top:.1rem;}
.includes-claim{margin-top:1.5rem;font-size:1.125rem;font-weight:800;}
.includes-extra{margin-top:.5rem;font-size:.9375rem;font-weight:700;}
.includes-hosting{margin-top:.5rem;font-size:.9375rem;color:var(--muted-foreground);}

/* ---------------- srovnání ---------------- */
.compare{display:grid;gap:1rem;margin-top:2rem;}
@media (min-width:768px){.compare{grid-template-columns:repeat(3,1fr);}}
.cmp-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.75rem;font-size:.9375rem;}
.cmp-list li{display:flex;gap:.5rem;align-items:flex-start;}
.cmp-list .lucide{margin-top:.25rem;}
.card-outline .cmp-list{color:var(--muted-foreground);}
.compare-best{position:relative;order:-1;border-radius:var(--radius);background:var(--ink);color:var(--cream);
  padding:1.5rem;box-shadow:var(--shadow-lift);}
@media (min-width:768px){.compare-best{order:0;margin-top:-1rem;}}
.compare-best .tag{position:absolute;top:-.75rem;left:1.5rem;border-radius:999px;background:var(--brand);
  color:var(--brand-foreground);padding:.25rem .75rem;font-size:.8125rem;font-weight:800;}
.compare-best h3{margin-top:.5rem;font-size:1.125rem;}
.compare-best .lucide{color:var(--brand);}

/* ---------------- recenze ---------------- */
.reviews-link{margin-top:.5rem;font-size:.9375rem;font-weight:700;}
.reviews-link a:hover{text-decoration:underline;text-underline-offset:4px;}
.reviews{display:grid;gap:1rem;margin-top:2rem;}
@media (min-width:768px){.reviews{grid-template-columns:1fr 1fr;}}
.review{margin:0;border-radius:var(--radius);background:var(--card);padding:1.5rem;box-shadow:var(--shadow-soft);}
.review .stars{display:flex;color:var(--brand);}
.review blockquote{margin:.75rem 0 0;font-size:1.125rem;}
.review figcaption{margin-top:.75rem;font-size:.9375rem;font-weight:700;color:var(--muted-foreground);}

/* ---------------- riziko nula ---------------- */
.risk{border-radius:var(--radius);background:var(--ink);color:var(--cream);padding:2rem;}
@media (min-width:768px){.risk{padding:3rem;}}
.risk h2{font-size:clamp(1.5rem,3vw,1.875rem);}
.risk-list{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:1rem;}
@media (min-width:768px){.risk-list{grid-template-columns:repeat(3,1fr);}}
.risk-list li{border-radius:var(--radius);background:rgba(253,251,248,.1);padding:1.25rem;}
.risk-num{font-size:1.25rem;font-weight:800;color:var(--brand);}
.risk-list p{margin-top:.5rem;}
.risk-claim{margin-top:1.5rem;font-size:1.125rem;}

/* ---------------- FAQ ---------------- */
.faq{display:grid;margin-top:1.5rem;}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.125rem 0;
  font-weight:800;cursor:pointer;list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"";flex:none;width:.625rem;height:.625rem;
  border-right:2px solid var(--muted-foreground);border-bottom:2px solid var(--muted-foreground);
  rotate:45deg;transition:rotate .2s;}
.faq details[open] summary::after{rotate:-135deg;}
.faq-answer{padding-bottom:1.125rem;color:var(--muted-foreground);}

/* ---------------- závěrečná sekce ---------------- */
.final-grid{display:grid;gap:2.5rem;}
@media (min-width:768px){.final-grid{grid-template-columns:1fr 1fr;align-items:center;}}
.final-grid .section-title{max-width:18ch;}
.quote-box{margin:1.5rem 0 0;border-radius:var(--radius);background:rgba(255,255,255,.12);padding:1.25rem;}
.quote-box blockquote{margin:1rem 0 0;font-size:1.125rem;font-weight:700;}
.quote-box figcaption{margin-top:.75rem;font-size:.875rem;font-weight:800;opacity:.8;}
.final-contacts{margin-top:1.5rem;display:grid;gap:.75rem;font-weight:700;}
.final-contacts a{display:inline-flex;align-items:center;gap:.5rem;}
.final-contacts a:hover{text-decoration:underline;text-underline-offset:4px;}

/* ---------------- patička ---------------- */
.site-footer{background:var(--footer);color:var(--footer-foreground);padding-block:2.5rem 1.5rem;}
.footer-inner{display:grid;gap:1.5rem;align-items:start;}
@media (min-width:768px){.footer-inner{grid-template-columns:1fr auto auto;}}
.footer-name{font-weight:800;font-size:1.0625rem;}
.footer-tag{font-size:.875rem;opacity:.75;}
.footer-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;font-size:.875rem;font-weight:700;}
.footer-nav a:hover{text-decoration:underline;}
.footer-copy{font-size:.8125rem;opacity:.7;}
.footer-legal{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;justify-content:space-between;
  margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid rgba(253,251,248,.15);font-size:.8125rem;opacity:.85;}
.footer-secured{display:inline-flex;align-items:center;gap:.4rem;}
.footer-legal-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;}
.footer-legal-nav a:hover{text-decoration:underline;}
.footer-cookie-settings{border:0;background:none;color:inherit;font:inherit;text-decoration:underline;padding:0;}
.footer-credit{margin-top:1rem;font-size:.75rem;opacity:.6;}
.footer-credit a:hover{text-decoration:underline;}

/* ---------------- obsahové podstránky (page.php, novinky) ---------------- */
.page-head{padding-block:2.5rem 1rem;}
.page-body{max-width:48rem;line-height:1.75;}
.page-body h2{margin-top:2rem;font-size:1.5rem;}
.page-body h3{margin-top:1.5rem;font-size:1.1875rem;}
.page-body p,.page-body ul,.page-body ol{margin-top:1rem;}
.page-body ul,.page-body ol{padding-left:1.25rem;}
.page-body a{color:var(--brand);text-decoration:underline;}
