/*
  Klient: TreeBoys
  Tier: T1
  Postavil: Riverlab (riverlab.cz)
  Verze: 1.0
  Dodáno: Září 2026

  OBSAH:
  01. Základ, navigace, hero a trust strip
  02. Služby a CTA marquee
  03. Proces a Proč my
  04. O nás, realizace a recenze
  05. FAQ, formulář a footer
  06. Pohybové a přístupnostní override
*/

/* ZAČÁTEK: 01. Základ, navigace, hero a trust strip */
:root {
  --hero-content-top: calc(clamp(8px, .8vw, 16px) + clamp(68px, 5.4vw, 86px) + clamp(16px, 1.2vw, 22px));
}
* { box-sizing: border-box; }
html, body { min-width: 0; min-height: 100%; }
body { margin: 0; background: var(--color-bg-primary); color: var(--color-text-on-dark); font-family: var(--font-body); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.page { min-height: 100svh; padding: 0; }
.hero { position: relative; isolation: isolate; width: 100%; height: 100svh; min-height: 680px; margin: 0; overflow: hidden; border-radius: 0; background: var(--color-bg-primary); }
.hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 89% 72%, rgba(242,119,38,.17), transparent 29%), #0a0a0a; }
.site-header { position: relative; z-index: 3; display: grid; grid-template-columns: clamp(190px, 14vw, 244px) 1fr auto auto; align-items: center; gap: clamp(18px, 1.7vw, 32px); width: var(--layout-content-width); min-height: clamp(64px, 5.1vw, 82px); margin: clamp(8px, .8vw, 16px) auto 0; padding: 0 clamp(13px, .9vw, 18px) 0 clamp(16px, 1.25vw, 24px); border: 1px solid rgba(255,255,255,.08); border-bottom-color: rgba(255,255,255,.14); border-radius: var(--radius-md); background: var(--color-bg-primary-alt); box-shadow: 0 2px 16px rgba(0,0,0,.35); color: var(--color-text-on-dark); }
.brand { display: flex; align-items: center; gap: 8px; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(1.05rem, 1.25vw, 1.42rem); line-height: .78; letter-spacing: -.025em; text-transform: uppercase; }.brand b { color: inherit; font-weight: 400; }.brand small { display: block; margin-top: 4px; font-family: var(--font-body); font-size: .38rem; font-weight: 700; letter-spacing: .12em; color: var(--color-text-on-dark-muted); }.brand__mark { width: clamp(39px, 2.7vw, 46px); height: clamp(39px, 2.7vw, 46px); border-radius: 50%; flex: 0 0 auto; object-fit: cover; }
.site-nav { display: flex; justify-content: center; gap: clamp(17px, 2.1vw, 32px); color: var(--color-text-on-dark); font-size: clamp(.72rem, .75vw, .9rem); font-weight: 600; }.site-nav a:hover { color: var(--color-accent); }.header-phone { color: var(--color-text-on-dark-muted); font-size: clamp(.79rem, .8vw, .96rem); font-weight: 700; white-space: nowrap; }.header-phone:hover { color: var(--color-text-on-dark); }.header-phone__icon { color: var(--color-accent); }
.header-cta, .button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 14px; border: 0; border-radius: 3px; background: var(--color-accent); color: var(--color-text-on-light); cursor: pointer; font-size: .62rem; font-weight: 700; letter-spacing: .015em; transition: background .15s ease, transform .15s ease, scale .15s ease; }.header-cta { min-height: clamp(40px, 3.15vw, 50px); padding-inline: clamp(14px, 1.05vw, 20px); font-size: clamp(.62rem, .66vw, .78rem); }.header-cta:hover, .button:hover { background: var(--color-accent-hover); }.header-cta:active, .button:active { scale: .96; }.header-cta, .hero__copy .button, .why-us__phone-cta { position: relative; isolation: isolate; overflow: hidden; transition: background .16s ease, box-shadow .17s ease, transform .17s ease, scale .15s ease; }.header-cta::before, .hero__copy .button::before, .why-us__phone-cta::before { content: ""; position: absolute; z-index: 0; top: -70%; bottom: -70%; left: 0; width: 24%; background: rgba(253,176,94,.9); pointer-events: none; transform: translateX(-250%) skewX(-20deg); transition: transform .28s cubic-bezier(.2,0,0,1); }.header-cta > span, .hero__copy .button > span, .why-us__phone-cta > span { position: relative; z-index: 1; }.header-cta:hover, .hero__copy .button:hover, .why-us__phone-cta:hover { background: var(--color-accent); box-shadow: 0 8px 14px rgba(0,0,0,.28); transform: translateY(-3px); }.header-cta:hover::before, .hero__copy .button:hover::before, .why-us__phone-cta:hover::before, .header-cta:focus-visible::before, .hero__copy .button:focus-visible::before, .why-us__phone-cta:focus-visible::before { transform: translateX(510%) skewX(-20deg); }.header-cta:focus-visible, .hero__copy .button:focus-visible, .why-us__phone-cta:focus-visible { outline: 3px solid var(--color-text-on-dark); outline-offset: 3px; box-shadow: 0 8px 14px rgba(0,0,0,.28); transform: translateY(-3px); }
.hero__copy { position: relative; z-index: 2; display: flex; width: 50%; max-width: 780px; margin: clamp(72px, 10vh, 145px) 0 0 9.2%; flex-direction: column; align-items: center; text-align: center; }.emergency-badge { display: flex; align-items: center; gap: 5px; margin: 0 0 clamp(14px, 1.1vw, 22px); font-size: clamp(.75rem, .8vw, 1rem); font-weight: 600; letter-spacing: .035em; }.emergency-badge span { width: 5px; height: 5px; border-radius: 99px; background: var(--color-accent); box-shadow: 0 0 0 2px rgba(242,119,38,.24); }h1, h2, p { margin-top: 0; }h1 { max-width: 780px; margin-bottom: clamp(12px, 1vw, 19px); font-family: var(--font-display); font-size: clamp(1.8rem, 1.8vw, 2.25rem); font-weight: 400; line-height: .98; letter-spacing: -.02em; text-transform: uppercase; text-wrap: balance; }.hero__copy > p:not(.emergency-badge) { max-width: 670px; margin-bottom: clamp(18px, 1.35vw, 25px); color: #d8d8d8; font-size: clamp(.9rem, 1.1vw, 1.25rem); line-height: 1.4; text-wrap: pretty; }.hero__copy .button { min-width: clamp(172px, 14vw, 250px); min-height: clamp(38px, 3.2vw, 52px); font-size: clamp(.62rem, .7vw, .85rem); }
.hero__photo { position: absolute; z-index: 0; top: calc(clamp(8px, .8vw, 16px) + clamp(64px, 5.1vw, 82px) + 40px); right: 4vw; bottom: 40px; width: 35%; height: auto; overflow: hidden; border-radius: 15px; }.hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(140deg, rgba(242,119,38,.22), transparent 50%); }.hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 79% center; filter: saturate(.72) contrast(1.07); outline: 1px solid rgba(255,255,255,.1); outline-offset: -1px; }.hero__photo::before { content: ""; position: absolute; z-index: 1; width: clamp(245px, 21vw, 390px); height: clamp(245px, 21vw, 390px); border: clamp(14px, 1.1vw, 20px) solid rgba(255,255,255,.78); border-left-color: transparent; border-bottom-color: transparent; border-radius: 50%; right: -68px; top: -63px; transform: rotate(25deg); }
.inquiry { position: absolute; z-index: 2; bottom: 80px; left: 78.5%; width: min(395px, 28%); padding: clamp(21px, 1.7vw, 31px) clamp(19px, 1.5vw, 28px) clamp(16px, 1.4vw, 25px); border-radius: 7px; background: #fff; color: #101010; box-shadow: 0 16px 35px rgba(0,0,0,.18); transform: translateX(-50%); }.inquiry h2 { margin-bottom: clamp(13px, 1vw, 18px); font-family: var(--font-display); font-size: clamp(.95rem, 1.05vw, 1.3rem); font-weight: 400; line-height: 1; letter-spacing: -.01em; white-space: nowrap; }.inquiry form { display: grid; gap: clamp(7px, .55vw, 10px); }.field { position: relative; }.field .ph { position: absolute; top: 50%; right: clamp(8px, .7vw, 12px); color: #141414; font-size: clamp(.8rem, .85vw, 1rem); line-height: 1; pointer-events: none; transform: translateY(-50%); }.field:has(textarea) .ph { top: 12px; transform: none; }.inquiry input, .inquiry textarea { width: 100%; min-height: clamp(32px, 2.55vw, 43px); padding: 7px clamp(31px, 2.8vw, 42px) 7px 10px; border: 1px solid #e5e5e5; border-radius: 2px; outline-color: var(--color-accent); color: #141414; font-size: clamp(.66rem, .68vw, .8rem); font-weight: 600; resize: vertical; }.inquiry textarea { min-height: clamp(48px, 3.5vw, 62px); }.inquiry input::placeholder, .inquiry textarea::placeholder { color: #555; font-weight: 600; opacity: 1; }.inquiry .button { width: 100%; min-height: clamp(31px, 2.5vw, 43px); margin-top: 3px; font-size: clamp(.54rem, .57vw, .7rem); }
.van { position: absolute; z-index: 3; bottom: -9px; left: 0; display: block; width: min(540px, 39%); height: auto; filter: drop-shadow(9px 9px 7px rgba(0,0,0,.29)); }
/* Odkazy: rychlá linka zleva. */
a:not(.brand):not(.header-cta):not(.button):not(.marquee__link) { position: relative; display: inline-block; text-decoration: none; transition: color .18s linear, text-shadow .18s linear; }
a:not(.brand):not(.header-cta):not(.button):not(.marquee__link)::after { content: ""; position: absolute; right: 0; bottom: -.38em; left: 0; height: 2px; background: var(--color-accent); transform: scaleX(0); transform-origin: right center; transition: transform .18s linear; }
a:not(.brand):not(.header-cta):not(.button):not(.marquee__link):hover, a:not(.brand):not(.header-cta):not(.button):not(.marquee__link):focus-visible { color: var(--color-text-on-dark); text-shadow: 0 0 8px rgba(255,255,255,.22); outline: none; }
a:not(.brand):not(.header-cta):not(.button):not(.marquee__link):hover::after, a:not(.brand):not(.header-cta):not(.button):not(.marquee__link):focus-visible::after { transform: scaleX(1); transform-origin: left center; }

/* CTA: jeden plynulý průjezd lesku. */
@keyframes cta-sheen { from { transform: translate3d(-250%,0,0) skewX(-20deg); } to { transform: translate3d(510%,0,0) skewX(-20deg); } }
.header-cta, .hero__copy .button, .why-us__phone-cta { will-change: transform; transition: background .16s ease, box-shadow .253s cubic-bezier(.2,0,0,1), scale .253s cubic-bezier(.2,0,0,1); }
.header-cta::before, .hero__copy .button::before, .why-us__phone-cta::before { transform: translate3d(-250%,0,0) skewX(-20deg); transition: none; }
.header-cta:hover::before, .hero__copy .button:hover::before, .header-cta:focus-visible::before, .hero__copy .button:focus-visible::before, .why-us__phone-cta:hover::before, .why-us__phone-cta:focus-visible::before { animation: cta-sheen .322s linear both; }
.header-cta:hover, .hero__copy .button:hover, .header-cta:focus-visible, .hero__copy .button:focus-visible, .why-us__phone-cta:hover, .why-us__phone-cta:focus-visible { background: var(--color-accent); box-shadow: 0 8px 16px rgba(0,0,0,.22); scale: 1.1; transform: none; }
.header-cta > span, .hero__copy .button > span, .why-us__phone-cta > span { display: block; padding-top: 0; line-height: 1; transform: none; translate: none; }
.hero__copy h1 { max-width: 780px; font-size: clamp(.62rem, 1.65vw, 1.5rem); line-height: 1.18; letter-spacing: -.012em; }
.hero-title__line { display: block; white-space: nowrap; }
.hero { --nav-edge: max(4vw, calc((100% - 1740px) / 2)); }
.hero__photo { right: var(--nav-edge); width: 30%; }
.inquiry { left: calc(85% - var(--nav-edge)); }
.inquiry input, .inquiry textarea { border-radius: var(--radius-sm); }
.hero__copy { width: 58%; max-width: 920px; margin-left: 6%; }
.emergency-badge { margin-bottom: clamp(26px, 2vw, 34px); }
.hero__copy h1 { width: 100%; max-width: none; margin-bottom: clamp(28px, 2.2vw, 36px); font-size: clamp(.78rem, 2vw, 2.125rem); font-weight: 400; line-height: 1.16; letter-spacing: -.018em; }
.hero__copy > p:not(.emergency-badge) { max-width: 590px; margin-bottom: clamp(28px, 2.2vw, 36px); color: var(--color-text-on-dark-muted); font-size: clamp(.78rem, .95vw, .9375rem); line-height: 1.5; }
.emergency-badge { font-size: clamp(.62rem, .65vw, .78rem); }.emergency-badge .ph { display: inline-block; color: var(--color-text-on-dark); font-size: .96em; line-height: 1; transform: translateY(-.03em); }
.hero__copy h1 { font-size: clamp(1.5rem, 4vw, 4.2rem); }
.hero__copy .button { min-width: clamp(200px, 16vw, 290px); min-height: clamp(46px, 4vw, 64px); padding-inline: clamp(20px, 1.5vw, 28px); font-size: clamp(.75rem, .85vw, 1rem); }
.site-header { grid-template-columns: clamp(205px, 15vw, 260px) 1fr auto auto; min-height: clamp(68px, 5.4vw, 86px); }
.site-nav { gap: clamp(20px, 2.25vw, 36px); font-size: clamp(.82rem, .9vw, 1.05rem); }
.header-phone { font-size: clamp(.86rem, .92vw, 1.08rem); }
.cta { gap: clamp(7px, .55vw, 10px); }.header-cta { min-height: clamp(44px, 3.45vw, 56px); padding-inline: clamp(18px, 1.3vw, 24px); font-size: clamp(.72rem, .76vw, .9rem); }
.cta > i { position: relative; z-index: 1; flex: 0 0 auto; font-size: 1.25em; line-height: 1; }
.hero__copy > p:not(.emergency-badge) { font-size: clamp(.85rem, .95vw, 1rem); }
.inquiry input, .inquiry textarea { border: 1px solid #b8b8b8; border-radius: var(--radius-md); box-shadow: inset 0 0 0 1px rgba(20,20,20,.04); }
@media (min-width: 901px) { .inquiry { width: min(474px, 33.6%); min-height: clamp(400px, 30vw, 470px); padding: clamp(32px, 2.4vw, 44px) clamp(23px, 1.8vw, 34px) clamp(28px, 2.1vw, 38px); }.inquiry form { gap: clamp(10px, .75vw, 13px); }.inquiry input { min-height: clamp(46px, 3vw, 52px); }.inquiry textarea { min-height: clamp(66px, 4.2vw, 76px); }.inquiry .button { min-height: clamp(46px, 3.2vw, 54px); font-size: clamp(.72rem, .76vw, .9rem); line-height: 1; } }
@media (max-width: 900px) { .page { padding: 0; }.hero { min-height: 700px; }.site-header { width: calc(100% - 38px); grid-template-columns: 170px 1fr auto; }.site-nav { display: none; }.hero__copy { margin-left: 7%; }.hero__photo { right: 3%; width: 37%; }.inquiry { top: auto; bottom: 80px; left: auto; right: 6%; width: 34%; transform: none; }.van { width: 43%; } }
@media (max-width: 650px) { .page { padding: 0; }.hero { min-height: 930px; border-radius: 0; }.site-header { width: calc(100% - 24px); margin-top: 8px; grid-template-columns: 1fr auto; min-height: 56px; }.header-phone { display: none; }.header-cta { font-size: .53rem; }.hero__copy { width: auto; margin: 71px 26px 0; }.hero__copy > p:not(.emergency-badge) { font-size: .68rem; }.hero__copy .button { width: 100%; }.hero__photo { top: 385px; right: 26px; bottom: auto; left: 26px; width: auto; height: 300px; }.inquiry { top: 485px; right: 41px; bottom: auto; width: calc(100% - 82px); }.van { bottom: 3px; width: 73%; } }
@media (min-width: 651px) and (max-width: 900px) { .hero { --nav-edge: 19px; }.hero__photo { right: var(--nav-edge); width: 30%; }.inquiry { right: auto; left: calc(85% - var(--nav-edge)); width: 30%; transform: translateX(-50%); } }
@media (max-width: 650px) { .hero__photo { right: 12px; } }
@media (max-width: 650px) { .hero__copy > p:not(.emergency-badge) { font-size: .85rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; }.header-cta:hover, .hero__copy .button:hover, .header-cta:focus-visible, .hero__copy .button:focus-visible { transform: none; scale: 1; }.header-cta::before, .hero__copy .button::before { display: none; animation: none !important; }.header-cta:active, .button:active { scale: 1; } a:not(.brand):not(.header-cta):not(.button)::after { transition: none; } }

.trust-strip { width: 100%; border-block: 1px solid rgba(255,255,255,.08); background: var(--color-bg-primary-alt); }
.trust-strip__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: var(--layout-content-width); margin: 0 auto; padding: clamp(17px, 1.45vw, 25px) 0; list-style: none; }
.trust-strip__item { display: flex; align-items: center; justify-content: flex-start; gap: clamp(9px, .8vw, 14px); min-height: 32px; padding: 0 clamp(14px, 1.35vw, 24px); color: var(--color-text-on-dark); font-family: var(--font-body); font-size: clamp(.72rem, .82vw, .95rem); font-weight: 700; line-height: 1.25; text-align: left; text-wrap: balance; }
.trust-strip__item:first-child { padding-left: 0; }
.trust-strip__item:nth-child(2), .trust-strip__item:nth-child(3) { justify-content: center; }
.trust-strip__item:last-child { justify-content: flex-end; padding-right: 0; }
.trust-strip__item + .trust-strip__item { border-left: 1px solid rgba(255,255,255,.12); }
.trust-strip__item .ph { flex: 0 0 auto; color: var(--color-accent); font-size: clamp(1.2rem, 1.35vw, 1.55rem); line-height: 1; }

@media (max-width: 900px) { .trust-strip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px 0; }.trust-strip__item { justify-content: flex-start; padding-block: clamp(12px, 1.6vw, 17px); }.trust-strip__item:nth-child(odd) { border-left: 0; }.trust-strip__item:nth-child(n + 3) { border-top: 1px solid rgba(255,255,255,.12); } }
@media (max-width: 520px) { .trust-strip__list { grid-template-columns: 1fr; width: min(100% - 40px, 480px); }.trust-strip__item { min-height: 42px; padding-inline: 0; }.trust-strip__item + .trust-strip__item { border-top: 1px solid rgba(255,255,255,.12); border-left: 0; } }

