/* Vzhled webu "Letokruhy" - svetly a prehledny. Plus Jakarta Sans + JetBrains Mono (stitky), puvodni
   zelena #005e28 s limetkovou, letokruhy (pricny rez kmenem) jako motiv, oble tvary, puvodni logo,
   kompaktni menu pri posunu nahoru. */
:root {
   --bg: #f4f7f2; --bg-alt: #e8efe3; --surface: #ffffff;
   --ink: #12241a; --ink-2: #566759; --line: #dce5d7; --line-strong: #bccbb6;
   --primary: #005e28; --primary-2: #00461d; --primary-ink: #ffffff;
   --accent: #c4ee5b; --accent-ink: #12241a; --focus: #005e28; --focus-ring: rgba(0, 94, 40, .18);
   --radius: 22px; --radius-sm: 14px; --radius-lg: 32px; --btn-radius: 999px; --input-radius: 14px; --chip-radius: 999px;
   --font-head: "Plus Jakarta Sans", system-ui, sans-serif; --head-weight: 800; --head-tracking: -.03em; --stat-weight: 800;
   --font-body: "Plus Jakarta Sans", system-ui, sans-serif; --font-mono: "JetBrains Mono", ui-monospace, monospace;
   --fs-body: 17px; --star: #e3a500; --eyebrow: var(--primary); --header-h: 88px;
   --mto-bg: #eff8d6; --mto-ink: #2a3a0c; --success-bg: #eff8d6; --success-ink: #1d2c06;
   --shadow: 0 1px 2px rgba(18, 36, 26, .05), 0 16px 40px -18px rgba(18, 36, 26, .22);
   --box-shadow: 0 2px 4px rgba(18, 36, 26, .04), 0 30px 60px -28px rgba(18, 36, 26, .3); --box-border: 0;
   --row-hover: #f6faf3; --toast-bg: #12241a; --strip-bg: var(--surface); --chip-bg: var(--bg-alt);
}
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 16px; top: 16px; z-index: 200; background: #fff; padding: 10px 16px; border-radius: 12px; }
::selection { background: var(--accent); color: var(--accent-ink); }

/* letokruhy - kresba (inc/templates/rings.svg): krouzky se pri nacteni postupne dokresli */
.rings { width: 100%; height: auto; overflow: visible; }
.rings .ring { fill: none; stroke: var(--primary); stroke-width: 1.2; stroke-opacity: .2; }
.rings .ring-late { stroke-width: 2.4; stroke-opacity: .26; }
.rings .ring-bark { stroke-width: 9; stroke-opacity: .12; stroke-linejoin: round; }
.rings .crack { fill: none; stroke: var(--primary); stroke-width: 1.4; stroke-opacity: .18; stroke-linecap: round; }
.rings .pith { fill: var(--primary); fill-opacity: .35; }
.js .rings .ring, .js .rings .crack { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js.is-loaded .rings .ring { animation: ring-draw 2.2s var(--ease-out) forwards; animation-delay: calc(var(--k) * 70ms + .2s); }
.js.is-loaded .rings .crack { animation: ring-draw 1.6s var(--ease-out) 1.4s forwards; }
@keyframes ring-draw { to { stroke-dashoffset: 0; } }
/* vrstevnice jako jemna textura (www/assets/a-topo.svg - maska) */
.calc-band-panel::before, .numbers-panel::before, .cta::before, .page-head::before {
   content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: var(--topo, rgba(0, 94, 40, .07));
   -webkit-mask: url(a-topo.svg) center / 1100px auto repeat; mask: url(a-topo.svg) center / 1100px auto repeat;
}

/* zakladni prvky */
/* nazev sekce: maly letokruh + popisek jako u kontaktu v hlavicce (JetBrains Mono, verzalky) */
.kicker, .eyebrow { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px; font-family: var(--font-mono); font-size: 12.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--primary); }
.kicker::before, .eyebrow::before { content: ""; width: 24px; height: 24px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000'%3E%3Cpath stroke-width='1.6' d='M12.4 2.2c5.6.3 9.6 4.4 9.4 9.9-.2 5.7-4.6 9.8-10.1 9.6C6 21.5 2 17.3 2.3 11.7 2.5 6.1 6.8 1.9 12.4 2.2Z'/%3E%3Cpath stroke-width='1.1' d='M12.2 5.6c3.8.1 6.4 2.9 6.3 6.6-.1 3.8-3 6.4-6.7 6.3-3.6-.1-6.2-3-6.1-6.6.2-3.7 3-6.4 6.5-6.3Z'/%3E%3Cpath stroke-width='1.6' d='M12.1 8.9c1.8 0 3.2 1.4 3.1 3.2 0 1.9-1.4 3.1-3.2 3.1-1.8-.1-3.1-1.4-3-3.2 0-1.8 1.4-3.1 3.1-3.1Z'/%3E%3Ccircle cx='12' cy='12' r='.9' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000'%3E%3Cpath stroke-width='1.6' d='M12.4 2.2c5.6.3 9.6 4.4 9.4 9.9-.2 5.7-4.6 9.8-10.1 9.6C6 21.5 2 17.3 2.3 11.7 2.5 6.1 6.8 1.9 12.4 2.2Z'/%3E%3Cpath stroke-width='1.1' d='M12.2 5.6c3.8.1 6.4 2.9 6.3 6.6-.1 3.8-3 6.4-6.7 6.3-3.6-.1-6.2-3-6.1-6.6.2-3.7 3-6.4 6.5-6.3Z'/%3E%3Cpath stroke-width='1.6' d='M12.1 8.9c1.8 0 3.2 1.4 3.1 3.2 0 1.9-1.4 3.1-3.2 3.1-1.8-.1-3.1-1.4-3-3.2 0-1.8 1.4-3.1 3.1-3.1Z'/%3E%3Ccircle cx='12' cy='12' r='.9' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat; }
.kicker::after, .eyebrow::after { content: ""; width: 40px; height: 1px; background: currentColor; opacity: .35; }
/* pri objeveni sekce se letokruh roztoci a linka dokresli */
.kicker::before, .eyebrow::before { transition: transform 1.4s var(--ease-out) .15s, opacity .8s .15s; }
.kicker::after, .eyebrow::after { transform-origin: left; transition: transform 1.2s var(--ease-out) .35s; }
.js [data-reveal]:not(.is-in) .kicker::before, .js [data-reveal]:not(.is-in) .eyebrow::before, .js .kicker[data-reveal]:not(.is-in)::before { transform: rotate(-120deg) scale(.5); opacity: 0; }
.js [data-reveal]:not(.is-in) .kicker::after, .js [data-reveal]:not(.is-in) .eyebrow::after, .js .kicker[data-reveal]:not(.is-in)::after { transform: scaleX(0); }
.kicker-light { color: #fff; }
.kicker-light::after { opacity: .5; }
.section-title { letter-spacing: -.035em; }
.btn { font-weight: 700; padding-left: 24px; padding-right: 24px; }
.btn .ico-arrow { transition: transform .3s var(--ease-out); }
.btn:hover .ico-arrow { transform: translateX(4px); }
.btn-primary:hover { background: var(--primary-2); }
.btn-ghost { background: var(--surface); border-color: var(--line-strong); }
.btn-ghost:hover { border-color: var(--primary); color: var(--primary); }
.link-arrow { display: inline-flex; align-items: center; gap: 8px; color: var(--primary); font-weight: 700; text-decoration: none; padding: 8px 16px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--line); transition: .25s; }
.link-arrow:hover { box-shadow: 0 0 0 1.5px var(--primary); }
.section-head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; max-width: none; }

/* ---------- hlavicka: logo, menu a kontakty v jedne liste ---------- */
.site-header { position: sticky; top: 0; z-index: 70; transition: transform .45s var(--ease-out), box-shadow .3s; }   /* vzhled listy: blok "hlavicka: sklenena lista" nize */
.site-header.is-hidden { transform: translateY(-100%); }
.site-header .wrap { max-width: 1440px; padding-left: clamp(16px, 2.4vw, 40px); padding-right: clamp(16px, 2.4vw, 40px); }
.header-inner { display: flex; align-items: center; gap: 14px; min-height: 88px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.logo { display: block; width: auto; height: 56px; }
.nav { display: flex; gap: 2px; margin-left: auto; }
.nav { gap: 0; }
.nav a { position: relative; display: inline-flex; align-items: center; gap: 5px; padding: 10px 14px; border-radius: 12px; text-decoration: none; font-weight: 600; font-size: 14.5px; white-space: nowrap; color: var(--ink); transition: background .2s, color .2s; }
.nav a:hover { color: var(--primary); }
/* vybrana polozka: podtrzeni limetkovou linkou, ktera se pri najeti/nacteni roztahne */
.nav a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 3px; border-radius: 3px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease-out); }
.nav a[aria-current] { color: var(--primary); }
.nav a:hover::after, .nav a[aria-current]::after { transform: scaleX(1); }
.nav a[aria-current]::after { box-shadow: 0 0 0 1px rgba(0, 94, 40, .08); }
/* kontakty: stitky a cisla zarovnane pod sebou */
.header-contacts { display: grid; grid-template-columns: auto auto; column-gap: 22px; row-gap: 3px; align-items: baseline; padding-left: 18px; margin-left: 12px; border-left: 1px solid var(--line-strong); }
.hc { display: contents; text-decoration: none; color: var(--ink); }
.hc-label { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); white-space: nowrap; }
.hc-num { font-weight: 800; font-size: 17px; letter-spacing: -.01em; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink); text-align: right; }
.hc:hover .hc-num { color: var(--primary); }
.cart-link { border-radius: 50%; background: var(--bg-alt); }
.cart-link:hover { background: var(--line); }
.cart-link:not([hidden]) { animation: cart-in .6s var(--ease-out); }
@keyframes cart-in { from { transform: scale(.4); opacity: 0; } }
.header-actions { display: flex; align-items: center; gap: 8px; margin-left: 16px; }
.cart-link { border-radius: 50%; background: var(--bg-alt); }
.cart-link:hover { background: var(--line); }
.burger { display: none; position: relative; width: 46px; height: 46px; border-radius: 50%; background: var(--bg-alt); }
.burger span { position: absolute; left: 14px; right: 14px; height: 2px; border-radius: 2px; background: var(--ink); transition: .3s var(--ease-out); }
.burger span:nth-child(1) { top: 16px; } .burger span:nth-child(2) { top: 22px; } .burger span:nth-child(3) { top: 28px; }
.menu-open .burger span:nth-child(1) { top: 22px; transform: rotate(45deg); }
.menu-open .burger span:nth-child(2) { opacity: 0; }
.menu-open .burger span:nth-child(3) { top: 22px; transform: rotate(-45deg); }