/* Dodávka může přesáhnout do trust stripu. */
.hero { z-index: 1; overflow: visible; }
.trust-strip { position: relative; z-index: 0; }
.van { bottom: -43px; width: min(648px, 46.8%); pointer-events: none; }
@media (max-width: 900px) { .van { bottom: -36px; width: 51.6%; } }
@media (max-width: 650px) { .van { bottom: -30px; width: 87.6%; } }

/* Ikona a popisek sdílí jednu osu. */
.header-phone { display: inline-flex; align-items: center; gap: .42em; line-height: 1; }
.header-phone__icon, .emergency-badge .ph, .cta > i, .trust-strip__item .ph { display: inline-grid; place-items: center; width: 1em; height: 1em; line-height: 1; translate: 0 -.04em; }
.trust-strip__item { align-items: center; }
.trust-strip__item > span { display: block; padding-top: .06em; }
.emergency-badge .ph { transform: translateY(0); translate: 0 .02em; }
.trust-strip__item { align-items: flex-start; justify-content: flex-start; min-height: 54px; }.trust-strip__item:nth-child(2), .trust-strip__item:nth-child(3), .trust-strip__item:last-child { justify-content: flex-start; }.trust-strip__item:not(:first-child) { padding-left: clamp(14px, 1.35vw, 24px); }.trust-strip__item .ph { margin-top: .24em; }.trust-strip__copy { min-width: 0; padding-top: 0 !important; }.trust-strip__copy strong, .trust-strip__copy small { display: block; }.trust-strip__copy strong { color: var(--color-text-on-dark); font-size: 1em; line-height: 1.25; }.trust-strip__copy small { margin-top: 4px; color: var(--color-text-on-dark-muted); font-size: .86em; font-weight: 500; line-height: 1.25; }

/* KONEC: 01. Základ, navigace, hero a trust strip */
/* ZAČÁTEK: 02. Služby a CTA marquee */
.services { overflow: hidden; padding: clamp(78px, 8vw, 138px) 0 clamp(54px, 5vw, 86px); background: var(--color-bg-primary); }
.services__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; width: var(--layout-content-width); margin: 0 auto clamp(35px, 4vw, 68px); }
.services__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin-bottom: clamp(19px, 1.8vw, 30px); padding: 0 25px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }
.services__eyebrow .ph { display: inline-grid; place-items: center; width: 1em; height: 1em; color: var(--color-accent); font-size: 1.15em; line-height: 1; translate: 0 -.035em; }
.services h2 { max-width: 900px; margin: 0; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.2rem, 4.2vw, 5.25rem); font-weight: 400; line-height: .96; letter-spacing: -.018em; text-transform: uppercase; text-wrap: balance; }
.services__controls { display: flex; gap: 12px; padding-bottom: 4px; }
.services__control { display: inline-grid; place-items: center; width: clamp(44px, 3.4vw, 58px); height: clamp(44px, 3.4vw, 58px); padding: 0; border: 0; border-radius: 50%; background: transparent; box-shadow: inset 0 0 0 1px rgba(255,255,255,.68); color: var(--color-text-on-dark); cursor: pointer; transition: box-shadow .18s ease, background-color .18s ease, color .18s ease, scale .18s ease; }
.services__control .ph { font-size: 1.2rem; line-height: 1; }
.services__control:hover, .services__control:focus-visible { background: var(--color-accent); box-shadow: inset 0 0 0 1px var(--color-accent); color: var(--color-text-on-light); outline: none; }
.services__control:active { scale: .96; }
.services__viewport { width: var(--layout-content-width); margin: 0 auto; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.services__viewport::-webkit-scrollbar { display: none; }
.services__viewport:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 5px; }
.services__track { display: grid; grid-auto-columns: calc((100% - 3 * clamp(14px, 1.15vw, 22px)) / 4); grid-auto-flow: column; gap: clamp(14px, 1.15vw, 22px); padding: 0 0 clamp(32px, 2.8vw, 46px); }
.service-card { --service-card-overhang: clamp(30px, 3vw, 46px); position: relative; min-width: 0; height: calc(clamp(360px, 32vw, 535px) + var(--service-card-overhang)); overflow: visible; scroll-snap-align: start; }
.service-card > img { display: block; width: 100%; height: calc(100% - var(--service-card-overhang) - 14px); border-radius: clamp(10px, .7vw, 14px); object-fit: cover; outline: 1px solid rgba(255,255,255,.1); outline-offset: -1px; filter: saturate(.82) contrast(1.04); }
.service-card::after { content: ""; position: absolute; top: 0; right: 0; bottom: calc(var(--service-card-overhang) + 14px); left: 0; border-radius: clamp(10px, .7vw, 14px); background: linear-gradient(180deg, transparent 47%, rgba(0,0,0,.34)); pointer-events: none; }
.service-card__info { position: absolute; z-index: 1; right: clamp(10px, 1vw, 17px); bottom: 12px; display: flex; width: min(68%, 258px); min-height: clamp(198px, 15vw, 224px); padding: clamp(16px, 1.15vw, 21px); border-radius: var(--radius-md); flex-direction: column; justify-content: space-between; gap: clamp(12px, 1vw, 17px); background: var(--color-bg-light); color: var(--color-text-on-light); box-shadow: 0 14px 28px rgba(0,0,0,.26); }
.service-card__info > .ph { display: inline-grid; place-items: center; width: 1.1em; height: 1.1em; margin: 0; color: var(--color-accent); font-size: clamp(1.35rem, 1.65vw, 2rem); line-height: 1; }
.service-card__info h3 { margin: 0; font-family: var(--font-display); font-size: clamp(1.1rem, 1.25vw, 1.55rem); font-weight: 400; line-height: .98; letter-spacing: -.01em; text-transform: uppercase; }
.service-card__info p { margin: 0; color: #4d4d4d; font-size: clamp(.74rem, .78vw, .9rem); font-weight: 500; line-height: 1.38; text-wrap: pretty; }
.services__pagination { display: flex; justify-content: center; align-items: center; gap: 8px; width: var(--layout-content-width); margin: 14px auto 0; }
.services__pagination button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.34); cursor: pointer; transform: scale(1); transition: background-color .24s cubic-bezier(.2,0,0,1), transform .24s cubic-bezier(.2,0,0,1); }
.services__pagination button[aria-current="true"] { background: var(--color-accent); transform: scale(1.28); }
.services__pagination button:focus-visible { outline: 2px solid var(--color-text-on-dark); outline-offset: 3px; }

@media (max-width: 900px) { .services__header { align-items: flex-start; }.services__track { grid-auto-columns: calc((100% - clamp(14px, 1.8vw, 22px)) / 2); }.service-card { height: calc(clamp(400px, 52vw, 540px) + var(--service-card-overhang)); } }
@media (max-width: 900px) { .trust-strip__item:nth-child(2), .trust-strip__item:nth-child(3), .trust-strip__item:last-child { justify-content: flex-start; }.trust-strip__item:last-child { padding-right: clamp(14px, 1.35vw, 24px); } }
@media (max-width: 620px) { .services { padding-top: 68px; }.services__header { align-items: flex-start; flex-direction: column; gap: 23px; margin-bottom: 34px; }.services h2 { font-size: clamp(2.25rem, 11.2vw, 4rem); }.services__controls { align-self: flex-end; margin-top: -12px; }.services__viewport { width: calc(100% - 24px); }.services__track { grid-auto-columns: minmax(0, 84%); padding-right: 22px; padding-bottom: 52px; }.service-card { height: calc(min(112vw, 515px) + var(--service-card-overhang)); }.service-card__info { bottom: 12px; width: 68%; min-height: 198px; }.services__pagination { margin-top: 18px; } }
@media (prefers-reduced-motion: reduce) { .services__viewport { scroll-behavior: auto; }.services__control, .services__pagination button { transition: none; } }

@keyframes marquee-scroll { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
.cta-marquee { position: relative; z-index: 1; width: 100%; margin-top: -30px; overflow: hidden; border-block: 1px solid rgba(20,20,20,.7); background: var(--color-accent); }
.marquee__link { display: block; overflow: hidden; color: var(--color-text-on-light); outline-offset: -5px; }
.marquee__track { display: flex; width: max-content; backface-visibility: hidden; will-change: transform; animation: marquee-scroll 46s linear infinite; }
.marquee__group { display: flex; flex: 0 0 auto; align-items: center; gap: clamp(36px, 3.5vw, 72px); padding: clamp(18px, 1.5vw, 28px) clamp(18px, 1.8vw, 34px); }
.marquee__item { display: inline-flex; align-items: center; gap: .35em; white-space: nowrap; font-family: var(--font-display); font-size: clamp(1.45rem, 2.25vw, 3rem); font-weight: 400; line-height: .85; letter-spacing: -.012em; text-transform: uppercase; }
.marquee__item .ph { font-size: .92em; line-height: 1; translate: 0 -.045em; }
.marquee__link:hover .marquee__track, .marquee__link:focus-visible .marquee__track { animation-play-state: paused; }
.marquee__link:focus-visible { outline: 3px solid var(--color-text-on-dark); }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation: none; transform: none; }.marquee__group[aria-hidden="true"] { display: none; } }