.mnav { display: none; }

/* ---------- uvod: cinnosti ---------- */
.intro { position: relative; overflow: hidden; padding: clamp(48px, 6vw, 88px) 0 clamp(56px, 6vw, 88px); }
.intro-rings { position: absolute; right: -120px; top: -70px; width: min(720px, 62vw); z-index: 0; pointer-events: none; }
.intro .wrap { position: relative; z-index: 1; }
.intro-head { max-width: 760px; margin-bottom: clamp(36px, 4vw, 56px); }
.intro-title { font-weight: 800; font-size: clamp(38px, 5.4vw, 72px); line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; }
.intro-lead p + p { margin-top: 12px; }
.intro-lead { margin-top: 20px; font-size: clamp(17px, 1.5vw, 20px); color: var(--ink-2); max-width: 56ch; }

/* ---------- uvod: vykup lesa ---------- */
.buy { padding: clamp(24px, 3vw, 40px) 0; }
.buy-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding: clamp(24px, 4vw, 56px); border-radius: 40px; background: var(--surface); box-shadow: var(--shadow); }
.buy-title { font-weight: 800; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; }
.buy-lead { margin-top: 20px; font-size: clamp(17px, 1.4vw, 19px); color: var(--ink-2); max-width: 52ch; }
.buy-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.buy-map { position: relative; aspect-ratio: 5 / 5; border-radius: 30px; overflow: hidden; background: var(--bg-alt); }
.buy-map img { width: 100%; height: 100%; object-fit: cover; }
.parcel { position: absolute; inset: 0; width: 100%; height: 100%; }
.parcel-shape { fill: rgba(196, 238, 91, .22); stroke: var(--accent); stroke-width: 2.5; vector-effect: non-scaling-stroke; stroke-dasharray: 10 6; stroke-linejoin: round; animation: ants 18s linear infinite; }
@keyframes ants { to { stroke-dashoffset: -320; } }
.parcel-pts circle { fill: #fff; stroke: var(--primary); stroke-width: 2; vector-effect: non-scaling-stroke; }
.parcel-card { position: absolute; left: 18px; bottom: 18px; z-index: 3; width: min(300px, calc(100% - 36px)); padding: 18px 20px; border-radius: 22px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); box-shadow: var(--box-shadow); }
.pc-label { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--accent); color: var(--primary); font-size: 12px; font-weight: 800; }
.parcel-card strong { display: block; margin: 8px 0 12px; font-size: 17px; line-height: 1.25; letter-spacing: -.02em; }
.parcel-card dl { display: grid; gap: 6px; font-size: 14px; }
.parcel-card dl div { display: flex; justify-content: space-between; gap: 12px; padding-top: 6px; border-top: 1px dashed var(--line); }
.parcel-card dt { color: var(--ink-2); }
.parcel-card dd { font-weight: 700; }

.numbers { padding: clamp(24px, 3vw, 40px) 0; }
.numbers-panel { position: relative; overflow: hidden; padding: clamp(28px, 4vw, 48px); border-radius: 36px; background: var(--surface); box-shadow: var(--shadow); }
.numbers-panel .stats { position: relative; z-index: 1; }
.stats .stat { padding: 4px 24px; border-left: 2px solid var(--bg-alt); }
.stats .stat:first-child { border-left: 0; padding-left: 0; }
.stat-value { color: var(--primary); letter-spacing: -.05em; font-size: clamp(34px, 4vw, 58px); }
.stat-unit { color: var(--ink); }
.stat-label { font-weight: 600; }

.promise-ico { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--primary); color: var(--accent); flex: none; }
.promise-ico .ico { width: 32px; height: 32px; }

.calc-band { padding: clamp(24px, 3vw, 40px) 0; }
.calc-band-panel { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding: clamp(28px, 5vw, 64px); border-radius: 40px; background: var(--primary); color: #fff; isolation: isolate; }
.calc-band-panel::before { --topo: rgba(255, 255, 255, .07); }
.calc-band-rings { position: absolute; left: -200px; bottom: -260px; width: 620px; z-index: -1; opacity: .9; }
.calc-band-rings .ring, .calc-band-rings .crack { stroke: #fff; stroke-opacity: .14; }
.calc-band-rings .pith { fill: #fff; fill-opacity: .25; }
.calc-band .section-lead { color: rgba(255, 255, 255, .85); }
.calc-band-form { position: relative; padding: 28px; border-radius: 28px; background: var(--surface); color: var(--ink); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .5); }
.calc-band-note { display: flex; gap: 8px; align-items: center; margin-top: 14px; font-size: 14px; color: var(--ink-2); }

/* postup - letokruhove znacky */
.steps { gap: 18px; }
.step { border: 0; box-shadow: var(--shadow); border-radius: 28px; padding: 28px 26px 26px; overflow: hidden; }
/* letokruhy v rohu karty kroku - dokresli se, kdyz se karta objevi */
.step { isolation: isolate; }
.step > *:not(.step-rings) { position: relative; }
.step-rings { position: absolute; z-index: -1; right: -78px; top: -84px; width: 190px; transform: rotate(var(--rot, 0deg)); transition: transform 1.2s var(--ease-out); }
.step:hover .step-rings { transform: rotate(calc(var(--rot, 0deg) + 25deg)) scale(1.06); }
.step-rings .ring { stroke-opacity: .2; }
.step-rings .ring-late { stroke-opacity: .3; }
.js.is-loaded .step-rings .ring { animation: none; }
.js .step.is-in .step-rings .ring { animation: ring-draw 1.8s var(--ease-out) forwards; animation-delay: calc(var(--d, 0s) + var(--k) * 90ms + .2s); }
.step-no { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--accent); color: var(--primary); font-family: var(--font-head); font-weight: 800; font-size: 15px; margin-bottom: 18px; box-shadow: 0 0 0 6px rgba(196, 238, 91, .3); }
.step-title { font-size: 20px; letter-spacing: -.025em; }

.about-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.about-img { aspect-ratio: 4 / 4.4; border-radius: 36px; overflow: hidden; }
.about-img img { width: 100%; height: 100%; object-fit: cover; }
.about-copy .prose { margin-top: 20px; color: var(--ink-2); font-size: 17.5px; }
.about-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.reviews-home-grid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 20px; align-items: start; }
.reviews-home-grid .reviews-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.review, .rating-summary, .contact, .key-fact, .chart, .trailer { border: 0; box-shadow: var(--shadow); border-radius: 26px; }
.rating-modal .rating-summary { padding: 20px 22px 16px; border-radius: 20px; }   /* v okne hodnoceni: box se stinem potrebuje odsazeni od okraju */
.review-avatar { background: var(--accent); color: var(--primary); }

.faq { --faq-gap: 10px; }
.faq-item { border: 0; border-radius: 20px; background: var(--surface); padding: 0 24px; box-shadow: 0 1px 2px rgba(18, 36, 26, .05); }
.faq-item summary { font-size: 18px; }
.faq-toggle { border: 0; background: var(--bg-alt); }
.faq-item[open] .faq-toggle { background: var(--accent); color: var(--primary); }

.cta { position: relative; isolation: isolate; overflow: hidden; margin: clamp(24px, 3vw, 40px) auto clamp(48px, 6vw, 80px); max-width: calc(var(--maxw) - 2 * var(--gut)); border-radius: 40px; background: var(--bg-alt); }
.cta-inner { position: relative; z-index: 1; }