/* KONEC: 02. Služby a CTA marquee */
/* ZAČÁTEK: 03. Proces a Proč my */
/* Proces navazuje na mřížku služeb. */
.process { padding: clamp(34px, 3vw, 52px) 0 clamp(72px, 6.5vw, 108px); background: var(--color-bg-primary-alt); }
.process__header { display: flex; align-items: end; justify-content: space-between; gap: clamp(35px, 6vw, 130px); width: var(--layout-content-width); margin: 0 auto clamp(34px, 3.4vw, 52px); }
.process__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin: 0 0 clamp(19px, 1.8vw, 30px); padding: 0 25px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }
.process__eyebrow .ph { display: inline-grid; place-items: center; width: 1em; height: 1em; color: var(--color-accent); font-size: 1.15em; line-height: 1; translate: 0 -.035em; }
.process h2 { max-width: 760px; margin: 0; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.25rem, 4.2vw, 5.25rem); font-weight: 400; line-height: .93; letter-spacing: -.022em; text-transform: uppercase; text-wrap: balance; }
.process__intro { position: relative; align-self: flex-start; width: min(100%, 390px); margin: clamp(58px, 5vw, 84px) 0 0; padding-bottom: 17px; color: var(--color-text-on-dark-muted); font-size: clamp(.9rem, 1vw, 1.15rem); font-weight: 500; line-height: 1.45; text-wrap: pretty; }.process__intro::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; width: 46px; height: 2px; background: var(--color-accent); }
.process__grid { display: grid; grid-template-areas: "inquiry assessment cutting" "inquiry cleanup cleanup"; grid-template-columns: minmax(250px, .45fr) repeat(2, minmax(0, .6fr)); grid-template-rows: repeat(2, clamp(280px, 20vw, 340px)); gap: clamp(14px, 1.25vw, 24px); width: var(--layout-content-width); margin: 0 auto; }
.process-card { position: relative; min-width: 0; overflow: hidden; border-radius: var(--radius-md); background: #101010; color: var(--color-text-on-dark); box-shadow: inset 0 0 0 1px rgba(255,255,255,.09); }
.process-card--inquiry { grid-area: inquiry; }.process-card--assessment { grid-area: assessment; }.process-card--cutting { grid-area: cutting; }.process-card--cleanup { grid-area: cleanup; }
.process-card > img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.68) contrast(1.08); }.process-card--inquiry > img { object-position: 56% center; }.process-card--cutting > img { object-position: 60% center; }.process-card--cleanup > img { object-position: 52% center; }
.process-card--inquiry::after, .process-card--cutting::after, .process-card--cleanup::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.05) 23%, rgba(10,10,10,.92) 100%); pointer-events: none; }.process-card__contact-sheet { position: absolute; z-index: 1; right: -8px; bottom: 14px; display: grid; width: 48%; gap: 7px; transform: rotate(6deg); }.process-card__contact-sheet img { width: 100%; aspect-ratio: 1.2; padding: 5px; background: #f5f5f5; box-shadow: 0 10px 20px rgba(0,0,0,.28); object-fit: cover; }.process-card__contact-sheet img:last-child { width: 86%; justify-self: start; transform: translateX(-15px) rotate(-9deg); }
.process-card__copy { position: absolute; z-index: 1; right: clamp(17px, 1.6vw, 30px); bottom: clamp(17px, 1.6vw, 30px); left: clamp(17px, 1.6vw, 30px); display: grid; grid-template-columns: auto 1fr; gap: 12px 18px; align-items: start; }.process-card--inquiry .process-card__copy, .process-card--cutting .process-card__copy { top: clamp(20px, 1.6vw, 28px); bottom: auto; }
.process-card__number { display: block; color: var(--color-accent); font-family: var(--font-display); font-size: clamp(2.3rem, 3.2vw, 4rem); font-weight: 400; line-height: .78; letter-spacing: -.03em; }
.process-card__copy h3, .process-card--assessment h3 { margin: 0 0 .55em; font-family: var(--font-display); font-size: clamp(1.03rem, 1.22vw, 1.46rem); font-weight: 400; line-height: .98; letter-spacing: -.012em; text-transform: uppercase; }.process-card__copy p:not(.process-card__meta), .process-card--assessment p:not(.process-card__meta) { margin: 0; color: rgba(255,255,255,.76); font-size: clamp(.74rem, .76vw, .88rem); font-weight: 500; line-height: 1.42; text-wrap: pretty; }.process-card__meta { margin: 0 0 9px; color: var(--color-accent); font-size: clamp(.56rem, .57vw, .68rem); font-weight: 700; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.process-card--assessment { display: grid; grid-template-columns: auto 1fr; align-content: end; gap: 16px; padding: clamp(20px, 1.5vw, 28px); background: linear-gradient(145deg, #ff8437, var(--color-accent)); color: var(--color-text-on-light); box-shadow: none; }.process-card--assessment .process-card__number, .process-card--assessment .process-card__meta { color: var(--color-text-on-light); }.process-card--assessment p:not(.process-card__meta) { color: rgba(20,20,20,.84); }
.process-card--cutting { display: grid; grid-template-columns: minmax(0, 1fr) minmax(82px, 37%); }.process-card--cutting > img { grid-column: 2; }.process-card--cutting::before { content: "BEZPEČNÝ PERIMETR"; position: absolute; z-index: 2; right: -22px; bottom: 24px; left: 41%; height: 27px; border-block: 1px solid rgba(20,20,20,.42); background: repeating-linear-gradient(135deg, #f5f5f5 0 17px, #f5f5f5 17px 29px, #df572c 29px 47px, #df572c 47px 59px); box-shadow: 0 5px 10px rgba(0,0,0,.26); color: #141414; font-size: .52rem; font-weight: 700; letter-spacing: .11em; line-height: 25px; text-align: center; text-shadow: 0 1px rgba(255,255,255,.2); transform: rotate(-7deg); }.process-card--cutting::after { background: linear-gradient(90deg, rgba(10,10,10,.97) 0 52%, rgba(10,10,10,.47) 77%, transparent 100%); }.process-card--cutting .process-card__copy { right: 38%; }.process-card--cutting .process-card__number { color: var(--color-text-on-dark); }
.process-card--cleanup::after { background: linear-gradient(90deg, #101010 0 43%, rgba(10,10,10,.91) 49%, rgba(10,10,10,.24) 69%, rgba(10,10,10,.08) 100%); }.process-card--cleanup .process-card__copy { top: clamp(20px, 1.65vw, 30px); right: 54%; bottom: auto; }.process-card--cleanup::before { content: "PŘED  →  PO"; position: absolute; z-index: 2; top: 18px; right: 20px; padding: 7px 10px; background: rgba(10,10,10,.78); color: var(--color-text-on-dark); font-size: .58rem; font-weight: 700; letter-spacing: .11em; line-height: 1; }
@media (max-width: 1080px) { .process__grid { grid-template-areas: "inquiry assessment" "cutting cleanup"; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; }.process-card--inquiry, .process-card--cleanup { min-height: 360px; }.process-card--cutting { min-height: 250px; }.process-card--cutting .process-card__copy { right: 38%; } }
@media (max-width: 700px) { .process { padding-block: 64px; }.process__header { align-items: flex-start; flex-direction: column; gap: 21px; margin-bottom: 37px; }.process h2 { font-size: clamp(2.4rem, 12vw, 4.1rem); }.process__intro { align-self: auto; max-width: 400px; margin-top: 0; font-size: .94rem; }.process__grid { grid-template-areas: "inquiry" "assessment" "cutting" "cleanup"; grid-template-columns: 1fr; grid-template-rows: none; gap: 14px; }.process-card--inquiry, .process-card--cleanup { min-height: 340px; }.process-card--assessment, .process-card--cutting { min-height: 220px; }.process-card--cutting .process-card__copy { right: 40%; }.process-card--cleanup .process-card__copy { right: 42%; }.process-card__copy { gap: 10px 14px; }.process-card__copy h3, .process-card--assessment h3 { font-size: 1.15rem; }.process-card__copy p:not(.process-card__meta), .process-card--assessment p:not(.process-card__meta) { font-size: .78rem; } }

/* Krok: číslo, nadpis, popis a fotografie. */
.process-card__contact-sheet { display: none; }
.process-card--inquiry::before, .process-card--cutting::before, .process-card--cleanup::before { content: none; }
.process-card__copy { display: block; }
.process-card__number { margin-bottom: clamp(11px, .9vw, 16px); font-size: clamp(2rem, 2.5vw, 3.1rem); line-height: .8; }
.process-card__copy h3, .process-card--assessment h3 { margin-bottom: clamp(11px, .9vw, 15px); font-size: clamp(1.24rem, 1.55vw, 1.9rem); line-height: .94; }
.process-card__copy p:not(.process-card__meta), .process-card--assessment p:not(.process-card__meta) { font-size: clamp(.72rem, .76vw, .9rem); line-height: 1.46; }
.process-card--inquiry .process-card__copy { top: clamp(23px, 1.65vw, 31px); right: clamp(17px, 1.6vw, 30px); bottom: auto; }
.process-card--assessment { display: grid; grid-template-columns: minmax(0, 55%) minmax(0, 45%); padding: 0; background: linear-gradient(145deg, #ff8437 0%, var(--color-accent) 73%, #df6920 100%); }
.process-card--assessment .process-card__copy { position: relative; inset: auto; align-self: start; padding: clamp(23px, 2vw, 34px) clamp(18px, 1.55vw, 27px); }
.process-card--assessment .process-card__number { color: var(--color-text-on-light); }
.process-card--cutting { display: flex; flex-direction: column; background: #101010; }
.process-card--cutting > img { width: 100%; height: 43%; margin-top: auto; object-position: center 58%; }
.process-card--cutting::after { display: none; }
.process-card--cutting .process-card__copy { top: clamp(22px, 1.6vw, 29px); right: clamp(17px, 1.6vw, 30px); bottom: auto; }
.process-card--cleanup { background: #101010; }
.process-card--cleanup > img { position: absolute; bottom: 0; left: 0; width: 55%; height: 43%; object-position: center; }
.process-card--cleanup::after { display: none; }
.process-card--cleanup .process-card__copy { top: clamp(20px, 1.65vw, 30px); right: auto; bottom: auto; width: 47%; }
.process-card--cleanup .process-card__copy h3 { white-space: nowrap; font-size: clamp(1.05rem, 1.32vw, 1.64rem); }
@media (max-width: 700px) { .process-card--assessment { min-height: 315px; }.process-card--assessment .process-card__copy { padding: 22px 18px; }.process-card--cutting { min-height: 280px; }.process-card--cleanup { min-height: 310px; }.process-card--cleanup .process-card__copy { right: auto; width: 52%; }.process-card--cleanup > img { width: 58%; } }

/* Fotografie zůstává pod vlastním popisem. */
.process-card--inquiry { display: flex; flex-direction: column; background: #101010; }
.process-card--inquiry > img { position: absolute; right: 0; bottom: 0; left: 0; width: 100%; height: 47%; object-position: center 54%; }
.process-card--inquiry::after { display: none; }
.process-card--assessment { display: block; }
.process-card--assessment .process-card__copy { position: absolute; z-index: 1; top: 0; right: 0; left: 0; padding: clamp(23px, 2vw, 34px) clamp(18px, 1.55vw, 27px); }
.process-card--cleanup .process-card__copy { width: 55%; }
@media (max-width: 700px) { .process-card--assessment .process-card__copy { padding: 22px 18px; }.process-card--cleanup .process-card__copy { width: 55%; } }

/* Proces: kontrastní dokumenty nad fotografiemi. */
.process-card { background: #101010; box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
.process-card__copy { position: absolute; z-index: 3; display: grid; grid-template-columns: auto 1fr; gap: 0 13px; align-items: start; }
.process-card__number { grid-column: 1; margin: 0; color: var(--color-accent); font-size: clamp(2.05rem, 2.5vw, 3.1rem); line-height: .78; }
.process-card__meta { grid-column: 2; margin: .23em 0 0; color: rgba(255,255,255,.76); font-size: clamp(.49rem, .5vw, .6rem); font-weight: 700; letter-spacing: .13em; line-height: 1; text-transform: uppercase; }
.process-card__copy > div { grid-column: 1 / -1; margin-top: clamp(12px, .9vw, 17px); }
.process-card__copy h3, .process-card--assessment h3 { margin: 0 0 8px; font-size: clamp(1.18rem, 1.43vw, 1.76rem); line-height: .93; }
.process-card__copy p:not(.process-card__meta), .process-card--assessment p:not(.process-card__meta) { font-size: clamp(.66rem, .7vw, .8rem); line-height: 1.38; }
.process-card--inquiry { display: block; }.process-card--inquiry > img { position: absolute; inset: 0; width: 100%; height: 100%; object-position: 56% center; }.process-card--inquiry::after { display: block; background: linear-gradient(180deg, rgba(10,10,10,.5) 0%, rgba(10,10,10,.13) 45%, rgba(10,10,10,.52) 100%); }.process-card--inquiry .process-card__copy { top: clamp(19px, 1.45vw, 26px); right: clamp(14px, 1.25vw, 23px); left: clamp(14px, 1.25vw, 23px); bottom: auto; }.process-card--inquiry .process-card__contact-sheet { display: grid; z-index: 4; right: -11px; bottom: 39px; width: 43%; gap: 6px; }.process-card--inquiry .process-card__contact-sheet img { height: auto; aspect-ratio: 1.18; padding: 4px; background: #f5f5f5; box-shadow: 0 9px 17px rgba(0,0,0,.3); }.process-card--inquiry .process-card__contact-sheet img:last-child { width: 88%; transform: translateX(-15px) rotate(-9deg); }
.process-card--inquiry::before { content: "FOTKY\A LOKALITA\A STRUČNÝ POPIS"; position: absolute; z-index: 5; right: 17px; bottom: 11px; padding: 10px 12px; background: #f5f5f5; color: #141414; font-size: .5rem; font-weight: 700; letter-spacing: .08em; line-height: 1.5; white-space: pre-line; transform: rotate(-7deg); box-shadow: 0 8px 15px rgba(0,0,0,.25); }
.process-card--assessment { display: block; padding: 0; background: linear-gradient(145deg, #fb8536 0%, var(--color-accent) 76%, #de661d 100%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.17); }.process-card--assessment .process-card__copy { top: clamp(21px, 1.55vw, 28px); right: clamp(18px, 1.55vw, 28px); left: clamp(18px, 1.55vw, 28px); bottom: auto; }.process-card--assessment .process-card__number, .process-card--assessment .process-card__meta { color: #141414; }.process-card--assessment .process-card__copy p:not(.process-card__meta) { color: rgba(20,20,20,.86); }.process-card--assessment::after { content: "POSOUZENÍ RIZIK\A POSTUP PRACÍ\A KONEČNÁ CENA\A TERMÍN ZÁSAHU"; position: absolute; right: 42%; bottom: 16px; left: 19px; padding: 12px 13px; background: #101010; color: rgba(255,255,255,.73); font-size: clamp(.49rem, .53vw, .62rem); font-weight: 600; letter-spacing: .11em; line-height: 1.55; white-space: pre-line; }.process-card__proof { display: block; position: absolute; z-index: 3; right: -12px; bottom: 14px; padding: 15px 28px 14px 17px; background: #f5f5f5; color: #141414; font-size: clamp(.51rem, .54vw, .63rem); font-weight: 700; letter-spacing: .09em; line-height: 1.45; transform: rotate(-6deg); box-shadow: 0 9px 18px rgba(0,0,0,.24); }
.process-card--cutting { display: block; }.process-card--cutting > img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-position: 70% center; }.process-card--cutting::after { display: block; background: linear-gradient(90deg, rgba(10,10,10,.91) 0%, rgba(10,10,10,.72) 49%, rgba(10,10,10,.06) 74%); }.process-card--cutting .process-card__copy { top: clamp(19px, 1.45vw, 26px); right: 40%; left: clamp(15px, 1.3vw, 24px); bottom: auto; }.process-card--cutting::before { content: "BEZPEČNÝ PERIMETR"; position: absolute; z-index: 4; right: -22px; bottom: 25px; left: 42%; height: 27px; border-block: 1px solid rgba(20,20,20,.42); background: repeating-linear-gradient(135deg, #f5f5f5 0 17px, #f5f5f5 17px 29px, #df572c 29px 47px, #df572c 47px 59px); box-shadow: 0 5px 10px rgba(0,0,0,.26); color: #141414; font-size: .52rem; font-weight: 700; letter-spacing: .11em; line-height: 25px; text-align: center; transform: rotate(-7deg); }
.process-card--cleanup > img { position: absolute; inset: 0; width: 100%; height: 100%; object-position: 50% center; }.process-card--cleanup::after { display: block; background: linear-gradient(90deg, #101010 0 35%, rgba(10,10,10,.94) 46%, rgba(10,10,10,.15) 71%, rgba(10,10,10,.06) 100%); }.process-card--cleanup .process-card__copy { top: clamp(18px, 1.45vw, 25px); right: 53%; left: clamp(18px, 1.4vw, 26px); bottom: auto; }.process-card--cleanup .process-card__copy h3 { white-space: nowrap; font-size: clamp(1.04rem, 1.27vw, 1.58rem); }.process-card__before-after { z-index: 4; top: 18px; right: 18px; bottom: auto; width: auto; display: flex; gap: clamp(60px, 6vw, 116px); overflow: visible; border: 0; background: none; }.process-card__before-after span { margin: 0; background: rgba(10,10,10,.78); }.process-card__before-after span:last-child { background: var(--color-accent); }
@media (max-width: 700px) { .process-card--inquiry .process-card__contact-sheet { bottom: 22px; }.process-card--assessment::after { right: 45%; }.process-card--cutting .process-card__copy { right: 39%; }.process-card--cleanup .process-card__copy { right: 47%; width: auto; }.process-card__before-after { gap: 38px; } }

/* Jemné doladění typografie procesních karet. */
.process-card__copy h3, .process-card--assessment h3 { font-size: clamp(1.32rem, 1.62vw, 2rem); }
.process-card__copy p:not(.process-card__meta), .process-card--assessment p:not(.process-card__meta) { font-size: clamp(.72rem, .77vw, .9rem); line-height: 1.42; }
.process-card--assessment .process-card__copy { padding: 0; left: clamp(18px, 1.55vw, 28px); }
.process-card--cleanup .process-card__copy h3 { font-size: clamp(1.15rem, 1.42vw, 1.72rem); }

/* Bez pomocných štítků. */
.process-card--inquiry::before, .process-card--assessment::after, .process-card--cutting::before, .process-card--cleanup::before { content: none; }
.process-card__copy h3, .process-card--assessment h3 { font-size: clamp(1.44rem, 1.78vw, 2.16rem); }
.process-card--cleanup .process-card__copy h3 { font-size: clamp(1.26rem, 1.55vw, 1.9rem); }

/* ==========================================================================
   SEKCE: Proč my (.why-us)
   ========================================================================== */
.why-us {
  padding: clamp(64px, 6.5vw, 108px) 0 clamp(72px, 7.5vw, 120px);
  background: var(--color-bg-primary);
}

/* Badge ve stejném stylu jako ostatní sekce. */
.why-us__header {
  width: var(--layout-content-width);
  margin: 0 auto clamp(38px, 4vw, 62px);
  text-align: center;
}
.why-us__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin-bottom: clamp(19px, 1.8vw, 30px); padding: 0 25px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }
.why-us__eyebrow .ph { display: inline-grid; place-items: center; width: 1em; height: 1em; color: var(--color-accent); font-size: 1.15em; line-height: 1; translate: 0 -.035em; }
.why-us h2 { max-width: 900px; margin: 0 auto; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.2rem, 4.2vw, 5.25rem); font-weight: 400; line-height: .96; letter-spacing: -.018em; text-transform: uppercase; text-wrap: balance; }

/* Výhody vlevo, fotografie vpravo. */
.why-us__body {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr; /* Užší fotografie jsou vyšší. */
  gap: clamp(32px, 3.5vw, 60px);
  align-items: start; /* Výška zůstává přirozená. */
  width: var(--layout-content-width);
  margin: 0 auto;
}

/* Čtyři výhody bez dělících linek. */
.why-us__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; min-width: 0; }
.why-us__item { display: flex; align-items: flex-start; gap: clamp(14px, 1.4vw, 20px); padding: clamp(14px, 1.3vw, 22px) 0; }

/* Pohotovost zůstává zvýrazněná. */
.why-us__item--highlighted {
  padding-inline: clamp(11px, 1vw, 16px);
  margin-inline: calc(-1 * clamp(11px, 1vw, 16px));
  border-radius: var(--radius-sm);
  background: #1c1007;
}

/* Tmavý kruh s oranžovou ikonou. */
.why-us__item-icon { display: grid; place-items: center; flex-shrink: 0; width: clamp(42px, 3.4vw, 52px); height: clamp(42px, 3.4vw, 52px); border-radius: 50%; background: rgba(255,255,255,.07); color: var(--color-accent); font-size: clamp(1.15rem, 1.3vw, 1.5rem); line-height: 1; }
.why-us__item--highlighted .why-us__item-icon { background: var(--color-accent); color: #fff; }
.why-us__item--highlighted .why-us__item-body h3 { color: var(--color-accent); }

.why-us__item-body { min-width: 0; padding-top: .14em; }
.why-us__item-body h3 { margin: 0 0 5px; color: var(--color-text-on-dark); font-family: var(--font-body); font-size: clamp(.84rem, .92vw, 1.05rem); font-weight: 700; line-height: 1.1; letter-spacing: .01em; text-transform: uppercase; }
.why-us__item-body p { margin: 0; color: var(--color-text-on-dark-muted); font-size: clamp(.76rem, .8vw, .9rem); line-height: 1.5; text-wrap: pretty; }

/* Pravý obrazový sloupec. */
.why-us__right {
  display: grid;
  grid-template-columns: 1fr 0.6fr;
  gap: clamp(8px, .7vw, 12px);
  min-width: 0; /* Bez přetečení mřížky. */
}

/* Vlevo foto, pod ním CTA. */
.why-us__photo-col {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, .7vw, 11px);
  min-width: 0; /* Bez přetečení mřížky. */
}

/* Fotky sdílí radius a obrys webu. */
.why-us__photo { overflow: hidden; border-radius: var(--radius-md); min-width: 0; }
.why-us__photo img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.04); outline: 1px solid rgba(255,255,255,.1); outline-offset: -1px; }

/* Levá fotka je záměrně vyšší. */
.why-us__photo--left { aspect-ratio: 3 / 4.2; }

/* Pravá fotka vyplní výšku sloupce. */
.why-us__photo--right { height: 100%; }

/* Telefonní CTA sdílí pohyb s hero tlačítkem. */
.why-us__phone-cta {
  display: flex;
  flex-shrink: 0;
  width: 100%;
  min-height: clamp(46px, 4vw, 64px);
  padding-inline: clamp(20px, 1.5vw, 28px);
  font-size: clamp(.75rem, .85vw, 1rem);
}
.why-us__phone-cta > i {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  font-size: 1.1em;
  line-height: 1;
  translate: 0 -.03em;
}

/* Menší obrazovky. */
@media (max-width: 900px) {
  .why-us__body { grid-template-columns: 1fr; gap: 36px; }
  .why-us__right { grid-template-columns: 1fr 0.6fr; height: auto; }
}

@media (max-width: 600px) {
  .why-us h2 { font-size: clamp(2.2rem, 10vw, 3.4rem); }
  .why-us__right { grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .why-us__photo-col { padding: 0; }
  .why-us__photo--left { min-height: 220px; }
  .why-us__photo--right { height: 260px; }
}

@media (prefers-reduced-motion: reduce) {
  .why-us__phone-cta { transition: none !important; }
  .why-us__phone-cta::before { display: none; animation: none !important; }
}

/* Proč my: kompaktní důkazní sekce. */
.why-us { padding: clamp(84px, 8vw, 138px) 0 clamp(90px, 8.5vw, 148px); background: var(--color-bg-primary); }
.why-us__header { width: var(--layout-content-width); margin: 0 auto clamp(34px, 3.5vw, 58px); text-align: left; }
.why-us__eyebrow { margin: 0 0 clamp(19px, 1.8vw, 30px); }
.why-us h2 { max-width: 970px; margin: 0; font-size: clamp(2.55rem, 4.75vw, 5.9rem); line-height: .93; text-wrap: balance; }
.why-us__body { grid-template-columns: minmax(0, 1.07fr) minmax(390px, .93fr); gap: clamp(34px, 4.3vw, 76px); align-items: stretch; }
.why-us__list { gap: clamp(10px, .8vw, 14px); }
.why-us__item { align-items: center; min-height: clamp(86px, 7.1vw, 116px); padding: clamp(15px, 1.35vw, 23px) clamp(16px, 1.45vw, 25px); border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius-md); background: rgba(255,255,255,.025); box-shadow: 0 12px 24px rgba(0,0,0,.08); }
.why-us__item--highlighted { margin: 0; padding-inline: clamp(16px, 1.45vw, 25px); border-color: rgba(242,119,38,.82); background: linear-gradient(100deg, rgba(242,119,38,.18), rgba(242,119,38,.06)); box-shadow: inset 0 0 0 1px rgba(242,119,38,.1), 0 12px 24px rgba(0,0,0,.08); }
.why-us__item-icon { width: clamp(40px, 3vw, 50px); height: clamp(40px, 3vw, 50px); border-radius: 0; background: transparent; color: var(--color-accent); font-size: clamp(1.38rem, 1.55vw, 1.82rem); }
.why-us__item--highlighted .why-us__item-icon { background: transparent; color: var(--color-accent); }.why-us__item--highlighted .why-us__item-body h3 { color: var(--color-text-on-dark); }
.why-us__item-body { padding-top: 0; }.why-us__item-body h3 { margin-bottom: 7px; font-size: clamp(.88rem, .98vw, 1.16rem); letter-spacing: .025em; }.why-us__item-body p { max-width: 620px; font-size: clamp(.76rem, .84vw, .96rem); line-height: 1.43; }
.why-us__right { grid-template-columns: minmax(0, .93fr) minmax(0, .77fr); gap: clamp(10px, .85vw, 15px); min-height: clamp(460px, 35vw, 620px); }
.why-us__photo-col { gap: clamp(10px, .85vw, 15px); }.why-us__photo { border-radius: var(--radius-md); box-shadow: 0 18px 34px rgba(0,0,0,.2); }.why-us__photo--left { flex: 1; aspect-ratio: auto; }.why-us__photo--left img { object-position: 54% center; }.why-us__photo--right { height: auto; }.why-us__photo--right img { object-position: 62% center; }
.why-us__phone-cta { min-height: clamp(56px, 4.2vw, 72px); border-radius: var(--radius-md); font-size: clamp(.88rem, 1vw, 1.18rem); }
@media (max-width: 900px) { .why-us__body { grid-template-columns: 1fr; }.why-us__right { min-height: 420px; max-width: 760px; }.why-us__list { max-width: 860px; } }
@media (max-width: 600px) { .why-us { padding-block: 72px; }.why-us h2 { font-size: clamp(2.45rem, 11.8vw, 4rem); }.why-us__body { gap: 30px; }.why-us__item { align-items: flex-start; min-height: 0; padding: 17px 16px; }.why-us__item-icon { width: 35px; height: 35px; font-size: 1.3rem; }.why-us__right { grid-template-columns: minmax(0, 1fr) minmax(0, .72fr); min-height: 330px; }.why-us__photo--left { min-height: 0; }.why-us__photo--right { height: auto; }.why-us__phone-cta { min-height: 54px; font-size: .78rem; } }

/* Zarovnání nadpisu a obrazové mřížky. */
.why-us__header { text-align: center; }.why-us h2 { margin-inline: auto; }
.why-us__body { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.why-us__right { width: 100%; min-width: 0; overflow: hidden; }
.why-us__photo-col { padding-top: clamp(5px, .6vw, 10px); }
.why-us__item--highlighted { border-color: var(--color-accent); background: var(--color-accent); box-shadow: 0 12px 24px rgba(0,0,0,.16); }
.why-us__item--highlighted .why-us__item-icon, .why-us__item--highlighted .why-us__item-body h3, .why-us__item--highlighted .why-us__item-body p { color: var(--color-text-on-light); }
@media (max-width: 900px) { .why-us__body { grid-template-columns: 1fr; }.why-us__right { overflow: visible; } }

/* Výhody a fotografie sdílí horní osu. */
.why-us__body { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: start; }
.why-us__header { width: auto; margin: 0 0 clamp(30px, 3vw, 48px); }
.why-us__right { width: 70%; justify-self: end; min-height: clamp(460px, 35vw, 620px); }
.why-us__phone-cta { align-self: flex-start; width: fit-content; min-height: clamp(46px, 3.35vw, 58px); padding-inline: clamp(16px, 1.1vw, 21px); font-size: clamp(.74rem, .8vw, .92rem); }
@media (max-width: 900px) { .why-us__right { width: min(100%, 620px); justify-self: start; }.why-us__header { margin-bottom: 36px; } }

/* Proč my: finální rozvržení. */
.why-us {
  padding: clamp(78px, 7vw, 118px) 0 clamp(82px, 7.5vw, 126px);
}
.why-us__header {
  width: var(--layout-content-width);
  margin: 0 auto clamp(36px, 3.6vw, 56px);
  text-align: center;
}
.why-us h2 {
  max-width: 920px;
  margin-inline: auto;
  font-size: clamp(2.35rem, 4.35vw, 5.25rem);
  line-height: .96;
}
.why-us__body {
  grid-template-columns: minmax(0, .92fr) minmax(0, .68fr);
  gap: clamp(30px, 3.4vw, 58px);
  align-items: start;
  width: var(--layout-content-width);
  margin: 0 auto;
}
.why-us__list {
  gap: clamp(8px, .7vw, 12px);
}
.why-us__item {
  min-height: 0;
  gap: clamp(11px, 1vw, 16px);
  padding: clamp(10px, .9vw, 15px) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.why-us__item--highlighted {
  margin: 0;
  padding: clamp(11px, 1vw, 16px);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-md);
  background: var(--color-accent);
  box-shadow: none;
}
.why-us__item-icon {
  width: clamp(34px, 2.5vw, 42px);
  height: clamp(34px, 2.5vw, 42px);
  border-radius: 0;
  background: transparent;
  color: var(--color-accent);
  font-size: clamp(1.1rem, 1.3vw, 1.5rem);
}
.why-us__item--highlighted .why-us__item-icon {
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--color-text-on-light);
  font-size: clamp(1rem, 1.15vw, 1.3rem);
}
.why-us__item-body h3 {
  margin-bottom: 4px;
  font-size: clamp(.75rem, .83vw, .98rem);
}
.why-us__item-body p {
  font-size: clamp(.68rem, .72vw, .82rem);
  line-height: 1.4;
}
.why-us__item--highlighted .why-us__item-body h3,
.why-us__item--highlighted .why-us__item-body p {
  color: var(--color-text-on-light);
}
.why-us__right {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .72fr);
  gap: clamp(8px, .65vw, 12px);
  width: 100%;
  min-width: 0;
  min-height: clamp(370px, 29vw, 510px);
  overflow: hidden;
}
.why-us__photo-col {
  min-width: 0;
  padding-top: clamp(5px, .55vw, 9px);
  gap: clamp(8px, .65vw, 12px);
}
.why-us__photo {
  min-width: 0;
  max-width: 100%;
}
.why-us__photo img {
  max-width: 100%;
}
.why-us__photo--left {
  flex: 1;
  min-height: 0;
  aspect-ratio: auto;
}
.why-us__photo--right {
  height: auto;
}
.why-us__phone-cta {
  align-self: flex-start;
  width: fit-content;
  min-height: 44px;
  padding-inline: clamp(14px, 1vw, 20px);
  font-size: clamp(.7rem, .76vw, .86rem);
}
@media (max-width: 900px) {
  .why-us__body { grid-template-columns: 1fr; }
  .why-us__right { width: min(100%, 580px); min-height: 390px; overflow: visible; }
}
@media (max-width: 600px) {
  .why-us h2 { font-size: clamp(2.25rem, 10.5vw, 3.7rem); }
  .why-us__header { margin-bottom: 32px; }
  .why-us__right { min-height: 320px; }
  .why-us__item { padding-block: 11px; }
}

/* Proporce výhod vůči fotografiím. */
.process {
  background: var(--color-bg-primary);
}
@media (min-width: 901px) {
  .why-us__body {
    grid-template-columns: minmax(0, .64fr) minmax(0, .96fr);
  }
  .why-us__right {
    width: 60%;
    justify-self: start;
  }
}

/* Oranžová patří pouze pohotovosti. */
.why-us__item {
  padding: clamp(13px, 1.05vw, 18px);
  border: 0;
  border-radius: var(--radius-md);
  background: var(--color-bg-primary-alt);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
}
.why-us__item--highlighted {
  border: 1px solid var(--color-accent);
  background: var(--color-accent);
  box-shadow: 0 10px 22px rgba(0,0,0,.16);
}
.why-us__item-body h3 {
  margin-bottom: 5px;
  font-size: clamp(.8rem, .9vw, 1.05rem);
  line-height: 1.12;
}
.why-us__item-body p {
  max-inline-size: 60ch;
  font-size: clamp(.74rem, .79vw, .88rem);
  line-height: 1.42;
}
.why-us__phone-cta {
  width: 100%;
}

/* Sekce drží společnou obsahovou mřížku. */
.process {
  padding-bottom: 0;
}
.process__header,
.process__grid {
  width: var(--layout-content-width);
  margin-inline: auto;
}
.why-us {
  padding-top: clamp(18px, 1.5vw, 28px);
}
@media (min-width: 901px) {
  .why-us__body {
    grid-template-columns: minmax(0, 40%) minmax(0, 36%);
    justify-content: space-between;
    gap: 0;
  }
  .why-us__right {
    width: 100%;
    justify-self: stretch;
  }
}

/* Všechny viditelné hrany zůstávají v mřížce. */
.process {
  overflow: clip;
}
.process__grid {
  min-width: 0;
  max-width: var(--layout-content-width);
  overflow: clip;
}
.process-card,
.process-card > img,
.process-card__copy {
  min-width: 0;
  max-width: 100%;
}
.process-card--cleanup .process-card__copy h3 {
  white-space: normal;
}
@media (min-width: 1081px) {
  .process__grid {
    grid-template-columns: minmax(0, 3fr) repeat(2, minmax(0, 4fr));
  }
}
@media (min-width: 901px) {
  .why-us__body {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
  }
  .why-us__list {
    width: min(80%, 540px);
    justify-self: start;
  }
  .why-us__right {
    width: 100%;
    justify-self: stretch;
  }
}

/* Fotky a výhody končí na společné výšce. */
@media (min-width: 901px) {
  .why-us__body {
    --why-column-gap: 64px;
    --why-photo-inset: clamp(10px, 1.1vw, 18px);
    grid-template-columns: minmax(0, 50%) minmax(0, calc(50% - var(--why-column-gap)));
    gap: var(--why-column-gap);
    align-items: stretch;
  }
  .why-us__list {
    display: grid;
    grid-template-rows: repeat(4, minmax(0, 1fr));
    width: 100%;
    min-height: 0;
  }
  .why-us__item {
    height: 100%;
    align-items: center;
  }
  .why-us__right {
    grid-template-columns: minmax(0, .49fr) minmax(0, .48fr);
    gap: clamp(16px, 1.3vw, 24px);
  }
  .why-us__photo-col {
    padding-block: var(--why-photo-inset);
  }
  .why-us__list {
    padding-block: var(--why-photo-inset);
  }
  .why-us__list,
  .why-us__right {
    align-self: stretch;
  }
}

/* Jemné doladění mezer a typografie. */
.why-us {
  padding-top: calc(clamp(18px, 1.5vw, 28px) + 20px);
}
.why-us__item-body h3 {
  font-size: clamp(.82rem, .92vw, 1.08rem);
  line-height: 1.1;
}
.why-us__item-body p {
  font-size: clamp(.76rem, .81vw, .9rem);
  line-height: 1.4;
  text-wrap: pretty;
}
.why-us__phone-cta {
  margin-top: auto;
  min-height: 50px;
  font-size: clamp(.78rem, .84vw, .95rem);
}
.why-us__item-icon {
  width: clamp(38px, 2.7vw, 46px);
  height: clamp(38px, 2.7vw, 46px);
  font-size: clamp(1.2rem, 1.4vw, 1.6rem);
}
.why-us__item--highlighted .why-us__item-icon {
  font-size: clamp(1.1rem, 1.25vw, 1.42rem);
}
.why-us__item-body h3 {
  font-size: clamp(.86rem, .96vw, 1.12rem);
}
/* CTA: jeden skládáný průjezd bez ořezu. */
.header-cta,
.hero__copy .button,
.why-us__phone-cta {
  transform: translateZ(0);
  transform-origin: center;
  transition: background-color .16s ease, box-shadow .2s cubic-bezier(.2,0,0,1), scale .2s cubic-bezier(.2,0,0,1);
}
.header-cta::before,
.hero__copy .button::before,
.why-us__phone-cta::before {
  left: -28%;
  width: 28%;
  transform: translate3d(-190%, 0, 0) skewX(-20deg);
  transition: transform .3s cubic-bezier(.2,0,0,1);
  animation: none;
}
.header-cta:hover,
.hero__copy .button:hover,
.why-us__phone-cta:hover,
.header-cta:focus-visible,
.hero__copy .button:focus-visible,
.why-us__phone-cta:focus-visible {
  scale: 1.03;
  transform: translateZ(0);
}
.header-cta:hover::before,
.hero__copy .button:hover::before,
.why-us__phone-cta:hover::before,
.header-cta:focus-visible::before,
.hero__copy .button:focus-visible::before,
.why-us__phone-cta:focus-visible::before {
  animation: none;
  transform: translate3d(620%, 0, 0) skewX(-20deg);
}
@media (prefers-reduced-motion: reduce) {
  .header-cta:hover,
  .hero__copy .button:hover,
  .why-us__phone-cta:hover,
  .header-cta:focus-visible,
  .hero__copy .button:focus-visible,
  .why-us__phone-cta:focus-visible { scale: 1; }
  .header-cta::before,
  .hero__copy .button::before,
  .why-us__phone-cta::before { display: none; }
}
.why-us__phone-cta {
  transform-origin: left center;
}

/* Ovládání služeb používá chevrony. */
.services__control > .ph {
  display: block;
  font-size: clamp(1.25rem, 1.45vw, 1.7rem);
  font-weight: 700;
  line-height: 1;
  translate: 0 -.01em;
}
.services__control { width: clamp(48px, 3.75vw, 64px); height: clamp(48px, 3.75vw, 64px); }
.services__control--prev {
  background: var(--color-accent);
  box-shadow: inset 0 0 0 1px var(--color-accent);
  color: var(--color-text-on-light);
}
.services__control--next {
  background: rgba(242,119,38,.15);
  box-shadow: inset 0 0 0 1px rgba(242,119,38,.52);
  color: var(--color-text-on-dark);
}
.services__control--prev:hover,
.services__control--prev:focus-visible { background: var(--color-accent-hover); box-shadow: inset 0 0 0 1px var(--color-accent-hover); }
.services__control--next:hover,
.services__control--next:focus-visible { background: rgba(242,119,38,.27); box-shadow: inset 0 0 0 1px var(--color-accent); color: var(--color-text-on-dark); }

/* Lokální kruhový text bez externí knihovny. */
.about__video svg {
  transform-origin: center;
  transform: rotate(var(--about-video-scroll-rotate, 0deg));
  scale: 1;
  transition: scale .2s cubic-bezier(.2,0,0,1);
  will-change: transform;
}
.about__cta {
  min-width: clamp(200px, 16vw, 290px);
  min-height: clamp(46px, 4vw, 64px);
  padding-inline: clamp(20px, 1.5vw, 28px);
  font-size: clamp(.75rem, .85vw, 1rem);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform: translateZ(0);
  transform-origin: center;
  transition: background-color .16s ease, box-shadow .2s cubic-bezier(.2,0,0,1), scale .2s cubic-bezier(.2,0,0,1);
}
.about__cta::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -70%;
  bottom: -70%;
  left: -28%;
  width: 28%;
  background: rgba(253,176,94,.9);
  pointer-events: none;
  transform: translate3d(-190%, 0, 0) skewX(-20deg);
  transition: transform .3s cubic-bezier(.2,0,0,1);
}
.about__cta > span, .about__cta > i { position: relative; z-index: 1; }
.about__cta:hover, .about__cta:focus-visible { background: var(--color-accent); box-shadow: 0 8px 16px rgba(0,0,0,.22); scale: 1.03; transform: translateZ(0); }
.about__cta:hover::before, .about__cta:focus-visible::before { transform: translate3d(620%, 0, 0) skewX(-20deg); }
.about__cta:focus-visible { outline: 3px solid var(--color-text-on-dark); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .about__video svg { transform: none; transition: none; }.about__video:hover svg, .about__video:focus-visible svg { scale: 1; }.about__cta:hover, .about__cta:focus-visible { scale: 1; }.about__cta::before { display: none; } }

/* KONEC: 03. Proces a Proč my */
/* ZAČÁTEK: 04. O nás, realizace a recenze */
/* O nás: dělená dokumentární kompozice. */
.about {
  overflow: clip;
  padding: clamp(58px, 5.5vw, 92px) 0 clamp(84px, 8vw, 138px);
  background: var(--color-bg-primary);
}
.about__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr);
  gap: clamp(54px, 7vw, 144px);
  align-items: center;
  width: var(--layout-content-width);
  margin: 0 auto;
}
.about__media {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(130px, .74fr);
  gap: clamp(15px, 1.4vw, 26px);
  align-items: end;
  min-width: 0;
}
.about__photo {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #0d0d0d;
  box-shadow: 0 16px 30px rgba(0,0,0,.22);
}
.about__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.78) contrast(1.06);
  outline: 1px solid rgba(255,255,255,.1);
  outline-offset: -1px;
}
.about__photo--primary {
  aspect-ratio: .77;
  border-radius: var(--radius-md);
  clip-path: polygon(0 0, 82% 0, 100% 14%, 100% 100%, 0 100%);
}
.about__photo--primary img { object-position: 56% center; }
.about__media-side {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: clamp(14px, 1.25vw, 23px);
  align-self: stretch;
  min-width: 0;
}
.about__video {
  position: relative;
  justify-self: start;
  width: clamp(100px, 7.8vw, 144px);
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--color-bg-primary-alt);
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
  color: var(--color-text-on-dark);
  cursor: pointer;
}
.about__video svg { display: block; width: 100%; height: 100%; overflow: visible; }.about__video text { fill: rgba(255,255,255,.88); font-family: var(--font-body); font-size: clamp(13px, 1.05vw, 15px); font-weight: 700; letter-spacing: .1px; text-decoration: none; }
.about__video > span { position: absolute; inset: 50% auto auto 50%; display: grid; width: 62%; aspect-ratio: 1; border-radius: 50%; place-items: center; background: var(--color-text-on-dark); color: var(--color-accent); box-shadow: 0 0 0 1px rgba(10,10,10,.09); transform: translate(-50%, -50%); }.about__video .ph { margin-left: .1em; font-size: clamp(1.3rem, 1.55vw, 1.9rem); font-weight: 900; line-height: 1; -webkit-text-stroke: .35px currentColor; }
.about__video:focus-visible { outline: 3px solid var(--color-text-on-dark); outline-offset: 4px; }
.about__photo--secondary { min-height: 0; height: 100%; border-radius: var(--radius-md); }.about__photo--secondary img { object-position: 63% center; }
.about__copy { min-width: 0; max-width: 690px; }.about__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin: 0 0 clamp(20px, 1.8vw, 31px); padding: 0 25px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }.about__eyebrow .ph { display: inline-grid; width: 1em; height: 1em; place-items: center; color: var(--color-accent); font-size: 1.15em; line-height: 1; translate: 0 -.035em; }
.about h2 { max-width: 810px; margin: 0 0 clamp(24px, 2.2vw, 38px); color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.35rem, 4.35vw, 5.4rem); font-weight: 400; line-height: .96; letter-spacing: -.018em; text-transform: uppercase; text-wrap: balance; }.about__copy > p:not(.about__eyebrow) { max-width: 610px; margin-bottom: clamp(28px, 2.5vw, 42px); color: var(--color-text-on-dark-muted); font-size: clamp(.9rem, 1vw, 1.12rem); font-weight: 500; line-height: 1.52; text-wrap: pretty; }.about__cta { min-width: clamp(210px, 17vw, 285px); min-height: clamp(48px, 3.8vw, 62px); font-size: clamp(.74rem, .8vw, .95rem); }
@media (max-width: 900px) { .about { padding: 60px 0 76px; }.about__inner { grid-template-columns: 1fr; gap: 46px; }.about__media { width: min(100%, 690px); }.about__copy { max-width: 760px; }.about h2 { max-width: 760px; } }
@media (max-width: 580px) { .about { padding: 52px 0 64px; }.about__media { grid-template-columns: minmax(0, 1fr) minmax(104px, .66fr); gap: 12px; }.about__media-side { gap: 12px; }.about__video { width: 87px; }.about__copy > p:not(.about__eyebrow) { font-size: .92rem; }.about__cta { width: 100%; }.about h2 { font-size: clamp(2.25rem, 10.5vw, 3.75rem); } }

/* CTA O nás drží měřítko hero. */
.about__cta {
  min-width: clamp(200px, 16vw, 290px);
  min-height: clamp(46px, 4vw, 64px);
  padding-inline: clamp(20px, 1.5vw, 28px);
  font-size: clamp(.75rem, .85vw, 1rem);
  will-change: transform;
  transition: background .16s ease, box-shadow .253s cubic-bezier(.2,0,0,1), scale .253s cubic-bezier(.2,0,0,1);
}
.about__cta::before {
  left: 0;
  width: 24%;
  transform: translate3d(-250%, 0, 0) skewX(-20deg);
  transition: none;
}
.about__cta:hover,
.about__cta:focus-visible {
  background: var(--color-accent);
  box-shadow: 0 8px 16px rgba(0,0,0,.22);
  scale: 1.1;
  transform: none;
}
.about__cta:hover::before,
.about__cta:focus-visible::before {
  animation: cta-sheen .322s linear both;
}
@media (prefers-reduced-motion: reduce) {
  .about__cta:hover,
  .about__cta:focus-visible { scale: 1; }
  .about__cta::before { display: none; animation: none !important; }
}

/* Realizace: škálovatelná fotografická mřížka. */
.realizations { overflow: hidden; padding: clamp(44px, 4.25vw, 76px) 0 clamp(76px, 7vw, 124px); background: var(--color-bg-primary); }
.realizations__inner { width: var(--layout-content-width); margin: 0 auto; }
.realizations__header { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .56fr); align-items: end; gap: clamp(42px, 7vw, 130px); margin-bottom: clamp(28px, 3vw, 48px); }
.realizations__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin: 0 0 clamp(19px, 1.7vw, 29px); padding: 0 24px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }
.realizations__eyebrow .ph { color: var(--color-accent); font-size: 1.15em; }
.realizations h2 { max-width: 920px; margin: 0; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.45rem, 4.55vw, 5.7rem); font-weight: 400; line-height: .95; letter-spacing: -.018em; text-transform: uppercase; text-wrap: balance; }
.realizations__header-side { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }.realizations__header-side > p { max-width: 360px; margin: 0; color: var(--color-text-on-dark-muted); font-size: clamp(.9rem, 1vw, 1.1rem); font-weight: 500; line-height: 1.52; text-wrap: pretty; }
.realizations__controls { display: flex; flex: 0 0 auto; gap: 9px; }.realizations__control { display: grid; width: clamp(46px, 3.4vw, 58px); height: clamp(46px, 3.4vw, 58px); padding: 0; border: 1px solid rgba(242,119,38,.55); border-radius: 50%; place-items: center; background: transparent; color: var(--color-text-on-dark); cursor: pointer; transition: background-color .18s ease, color .18s ease, scale .18s ease; }.realizations__control .ph { font-size: 1.35rem; line-height: 1; }.realizations__control:last-child { background: var(--color-accent); color: var(--color-text-on-light); }.realizations__control:hover, .realizations__control:focus-visible { background: var(--color-accent-hover); border-color: var(--color-accent-hover); color: var(--color-text-on-light); outline: none; }.realizations__control:active { scale: .96; }
.realizations__filters { display: flex; flex-wrap: wrap; gap: clamp(14px, 1.35vw, 25px); margin: 0 0 clamp(24px, 2.3vw, 38px); }
.realizations__filters button { position: relative; min-height: 32px; padding: 0; border: 0; background: transparent; color: var(--color-text-on-dark-muted); cursor: pointer; font-family: var(--font-body); font-size: clamp(.63rem, .68vw, .78rem); font-weight: 700; letter-spacing: .055em; line-height: 1; text-transform: uppercase; transition: color .18s linear, text-shadow .18s linear; }.realizations__filters button::after { content: ""; position: absolute; right: 0; bottom: -.45em; left: 0; height: 2px; background: var(--color-accent); transform: scaleX(0); transform-origin: right center; transition: transform .18s linear; }
.realizations__filters button[aria-pressed="true"], .realizations__filters button:hover, .realizations__filters button:focus-visible { color: var(--color-text-on-dark); text-shadow: 0 0 8px rgba(255,255,255,.22); outline: none; }.realizations__filters button[aria-pressed="true"]::after, .realizations__filters button:hover::after, .realizations__filters button:focus-visible::after { transform: scaleX(1); transform-origin: left center; }
.realizations__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(3, clamp(174px, 13vw, 236px)); gap: clamp(12px, 1.25vw, 22px); }.realizations__grid.is-all { grid-template-columns: minmax(0, 1.42fr) repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, clamp(194px, 16vw, 290px)); }
.realization-card { position: relative; min-width: 0; overflow: hidden; background: #0d0d0d; box-shadow: 0 12px 26px rgba(0,0,0,.18); isolation: isolate; }
.realization-card::after { content: ""; position: absolute; z-index: 1; inset: 35% 0 0; background: linear-gradient(to bottom, transparent, rgba(0,0,0,.86)); pointer-events: none; }
.realization-card img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) contrast(1.06); outline: 1px solid rgba(255,255,255,.1); outline-offset: -1px; transition: scale .38s cubic-bezier(.2,0,0,1), filter .38s ease; }
.realization-card:hover img { scale: 1.04; filter: saturate(.86) contrast(1.04); }
.realizations__grid.is-all .realization-card--feature { grid-column: 1; grid-row: 1 / span 2; }.realization-card[hidden] { display: none; }
.realization-card__copy { position: absolute; z-index: 2; right: clamp(14px, 1.4vw, 26px); bottom: clamp(14px, 1.4vw, 26px); left: clamp(14px, 1.4vw, 26px); }
.realization-card__copy span { display: inline-block; margin-bottom: 10px; padding: 7px 9px 6px; background: var(--color-accent); color: var(--color-text-on-light); font-size: clamp(.56rem, .56vw, .66rem); font-weight: 800; letter-spacing: .08em; line-height: 1; text-transform: uppercase; }
.realization-card__copy h3 { max-width: 520px; margin: 0 0 5px; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(1.22rem, 1.62vw, 2.15rem); font-weight: 400; line-height: .92; letter-spacing: -.01em; text-transform: uppercase; }
.realization-card__copy p { margin: 0; color: rgba(255,255,255,.78); font-size: clamp(.69rem, .76vw, .88rem); line-height: 1.36; }.realization-card:not(.realization-card--feature) .realization-card__copy p { display: none; }.realization-card:not(.realization-card--feature) .realization-card__copy h3 { font-size: clamp(1.05rem, 1.18vw, 1.52rem); }
.scroll-top { position: fixed; z-index: 20; right: clamp(18px, 2.2vw, 38px); bottom: clamp(18px, 2.2vw, 38px); display: grid; width: 52px; height: 52px; padding: 0; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; place-items: center; background: var(--color-bg-primary-alt); box-shadow: 0 10px 24px rgba(0,0,0,.3); color: var(--color-text-on-dark); cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity .18s ease, transform .18s cubic-bezier(.2,0,0,1), background-color .18s ease, border-color .18s ease; }.scroll-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }.scroll-top .ph { font-size: 1.35rem; line-height: 1; translate: 0 -.06em; }.scroll-top:hover, .scroll-top:focus-visible { border-color: var(--color-accent); background: var(--color-accent); color: var(--color-text-on-light); outline: none; }.scroll-top:active { scale: .96; }
@media (max-width: 900px) { .realizations__header { grid-template-columns: 1fr; gap: 22px; }.realizations__header-side > p { max-width: 620px; }.realizations__grid { grid-template-rows: repeat(2, minmax(170px, 25vw)); }.realization-card--feature { grid-row: 1 / span 2; } }
@media (max-width: 620px) { .realizations { padding-block: 62px; }.realizations__header { margin-bottom: 26px; }.realizations__header-side { align-items: flex-end; }.realizations h2 { font-size: clamp(2.35rem, 11.5vw, 4.2rem); }.realizations__filters { margin-inline: -1px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }.realizations__filters::-webkit-scrollbar { display: none; }.realizations__filters button { flex: 0 0 auto; min-height: 40px; }.realizations__grid { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: minmax(260px, 72vw); }.realization-card--feature { grid-row: auto; grid-column: auto; }.realization-card__copy h3, .realization-card:not(.realization-card--feature) .realization-card__copy h3 { font-size: clamp(1.35rem, 6.5vw, 2rem); }.realization-card__copy p, .realization-card:not(.realization-card--feature) .realization-card__copy p { display: block; }.scroll-top { width: 48px; height: 48px; right: 15px; bottom: 15px; } }
@media (prefers-reduced-motion: reduce) { .realization-card img, .scroll-top { transition: none; }.scroll-top { transform: none; }.scroll-top:not(.is-visible) { display: none; } }

/* Recenze: klidný třísloupcový rytmus. */
.reviews { padding: clamp(58px, 5.5vw, 96px) 0; background: var(--color-bg-primary); }.reviews__inner { width: var(--layout-content-width); margin: 0 auto; }.reviews__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: clamp(32px, 3.6vw, 58px); }.reviews__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin: 0 0 clamp(19px, 1.7vw, 29px); padding: 0 24px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }.reviews__eyebrow .ph { color: var(--color-accent); font-size: 1.15em; }.reviews h2 { max-width: 970px; margin: 0 0 clamp(17px, 1.6vw, 26px); color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.35rem, 4.25vw, 5.35rem); font-weight: 400; line-height: .95; letter-spacing: -.018em; text-transform: uppercase; text-wrap: balance; }.reviews__header p:not(.reviews__eyebrow) { max-width: 550px; margin: 0; color: var(--color-text-on-dark-muted); font-size: clamp(.9rem, 1vw, 1.1rem); font-weight: 500; line-height: 1.52; }.reviews__controls { display: flex; flex: 0 0 auto; gap: 9px; }.reviews__controls button { display: grid; width: clamp(46px, 3.4vw, 58px); height: clamp(46px, 3.4vw, 58px); padding: 0; border: 1px solid rgba(242,119,38,.55); border-radius: 50%; place-items: center; background: transparent; color: var(--color-text-on-dark); cursor: pointer; transition: background-color .18s ease, color .18s ease, scale .18s ease; }.reviews__controls button:last-child { background: var(--color-accent); color: var(--color-text-on-light); }.reviews__controls button:hover, .reviews__controls button:focus-visible { border-color: var(--color-accent-hover); background: var(--color-accent-hover); color: var(--color-text-on-light); outline: none; }.reviews__controls button:active { scale: .96; }.reviews__controls .ph { font-size: 1.35rem; line-height: 1; }
.reviews__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.45vw, 26px); }.review-card { display: flex; min-width: 0; min-height: clamp(280px, 23vw, 380px); padding: clamp(23px, 2vw, 36px); flex-direction: column; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius-md); background: rgba(255,255,255,.025); box-shadow: 0 12px 28px rgba(0,0,0,.16); }.review-card__stars { display: flex; gap: 4px; color: var(--color-accent); font-size: clamp(1rem, 1.2vw, 1.45rem); line-height: 1; }.review-card blockquote { margin: clamp(22px, 2.15vw, 36px) 0 auto; color: var(--color-text-on-dark); font-size: clamp(1rem, 1.18vw, 1.35rem); font-weight: 500; line-height: 1.48; text-wrap: pretty; }.review-card footer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: clamp(24px, 2vw, 34px); padding-top: clamp(18px, 1.5vw, 25px); border-top: 1px solid rgba(255,255,255,.14); }.review-card__avatar { display: grid; width: clamp(38px, 3vw, 50px); aspect-ratio: 1; border-radius: 50%; place-items: center; background: rgba(255,255,255,.12); color: var(--color-text-on-dark); font-size: 1.05rem; font-weight: 800; }.review-card footer strong, .review-card footer small { display: block; }.review-card footer strong { color: var(--color-text-on-dark); font-size: clamp(.7rem, .76vw, .9rem); font-weight: 700; line-height: 1.2; }.review-card footer small { margin-top: 4px; color: var(--color-text-on-dark-muted); font-size: clamp(.63rem, .67vw, .78rem); font-weight: 500; }.review-card__google { display: inline-flex; align-items: center; gap: 5px; color: var(--color-text-on-dark); font-size: clamp(.7rem, .8vw, .94rem); font-weight: 600; white-space: nowrap; }.review-card__google b { display: inline-block; background: conic-gradient(from 40deg, #4285f4 0 25%, #34a853 0 50%, #fbbc05 0 75%, #ea4335 0); background-clip: text; -webkit-background-clip: text; color: transparent; font-size: 1.45em; font-weight: 800; line-height: 1; }
@media (max-width: 900px) { .reviews__header { align-items: flex-start; flex-direction: column; }.reviews__controls { align-self: flex-end; }.reviews__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.review-card:last-child { grid-column: span 2; } }
@media (max-width: 620px) { .reviews { padding-block: 68px; }.reviews__header { margin-bottom: 30px; }.reviews h2 { font-size: clamp(2.35rem, 11vw, 4.1rem); }.reviews__grid { grid-template-columns: 1fr; }.review-card:last-child { grid-column: auto; }.review-card { min-height: 290px; }.review-card blockquote { font-size: 1.08rem; } }

/* KONEC: 04. O nás, realizace a recenze */
/* ZAČÁTEK: 05. FAQ, formulář a footer */
/* FAQ: upozornění vedle akordeonu. */
.faq { padding: clamp(84px, 8vw, 140px) 0; background: var(--color-bg-primary); }.faq__inner { width: var(--layout-content-width); margin: 0 auto; }.faq__header { max-width: 1080px; margin: 0 auto clamp(42px, 4.2vw, 72px); text-align: center; }.faq__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin: 0 0 clamp(19px, 1.7vw, 29px); padding: 0 24px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }.faq__eyebrow .ph { color: var(--color-accent); font-size: 1.15em; }.faq h2 { max-width: 990px; margin: 0 auto clamp(17px, 1.65vw, 28px); color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.5rem, 4.65vw, 5.8rem); font-weight: 400; line-height: .95; letter-spacing: -.018em; text-transform: uppercase; text-wrap: balance; }.faq__header > p:not(.faq__eyebrow) { max-width: 650px; margin: 0 auto; color: var(--color-text-on-dark-muted); font-size: clamp(.9rem, 1vw, 1.1rem); font-weight: 500; line-height: 1.52; text-wrap: pretty; }.faq__content { display: grid; grid-template-columns: minmax(240px, .45fr) minmax(0, 1.55fr); gap: clamp(24px, 3vw, 52px); align-items: stretch; }.faq__notice { display: flex; min-height: 100%; padding: clamp(24px, 2vw, 36px); flex-direction: column; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.025); }.faq__notice > .ph { margin-bottom: clamp(28px, 2.5vw, 42px); color: var(--color-accent); font-size: clamp(2rem, 2.6vw, 3rem); line-height: 1; }.faq__notice h3 { max-width: 280px; margin: 0 0 26px; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(1.45rem, 1.8vw, 2.25rem); font-weight: 400; line-height: .94; text-transform: uppercase; }.faq__notice p { margin: 0 0 18px; color: var(--color-text-on-dark-muted); font-size: clamp(.82rem, .9vw, 1rem); font-weight: 500; line-height: 1.52; }.faq__notice p:last-child { margin-top: auto; margin-bottom: 0; padding-top: 22px; border-top: 2px solid var(--color-accent); }.faq__list { border-top: 1px solid rgba(255,255,255,.17); }.faq__item { border-bottom: 1px solid rgba(255,255,255,.17); }.faq__item summary { display: grid; grid-template-columns: clamp(32px, 3.2vw, 52px) minmax(0, 1fr) 28px; align-items: center; gap: clamp(12px, 1.5vw, 25px); min-height: clamp(66px, 5.5vw, 88px); padding: 0 clamp(4px, .4vw, 8px); color: var(--color-text-on-dark); cursor: pointer; list-style: none; }.faq__item summary::-webkit-details-marker { display: none; }.faq__item summary > span { color: var(--color-text-on-dark-muted); font-size: clamp(.7rem, .8vw, .92rem); font-weight: 700; letter-spacing: .06em; }.faq__item summary strong { font-family: var(--font-body); font-size: clamp(.78rem, .94vw, 1.1rem); font-weight: 700; letter-spacing: .04em; line-height: 1.2; }.faq__item summary .ph { justify-self: end; color: var(--color-text-on-dark); font-size: 1.35rem; line-height: 1; transition: rotate .2s cubic-bezier(.2,0,0,1), color .18s ease; }.faq__item[open] summary { color: var(--color-accent); }.faq__item[open] summary > span, .faq__item[open] summary .ph { color: var(--color-accent); }.faq__item[open] summary .ph { rotate: 45deg; }.faq__item > p, .faq__item > div { max-width: 860px; margin: 0; padding: 0 clamp(40px, 5vw, 78px) clamp(23px, 2.1vw, 36px) clamp(48px, 4.7vw, 77px); color: var(--color-text-on-dark-muted); font-size: clamp(.85rem, .95vw, 1.05rem); font-weight: 500; line-height: 1.55; text-wrap: pretty; }.faq__item > div p { margin: 0 0 15px; }.faq__item > div p:last-child { margin-bottom: 0; }.faq__legal { padding-top: 16px; border-top: 1px solid rgba(255,255,255,.15); font-size: .9em; }.faq__legal a { color: var(--color-text-on-dark); font-weight: 700; }
@media (max-width: 820px) { .faq__content { grid-template-columns: 1fr; }.faq__notice { min-height: auto; }.faq__notice p:last-child { margin-top: 4px; }.faq__header { text-align: left; }.faq__header > p:not(.faq__eyebrow) { margin-left: 0; } }
@media (max-width: 620px) { .faq { padding-block: 68px; }.faq__header { margin-bottom: 34px; }.faq h2 { font-size: clamp(2.35rem, 11.2vw, 4.2rem); }.faq__content { gap: 18px; }.faq__notice { padding: 24px; }.faq__item summary { grid-template-columns: 28px minmax(0, 1fr) 22px; gap: 10px; }.faq__item summary strong { font-size: .78rem; }.faq__item > p, .faq__item > div { padding: 0 0 22px 38px; font-size: .9rem; } }
@media (prefers-reduced-motion: reduce) { .faq__item summary .ph { transition: none; } }