/* ---------- podstranky ---------- */
.page-head { isolation: isolate; overflow: hidden; }
.page-head > * { position: relative; z-index: 1; }
.page-head.has-image { padding: clamp(24px, 3vw, 40px) var(--gut) 0; gap: clamp(24px, 4vw, 56px); max-width: calc(var(--maxw)); margin: 0 auto; }
.page-head.has-image .page-head-inner { padding: 24px 0; }
.page-head-img { border-radius: 36px; min-height: 380px; }
.crumbs { font-weight: 600; }
.crumbs a { color: var(--primary); }
.page-title { letter-spacing: -.045em; }
.calc-section { background: transparent; }
.calc-box { border-radius: 32px; }
.benefit { border-radius: 22px; background: var(--surface); box-shadow: var(--shadow); }
.benefit-ico { border-radius: 14px; background: var(--accent); color: var(--primary); }
.form-step { background: var(--accent); color: var(--primary); font-weight: 800; }
.cat-img { border-radius: 26px; }
.cat-badge { padding: 6px 12px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.ptable { border-top: 0; padding: 6px 22px; border-radius: 26px; background: var(--surface); box-shadow: var(--shadow); }
.prow:last-child { border-bottom: 0; }
.trailers-section { background: transparent; }
.ship-ico { border-radius: 14px; background: var(--accent); }
.made-to-order { border-radius: 18px; }
.option { border-radius: 18px; }
.summary { border-radius: 28px; border: 0; box-shadow: var(--shadow); }
.key-fact strong { color: var(--primary); }
.chart-col.is-peak .chart-bar { background: var(--accent); }
.chart-bar { border-radius: 10px 10px 4px 4px; }
.promise { --promise-bg: var(--accent); --promise-ink: var(--accent-ink); }
.promise-inner { justify-content: center; text-align: center; }

/* ---------- paticka (svetla) ---------- */
/* paticka: lesni zelena, barvy v promennych --f-*; nahore tenka linka v barve --f-edge, ke krajum se ztraci */
.site-footer { --f-bg: var(--primary); --f-ink: #fff; --f-ink-2: rgba(255, 255, 255, .74); --f-hover: var(--accent); --f-line: rgba(255, 255, 255, .18); --f-ring: #fff; --f-hl: var(--accent); --f-hl-ink: var(--primary); --f-edge: var(--line-strong);
   position: relative; overflow: hidden; isolation: isolate; background: var(--f-bg); color: var(--f-ink-2); color-scheme: dark; padding: clamp(56px, 7vw, 88px) 0 28px; font-size: 15px; }
.site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, rgba(188, 203, 182, 0), var(--f-edge) 30% 70%, rgba(188, 203, 182, 0)); pointer-events: none; }
.site-footer .logo { height: 56px; }
.site-footer .logo-dark { display: none; }
.site-footer .company, .site-footer .company strong { color: inherit; }
.footer-rings { position: absolute; right: 0; bottom: 0; width: 480px; height: 399px; overflow: hidden; z-index: -1; opacity: .8; pointer-events: none; }
.footer-rings .rings { position: absolute; left: 0; top: 0; width: 640px; max-width: none; }
.site-footer .rings .ring, .site-footer .rings .crack { stroke: var(--f-ring); }
.site-footer .rings .pith { fill: var(--f-ring); }
.site-footer a { color: var(--f-ink); text-decoration: none; }
.site-footer a:hover { color: var(--f-hover); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: 40px; }
.footer-brand .company { margin-top: 18px; }
.company strong { color: var(--ink); }
.footer-col { display: flex; flex-direction: column; gap: 10px; }
.footer-title { font-weight: 800; color: var(--f-ink); margin-bottom: 4px; }
.footer-hl { align-self: flex-start; padding: 5px 14px; margin-left: -14px; border-radius: 999px; background: var(--f-hl); color: var(--f-hl-ink) !important; font-weight: 700; }
.footer-contacts p { line-height: 1.55; }
.footer-contacts strong { color: var(--f-ink); }
.footer-role { font-size: 14px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; margin-top: 48px; padding-top: 22px; font-size: 13px; }
.credits { max-width: 820px; text-align: right; }
.credits a { text-decoration: underline !important; color: var(--f-ink-2) !important; }

/* ---------- mensi obrazovky ---------- */
@media (max-width: 1365px) {
   .nav a { padding: 10px 10px; font-size: 14px; }
   .nav a::after { left: 10px; right: 10px; }
   .hc-label { font-size: 10px; letter-spacing: .06em; }
   .hc-num { font-size: 15px; }
   .header-contacts { margin-left: 8px; padding-left: 12px; column-gap: 16px; }
   .header-inner { gap: 10px; }
   .logo { height: 50px; }
}
@media (max-width: 1199px) {
   .site-header .nav, .site-header .header-contacts { display: none; }
   .logo { height: 56px; }
   .header-inner { justify-content: space-between; min-height: 76px; }
   .header-actions { margin-left: auto; }
   .burger { display: inline-block; }
   .mnav { position: fixed; inset: 0; z-index: 80; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; padding: 100px var(--gut) 28px; background: var(--bg); opacity: 0; visibility: hidden; transform: scale(1.03); transition: opacity .35s, visibility .35s, transform .45s var(--ease-out); overflow-y: auto; }
   .menu-open .mnav { opacity: 1; visibility: visible; transform: none; }
   .menu-open .site-header { z-index: 90; }
   .mnav nav { display: flex; flex-direction: column; gap: 8px; }
   .mnav nav a { display: flex; justify-content: space-between; align-items: center; padding: 18px 22px; border-radius: 22px; background: var(--surface); text-decoration: none; font-weight: 800; font-size: 20px; letter-spacing: -.03em; box-shadow: var(--shadow); }
   .mnav nav a .ico { color: var(--primary); }
   .mnav-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
   .mnav-contact .hc { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 0; padding: 16px 18px; border: 0; border-radius: 22px; background: var(--surface); box-shadow: var(--shadow); }
   .mnav-item { display: inline-flex; align-items: center; gap: 12px; }
   .mnav-item .nav-ico { width: 24px; height: 24px; }
   .mnav nav a[aria-current] { box-shadow: inset 4px 0 0 var(--accent), var(--shadow); }
   .mnav-contact .hc-num { font-size: 20px; }
   .buy-panel, .calc-band-panel, .about-grid, .reviews-home-grid { grid-template-columns: 1fr; }
   .reviews-home-grid .reviews-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
   .buy-map { aspect-ratio: 4 / 3; }
   .stats .stat:nth-child(3) { border-left: 0; padding-left: 0; }
   .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
   .logo { height: 42px; }
   .intro-rings { width: 120vw; right: -40vw; top: -40px; opacity: .6; }
   .stats .stat { border-left: 0 !important; padding: 0 !important; }
      .parcel-card dl { display: none; }
   .section-head-row { flex-direction: column; align-items: flex-start; }
   .footer-grid { grid-template-columns: 1fr; }
   .footer-bottom { flex-direction: column; }
   .credits { text-align: left; }
   .mnav-contact { grid-template-columns: 1fr; }
   .page-head-img { min-height: 0; border-radius: 26px; }
   .buy-panel, .calc-band-panel { border-radius: 30px; }
}
.calc-band-form .calc-teaser { grid-template-columns: 1fr 1fr; }
.calc-band-form .calc-teaser .btn { grid-column: 1 / -1; }

/* ---------- online kalkulacka ceny lesa (stranka Vykup lesa) ---------- */
.calc-head { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 64px); align-items: end; margin-bottom: clamp(28px, 3vw, 40px); }
.calc-intro { color: var(--ink-2); }
.calc-section .calc-box, .calc-page .calc-box { padding: 0; overflow: hidden; border-radius: 36px; background: var(--surface); box-shadow: var(--box-shadow); }
.calc-section .benefits { margin-top: 24px; }
.calc-form { position: relative; }
.calc { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .9fr); }
.calc-inputs { padding: clamp(24px, 3.4vw, 44px); }
.calc-display { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3vw, 40px); background: var(--primary); color: #fff; }
.cd-rings { position: absolute; right: -160px; bottom: -190px; width: 460px; z-index: -1; }
.cd-rings .ring, .cd-rings .crack { stroke: #fff; stroke-opacity: .13; }
.cd-rings .pith { fill: #fff; fill-opacity: .2; }
.cd-title { display: flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.cd-title .ico { width: 22px; height: 22px; }
.cd-rows { display: flex; flex-direction: column; margin: 0; }
.cd-rows div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px dashed rgba(255, 255, 255, .25); }
.cd-rows dt { font-size: 14px; color: rgba(255, 255, 255, .75); }
.cd-rows dd { font-weight: 800; font-size: 18px; text-align: right; overflow-wrap: anywhere; }
.cd-rows dd.flash { animation: cd-flash .6s var(--ease-out); }
@keyframes cd-flash { from { color: var(--accent); transform: translateY(-4px); } }
.cd-meter { height: 8px; margin-top: 6px; border-radius: 4px; background: rgba(255, 255, 255, .18); overflow: hidden; }
.cd-meter span { display: block; width: 0; height: 100%; border-radius: 4px; background: var(--accent); transition: width .7s var(--ease-out); }
.cd-meter-label { font-size: 13.5px; color: rgba(255, 255, 255, .8); }
.calc-display .check { color: rgba(255, 255, 255, .85); margin-top: auto; }
.calc-display .check a { color: #fff; }
.calc-display .check input { accent-color: var(--accent); }
.calc-display .field-error { color: #ffd0c8; }
.cd-submit { background: var(--accent); color: var(--accent-ink); box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .5); }
.cd-submit:hover { background: #d4f57c; }
.cd-note { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13.5px; color: rgba(255, 255, 255, .8); }
.cd-note .ico { width: 16px; height: 16px; }
.share-picker { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.share { min-height: 38px; padding: 6px 14px; border-radius: 999px; border: 1.5px solid var(--line-strong); font-size: 14px; font-weight: 600; transition: .2s; }
.share:hover { border-color: var(--primary); }
.share.is-on { background: var(--primary); border-color: var(--primary); color: #fff; }
/* zpracovani po odeslani */
.calc-processing { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(4px); opacity: 0; visibility: hidden; transition: opacity .4s, visibility .4s; }
.calc-form.is-processing .calc-processing { opacity: 1; visibility: visible; }
.cp-rings { width: 150px; }
.cp-rings .ring { stroke-opacity: .5; }
.calc-form.is-processing .cp-rings .ring, .calc-form.is-processing .cp-rings .crack { animation: ring-loop 1.7s var(--ease-out) infinite; animation-delay: calc(var(--k, 8) * 45ms); }
@keyframes ring-loop { 0% { stroke-dashoffset: 1; } 55% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -1; } }
.calc-processing p { font-weight: 700; font-size: 18px; color: var(--primary); }
.calc-form .form-success { margin: clamp(24px, 4vw, 48px); padding: clamp(24px, 4vw, 48px); border-radius: 28px; flex-direction: column; align-items: center; text-align: center; gap: 14px; background: var(--success-bg); animation: modal-in .7s var(--ease-out); }
.calc-form .form-success-ico { width: 64px; height: 64px; }
.calc-form .form-success-text { font-size: clamp(19px, 2vw, 24px); font-weight: 800; letter-spacing: -.02em; max-width: 34ch; }
.form-success-sum { font-family: var(--font-mono); font-size: 13px; letter-spacing: .04em; color: var(--ink-2); }
.calc-form .form-error { margin: 24px 24px 0; }
@media (max-width: 1000px) {
   .calc, .calc-head { grid-template-columns: 1fr; }
}

/* sekce vykupu: mezera nad radou vyhod */
.buy-panel { row-gap: clamp(24px, 3vw, 36px); }
/* statistiky lesu na uvodu (kratce + odkaz) */
.ff-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(28px, 4vw, 52px); border-radius: 36px; background: var(--surface); box-shadow: var(--shadow); }
.ff-copy .btn { margin-top: 24px; }
.ff-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; }
.ff-facts div { padding: 20px; border-radius: 22px; background: var(--bg); }
.ff-facts dt { font-weight: 800; font-size: clamp(22px, 2.2vw, 30px); letter-spacing: -.03em; color: var(--primary); line-height: 1.1; }
.ff-facts dd { margin-top: 6px; font-size: 14.5px; color: var(--ink-2); }
@media (max-width: 1000px) { .ff-panel { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .ff-facts { grid-template-columns: 1fr; } }

/* ---------- eshop: hlavicka stranky, jak objednat, prepinac kategorii, jednotky ---------- */
.page-extra { margin-top: 16px; color: var(--ink-2); max-width: 58ch; }
.page-extra p { font-size: clamp(18px, 1.6vw, 21px); }
.page-extra p + p { margin-top: 14px; }
.order-ways { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 24px; }
.ow { display: flex; align-items: center; gap: 12px; padding: 12px 16px 12px 12px; border-radius: 20px; background: var(--surface); box-shadow: 0 0 0 1px var(--line); text-decoration: none; color: var(--ink); transition: box-shadow .25s, transform .25s var(--ease-out); }
.ow:hover { box-shadow: 0 0 0 1.5px var(--primary); transform: translateY(-2px); }
.ow > .ico { width: 42px; height: 42px; padding: 10px; flex: none; border-radius: 50%; background: var(--primary); color: #fff; }
.ow + .ow > .ico { background: var(--accent); color: var(--primary); }
.ow span { display: flex; flex-direction: column; line-height: 1.2; }
.ow small { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.ow strong { font-size: 17px; }
.page-extra .order-note { margin-top: 12px; font-size: 15px; }
@media (max-width: 480px) { .order-ways { grid-template-columns: 1fr; } }
.order-phone { display: inline-flex; align-items: center; gap: 4px 10px; flex-wrap: wrap; padding: 10px 18px 10px 10px; border-radius: 26px; background: var(--surface); box-shadow: 0 0 0 1px var(--line); color: var(--ink); }
.order-phone .ico { width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--primary); color: #fff; }
.order-phone span { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.order-phone a { font-weight: 800; font-size: 19px; text-decoration: none; }
.order-phone a:hover { color: var(--primary); }
.order-howto { padding-top: clamp(16px, 2vw, 24px); }
.howto { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; counter-reset: h; }
.howto-step { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px; border-radius: 24px; background: var(--surface); box-shadow: var(--shadow); }
.howto-step strong { font-size: 18px; letter-spacing: -.02em; }
.howto-step span:last-child { color: var(--ink-2); font-size: 15px; }
.howto-no { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 8px; border-radius: 50%; background: var(--accent); color: var(--primary); font-weight: 800; }
.howto-step:not(:last-child)::after { content: ""; position: absolute; top: 41px; right: -14px; width: 14px; height: 2px; background: var(--accent); }
.catalog-section { padding-top: clamp(24px, 3vw, 40px); }
.has-tabs .cat + .cat { margin-top: 0; }
.cat.cat-enter { animation: cat-in .6s var(--ease-out); }
@keyframes cat-in { from { opacity: 0; transform: translateY(16px); } }
.p-kind { display: block; margin: 1px 0 2px; font-size: 12px; font-weight: 400; line-height: 1.3; color: #85928a; }
.unit-tip { position: relative; display: inline-block; cursor: help; border-bottom: 1px dashed var(--line-strong); }
.unit-tip[data-tip]::after { content: attr(data-tip); position: absolute; left: 50%; bottom: calc(100% + 10px); z-index: 20; width: max-content; max-width: 240px; padding: 9px 12px; border-radius: 12px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 500; line-height: 1.35; white-space: normal; text-align: left; box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translate(-50%, 6px); transition: opacity .25s, transform .25s var(--ease-out), visibility .25s; pointer-events: none; }
.unit-tip[data-tip]:hover::after, .unit-tip[data-tip]:focus::after { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.units-help { list-style: none; padding: 16px 4px 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: var(--ink-2); }
.units-help strong { color: var(--ink); }
@media (max-width: 1000px) {
   .howto { grid-template-columns: 1fr 1fr; }
   .howto-step::after { display: none; }
}
@media (max-width: 640px) {
   .howto { grid-template-columns: 1fr; }
   .cat-img { aspect-ratio: 2 / 1; }
}

/* ---------- prepinac kategorii v ceniku: zalozky - vybrana splyva s bilou kartou ceniku pod ni ---------- */
.cat-tabs { display: none; position: relative; margin-bottom: 28px; }
.has-tabs .cat-tabs { display: flex; }
.cat-tab { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; text-align: left; color: var(--ink); transition: color .35s, background .35s, box-shadow .35s, transform .35s var(--ease-out), opacity .35s; }
.ct-ico { display: grid; place-items: center; flex: none; color: var(--primary); }
.ct-ico .ico { width: 24px; height: 24px; }
.ct-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ct-name { font-weight: 800; font-size: 17px; letter-spacing: -.02em; line-height: 1.2; }
.ct-meta { font-size: 13px; color: var(--ink-2); font-weight: 500; }

.cat-tabs { gap: 6px; margin-bottom: 0; padding-left: 0; }
.cat-tab { padding: 16px 24px 18px; border-radius: 22px 22px 0 0; background: var(--bg-alt); }
.cat-tab:hover { background: var(--line); }
.cat-tab[aria-selected="true"] { background: var(--surface); box-shadow: 0 -10px 24px -16px rgba(18, 36, 26, .35); }
.cat-tab[aria-selected="true"] .ct-name { color: var(--primary); }
.cat-tab[aria-selected="true"]::after { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: var(--accent); }
.has-tabs .cat { padding: clamp(20px, 3vw, 36px); border-radius: 0 30px 30px 30px; background: var(--surface); box-shadow: var(--shadow); }
.cat-tab[aria-selected="true"] { box-shadow: -6px -10px 24px -16px rgba(18, 36, 26, .35); }
.has-tabs .ptable { box-shadow: none; padding: 0; border-radius: 0; }

@media (max-width: 760px) {
   .cat-tabs { gap: 4px; }
   .cat-tab { flex: 1; flex-direction: column; text-align: center; gap: 4px; padding: 12px 6px; }
   .ct-name { font-size: 13.5px; }
   .ct-meta { display: none; }
}

/* ---------- oddelovac polozek menu: jemna svisla linka ---------- */
.nav a + a::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 20px; margin-top: -10px; background: var(--line-strong); pointer-events: none; }

/* vyhody vykupu pod sekci (vyplata z vlastnich zdroju jako jedna z nich) */
.buy-panel { row-gap: clamp(24px, 3vw, 36px); }
.buy-benefits { grid-column: 1 / -1; list-style: none; padding: clamp(20px, 2.4vw, 28px) 0 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; border-top: 1px solid var(--line); }
.buy-benefits li { display: flex; flex-direction: column; gap: 4px; }
.buy-benefits strong { font-size: 16.5px; letter-spacing: -.02em; }
.buy-benefits span:last-child { font-size: 14px; color: var(--ink-2); }
.bb-ico { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 6px; border-radius: 12px; background: var(--bg-alt); color: var(--primary); }
.bb-ico .ico { width: 21px; height: 21px; }
@media (max-width: 900px) { .buy-benefits { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .buy-benefits { grid-template-columns: 1fr; } }
.vykup-benefits { padding: clamp(28px, 3.5vw, 48px) 0 0; }
/* box vyhod vykupu (stranka Vykup lesa, v uvodnim bloku jako dlazdice na uvodu): vrstevnice a letokruhy */
.vb-panel { position: relative; overflow: hidden; isolation: isolate; padding: clamp(22px, 2.8vw, 36px); border-radius: 32px; background: var(--surface); box-shadow: var(--shadow); }
.vb-panel::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: rgba(0, 94, 40, .07);
   -webkit-mask: url(a-topo.svg) 20% 30% / 900px auto repeat; mask: url(a-topo.svg) 20% 30% / 900px auto repeat; }
.vb-rings { position: absolute; z-index: -1; right: -150px; top: 50%; width: 420px; transform: translateY(-50%); opacity: .55; pointer-events: none; }
.vb-panel .buy-benefits { padding-top: 0; border-top: 0; }

/* zahlavi podstranky s letokruhy misto fotky (jako uvod): <header class="page-head page-head-rings">
   <div class="intro-rings" aria-hidden="true">{{ letokruhy() }}</div> ... */
.page-head > .intro-rings { position: absolute; z-index: 0; }
.page-head-rings { padding-bottom: clamp(48px, 6vw, 88px); }
.page-head-rings > .intro-rings { width: min(440px, 40vw); top: 14px; right: -60px; }
@media (max-width: 640px) { .page-head-rings > .intro-rings { width: 110vw; right: -45vw; top: 10px; opacity: .55; } }

/* ---------- dlazdice cinnosti na uvodu: syte barevne karty, kazda v jine barve z palety webu (les, med, dub, limetka).
   Barvy karty jsou v promennych --solid-* (--solid-edge = jemny ramecek), textura = vrstevnice (a-topo.svg). Uprostred dole minimalisticka kresba
   cinnosti (pri objeveni karty se dokresli), vpravo dole sipka v kolecku; pri najeti se karta vysune. */
.svc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.svc { --solid: var(--primary); --solid-ink: #fff; --solid-text: rgba(255, 255, 255, .86); --solid-line: var(--accent);
   --solid-arrow: var(--primary); --solid-edge: rgba(255, 255, 255, .24); --solid-glow: rgba(0, 94, 40, .6); --solid-tex: rgba(255, 255, 255, .07);
   position: relative; display: flex; flex-direction: column; gap: 12px; padding: 26px 24px 164px; border-radius: 26px; text-decoration: none;
   background: var(--solid); color: var(--solid-ink); box-shadow: inset 0 0 0 1.5px var(--solid-edge), 0 28px 46px -22px var(--solid-glow); overflow: hidden; isolation: isolate; }
.svc:nth-child(2) { --solid: #e8b345; --solid-ink: #2b1a07; --solid-text: rgba(43, 26, 7, .8); --solid-line: #5b380d;
   --solid-arrow: #2b1a07; --solid-edge: rgba(91, 56, 13, .3); --solid-glow: rgba(176, 116, 12, .55); --solid-tex: rgba(91, 56, 13, .09); }
.svc:nth-child(3) { --solid: #774a27; --solid-text: rgba(255, 255, 255, .84); --solid-line: #f2c57d;
   --solid-arrow: #5b3719; --solid-edge: rgba(242, 197, 125, .32); --solid-glow: rgba(96, 56, 22, .6); --solid-tex: rgba(255, 255, 255, .06); }
.svc:nth-child(4) { --solid: var(--accent); --solid-ink: var(--ink); --solid-text: rgba(18, 36, 26, .78); --solid-line: var(--primary);
   --solid-edge: rgba(0, 94, 40, .26); --solid-glow: rgba(104, 150, 16, .55); --solid-tex: rgba(0, 94, 40, .08); }
.svc::before { content: ""; position: absolute; inset: 0; z-index: -2; border-radius: inherit; background: var(--solid-tex); -webkit-mask: url(a-topo.svg) center / 900px auto repeat; mask: url(a-topo.svg) center / 900px auto repeat; }
.svc:nth-child(2)::before { -webkit-mask-position: -300px 30%; mask-position: -300px 30%; }
.svc:nth-child(3)::before { -webkit-mask-position: -620px 70%; mask-position: -620px 70%; }
.svc:nth-child(4)::before { -webkit-mask-position: -140px 90%; mask-position: -140px 90%; }
/* vysunuti pri najeti pres vlastnost translate - transform patri animaci objeveni (data-reveal, se zpozdenim --d) */
.svc-grid .svc { transition: opacity .9s var(--ease-out) var(--d, 0s), transform 1s var(--ease-out) var(--d, 0s), translate .5s var(--ease-out), box-shadow .5s var(--ease-out); }
.svc:hover { translate: 0 -8px; box-shadow: inset 0 0 0 1.5px var(--solid-edge), 0 38px 58px -22px var(--solid-glow); }
.svc-body { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
/* nadpis, popis a poznamka v radcich sdilenych celou radou karet - zalomeny nadpis posune popis na vsech kartach stejne */
@supports (grid-template-rows: subgrid) {
   .svc { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
   .svc-body { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 5px; align-content: start; }
}
.svc-title { font-weight: 800; font-size: 20px; line-height: 1.15; letter-spacing: -.03em; margin-bottom: 7px; }
/* pri najeti se nadpis postupne podtrhne (zleva doprava, i pres dva radky) */
.svc-title > span { padding-bottom: 3px; background: linear-gradient(var(--solid-line), var(--solid-line)) 0 100% / 0 2px no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background-size .55s var(--ease-out); }
.svc:hover .svc-title > span { background-size: 100% 2px; }
.svc-text { color: var(--solid-text); font-size: 14.5px; line-height: 1.45; }
.svc-note { display: flex; align-items: flex-start; gap: 6px; margin-top: 2px; color: var(--solid-line); font-size: 12.5px; font-weight: 600; line-height: 1.35; }
.svc-note .ico { width: 15px; height: 15px; margin-top: 1px; flex: none; }
.svc-go { position: absolute; right: 20px; bottom: 20px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--solid-arrow);
   /* sklenene kolecko: svetly odlesk nahore, jemny stin dole, polopruhledny lem a stin pod koleckem */
   background: radial-gradient(circle at 32% 26%, #fff 0 38%, #eef1ea 100%);
   box-shadow: inset 0 1.5px 0 #fff, inset 0 -3px 6px rgba(18, 36, 26, .1), 0 0 0 4px rgba(255, 255, 255, .26), 0 8px 16px -6px rgba(0, 0, 0, .45);
   transition: box-shadow .35s ease; }
.svc-go::after { content: ""; position: absolute; left: 22%; right: 22%; top: 6%; height: 32%; border-radius: 50%; background: linear-gradient(rgba(255, 255, 255, .95), rgba(255, 255, 255, 0)); pointer-events: none; }
.svc:hover .svc-go { box-shadow: inset 0 1.5px 0 #fff, inset 0 -3px 6px rgba(18, 36, 26, .1), 0 0 0 4px rgba(255, 255, 255, 0), 0 8px 16px -6px rgba(0, 0, 0, .45); }
.svc-go .ico { width: 20px; height: 20px; }
/* pri najeti se kolem kolecka objevi bily pilovy kotouc z cirkularky (s mezerou v barve karty) a toci se */
.svc-go::before, .back-saw::before { content: ""; position: absolute; inset: -27.3%; z-index: -1; background: #fff; opacity: 0; transform: scale(.6) rotate(-90deg);
   -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-34 -34 68 68'%3E%3Cpath fill-rule='evenodd' d='M28.00 0.00 L32.16 7.40 L28.28 7.26 L26.63 8.65 L26.63 8.65 L28.30 16.98 L24.65 15.65 L22.65 16.46 L22.65 16.46 L21.67 24.89 L18.61 22.50 L16.46 22.65 L16.46 22.65 L12.92 30.37 L10.75 27.15 L8.65 26.63 L8.65 26.63 L2.90 32.87 L1.83 29.14 L0.00 28.00 L0.00 28.00 L-7.40 32.16 L-7.26 28.28 L-8.65 26.63 L-8.65 26.63 L-16.98 28.30 L-15.65 24.65 L-16.46 22.65 L-16.46 22.65 L-24.89 21.67 L-22.50 18.61 L-22.65 16.46 L-22.65 16.46 L-30.37 12.92 L-27.15 10.75 L-26.63 8.65 L-26.63 8.65 L-32.87 2.90 L-29.14 1.83 L-28.00 0.00 L-28.00 0.00 L-32.16 -7.40 L-28.28 -7.26 L-26.63 -8.65 L-26.63 -8.65 L-28.30 -16.98 L-24.65 -15.65 L-22.65 -16.46 L-22.65 -16.46 L-21.67 -24.89 L-18.61 -22.50 L-16.46 -22.65 L-16.46 -22.65 L-12.92 -30.37 L-10.75 -27.15 L-8.65 -26.63 L-8.65 -26.63 L-2.90 -32.87 L-1.83 -29.14 L-0.00 -28.00 L-0.00 -28.00 L7.40 -32.16 L7.26 -28.28 L8.65 -26.63 L8.65 -26.63 L16.98 -28.30 L15.65 -24.65 L16.46 -22.65 L16.46 -22.65 L24.89 -21.67 L22.50 -18.61 L22.65 -16.46 L22.65 -16.46 L30.37 -12.92 L27.15 -10.75 L26.63 -8.65 L26.63 -8.65 L32.87 -2.90 L29.14 -1.83 L28.00 -0.00Z M25.5 0 A25.5 25.5 0 1 0 -25.5 0 A25.5 25.5 0 1 0 25.5 0Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-34 -34 68 68'%3E%3Cpath fill-rule='evenodd' d='M28.00 0.00 L32.16 7.40 L28.28 7.26 L26.63 8.65 L26.63 8.65 L28.30 16.98 L24.65 15.65 L22.65 16.46 L22.65 16.46 L21.67 24.89 L18.61 22.50 L16.46 22.65 L16.46 22.65 L12.92 30.37 L10.75 27.15 L8.65 26.63 L8.65 26.63 L2.90 32.87 L1.83 29.14 L0.00 28.00 L0.00 28.00 L-7.40 32.16 L-7.26 28.28 L-8.65 26.63 L-8.65 26.63 L-16.98 28.30 L-15.65 24.65 L-16.46 22.65 L-16.46 22.65 L-24.89 21.67 L-22.50 18.61 L-22.65 16.46 L-22.65 16.46 L-30.37 12.92 L-27.15 10.75 L-26.63 8.65 L-26.63 8.65 L-32.87 2.90 L-29.14 1.83 L-28.00 0.00 L-28.00 0.00 L-32.16 -7.40 L-28.28 -7.26 L-26.63 -8.65 L-26.63 -8.65 L-28.30 -16.98 L-24.65 -15.65 L-22.65 -16.46 L-22.65 -16.46 L-21.67 -24.89 L-18.61 -22.50 L-16.46 -22.65 L-16.46 -22.65 L-12.92 -30.37 L-10.75 -27.15 L-8.65 -26.63 L-8.65 -26.63 L-2.90 -32.87 L-1.83 -29.14 L-0.00 -28.00 L-0.00 -28.00 L7.40 -32.16 L7.26 -28.28 L8.65 -26.63 L8.65 -26.63 L16.98 -28.30 L15.65 -24.65 L16.46 -22.65 L16.46 -22.65 L24.89 -21.67 L22.50 -18.61 L22.65 -16.46 L22.65 -16.46 L30.37 -12.92 L27.15 -10.75 L26.63 -8.65 L26.63 -8.65 L32.87 -2.90 L29.14 -1.83 L28.00 -0.00Z M25.5 0 A25.5 25.5 0 1 0 -25.5 0 A25.5 25.5 0 1 0 25.5 0Z'/%3E%3C/svg%3E") center / contain no-repeat; transition: opacity .35s ease, transform .5s var(--ease-out); }
.svc:hover .svc-go::before, .back-link:hover .back-saw::before { opacity: 1; transform: scale(1) rotate(0); animation: saw-spin 1.1s linear .3s infinite; }
@keyframes saw-spin { from { rotate: 0deg; } to { rotate: 360deg; } }
@media (prefers-reduced-motion: reduce) { .svc:hover .svc-go::before, .back-link:hover .back-saw::before, .back-kicker:hover .back-saw::before { animation: none; } }
.back-link:hover .back-saw::before, .back-kicker:hover .back-saw::before { opacity: 1; transform: scale(1) scaleX(-1); animation: saw-spin 1.1s linear .3s infinite reverse; }
/* stitek nad nadpisem kalkulacky jako odkaz zpet (jen kdyz navstevnik prisel z uvodu): misto letokruhu tlacitko se sipkou */
.back-kicker { text-decoration: none; gap: 16px; }
.back-kicker::before { display: none; }
.back-kicker[hidden] { display: none; }
.back-kicker .back-saw { width: 36px; height: 36px; margin-right: 2px; }
.back-kicker .back-saw .ico { width: 17px; height: 17px; }
.back-kicker:hover { color: var(--primary-2); }

/* kresba: tenke linky, ktere se pri objeveni karty dokresli */
.deco { position: absolute; z-index: -1; pointer-events: none; overflow: visible; }
.deco path, .deco circle, .deco rect, .deco ellipse { fill: none; stroke: var(--solid-line); }
.js .deco path, .js .deco circle, .js .deco rect, .js .deco ellipse { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js .svc.is-in .deco path, .js .svc.is-in .deco circle, .js .svc.is-in .deco rect, .js .svc.is-in .deco ellipse { animation: ring-draw 1.8s var(--ease-out) forwards; animation-delay: calc(var(--d, 0s) + var(--k, 0) * 70ms + .3s); }
.deco-icon { left: calc(50% - 66px); bottom: 16px; width: 132px; height: 132px; transform-origin: 50% 90%; transition: transform 1.2s var(--ease-out); }
.deco-icon * { stroke-width: 1.4; stroke-opacity: .8; stroke-linejoin: round; stroke-linecap: round; }
.svc:hover .deco-icon { transform: scale(1.06); }

@media (max-width: 1199px) {
   .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
   .svc-grid { gap: 10px; }
   .svc { padding: 14px 14px 100px; gap: 8px; border-radius: 20px; }
   .svc-title { font-size: 15.5px; margin-bottom: 4px; }
   .svc-text { font-size: 12.5px; }
   .svc-note { display: none; }
   .svc-go { right: 10px; bottom: 10px; width: 32px; height: 32px; }
   .svc-go .ico { width: 16px; height: 16px; }
   .deco-icon { left: calc(50% - 40px); bottom: 8px; width: 80px; height: 80px; }
   .deco-icon * { stroke-width: 1.2; }
}

/* ---------- hlavicka: sklenena lista (pruhledna, obsah pod ni se pri posunu rozmaze, svetle hrany),
   jemne vrstevnice, prechod do zelenkava, zelena linka dole ---------- */
.site-header { background: linear-gradient(180deg, rgba(255, 255, 255, .8) 30%, rgba(240, 247, 235, .7)); -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6);
   box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgba(255, 255, 255, .7), 0 1px 0 rgba(18, 36, 26, .06), 0 16px 32px -22px rgba(18, 36, 26, .45); }
.site-header.is-pinned { box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgba(255, 255, 255, .7), 0 1px 0 rgba(18, 36, 26, .07), 0 18px 34px -22px rgba(18, 36, 26, .5); }
.site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0, 94, 40, .07);
   -webkit-mask: url(a-topo.svg) 30% 40% / 1000px auto repeat; mask: url(a-topo.svg) 30% 40% / 1000px auto repeat; pointer-events: none; }
.site-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, transparent, var(--primary) 20%, var(--primary) 80%, transparent); opacity: .75; }
.site-header .nav a::after { background: var(--primary); }
/* citelnost na vzoru: jemna bila aura kolem textu a za logem */
.site-header .nav a, .site-header .hc-label, .site-header .hc-num { text-shadow: 0 0 2px #fff, 0 0 6px #fff, 0 0 12px #fff; }
.site-header .brand { position: relative; }
.site-header .brand::before { content: ""; position: absolute; inset: -16px -30px; z-index: -1; background: radial-gradient(closest-side, rgba(255, 255, 255, .7) 40%, rgba(255, 255, 255, 0)); pointer-events: none; }


/* stranka kalkulacky (/kalkulacka-ceny-lesa): cela stranka pro kalkulacku, letokruhy jako na uvodu, sipka zpet */
.calc-page { position: relative; overflow: hidden; padding: clamp(28px, 4vw, 48px) 0 clamp(64px, 7vw, 112px); }
.calc-page > .wrap { position: relative; z-index: 1; }
.calc-page > .intro-rings { top: -40px; }
.calc-page h1.section-title { font-size: clamp(34px, 5vw, 64px); }
/* tlacitko Zpet: stejne kolecko se sipkou jako na dlazdicich uvodu (.svc-go), pilovy kotouc se objevi a toci az pri najeti */
.back-link { display: inline-flex; align-items: center; gap: 22px; margin-bottom: clamp(20px, 3vw, 36px); color: var(--primary); font-weight: 700; font-size: 16px; text-decoration: none; }
.back-saw { position: relative; display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 50%; color: #fff;
   background: radial-gradient(circle at 32% 26%, #1f8a4c 0 30%, var(--primary) 100%);
   box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .35), inset 0 -3px 6px rgba(0, 0, 0, .18), 0 0 0 4px rgba(0, 94, 40, .12), 0 8px 16px -6px rgba(0, 40, 16, .55); }
.back-saw::after { content: ""; position: absolute; left: 22%; right: 22%; top: 6%; height: 32%; border-radius: 50%; background: linear-gradient(rgba(255, 255, 255, .4), rgba(255, 255, 255, 0)); pointer-events: none; }
.back-saw .ico { position: relative; width: 20px; height: 20px; transform: scaleX(-1); }
/* kotouc zrcadlove (zuby na druhou stranu) a toci se opacne nez na uvodu - jde "zpet" */
.back-saw::before { background: var(--primary); transform: scale(.6) scaleX(-1); animation-direction: reverse; }
.calc-page .calc-intro { margin-top: 18px; max-width: 62ch; }
/* kalkulacka: vyhody a postup pod formularem, odkaz na uvod */
.calc-box-benefits { position: relative; overflow: hidden; isolation: isolate; padding: clamp(22px, 2.8vw, 34px) clamp(24px, 3vw, 44px); border-top: 1px solid var(--line); background: var(--surface); }
.calc-box-benefits::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: rgba(0, 94, 40, .06);
   -webkit-mask: url(a-topo.svg) 20% 30% / 900px auto repeat; mask: url(a-topo.svg) 20% 30% / 900px auto repeat; }
.calc-box-benefits .buy-benefits { padding-top: 0; border-top: 0; }
.back-link[hidden] { display: none; }
/* banner na konci kalkulacky: odkaz na uvod + zavolejte / napiste */
.cta-calc .cta-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); align-items: center; gap: 24px clamp(32px, 5vw, 80px); }
.cta-calc .cta-title { max-width: 18ch; }
.cta-calc .cta-actions { flex-direction: column; align-items: stretch; gap: 10px; }
.cta-calc .cta-actions .btn { justify-content: center; }
@media (max-width: 800px) { .cta-calc .cta-inner { grid-template-columns: 1fr; } }
.cta-contact { display: inline-flex; align-items: center; gap: 12px; padding: 10px 20px 10px 14px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--line-strong);
   color: var(--ink); text-decoration: none; transition: box-shadow .25s, transform .25s var(--ease-out); }
.cta-contact:hover { box-shadow: 0 0 0 1.5px var(--primary); transform: translateY(-2px); }
.cta-contact .ico { width: 20px; height: 20px; color: var(--primary); flex: none; }
.cta-contact span { display: flex; flex-direction: column; line-height: 1.2; }
.cta-contact small { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.cta-contact strong { font-size: 16px; }
/* kalkulacka: nadpis a pokyny v sirsim sloupci (nezalamuji se tolik), letokruhy vpravo mensi */
.calc-page .calc-head { grid-template-columns: minmax(0, 900px); }
.calc-page .calc-intro { max-width: 70ch; }
.calc-page > .intro-rings { width: min(560px, 42vw); right: -150px; }
/* odkaz Zpet na hlavni stranku: jemnejsi kolecko (mene "koule") */
.back-kicker .back-saw { background: radial-gradient(circle at 35% 30%, #0f7139 0 45%, var(--primary) 100%);
   box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 0 0 3px rgba(0, 94, 40, .07), 0 4px 10px -6px rgba(0, 40, 16, .45); }
.back-kicker .back-saw::after { left: 28%; right: 28%; top: 8%; height: 24%; background: linear-gradient(rgba(255, 255, 255, .16), rgba(255, 255, 255, 0)); }

/* ---------- eshop na mobilu: polozka jako kompaktni karta - nazev, cena vc. DPH a pod ni bez DPH (vyse DPH se v ceniku neukazuje), za nimi
   sikme lomitko pres oba radky a jednotka ("/ 1 prm") vpravo, vlevo doba dodani na dva radky; pod tim uprostred mnozstvi s malym tlacitkem do kosiku ---------- */
@media (max-width: 640px) {
   .prow { grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-areas: "n n n n" "d d i u" "d d e u" "b b b b"; column-gap: 0; row-gap: 2px; padding: 16px 0; }
   .p-name { margin-bottom: 8px; }
   .p-incl, .p-excl { flex-direction: row !important; align-items: baseline; gap: 5px !important; white-space: nowrap; }
   /* ceny zarovnane pod sebou: castky k pravemu okraji sloupce, popisky (vc. / bez DPH) ve stejne siroke kolonce za nimi */
   .prow .p-incl { justify-content: flex-end; padding-top: 0; border-top: 0; font-size: 14px; }
   .prow .p-excl { justify-content: flex-end; font-size: 13px; }
   .p-incl .lbl { display: none; }
   .p-incl strong { font-size: 14px; }
   .p-incl strong::after { content: "vč. DPH"; display: inline-block; width: 52px; margin-left: 6px; font-size: 12.5px; font-weight: 400; color: var(--ink-2); }
   .p-excl .lbl { display: inline; order: 2; font-size: 0; }
   .p-excl .lbl::after { content: "bez DPH"; display: inline-block; width: 52px; font-size: 12.5px; font-weight: 400; }
   .p-excl { gap: 6px !important; }
   /* jednotka za cenou: lomitko pres oba radky ceny */
   .p-unit { flex-direction: row !important; align-items: center; align-self: stretch; gap: 0 !important; font-size: 14px; }
   .p-unit .lbl { display: none; }
   .p-unit .unit-tip { white-space: nowrap; }
   .p-unit::before { content: ""; width: 1.5px; height: 40px; margin: 0 7px 0 12px; background: var(--line-strong); transform: rotate(20deg); }
   .unit-tip[data-tip]::after { left: auto; right: 0; transform: translate(0, 4px); }
   .unit-tip[data-tip]:hover::after, .unit-tip[data-tip]:focus::after { transform: translate(0, 0); }
   /* doba dodani vlevo na dva radky (popisek / doba), stejne vysoka jako dva radky ceny vpravo */
   .p-delivery { flex-direction: column !important; justify-content: center; align-items: flex-start; align-self: stretch; gap: 2px !important; margin-right: 12px; padding-right: 10px; border-right: 1.5px solid var(--line); font-size: 12.5px; white-space: nowrap; }
   .p-delivery .lbl { display: block; font-size: 12.5px; color: var(--ink-2); }
   .p-delivery .lbl::after { content: ":"; }
   .p-delivery span:last-child { flex-direction: row; align-items: baseline; gap: 4px; font-size: 13px; }
   .p-delivery small { display: none; }
   .p-buy { justify-content: center; align-self: center; gap: 6px; padding-top: 12px; }
   .p-buy .btn-cart { flex: none; width: 40px; min-height: 40px; height: 40px; padding: 0; justify-content: center; }
   .p-buy .btn-cart span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
   .p-buy .qty { height: 40px; }
   .p-buy .qty input { width: 24px; }
   .p-buy .qty-btn { width: 22px; }
   .ptable { padding-left: 14px; padding-right: 14px; }
}
/* uzke telefony: cena, jednotka a doba dodani se vejdou vedle sebe jen s mensimi mezerami a pismem */
@media (max-width: 374px) {
   .p-incl strong::after, .p-excl .lbl::after { width: 44px; font-size: 11.5px; }
   .p-incl strong, .p-unit { font-size: 13px; }
   .prow .p-excl { font-size: 12px; }
   .p-unit::before { margin: 0 5px 0 8px; }
   .p-delivery .lbl { font-size: 11.5px; }
   .p-delivery span:last-child { font-size: 12px; }
   .ptable { padding-left: 12px; padding-right: 12px; }
}

/* ---------- lista "Pridano do kosiku": skleneny pruh (rozmazane pozadi, svetly okraj), fajfka v zelenem kolecku naskoci, pod textem co se
   pridalo, tlacitko do kosiku se sipkou; dole linka odpoctu, nez lista zmizi (3,5 s - site.js); animace odletu do kosiku v hlavicce ---------- */
.toast { gap: 14px; width: max-content; max-width: calc(100vw - 24px); padding: 8px 8px 8px 10px; overflow: hidden; border-radius: 999px; color: var(--ink); font-size: 14px;
   background: linear-gradient(135deg, rgba(255, 255, 255, .78), rgba(244, 250, 240, .58));
   -webkit-backdrop-filter: blur(18px) saturate(1.8); backdrop-filter: blur(18px) saturate(1.8);
   border: 1px solid rgba(255, 255, 255, .85);
   box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 0 0 1px rgba(0, 94, 40, .08), 0 22px 50px -18px rgba(0, 40, 16, .5), 0 6px 16px -8px rgba(0, 40, 16, .25);
   animation: toast-glass-in .6s cubic-bezier(.2, 1.3, .4, 1); transition: opacity .4s, transform .4s var(--ease), filter .4s; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .toast { background: var(--surface); } }
@keyframes toast-glass-in { from { opacity: 0; transform: translate(-50%, 28px) scale(.92); filter: blur(6px); } }
.toast.is-out { opacity: 0; transform: translate(-50%, 16px) scale(.96); filter: blur(4px); }
/* linka odpoctu */
.toast::after { content: ""; position: absolute; left: 22px; right: 22px; bottom: 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--primary), var(--accent));
   transform-origin: left; animation: toast-time 3.5s linear forwards; opacity: .7; }
@keyframes toast-time { from { transform: scaleX(1); } to { transform: scaleX(0); } }
.toast-ok { position: relative; display: grid; grid-template-columns: 34px auto; grid-template-rows: auto auto; column-gap: 10px; align-items: center; min-width: 0; }
.toast-ok::before { content: ""; grid-row: 1 / 3; width: 34px; height: 34px; border-radius: 50%;
   background: var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 17px no-repeat;
   box-shadow: 0 0 0 4px rgba(0, 94, 40, .12), 0 6px 14px -6px rgba(0, 94, 40, .7); animation: toast-check .7s .15s cubic-bezier(.2, 1.6, .4, 1) both; }
@keyframes toast-check { from { transform: scale(0) rotate(-45deg); } }
.toast-ok b { font-size: 14.5px; font-weight: 800; white-space: nowrap; }
.toast-ok small { overflow: hidden; color: var(--ink-2); font-size: 12.5px; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.toast .btn { gap: 6px; min-height: 40px; padding: 8px 14px 8px 18px; font-size: 13.5px; color: #fff; box-shadow: 0 8px 18px -10px rgba(0, 94, 40, .9); }
.toast .btn::after { content: ""; width: 16px; height: 16px; flex: none;
   background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .2s; }
.toast .btn:hover::after { transform: translateX(3px); }
@media (max-width: 420px) {
   .toast { gap: 8px; padding: 6px 6px 6px 7px; }
   .toast-ok { grid-template-columns: 30px auto; column-gap: 8px; }
   .toast-ok::before { width: 30px; height: 30px; background-size: 15px; }
   .toast-ok b { font-size: 13.5px; }
   .toast-ok small { font-size: 12px; }
   .toast .btn { min-height: 38px; padding: 8px 11px 8px 14px; font-size: 13px; }
}
/* chybova lista (bez fajfky) */
.toast > span:not(.toast-ok) { padding: 6px 10px; }
.cart-fly { position: fixed; z-index: 400; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 10px 24px -8px rgba(0, 40, 16, .6); pointer-events: none; }
.cart-fly .ico { width: 20px; height: 20px; }
.cart-link.is-hit { animation: cart-hit .55s var(--ease); }
@keyframes cart-hit { 35% { transform: scale(1.22); background: var(--accent); } }

/* ---------- vyber druhu dreva (varianta polozky) v ceniku u mnozstvi: oble pole jako mnozstvi, nahore maly popisek
   "DRUH DREVA", pod nim vybrany druh, vpravo sipka v kolecku; dokud neni vybrano, text je sedy a pole ma carkovany okraj ---------- */
.variant-pick { position: relative; display: inline-flex; align-items: stretch; flex: none; width: 150px; height: 50px; border: 1.5px solid var(--line-strong);
   border-radius: var(--radius-sm); background: var(--surface); transition: border-color .2s, box-shadow .2s, background .2s; }
.variant-pick:hover { border-color: var(--primary); }
.variant-pick:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px var(--focus-ring, rgba(0,94,40,.18)); }
.vp-cap { position: absolute; top: 7px; left: 13px; font-family: var(--font-mono); font-size: 9.5px; line-height: 1; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
   color: var(--ink-2); pointer-events: none; white-space: nowrap; }
.variant-pick::after { content: ""; position: absolute; top: 50%; right: 8px; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; pointer-events: none;
   background: var(--bg-alt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23005e28' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") no-repeat center / 14px;
   transition: transform .2s; }
.variant-pick:hover::after, .variant-pick:focus-within::after { transform: translateY(1px); }
.variant-pick select { width: 100%; min-width: 0; height: 100%; padding: 21px 38px 5px 12px; border: 0; line-height: 1.2; border-radius: inherit; background: transparent; cursor: pointer;
   -webkit-appearance: none; appearance: none; color: var(--ink); font-size: 15px; font-weight: 700; text-overflow: ellipsis; }
.variant-pick select:focus { outline: none; }
/* zatim nevybrano */
.variant-pick:has(select:invalid), .variant-pick.is-missing { border-style: dashed; background: var(--bg); }
.variant-pick select:invalid, .variant-pick.is-missing select { color: var(--ink-2); font-weight: 500; }
.variant-pick:has(select:user-invalid), .variant-pick.is-missing { border-color: var(--error, #c0392b); }
.variant-pick option { color: var(--ink); font-weight: 500; }

/* ---------- kosik na PC: tabulka se zahlavim - polozka (pod nazvem druh dreva) | doba dodani | cena za jednotku (vc. DPH, pod ni bez DPH,
   lomitko a jednotka) | mnozstvi | celkem | odebrat ---------- */
.cart-head, .cart-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) 130px 220px 150px 130px 40px; grid-template-areas: "i n d p q t r"; column-gap: 20px; align-items: center; }
.cart-head { padding: 0 0 10px; font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
.cart-head span:nth-child(4), .cart-head span:nth-child(6) { text-align: right; }
.cart-head span:nth-child(5) { text-align: center; }
.cart-row { row-gap: 0; }
.cart-row .qty { justify-self: center; }
/* druh dreva jako stitek za nazvem (v kosiku uz nejde menit) */
/* nazev, pod nim druh dreva (u polozek bez druhu kategorie), na mobilu pod tim doba dodani */
.cart-name .cart-kind { color: var(--ink-2); font-size: 14px; font-weight: 600; }
.section.cart-section { padding-top: 0; }
.page-head:has(+ .cart-section) { padding-bottom: clamp(24px, 3vw, 36px); }
/* objednavka: pod odeslanim zpet do kosiku a pokracovat v nakupu (mensi, vedle sebe, na uzkem displeji pod sebou) */
.summary-back { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.summary-back .btn { flex: 1 1 auto; min-height: 42px; padding: 8px 14px; font-size: 14px; }
.summary-back .btn .ico { width: 16px; height: 16px; }
/* tlacitka pod kosikem stejne velka, mensi */
.cart-next .btn, .empty-cart .btn { min-height: 46px; padding: 10px 22px; font-size: 15px; }
.cart-next .btn .ico, .empty-cart .btn .ico { width: 18px; height: 18px; }
.empty-cart .btn { min-width: 180px; }
@media (max-width: 640px) {
   .cart-next { flex-direction: column-reverse; gap: 10px; }
   .cart-next .btn { width: 100%; }
}
.cart-warn { margin-top: 4px; color: var(--error, #c0392b); font-size: 13px; font-weight: 600; }
/* prepocet bez nacteni stranky: castky na chvili zesednou */
.js .cart .btn-update { display: none; }
.cart .cart-total, .cart .totals dd { transition: opacity .2s; }
.cart.is-updating .cart-total, .cart.is-updating .totals dd { opacity: .4; }
.cart-unit { display: none; }
.cart-delivery { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; font-size: 13.5px; }
.cart-delivery .ico, .cdel-lbl { display: none; }
.cdel-val { color: var(--ink); font-size: 14.5px; }
.cdel-note { font-size: 12.5px; }
.cart-unitprice { display: grid; grid-template-columns: auto auto; grid-template-areas: "a c" "b c"; align-items: center; justify-content: end; font-size: 13px; }
.cu-incl { grid-area: a; justify-self: end; white-space: nowrap; }
.cu-excl { grid-area: b; justify-self: end; white-space: nowrap; }
.cu-excl::before { content: none; }
.cu-incl b { margin-right: 4px; font-size: 15px; font-weight: 700; }
.cu-unit { grid-area: c; display: flex; align-items: center; align-self: stretch; color: var(--ink); font-size: 14.5px; white-space: nowrap; }
.cu-unit::before { content: ""; width: 1.5px; height: 38px; margin: 0 8px 0 12px; background: var(--line-strong); transform: rotate(20deg); }
.cart-total { font-size: 18px; }
.cart-total .ct-excl { display: none; }

@media (max-width: 1199px) {
   .cart-head, .cart-row { grid-template-columns: 56px minmax(0, 1fr) 100px 200px 124px 104px 36px; column-gap: 12px; }
   .cart-img { width: 56px; height: 56px; }
   .cart-row .qty input { width: 36px; }
   .cart-row .qty-btn { width: 30px; }
   .cart-total { font-size: 16px; }
}

/* ---------- kosik na tabletu a mobilu: bez obrazku - nahore nazev a kos, pod nazvem doba dodani na jednom radku, pak druh dreva;
   dole mnozstvi s +/- a jednotkou a vpravo cena za cele mnozstvi (vc. DPH, pod ni bez DPH) ---------- */
@media (max-width: 900px) {
   .cart-head { display: none; }
   .cart-row { grid-template-columns: auto auto minmax(0, 1fr) auto; grid-template-areas: "n n n r" "d d d d" "q u t t"; column-gap: 8px; row-gap: 0; padding: 14px 0 16px; }
   .cart-img, .cart-unitprice { display: none; }
   .cart-name strong { font-size: 16.5px; }
   .cart-name .cart-kind { font-size: 13.5px; }
   .cart-remove { justify-self: end; align-self: start; margin: -4px -8px 0 0; }
   .cart-delivery { display: flex; flex-direction: row; align-items: center; gap: 0; margin-top: 6px; font-size: 13px; white-space: nowrap; }
   .cart-delivery .ico { display: block; width: 14px; height: 14px; margin-right: 5px; color: var(--primary); }
   .cdel-lbl { display: inline; margin-right: 4px; }
   .cdel-val { color: var(--ink); font-size: 13px; font-weight: 600; }
   .cdel-note { display: none; }
   .cart-row .qty { grid-area: q; justify-self: start; height: 42px; margin-top: 14px; }
   .cart-unit { display: block; align-self: end; margin: 0 0 11px; color: var(--ink-2); font-size: 14px; }
   .cart-total { display: grid; justify-items: end; align-self: end; margin-top: 14px; font-size: 17px; line-height: 1.25; }
   .cart-total .ct-excl { display: block; font-size: 12.5px; font-weight: 400; color: var(--ink-2); }
   .cart-total strong::after { content: "vč. DPH"; margin-left: 5px; font-size: 12.5px; font-weight: 400; color: var(--ink-2); }
}
/* cenik s druhy dreva na PC: sirsi sloupec pro druh, mnozstvi a tlacitko */
@media (min-width: 1101px) {
   .has-variants .ptable-head, .has-variants .prow { grid-template-columns: minmax(160px, 2fr) 72px 104px 104px 92px 430px; }
}
/* mnozstvi a tlacitko stejne vysoke jako vyber druhu */
.p-buy:has(.variant-pick) .qty { height: 50px; }
.p-buy:has(.variant-pick) .btn-cart { min-height: 50px; }
/* uzsi notebook: tlacitko do kosiku jen s ikonou */
@media (min-width: 1101px) and (max-width: 1279px) {
   .has-variants .ptable-head, .has-variants .prow { grid-template-columns: minmax(150px, 2fr) 64px 96px 96px 88px 336px; gap: 10px; }
   .has-variants .btn-cart { width: 46px; padding: 0; justify-content: center; }
   .has-variants .btn-cart span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 640px) {
   /* na mobilu druh roztazeny vlevo, mnozstvi a kosik vpravo; vse stejne vysoke */
   .p-buy:has(.variant-pick) { justify-content: flex-start; gap: 8px; }
   .p-buy .variant-pick { flex: 1 1 auto; width: auto; max-width: 220px; height: 48px; }
   .p-buy:has(.variant-pick) .qty { height: 48px; }
   .p-buy:has(.variant-pick) .btn-cart { width: 48px; height: 48px; min-height: 48px; }
   .variant-pick select { padding-top: 20px; font-size: 16px; }
}

/* parametry zbozi v kartach (napr. pletivo u dubovych kulu): popisek vlevo, hodnota vpravo, cena dole pod carou */
.spec-list { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; margin: 6px 0 2px; font-size: 14px; }
.spec-list dt { color: var(--ink-2); }
.spec-list dd { margin: 0; font-weight: 600; color: var(--ink); text-align: right; }
.benefit-price { margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--line-strong); font-size: 14px; color: var(--ink-2); }
.benefit-price strong { font-size: 16px; color: var(--primary); }

/* parametry polozky v ceniku (radky popisu "Nazev: hodnota") */
.p-specs { display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 6px 0 0; padding: 0; list-style: none; }
.p-specs li { padding: 2px 9px; border-radius: 999px; background: var(--bg-alt); color: var(--ink); font-size: 12.5px; font-weight: 600; line-height: 1.6; white-space: nowrap; }
.p-specs li span { color: var(--ink-2); font-weight: 400; }

/* cena v kartach (doplnkovy prodej u kulu): vc. DPH a pod ni bez DPH, sikme lomitko pres oba radky a jednotka; vse na stred */
.price-split { display: grid; grid-template-columns: auto auto; grid-template-areas: "a c" "b c"; justify-content: center; align-items: center; }
.ps-incl { grid-area: a; justify-self: end; white-space: nowrap; font-size: 14px; color: var(--ink-2); }
.ps-incl b { font-size: 17px; color: var(--primary); }
.ps-excl { grid-area: b; justify-self: end; white-space: nowrap; font-size: 13px; color: var(--ink-2); }
.ps-incl i, .ps-excl i { display: inline-block; width: 54px; margin-left: 6px; font-style: normal; }
.ps-unit { grid-area: c; display: flex; align-items: center; align-self: stretch; white-space: nowrap; font-size: 15px; font-weight: 600; color: var(--ink); }
.ps-unit::before { content: ""; width: 1.5px; height: 42px; margin: 0 10px 0 12px; background: var(--line-strong); transform: rotate(20deg); }
.ps-note { display: block; margin-top: 6px; text-align: center; font-size: 12.5px; color: var(--ink-2); }
.benefit-price:has(.price-split) { text-align: center; }

/* sekce s textem a fotkou vpravo (pronajem zatloukace u dubovych kulu) */
.rent-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: clamp(28px, 5vw, 64px); align-items: center; }
.rent-img { margin: 0; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.rent-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 900px) { .rent-grid { grid-template-columns: 1fr; } }

/* podekovani formulare: kazda veta na vlastnim radku, radky vyvazene */
.form-success-line { display: block; text-wrap: balance; }
.calc-form .form-success-text { max-width: 46ch; }