/* Kontakt: formulář a přímá pohotovostní cesta. */
.contact-section { padding: clamp(80px, 8vw, 142px) 0; background: #0a0a0a; border-top: 1px solid rgba(255,255,255,.08); }
.contact-section__inner { display: grid; grid-template-columns: minmax(240px, .78fr) minmax(420px, 1.12fr) minmax(194px, .43fr); gap: clamp(18px, 2vw, 34px); align-items: stretch; width: var(--layout-content-width); margin: 0 auto; }
.contact-section__intro { padding: clamp(22px, 2vw, 36px) 0; align-self: start; }.contact-section__eyebrow { display: inline-flex; align-items: center; gap: .55em; min-height: 31px; margin: 0 0 clamp(20px, 2vw, 32px); padding: 0 24px 0 10px; border: 1px solid rgba(242,119,38,.72); border-right-color: transparent; border-radius: 999px; background: linear-gradient(90deg, rgba(242,119,38,.27), rgba(242,119,38,.08) 60%, transparent); color: var(--color-text-on-dark); font-size: clamp(.64rem, .7vw, .8rem); font-weight: 700; letter-spacing: .065em; line-height: 1; }.contact-section__eyebrow .ph { color: var(--color-accent); font-size: 1.15em; }.contact-section h2 { margin: 0 0 clamp(22px, 2.2vw, 38px); color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(2.55rem, 4.7vw, 6rem); font-weight: 400; line-height: .91; letter-spacing: -.02em; text-transform: uppercase; text-wrap: balance; }.contact-section__intro > p:not(.contact-section__eyebrow) { max-width: 430px; margin: 0; color: var(--color-text-on-dark-muted); font-size: clamp(.9rem, 1vw, 1.1rem); font-weight: 500; line-height: 1.55; text-wrap: pretty; }
.contact-form { display: flex; min-width: 0; padding: clamp(22px, 2.2vw, 38px); flex-direction: column; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius-md); background: #141414; box-shadow: 0 20px 50px rgba(0,0,0,.3); }.contact-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }.contact-form label > span, .contact-form__message > span { display: block; margin-bottom: 8px; color: var(--color-text-on-dark); font-size: clamp(.65rem, .7vw, .78rem); font-weight: 700; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }.contact-form label em { color: var(--color-text-on-dark-muted); font-style: normal; }.contact-form input:not([type="checkbox"]):not([type="file"]), .contact-form textarea { width: 100%; border: 1px solid rgba(255,255,255,.2); border-radius: 9px; outline: none; background: #101010; color: var(--color-text-on-dark); font: 500 clamp(.9rem, .95vw, 1.05rem)/1.45 var(--font-body); transition: border-color .18s ease, box-shadow .18s ease; }.contact-form input:not([type="checkbox"]):not([type="file"]) { height: 50px; padding: 0 14px; }.contact-form textarea { min-height: 124px; padding: 13px 14px; resize: vertical; }.contact-form input:focus, .contact-form textarea:focus { border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(242,119,38,.16); }.contact-form__message { margin-top: 17px; }
.contact-form__upload { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; min-height: 76px; margin-top: 17px; padding: 12px 14px; border: 1px dashed rgba(255,255,255,.32); border-radius: 9px; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }.contact-form__upload:hover, .contact-form__upload:focus-within { border-color: var(--color-accent); background: rgba(242,119,38,.06); }.contact-form__upload input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }.contact-form__upload > .ph { color: var(--color-text-on-dark-muted); font-size: 1.65rem; }.contact-form__upload > span { margin: 0 !important; }.contact-form__upload strong, .contact-form__upload small { display: block; }.contact-form__upload strong { color: var(--color-text-on-dark); font-size: clamp(.65rem, .7vw, .78rem); font-weight: 700; letter-spacing: .06em; line-height: 1.25; }.contact-form__upload small { margin-top: 5px; color: var(--color-text-on-dark-muted); font-size: clamp(.68rem, .72vw, .8rem); font-weight: 500; line-height: 1.25; }.contact-form__upload > .ph:last-child { color: var(--color-accent); font-size: 1.2rem; }
.contact-form__consent { display: flex; align-items: flex-start; gap: 10px; margin: 19px 0 22px; cursor: pointer; }.contact-form__consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--color-accent); }.contact-form__consent span { margin: 0 !important; color: var(--color-text-on-dark-muted); font-size: clamp(.68rem, .73vw, .82rem) !important; font-weight: 500 !important; letter-spacing: 0 !important; line-height: 1.42 !important; text-transform: none !important; }.contact-form__submit { width: 100%; min-height: 58px; justify-content: space-between; font-size: clamp(.78rem, .82vw, .96rem); }
.contact-section__emergency { display: flex; min-width: 0; min-height: 100%; padding: clamp(22px, 2vw, 34px); flex-direction: column; background: linear-gradient(160deg, #f88639, var(--color-accent) 54%, #bc4914); color: var(--color-text-on-light); }.contact-section__emergency > .ph { align-self: flex-end; margin-bottom: clamp(32px, 3.2vw, 60px); font-size: clamp(1.6rem, 2vw, 2.25rem); }.contact-section__emergency > p { margin: 0 0 14px; font-size: clamp(.7rem, .74vw, .85rem); font-weight: 800; letter-spacing: .08em; line-height: 1.1; }.contact-section__emergency h3 { margin: 0 0 18px; font-family: var(--font-display); font-size: clamp(1.55rem, 2.2vw, 2.85rem); font-weight: 400; line-height: .88; letter-spacing: -.015em; text-transform: uppercase; }.contact-section__emergency h3 strong { font-size: clamp(3.7rem, 5vw, 6.5rem); font-weight: 400; letter-spacing: -.04em; }.contact-section__emergency > span { margin: 0 0 clamp(26px, 2.5vw, 42px); color: rgba(20,20,20,.8); font-size: clamp(.8rem, .86vw, .98rem); font-weight: 600; line-height: 1.48; }.contact-section__call { display: flex; align-items: center; gap: 11px; margin-top: auto; padding: 14px 12px; background: #141414; color: var(--color-text-on-dark); text-decoration: none; transition: background-color .18s ease, scale .18s cubic-bezier(.2,0,0,1); }.contact-section__call:hover, .contact-section__call:focus-visible { background: #0a0a0a; outline: 2px solid var(--color-text-on-dark); outline-offset: 3px; }.contact-section__call:active { scale: .96; }.contact-section__call .ph { color: var(--color-accent); font-size: 1.6rem; }.contact-section__call span, .contact-section__call small { display: block; }.contact-section__call span { font-size: clamp(.7rem, .72vw, .84rem); font-weight: 800; letter-spacing: .06em; line-height: 1.15; }.contact-section__call small { margin-top: 4px; color: var(--color-text-on-dark); font-size: clamp(.8rem, .9vw, 1rem); font-weight: 700; letter-spacing: 0; }

/* Footer drží stejnou obsahovou mřížku. */
.site-footer { background: #141414; border-top: 1px solid rgba(242,119,38,.8); color: var(--color-text-on-dark); }.site-footer__inner { display: grid; grid-template-columns: minmax(220px, 1.16fr) repeat(2, minmax(145px, .8fr)) minmax(210px, .98fr); gap: clamp(28px, 4vw, 72px); width: var(--layout-content-width); margin: 0 auto; padding: clamp(58px, 5.5vw, 96px) 0 clamp(46px, 4.3vw, 72px); }.site-footer .brand { margin-bottom: 24px; }.site-footer__brand > p { max-width: 330px; margin: 0 0 28px; color: var(--color-text-on-dark-muted); font-size: clamp(.86rem, .92vw, 1.02rem); font-weight: 500; line-height: 1.5; text-wrap: pretty; }.site-footer__brand > a:not(.brand) { display: flex; align-items: center; gap: 10px; margin-top: 13px; color: var(--color-text-on-dark); text-decoration: none; }.site-footer__brand > a:not(.brand) .ph { color: var(--color-accent); font-size: 1.3rem; }.site-footer__brand > a:not(.brand) span, .site-footer__brand > a:not(.brand) small { display: block; }.site-footer__brand > a:not(.brand) span { font-size: clamp(.78rem, .84vw, .96rem); font-weight: 700; line-height: 1.12; }.site-footer__brand > a:not(.brand) small { margin-top: 4px; color: var(--color-text-on-dark-muted); font-size: .72em; font-weight: 600; letter-spacing: .06em; }.site-footer__area { display: flex; align-items: center; gap: 8px; margin-top: 20px; color: var(--color-text-on-dark-muted); font-size: clamp(.65rem, .7vw, .78rem); font-weight: 700; letter-spacing: .06em; }.site-footer__area .ph { color: var(--color-accent); font-size: 1.2rem; }.site-footer h3 { margin: 4px 0 23px; color: var(--color-text-on-dark); font-family: var(--font-display); font-size: clamp(1.3rem, 1.55vw, 1.85rem); font-weight: 400; line-height: .9; text-transform: uppercase; }.site-footer__column { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }.site-footer__column a { color: var(--color-text-on-dark-muted); font-size: clamp(.78rem, .83vw, .95rem); font-weight: 600; line-height: 1.25; text-decoration: none; }.site-footer__column a:hover, .site-footer__column a:focus-visible { color: var(--color-text-on-dark); outline: none; }.site-footer__assurances { min-width: 0; }.site-footer__socials { display: flex; gap: 9px; margin-bottom: 25px; }.site-footer__socials span { display: grid; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; place-items: center; color: var(--color-text-on-dark); }.site-footer__socials .ph { font-size: 1.25rem; }.site-footer__assurances ul { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }.site-footer__assurances li { display: flex; align-items: center; gap: 10px; }.site-footer__assurances li > .ph { width: 1.3rem; color: var(--color-accent); font-size: 1.3rem; text-align: center; }.site-footer__assurances strong, .site-footer__assurances small { display: block; }.site-footer__assurances strong { color: var(--color-text-on-dark); font-size: clamp(.68rem, .71vw, .8rem); font-weight: 700; letter-spacing: .04em; line-height: 1.15; }.site-footer__assurances small { margin-top: 3px; color: var(--color-text-on-dark-muted); font-size: clamp(.65rem, .67vw, .75rem); font-weight: 500; line-height: 1.2; }.site-footer__bottom { display: flex; justify-content: space-between; gap: 24px; width: var(--layout-content-width); margin: 0 auto; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.12); color: var(--color-text-on-dark-muted); font-size: clamp(.67rem, .72vw, .8rem); font-weight: 500; }.site-footer__bottom > div { display: flex; flex-wrap: wrap; gap: 11px 22px; }.site-footer__bottom a { color: inherit; text-decoration: none; }.site-footer__bottom > span { color: var(--color-text-on-dark); font-weight: 700; white-space: nowrap; }.site-footer__bottom .ph { color: var(--color-accent); font-size: 1.1rem; vertical-align: -.12em; }
@media (max-width: 1080px) { .contact-section__inner { grid-template-columns: minmax(230px, .75fr) minmax(410px, 1.25fr); }.contact-section__emergency { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; min-height: 0; }.contact-section__emergency > .ph { margin: 0; }.contact-section__emergency > p { margin: 0; }.contact-section__emergency h3 { margin: 0; }.contact-section__emergency > span { margin: 0; }.contact-section__call { margin: 0; }.site-footer__inner { grid-template-columns: minmax(220px, 1.1fr) repeat(2, minmax(150px, .8fr)); }.site-footer__assurances { grid-column: span 2; }.site-footer__assurances ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .contact-section { padding-block: 68px; }.contact-section__inner { grid-template-columns: 1fr; }.contact-section__intro { padding-top: 0; }.contact-section h2 { font-size: clamp(2.6rem, 11vw, 4.3rem); }.contact-section__emergency { grid-column: auto; grid-template-columns: auto 1fr; }.contact-section__emergency > span { display: none; }.contact-section__call { grid-column: 1 / -1; }.site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }.site-footer__brand { grid-column: 1 / -1; }.site-footer__assurances { grid-column: 1 / -1; }.site-footer__bottom { flex-direction: column; } }
@media (max-width: 520px) { .contact-form { padding: 20px; }.contact-form__fields { grid-template-columns: 1fr; gap: 14px; }.contact-form__upload small { max-width: 210px; }.contact-section__emergency { display: flex; }.contact-section__emergency > .ph { margin-bottom: 22px; }.contact-section__emergency h3 { margin-bottom: 14px; }.contact-section__emergency > span { display: block; margin-bottom: 24px; }.site-footer__inner { grid-template-columns: 1fr; gap: 38px; }.site-footer__assurances { grid-column: auto; }.site-footer__assurances ul { grid-template-columns: 1fr; }.site-footer__bottom > div { flex-direction: column; gap: 10px; } }

/* FAQ drží otevřenou jen jednu odpověď. */
.faq { padding-top: clamp(58px, 5.5vw, 96px); }.faq__item summary .ph { rotate: 0deg; transition-property: color, opacity; }.faq__item[open] summary .ph { rotate: 0deg; }
.faq__answer { overflow: clip; }

/* Kontakty ve footeru sdílí levou osu. */
.site-footer__contacts { display: flex; justify-content: center; gap: clamp(26px, 2.2vw, 40px); margin-top: 24px; }.site-footer__contacts > a { display: inline-flex; align-items: center; flex-direction: column; gap: 8px; color: var(--color-text-on-dark); text-decoration: none; }.site-footer__contact-title { display: inline-flex; align-items: center; gap: 13px; }.site-footer__contact-title .ph { width: 1.25rem; color: var(--color-accent); font-size: 1.3rem; line-height: 1; text-align: center; }.site-footer__contact-title strong { color: var(--color-text-on-dark-muted); font-size: clamp(.68rem, .72vw, .8rem); font-weight: 700; letter-spacing: .07em; line-height: 1.12; }.site-footer__contacts small { display: block; margin: 0; color: var(--color-text-on-dark); font-size: clamp(.84rem, .92vw, 1.06rem); font-weight: 700; letter-spacing: 0; line-height: 1.1; }.site-footer__socials { display: none; }
.contact-section__emergency { align-items: center; text-align: center; }.contact-section__emergency > .ph { align-self: center; }.contact-section__call { align-self: stretch; justify-content: center; text-align: center; }.contact-section__call span { text-align: center; }.contact-form label > span b { color: var(--color-accent); font-size: 1.05em; }

/* Navigace pojme osm odkazů. */
.site-nav { gap: clamp(12px, 1.15vw, 22px); font-size: clamp(.75rem, .84vw, 1rem); white-space: nowrap; }

.rl-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: inherit;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.02em;
  opacity: 0.5;
  transition: opacity 0.2s ease, color 0.2s ease;
}
.rl-badge:hover {
  opacity: 1;
  color: #A78BFA;
}
.rl-badge svg { flex-shrink: 0; }
.site-footer__bottom { font-size: 11px; }.site-footer__bottom .rl-badge { gap: 12px; margin-left: auto; }
@media (max-width: 760px) { .site-footer__bottom .rl-badge { align-self: flex-end; } }

/* KONEC: 05. FAQ, formulář a footer */
/* ZAČÁTEK: 06. Pohybové a přístupnostní override */
/* Pohyb CTA, FAQ a skrytý scrollbar. */
html {
  scroll-behavior: smooth;
  scrollbar-width: none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
body { -ms-overflow-style: none; }

.header-cta,
.hero__copy .button,
.inquiry__submit,
.why-us__phone-cta,
.about__cta,
.contact-form__submit {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform: translateZ(0);
  transform-origin: center;
  transition: background-color .18s ease, box-shadow .22s cubic-bezier(.2,0,0,1), scale .22s cubic-bezier(.2,0,0,1);
  will-change: transform;
}
.inquiry__submit { gap: clamp(7px, .55vw, 10px); }
.inquiry__submit > i {
  display: inline-grid;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  place-items: center;
  font-size: 1.25em;
  line-height: 1;
}
.header-cta::before,
.hero__copy .button::before,
.inquiry__submit::before,
.why-us__phone-cta::before,
.about__cta::before,
.contact-form__submit::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -70%;
  bottom: -70%;
  left: -28%;
  width: 24%;
  background: rgba(255, 190, 121, .58);
  pointer-events: none;
  transform: translate3d(-210%, 0, 0) skewX(-20deg);
  transition: transform .3s cubic-bezier(.2,0,0,1);
}
.header-cta > *,
.hero__copy .button > *,
.inquiry__submit > *,
.why-us__phone-cta > *,
.about__cta > *,
.contact-form__submit > * { position: relative; z-index: 1; }
.header-cta:hover,
.hero__copy .button:hover,
.inquiry__submit:hover,
.why-us__phone-cta:hover,
.about__cta:hover,
.contact-form__submit:hover,
.header-cta:focus-visible,
.hero__copy .button:focus-visible,
.inquiry__submit:focus-visible,
.why-us__phone-cta:focus-visible,
.about__cta:focus-visible,
.contact-form__submit:focus-visible {
  background-color: var(--color-accent);
  box-shadow: 0 9px 18px rgba(0,0,0,.24);
  scale: 1.025;
  transform: translateZ(0);
}
.header-cta:hover::before,
.hero__copy .button:hover::before,
.inquiry__submit:hover::before,
.why-us__phone-cta:hover::before,
.about__cta:hover::before,
.contact-form__submit:hover::before,
.header-cta:focus-visible::before,
.hero__copy .button:focus-visible::before,
.inquiry__submit:focus-visible::before,
.why-us__phone-cta:focus-visible::before,
.about__cta:focus-visible::before,
.contact-form__submit:focus-visible::before {
  transform: translate3d(620%, 0, 0) skewX(-20deg);
}
.header-cta:focus-visible,
.hero__copy .button:focus-visible,
.inquiry__submit:focus-visible,
.why-us__phone-cta:focus-visible,
.about__cta:focus-visible,
.contact-form__submit:focus-visible {
  outline: 2px solid var(--color-text-on-dark);
  outline-offset: 3px;
}
.why-us__phone-cta { transform-origin: center; }
.contact-section__call {
  transition: background-color .18s ease, box-shadow .2s cubic-bezier(.2,0,0,1), scale .2s cubic-bezier(.2,0,0,1);
}
.contact-section__call:hover,
.contact-section__call:focus-visible {
  box-shadow: 0 8px 18px rgba(0,0,0,.2);
  scale: 1.015;
}

.faq__answer {
  height: 0;
  overflow: hidden;
  opacity: 0;
  padding: 0 !important;
}
.faq__answer > p,
.faq__answer > div {
  max-width: 860px;
  margin: 0;
  padding: 0 clamp(48px, 4.7vw, 77px) clamp(23px, 2.1vw, 36px);
}
.faq__item summary .ph { transition: color .18s ease, opacity .18s ease; }

@keyframes review-cycle-next {
  from { opacity: .38; transform: translate3d(18px, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes review-cycle-prev {
  from { opacity: .38; transform: translate3d(-18px, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.review-card--cycle-next { animation: review-cycle-next .28s cubic-bezier(.2,0,0,1) both; }
.review-card--cycle-prev { animation: review-cycle-prev .28s cubic-bezier(.2,0,0,1) both; }

@media (max-width: 620px) {
  .faq__answer > p,
  .faq__answer > div { padding: 0 0 22px 38px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .header-cta,
  .hero__copy .button,
  .inquiry__submit,
  .why-us__phone-cta,
  .about__cta,
  .contact-form__submit,
  .contact-section__call { transition: none; }
  .header-cta::before,
  .hero__copy .button::before,
  .inquiry__submit::before,
  .why-us__phone-cta::before,
  .about__cta::before,
  .contact-form__submit::before { display: none; }
  .header-cta:hover,
  .hero__copy .button:hover,
  .inquiry__submit:hover,
  .why-us__phone-cta:hover,
  .about__cta:hover,
  .contact-form__submit:hover,
  .contact-section__call:hover { scale: 1; }
  .review-card--cycle-next,
  .review-card--cycle-prev { animation: none; }
}

/* Všechna CTA sdílí pohyb z hero. */
.why-us__right { overflow: visible; }
.header-cta,
.hero__copy .button,
.inquiry__submit,
.why-us__phone-cta,
.about__cta,
.contact-form__submit {
  transition: background-color .18s ease, box-shadow .22s cubic-bezier(.2,0,0,1), scale .22s cubic-bezier(.2,0,0,1) !important;
}
.header-cta::before,
.hero__copy .button::before,
.inquiry__submit::before,
.why-us__phone-cta::before,
.about__cta::before,
.contact-form__submit::before {
  transition: transform .58s cubic-bezier(.16,1,.3,1) !important;
  animation: none !important;
}
.header-cta:hover,
.hero__copy .button:hover,
.inquiry__submit:hover,
.why-us__phone-cta:hover,
.about__cta:hover,
.contact-form__submit:hover,
.header-cta:focus-visible,
.hero__copy .button:focus-visible,
.inquiry__submit:focus-visible,
.why-us__phone-cta:focus-visible,
.about__cta:focus-visible,
.contact-form__submit:focus-visible {
  scale: 1.025 !important;
  transform: translateZ(0) !important;
}

/* Kontakty začínají na ose adresy. */
.site-footer__contacts {
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: 18px;
}
.site-footer__contacts > a { align-items: flex-start; }
.site-footer__contacts small { margin-left: calc(1.25rem + 13px); }

/* Riverlab značka má pevnou optickou mezeru. */
.site-footer__bottom .rl-badge {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 16px !important;
  width: max-content !important;
  min-width: max-content !important;
  white-space: nowrap !important;
}
.site-footer__bottom .rl-badge svg,
.site-footer__bottom .rl-badge span { display: block !important; flex: 0 0 auto !important; }

/* Tlačítko nahoru nekryje Riverlab. */
.scroll-top.is-over-footer { bottom: clamp(84px, 8vw, 112px); }
@media (max-width: 620px) { .scroll-top.is-over-footer { bottom: 76px; } }

/* Pevná navigace a mobilní nabídka. */
html { scroll-padding-top: calc(clamp(68px, 5.4vw, 86px) + 28px); }
.site-header { position: fixed; top: clamp(8px, .8vw, 16px); left: 50%; margin: 0; transform: translateX(-50%); transition: box-shadow .18s ease, background-color .18s ease; }
.hero__copy { margin-top: calc(clamp(68px, 5.4vw, 86px) + clamp(72px, 10vh, 145px)); }
.mobile-menu { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; }
  .site-header .site-nav, .site-header .header-phone { display: none !important; }
  .mobile-menu { position: relative; display: block; }
  .mobile-menu summary { display: grid; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-sm); place-items: center; color: var(--color-text-on-dark); cursor: pointer; list-style: none; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu summary .ph { font-size: 1.45rem; line-height: 1; }
  .mobile-menu[open] summary { border-color: var(--color-accent); background: rgba(242,119,38,.12); color: var(--color-accent); }
  .mobile-menu__panel { position: absolute; top: calc(100% + 9px); right: 0; display: grid; width: min(320px, calc(100vw - 38px)); padding: 12px; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius-md); background: rgba(20,20,20,.98); box-shadow: 0 18px 42px rgba(0,0,0,.38); }
  .mobile-menu__panel > a:not(.mobile-menu__cta) { min-height: 42px; padding: 0 10px; color: var(--color-text-on-dark); font-size: .92rem; font-weight: 700; line-height: 42px; }
  .mobile-menu__phone { display: inline-flex; align-items: center; gap: 8px; margin: 7px 0 12px; color: var(--color-text-on-dark-muted) !important; }
  .mobile-menu__phone .ph { color: var(--color-accent); font-size: 1.15rem; }
  .mobile-menu__cta { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 9px; border-radius: var(--radius-sm); background: var(--color-accent); color: var(--color-text-on-light); font-size: .78rem; font-weight: 800; }
}

@media (min-width: 651px) and (max-width: 900px) {
  .hero__photo { top: var(--hero-content-top); }
  .hero__copy { width: 57%; margin-top: calc(var(--hero-content-top) + clamp(60px, 8vh, 100px)); }
}

@media (max-width: 650px) {
  .hero { min-height: 960px; }
  .site-header { width: calc(100% - 24px); grid-template-columns: minmax(0, 1fr) auto; padding-inline: 12px; }
  .header-cta { display: none; }
  .brand { gap: 7px; font-size: 1.05rem; }
  .brand__mark { width: 39px; height: 39px; }
  .hero__photo { top: 412px; bottom: auto; }
  .inquiry { top: 512px; }
  .hero__copy { width: auto; margin-top: 127px; }
  .mobile-menu__panel { width: min(320px, calc(100vw - 24px)); }
}

@media (max-width: 380px) {
  .brand small { display: none; }
  .mobile-menu__panel { width: calc(100vw - 24px); }
}

@supports (padding: max(0px)) {
  .site-header { top: max(clamp(8px, .8vw, 16px), env(safe-area-inset-top)); }
}

@media (max-height: 720px) and (min-width: 651px) and (max-width: 900px) {
  .hero { min-height: 720px; }
  .hero__photo { top: var(--hero-content-top); }
  .hero__copy { margin-top: calc(var(--hero-content-top) + clamp(50px, 8vh, 80px)); }
}

@media (max-height: 720px) and (min-width: 901px) {
  .hero { min-height: 720px; }
  .hero__copy { margin-top: calc(clamp(68px, 5.4vw, 86px) + 48px); }
}

/* Brandové PNG ikony mají průhledné pozadí. */
.brand-icon { display: block; flex: 0 0 auto; object-fit: contain; }
.service-card__info > .brand-icon { width: clamp(1.7rem, 2vw, 2.35rem); height: clamp(1.7rem, 2vw, 2.35rem); }
.trust-strip__item > .brand-icon { width: clamp(1.35rem, 1.6vw, 1.85rem); height: clamp(1.35rem, 1.6vw, 1.85rem); }
.why-us__item-icon > .brand-icon { width: 64%; height: 64%; }
.why-us__item--highlighted .brand-icon { filter: brightness(0) invert(1); }
.site-footer__assurances li > .brand-icon { width: 1.3rem; height: 1.3rem; }

/* Mobil: samostatný jednosloupcový tok, desktop zůstává beze změny. */
@media (max-width: 700px) {
  :root { --layout-content-width: min(calc(100% - 32px), 560px); }
  html, body, .page { overflow-x: clip; }
  body { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
  img { max-width: 100%; }

  .site-header { z-index: 100; min-height: 60px; }
  .mobile-menu summary { width: 48px; height: 48px; }
  .mobile-menu__panel > a:not(.mobile-menu__cta) { min-height: 46px; line-height: 46px; }
  .mobile-menu__cta { min-height: 52px; }

  .hero {
    display: flex;
    min-height: 0;
    height: auto;
    padding: 0 16px;
    flex-direction: column;
    overflow: visible;
  }
  .hero__copy {
    width: 100%;
    max-width: 560px;
    margin: 118px auto 32px;
    text-align: center;
  }
  .emergency-badge { margin-bottom: 20px; font-size: .72rem; }
  .hero__copy h1 { margin-bottom: 24px; font-size: clamp(1.72rem, 8vw, 2.45rem); line-height: 1.07; letter-spacing: -.028em; }
  .hero-title__line { white-space: normal; }
  .hero__copy > p:not(.emergency-badge) { max-width: 31rem; margin: 0 auto 26px; font-size: .94rem; line-height: 1.55; }
  .hero__copy .button { width: min(100%, 350px); min-height: 52px; }
  .hero__photo {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    height: clamp(250px, 72vw, 360px);
    margin: 0 auto;
    border-radius: var(--radius-md);
  }
  .hero__photo::before { display: none; }
  .hero__photo img { object-position: 70% center; }
  .inquiry {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: calc(100% - 24px);
    min-height: 0;
    margin: -48px auto 0;
    padding: 24px 18px 20px;
    transform: none;
  }
  .inquiry h2 { margin-bottom: 16px; font-size: 1.08rem; white-space: normal; }
  .inquiry form { gap: 10px; }
  .inquiry input { min-height: 46px; font-size: .85rem; }
  .inquiry textarea { min-height: 86px; font-size: .85rem; }
  .inquiry .button { min-height: 48px; margin-top: 4px; font-size: .72rem; }
  .van {
    position: relative;
    bottom: auto;
    left: -10px;
    width: min(95%, 520px);
    margin: -10px 0 -18px;
  }

  .trust-strip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); width: var(--layout-content-width); padding: 8px 0; }
  .trust-strip__item, .trust-strip__item:nth-child(2), .trust-strip__item:nth-child(3), .trust-strip__item:last-child { justify-content: flex-start; min-height: 84px; padding: 14px 10px; }
  .trust-strip__item:nth-child(odd) { border-left: 0; }
  .trust-strip__item:nth-child(n + 3) { border-top: 1px solid rgba(255,255,255,.12); }
  .trust-strip__item:last-child { padding-right: 10px; }
  .trust-strip__copy strong { font-size: .72rem; line-height: 1.2; }
  .trust-strip__copy small { font-size: .68rem; line-height: 1.3; }

  .services, .process, .why-us, .about, .realizations, .reviews, .faq, .contact-section { padding-block: 64px; }
  .services__header, .process__header, .reviews__header { gap: 24px; margin-bottom: 32px; }
  .services__controls, .reviews__controls { gap: 10px; }
  .services__control, .reviews__controls button { width: 48px; height: 48px; }
  .services__viewport { width: var(--layout-content-width); }
  .services__track { grid-auto-columns: minmax(0, 86%); padding-right: 18px; }
  .service-card { height: calc(min(126vw, 500px) + var(--service-card-overhang)); }
  .service-card__info { width: min(82%, 288px); min-height: 198px; padding: 19px; gap: 13px; }
  .service-card__info h3 { font-size: clamp(1.22rem, 6.1vw, 1.55rem); line-height: 1.02; }
  .service-card__info p { font-size: .87rem; line-height: 1.46; }
  .services__pagination { gap: 0; margin-top: 8px; }
  .services__pagination button { position: relative; width: 32px; height: 32px; background: transparent; }
  .services__pagination button::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.34); transform: translate(-50%, -50%); }
  .services__pagination button[aria-current="true"] { background: transparent; transform: none; }
  .services__pagination button[aria-current="true"]::after { background: var(--color-accent); transform: translate(-50%, -50%) scale(1.28); }

  .process__header { align-items: flex-start; flex-direction: column; }
  .process__intro { width: 100%; margin: 0; padding-bottom: 14px; font-size: .94rem; }
  .process__grid { gap: 16px; }
  .process-card--inquiry { min-height: 380px; }
  .process-card--assessment, .process-card--cutting { min-height: 270px; }
  .process-card--cleanup { min-height: 320px; }
  .process-card__copy h3, .process-card--assessment h3 { font-size: clamp(1.22rem, 6vw, 1.65rem); }
  .process-card__copy p:not(.process-card__meta), .process-card--assessment p:not(.process-card__meta) { font-size: .8rem; }

  .why-us__header { margin-bottom: 32px; text-align: left; }
  .why-us h2 { margin-inline: 0; }
  .why-us__body { grid-template-columns: 1fr; gap: 30px; }
  .why-us__list { max-width: none; }
  .why-us__item { min-height: 0; padding: 17px 0; }
  .why-us__item--highlighted { padding: 17px 14px; margin-inline: -14px; }
  .why-us__item-body h3 { font-size: .92rem; }
  .why-us__item-body p { font-size: .84rem; line-height: 1.45; }
  .why-us__right { width: 100%; min-height: 0; justify-self: auto; }
  .why-us__photo-col { min-height: 0; }
  .why-us__photo--left { min-height: 290px; }
  .why-us__photo--right { min-height: 356px; }
  .why-us__phone-cta { width: 100%; min-height: 54px; justify-content: center; }

  .about__inner { gap: 36px; }
  .about__media { width: 100%; }
  .about__copy { max-width: none; }
  .about__cta { width: 100%; min-height: 52px; justify-content: center; }

  .realizations__header { gap: 22px; }
  .realizations__header-side { align-items: flex-start; }
  .realizations__layout-controls { align-self: flex-end; }
  .realizations__filters { padding-bottom: 6px; }
  .realizations__filters button { min-height: 44px; }
  .realizations__grid { gap: 14px; }
  .realization-card { min-height: 300px; }
  .realization-card::after { inset: 24% 0 0; background: linear-gradient(to bottom, rgba(0,0,0,.04), rgba(0,0,0,.92)); }
  .realization-card__copy { right: 18px; bottom: 18px; left: 18px; }
  .realization-card__copy h3, .realization-card:not(.realization-card--feature) .realization-card__copy h3 { font-size: clamp(1.45rem, 7vw, 2.05rem); line-height: 1; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
  .realization-card__copy p, .realization-card:not(.realization-card--feature) .realization-card__copy p { color: rgba(255,255,255,.92); font-size: .9rem; line-height: 1.42; text-shadow: 0 1px 8px rgba(0,0,0,.55); }

  .reviews__header { align-items: flex-start; flex-direction: column; }
  .reviews__controls { align-self: flex-start; }
  .reviews__grid { grid-template-columns: 1fr; gap: 14px; }
  .review-card, .review-card:last-child { grid-column: auto; min-height: 0; padding: 24px; }
  .review-card blockquote { margin: 22px 0 28px; font-size: 1rem; }

  .faq__header { margin-bottom: 32px; text-align: left; }
  .faq__header > p:not(.faq__eyebrow) { margin-left: 0; }
  .faq__content { gap: 18px; }
  .faq__notice { padding: 24px; }
  .faq__item summary { min-height: 72px; }
  .faq__item > p, .faq__item > div { padding: 0 0 24px 38px; font-size: .9rem; }

  .contact-section__inner { gap: 20px; }
  .contact-section__intro { padding: 0; }
  .contact-form { padding: 20px; }
  .contact-form__fields { grid-template-columns: 1fr; gap: 14px; }
  .contact-form input:not([type="checkbox"]):not([type="file"]) { height: 52px; }
  .contact-form textarea { min-height: 120px; }
  .contact-form__submit { min-height: 54px; }
  .contact-section__emergency { padding: 24px; }
  .contact-section__call { min-height: 54px; justify-content: center; }

  .site-footer__inner { grid-template-columns: 1fr; gap: 34px; padding-block: 56px 38px; }
  .site-footer__brand, .site-footer__assurances { grid-column: auto; }
  .site-footer__assurances ul { grid-template-columns: 1fr; }
  .site-footer__bottom { gap: 18px; padding-bottom: 12px; }
  .site-footer__bottom .rl-badge { align-self: flex-start; }
}

@media (max-width: 420px) {
  :root { --layout-content-width: calc(100% - 28px); }
  .hero { padding-inline: 14px; }
  .hero__copy { margin-top: 106px; }
  .hero__copy h1 { font-size: 1.64rem; }
  .hero__photo { height: 250px; }
  .inquiry { width: calc(100% - 16px); margin-top: -38px; padding-inline: 15px; }
  .trust-strip__list { grid-template-columns: 1fr; }
  .trust-strip__item, .trust-strip__item:nth-child(n) { min-height: 64px; padding-inline: 0; border-left: 0; }
  .trust-strip__item + .trust-strip__item { border-top: 1px solid rgba(255,255,255,.12); }
  .service-card__info { width: 79%; }
  .why-us__right { grid-template-columns: minmax(0, 1fr) minmax(0, .68fr); }
  .why-us__photo--left { min-height: 260px; }
  .why-us__photo--right { min-height: 326px; }
  .about__media { grid-template-columns: minmax(0, 1fr) minmax(88px, .62fr); }
  .about__video { width: 82px; }
  .contact-form { padding: 18px; }
}

/* Hero desktop: copy a fotografie sdílejí stejnou horní osu. */
@media (min-width: 901px) {
  .hero__copy {
    position: absolute;
    top: calc(clamp(8px, .8vw, 16px) + clamp(64px, 5.1vw, 82px) + 40px);
    bottom: calc(clamp(210px, 20vw, 281px) - 45px);
    left: 6%;
    display: grid;
    grid-template-rows: repeat(4, auto);
    align-content: space-between;
    justify-items: center;
    margin: 0;
  }
  .hero__copy .emergency-badge,
  .hero__copy h1,
  .hero__copy > p:not(.emergency-badge) {
    margin: 0;
  }
  .hero__copy .button {
    min-width: clamp(220px, 17vw, 310px);
    min-height: clamp(52px, 4.3vw, 70px);
    margin: 0;
  }
}

@media (min-width: 701px) and (max-width: 900px) {
  .hero__copy { margin-top: var(--hero-content-top); }
}

/* Pohotovostní panel přebírá radius formuláře. */
.contact-section__emergency {
  overflow: hidden;
  border-radius: var(--radius-md);
}

/* Trust strip: obsah i dělicí linky mají vlastní osu. */
.trust-strip__list { align-items: stretch; }
.trust-strip__item,
.trust-strip__item:first-child,
.trust-strip__item:nth-child(2),
.trust-strip__item:nth-child(3),
.trust-strip__item:last-child {
  position: relative;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding-inline: clamp(14px, 1.35vw, 24px);
  border: 0;
}
.trust-strip__item > .brand-icon { align-self: center; }
.trust-strip__copy { padding-top: 0 !important; }
.trust-strip__item:not(:first-child)::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 38px;
  background: rgba(255,255,255,.12);
  transform: translateY(-50%);
}

@media (max-width: 900px) {
  .trust-strip__item:not(:first-child)::before { content: none; }
  .trust-strip__item:nth-child(even)::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 1px;
    height: 38px;
    background: rgba(255,255,255,.12);
    transform: translateY(-50%);
  }
  .trust-strip__item:nth-child(n + 3)::after {
    content: "";
    position: absolute;
    top: 0;
    right: 14px;
    left: 14px;
    height: 1px;
    background: rgba(255,255,255,.12);
  }
}

@media (max-width: 520px) {
  .trust-strip__item:nth-child(even)::before { content: none; }
  .trust-strip__item:nth-child(n)::after { content: none; }
  .trust-strip__item + .trust-strip__item::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 1px;
    background: rgba(255,255,255,.12);
  }
}

/* Navigace musí zůstat nad všemi obsahovými vrstvami. */
.hero {
  z-index: auto;
  isolation: auto;
}
.hero::before { z-index: 0; }

.site-header {
  z-index: 10000;
  isolation: isolate;
}

main section[id] {
  scroll-margin-top: calc(clamp(68px, 5.4vw, 86px) + 32px);
}

/* Mobilní bezpečné hranice bez změny desktopové kompozice. */
@media (max-width: 900px) {
  html,
  body,
  .page {
    max-width: 100%;
    overflow-x: clip;
  }

  .mobile-menu { z-index: 1; }
  .mobile-menu__panel {
    max-height: calc(100dvh - max(clamp(8px, .8vw, 16px), env(safe-area-inset-top)) - 86px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .services__header > *,
  .process__header > *,
  .realizations__header > *,
  .reviews__header > *,
  .contact-section__inner > *,
  .contact-form__upload > span {
    min-width: 0;
  }

  .contact-form__upload small,
  .faq__item summary strong,
  .site-footer__column a {
    overflow-wrap: anywhere;
  }
}

@media (hover: none), (pointer: coarse) {
  .header-cta:hover,
  .hero__copy .button:hover,
  .why-us__phone-cta:hover,
  .contact-form__submit:hover,
  .contact-section__call:hover,
  .about__cta:hover {
    scale: 1;
  }
}

/* Mobil: jedna služba na tah, text je mimo fotografii. */
@media (max-width: 700px) {
  .services__track {
    grid-auto-columns: 100%;
    padding-right: 0;
  }

  .service-card {
    display: grid;
    height: auto;
    overflow: hidden;
    border-radius: var(--radius-md);
    grid-template-rows: minmax(220px, 60vw) auto;
    background: var(--color-bg-light);
    box-shadow: 0 14px 28px rgba(0,0,0,.26);
  }

  .service-card > img {
    height: 100%;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
  }

  .service-card::after { display: none; }

  .service-card__info {
    position: relative;
    right: auto;
    bottom: auto;
    width: auto;
    min-height: 0;
    padding: 22px 20px 24px;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    gap: 14px;
    justify-content: flex-start;
    box-shadow: none;
  }

  .service-card__info > .brand-icon {
    width: 2rem;
    height: 2rem;
  }

  .service-card__info h3 {
    font-size: clamp(1.4rem, 7vw, 1.8rem);
    line-height: 1;
  }

  .service-card__info p {
    font-size: .94rem;
    line-height: 1.48;
  }

  .services__pagination { margin-top: 18px; }

  /* Přepíše desktopovou třísloupcovou variantu .is-all. */
  .realizations__grid,
  .realizations__grid.is-all {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-rows: auto;
  }

  .realizations__grid.is-all .realization-card--feature,
  .realization-card--feature {
    grid-row: auto;
    grid-column: auto;
  }

  .realization-card {
    display: grid;
    min-height: 0;
    overflow: hidden;
    border-radius: var(--radius-md);
    grid-template-rows: minmax(205px, 56vw) auto;
    background: var(--color-bg-primary-alt);
  }

  .realization-card img {
    grid-row: 1;
    height: 100%;
  }

  .realization-card::after { display: none; }

  .realization-card__copy {
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    padding: 19px 18px 20px;
    background: var(--color-bg-primary-alt);
  }

  .realization-card__copy span { margin-bottom: 12px; }

  .realization-card__copy h3,
  .realization-card:not(.realization-card--feature) .realization-card__copy h3 {
    margin-bottom: 9px;
    font-size: clamp(1.35rem, 6.4vw, 1.95rem);
    line-height: 1;
    text-shadow: none;
  }

  .realization-card__copy p,
  .realization-card:not(.realization-card--feature) .realization-card__copy p {
    color: var(--color-text-on-dark-muted);
    font-size: .92rem;
    line-height: 1.46;
    text-shadow: none;
  }
}

/* KONEC: 06. Pohybové a přístupnostní override */
