/* V7 whole-site finishing layer — isolated candidate only. */
:root{--sheet:#f0eee8;--charcoal:#0b0b0c;--ember:#f04a23;--quiet:#aaa59d}
.header-nav{align-items:center}.header-nav .nav-route{color:var(--quiet)}.header-nav .nav-route:hover,.header-nav .nav-route:focus-visible{color:var(--fire)}
.menu{overflow:auto}.menu .menu-group{margin:1.25rem 0 .55rem;color:var(--quiet);font-size:.65rem;letter-spacing:.18em}.menu .menu-detail{font-size:clamp(1.35rem,4vw,2.8rem);line-height:1.05}.menu .menu-legal{font-size:.9rem;color:var(--quiet)}
.route-shell{min-height:66svh;display:grid;align-content:end;padding:clamp(8rem,16vw,14rem) clamp(1rem,7vw,8rem) clamp(4rem,8vw,8rem);background:radial-gradient(circle at 85% 15%,rgba(240,74,35,.2),transparent 27%),var(--charcoal);border-bottom:1px solid var(--line)}
.route-shell h1{max-width:16ch;margin:.45rem 0 1rem;font-size:clamp(3rem,8.8vw,10.6rem);line-height:.81;letter-spacing:-.085em;text-transform:uppercase}.route-shell h1 em{color:var(--ember);font-style:normal}.route-shell>p:not(.label){max-width:50rem;font-size:clamp(1rem,1.5vw,1.35rem);line-height:1.55;color:#d3cec5}.route-shell>.route-cta{display:inline-flex;width:max-content;margin-top:2rem;border-bottom:1px solid var(--ember);padding:.6rem 0;color:var(--ember);font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.route-shell .route-price{margin:.2rem 0 1.1rem;color:var(--ember);font-size:clamp(1.15rem,2vw,1.8rem);font-weight:800;letter-spacing:-.04em}.scene-copy{min-width:0}.scene-copy h3{max-width:100%;font-size:clamp(2.75rem,5.6vw,6.7rem);overflow-wrap:anywhere}
.crumbs{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.8rem;color:var(--quiet);font-size:.72rem;letter-spacing:.11em;text-transform:uppercase}.crumbs a:hover{color:var(--ember)}
.content-band{padding:clamp(4rem,9vw,9rem) clamp(1rem,7vw,8rem);background:var(--sheet);color:var(--charcoal)}.content-band.dark{background:var(--charcoal);color:var(--sheet)}.content-band .band-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:4rem;margin-bottom:3rem}.content-band h2{margin:0;font-size:clamp(2.1rem,4.8vw,5.8rem);line-height:.86;letter-spacing:-.075em;text-transform:uppercase}.content-band p{max-width:58rem;line-height:1.7}.content-band .lead{font-size:clamp(1rem,1.45vw,1.25rem);color:#45433f}.content-band.dark .lead{color:#c9c4bc}
.detail-grid,.service-card-grid,.fact-grid,.quote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(11,11,12,.2)}.content-band.dark .detail-grid,.content-band.dark .service-card-grid,.content-band.dark .fact-grid,.content-band.dark .quote-grid{background:var(--line)}.detail-grid article,.service-card,.fact-grid>div,.quote-grid figure{padding:clamp(1.35rem,3vw,3rem);background:var(--sheet)}.content-band.dark .detail-grid article,.content-band.dark .service-card,.content-band.dark .fact-grid>div,.content-band.dark .quote-grid figure{background:var(--charcoal)}.detail-grid h3,.service-card h3{margin:.5rem 0 1rem;font-size:clamp(1.25rem,2.25vw,2.4rem);line-height:.92;letter-spacing:-.055em;text-transform:uppercase}.detail-grid p,.service-card p{margin:0;color:#55514b}.content-band.dark .detail-grid p,.content-band.dark .service-card p{color:#c9c4bc}.detail-grid .number,.service-card .number{color:var(--ember);font-weight:800;font-size:.75rem;letter-spacing:.12em}.service-card{display:flex;flex-direction:column;min-height:20rem}.service-card a{margin-top:auto;padding-top:2rem;color:var(--ember);font-weight:800;text-transform:uppercase;font-size:.76rem;letter-spacing:.08em}
.plain-list{margin:0;padding:0;list-style:none;border-top:1px solid currentColor}.plain-list li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid rgba(11,11,12,.2);font-size:clamp(1rem,1.45vw,1.35rem)}.dark .plain-list li{border-color:var(--line)}.plain-list b{color:var(--ember);font-size:.7rem;letter-spacing:.12em}.faq details{border-bottom:1px solid rgba(11,11,12,.2);padding:1.2rem 0}.faq summary{cursor:pointer;font-weight:800;font-size:clamp(1.05rem,1.6vw,1.35rem)}.faq p{margin:1rem 0 0;color:#514e49}.dark .faq p{color:#cbc5bc}
.reference-card .case-facts{display:grid;gap:1rem;margin-top:1.2rem}.reference-card .case-facts span{font-size:.68rem;letter-spacing:.12em;color:var(--fire)}.testimonial .quote-footer{color:var(--quiet);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}.quote-grid blockquote{margin:0;font-size:1.15rem;line-height:1.5}.quote-grid figcaption{margin-top:1.2rem;color:var(--ember);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.compact-service-list{border-top:1px solid rgba(11,11,12,.28)}.compact-service-row{display:grid;grid-template-columns:3.5rem minmax(10rem,.9fr) minmax(14rem,1.35fr) minmax(7rem,.5fr) 1.5rem;gap:1rem;align-items:center;padding:1.35rem 0;border-bottom:1px solid rgba(11,11,12,.28);color:var(--charcoal);transition:padding .28s,color .28s}.compact-service-row:hover,.compact-service-row:focus-visible{padding-left:.75rem;color:var(--ember);outline:none}.compact-service-row h3{margin:0;font-size:clamp(1.15rem,2.2vw,2rem);line-height:.92;letter-spacing:-.055em;text-transform:uppercase}.compact-service-row p{margin:0;color:#55514b;font-size:.95rem;line-height:1.45}.compact-service-row .number,.compact-service-price{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.supplemental-service{background:linear-gradient(90deg,rgba(240,74,35,.08),transparent 55%)}.personal-quote{padding:clamp(5rem,11vw,12rem) clamp(1rem,7vw,8rem);background:var(--charcoal);color:var(--sheet)}.personal-quote .quote{max-width:70rem;margin:0}.personal-quote .quote p{margin:0;font-size:clamp(2.15rem,5.2vw,6.5rem);font-weight:800;line-height:.88;letter-spacing:-.075em;text-transform:uppercase}.personal-quote .quote-footer{display:block;margin-top:2rem;color:var(--ember)}
.footer{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding:2.5rem clamp(1rem,4vw,4rem);font-size:.8rem}.footer nav{display:flex;flex-wrap:wrap;gap:1rem}.footer a:hover,.footer a:focus-visible{color:var(--ember)}
[data-route-main]{outline:none}.route-note{max-width:58rem;margin:0 0 2rem;color:var(--quiet);font-size:.9rem}.link-rail{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.link-rail a{border:1px solid rgba(11,11,12,.25);padding:.75rem 1rem;font-weight:700}.dark .link-rail a{border-color:var(--line)}.link-rail a:hover,.link-rail a:focus-visible{border-color:var(--ember);color:var(--ember)}
@media(max-width:900px){.content-band .band-head{grid-template-columns:1fr;gap:1rem}.detail-grid,.service-card-grid,.fact-grid,.quote-grid{grid-template-columns:1fr}.header-nav{gap:.85rem}.header-nav .nav-route{display:none}.route-shell h1{max-width:12ch}}
@media(max-width:900px){.compact-service-row{grid-template-columns:2.5rem 1fr 1.5rem;gap:.8rem}.compact-service-row p,.compact-service-price{grid-column:2}.compact-service-row>span:last-child{grid-column:3;grid-row:1;align-self:start}.compact-service-row:hover,.compact-service-row:focus-visible{padding-left:.35rem}}
@media(max-width:760px){.route-shell{min-height:62svh;padding-top:7rem}.content-band{padding:4rem 1rem}.footer{padding:2rem 1rem}.header-nav{display:none}.menu .menu-detail{font-size:1.6rem}.route-shell h1{max-inline-size:100%;font-size:clamp(2.55rem,10.5vw,4.15rem);line-height:.86;letter-spacing:-.075em;overflow-wrap:anywhere;hyphens:auto}}
@media(prefers-reduced-motion:reduce){html:not(.motion-on) .route-shell,html:not(.motion-on) .content-band{scroll-margin-top:0}}
html.motion-off .ribbon{animation:none!important}

/* Narrow headers reserve independent, touch-safe columns for brand, motion and menu. */
@media(max-width:760px){
  .header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;justify-content:initial;gap:.45rem;min-height:4.25rem}
  .brand{min-width:0;gap:.4rem;font-size:10px;white-space:nowrap;overflow:hidden}.brand span{min-width:0;overflow:hidden;text-overflow:ellipsis}.brand small{display:none}
  .motion-toggle{position:static!important;min-height:44px;min-width:88px;padding:.55rem .45rem;font-size:8px;line-height:1.1;letter-spacing:.04em}
  .menu-button{min-height:44px;min-width:48px;padding:.55rem .25rem}
}
@media(max-width:340px){
  .header{padding-left:.7rem;padding-right:.7rem;gap:.28rem}.brand{font-size:9px}.motion-toggle{min-width:82px;font-size:7.5px}.menu-button{min-width:45px;font-size:10px}
}

/* V12: readable Czech typography, compositor-only motion. */
.hero-copy h1{font-size:clamp(3.1rem,8vw,8.75rem);letter-spacing:-.025em;line-height:1.06}
.hero-line{padding-block:.025em}
.hero-bottom{margin-top:clamp(3rem,8vh,6rem)}
.route-shell h1{font-size:clamp(2.6rem,7.2vw,8rem);letter-spacing:-.025em;line-height:1.08;max-width:18ch}
.intro h2,.statement h2,.work-title h2,.services h2,.about h2,.contact h2,.content-band h2,.route-reading h2,.portfolio-section h2{font-size:clamp(2rem,4.6vw,4.375rem);letter-spacing:-.025em;line-height:1.1}
.reference-card h2{letter-spacing:-.02em;line-height:1.1}
.scene-copy h3{font-size:clamp(2rem,4.1vw,4.75rem);letter-spacing:-.025em;line-height:1.1;overflow-wrap:normal}
.detail-grid h3,.service-card h3,.compact-service-row h3,.service-row h3{letter-spacing:-.015em;line-height:1.15}
.personal-quote .quote p,.quote p{font-size:clamp(2rem,4.8vw,5rem);letter-spacing:-.025em;line-height:1.12}
.menu a{letter-spacing:-.025em;line-height:1.1}
.ribbon span,.work-count{letter-spacing:-.025em}
.words span{transform:translate3d(0,.12em,0);transition:opacity .6s ease,transform .6s cubic-bezier(.22,.61,.36,1);transition-delay:calc(var(--i) * 32ms)}
.header.is-scrolled{background:rgba(11,11,12,.95);backdrop-filter:none}
.scene{filter:none;transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
.scene-media{backface-visibility:hidden}
.scene-media img{transition:none}
.hero-media img{animation-name:hero-portrait-smooth}
@keyframes hero-portrait-smooth{from{transform:scale(1.18) translateX(2%)}to{transform:scale(1.08)}}
@media(max-width:760px){
  .hero-copy h1{font-size:clamp(2.35rem,11.5vw,4.8rem)}
  .hero-bottom{margin-top:3.5rem}
  .route-shell h1{font-size:clamp(2.05rem,9vw,3.8rem);max-inline-size:100%;letter-spacing:-.02em;line-height:1.1}
  .scene-copy h3{font-size:clamp(1.9rem,8.8vw,3.3rem)}
  .work-title h2{font-size:clamp(1.8rem,8vw,3.5rem)}
  .content-band h2,.route-reading h2{font-size:clamp(1.8rem,8vw,3.5rem)}
  .content-band>*{min-inline-size:0}
}

/* V13: a compact service divider; only its text moves, never the band. */
.ribbon-zone{height:auto;min-height:0;background:var(--fire);color:var(--ink);overflow:hidden}
.ribbon{position:relative;inset:auto;width:100%;display:flex;gap:0;padding:0;background:transparent;transform:none;white-space:normal;animation:none;will-change:auto}
.ribbon-group{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1.4rem;width:100%;padding:.9rem 1rem}
.ribbon-group[aria-hidden="true"],.ribbon-group i{display:none}
.ribbon span{padding:0;font-size:clamp(1rem,1.65vw,1.65rem);line-height:1.25;letter-spacing:-.015em;white-space:nowrap}
.ribbon-zone[data-animated] .ribbon{width:max-content;white-space:nowrap;animation:ribbon-flow 60s linear infinite;animation-play-state:paused;will-change:transform}
.ribbon-zone[data-animated].is-visible .ribbon{animation-play-state:running}
.ribbon-zone[data-animated] .ribbon-group{width:auto;min-width:100vw;flex-wrap:nowrap;justify-content:space-around;gap:0;padding:.9rem 0}
.ribbon-zone[data-animated] .ribbon-group[aria-hidden="true"]{display:flex}
.ribbon-zone[data-animated] .ribbon span{padding-inline:clamp(1rem,2.3vw,2.25rem)}
.ribbon-zone[data-animated] .ribbon-group i{display:block;width:.3rem;height:.3rem;flex:0 0 .3rem}
.ribbon-zone[data-animated]:hover .ribbon{animation-play-state:paused}
@keyframes ribbon-flow{to{transform:translate3d(-50%,0,0)}}

/* V14: compact section rhythm and a reserved reference header above the stage. */
.hero~.intro,.hero~.statement,.hero~.about,.hero~.personal-quote,.hero~.contact,.hero~#sluzby>.content-band{padding-block:clamp(2.5rem,4vw,4rem)}
.hero~.about{min-height:0}
.work-scroll{height:280svh}
.work-scroll .work-sticky{top:var(--work-nav-offset,6rem);height:calc(100svh - var(--work-nav-offset,6rem));display:grid;grid-template-rows:auto minmax(0,1fr);gap:1.25rem;padding:clamp(1.25rem,2.5vw,2rem) 5vw 1.5rem}
.work-scroll .work-title,.work-scroll[data-reduced] .work-title{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem 2rem;opacity:1;transform:none;pointer-events:auto;transition:none}
.work-scroll .work-title h2{max-width:24ch;font-size:clamp(1.5rem,3vw,3rem);line-height:1.1;letter-spacing:-.025em}
.work-title .label{margin:0 0 .65rem}
.work-toolbar{display:flex;flex-direction:column;align-items:flex-end;gap:.65rem}
.work-scroll .work-count{position:static;margin:0;font-size:1.5rem;line-height:1.1}
.work-scroll .project-dots{position:static;z-index:auto;margin:0;gap:.5rem}
.work-scroll .project-dots button{width:44px;height:44px;font-size:11px}
.work-scroll .project-dots button[aria-selected="true"]{border-color:var(--fire);background:var(--fire);color:var(--ink)}
.project-dots button:focus-visible{outline:2px solid var(--fire);outline-offset:3px}
.work-scroll .work-scenes{position:relative;inset:auto;min-width:0;min-height:0;overflow:hidden;isolation:isolate}
.work-scenes .scene{grid-template-columns:minmax(0,1.4fr) minmax(16rem,.85fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);padding:0;transform:none;filter:none;transition:opacity .55s ease-in-out;will-change:opacity}
.work-scenes .scene-media{min-height:0;height:100%;max-height:34rem;transform:none;will-change:auto}
.work-scenes .scene-media img,.work-scenes .scene.is-active .scene-media img{transform:none;transition:none}
.work-scenes .scene-copy{margin:0;opacity:0;transition:opacity .16s ease}
.work-scenes .scene.is-active .scene-copy{opacity:1;transition:opacity .3s ease .18s}
.work-scroll[data-reduced] .work-sticky{top:0;display:block;height:auto;padding:clamp(2.5rem,4vw,4rem) 5vw}
.work-scroll[data-reduced] .work-title{margin-bottom:1.5rem}
.work-scroll[data-reduced] .work-scenes{overflow:visible;gap:clamp(2rem,4vw,4rem)}
.work-scroll[data-reduced] .scene-copy{opacity:1;transition:none}
.work-scroll[data-reduced] .scene-media{height:clamp(15rem,34vw,30rem)}
@media(max-width:760px){
  .work-scroll .work-sticky{padding:1.25rem 1rem;gap:1rem}
  .work-scroll .work-title,.work-scroll[data-reduced] .work-title{grid-template-columns:1fr;gap:.75rem}
  .work-scroll .work-title h2{max-width:24ch;font-size:1.5rem}
  .work-toolbar{flex-direction:row;align-items:center;justify-content:space-between}
  .work-scenes .scene{grid-template-columns:1fr;grid-template-rows:var(--work-copy-height,12rem) minmax(0,1fr);gap:1rem;align-items:stretch}
  .work-scenes .scene-copy{align-self:start}
  .work-scenes .scene-media{height:100%;max-height:100%}
  .work-scroll[data-reduced] .work-sticky{padding:2.5rem 1rem}
  .work-scroll[data-reduced] .scene{grid-template-rows:auto auto}
  .work-scroll[data-reduced] .scene-media{height:auto;min-height:14rem}
}

/* V15: a compact services introduction, with the offer immediately below. */
#sluzby .band-head{display:block;margin-bottom:2rem}
#sluzby .band-head h2{max-width:100%;font-size:clamp(2rem,3.8vw,3.5rem);line-height:1.1}
#sluzby .band-head .lead{max-width:62ch;margin:1rem 0 0}

/* V16: retain the unchanged hero photograph on its own compositing layer. */
.hero-media[data-smooth-parallax] img{will-change:transform}

/* V17: show the decorative cursor only after a real mouse position is known. */
.cursor{left:0;top:0;visibility:hidden}
.cursor.is-visible{visibility:visible}
@media(hover:none),(pointer:coarse){.cursor{display:none}}

/* V18: shift only the desktop photograph inside its unchanged hero frame. */
@media(min-width:761px){.hero-media img{object-position:calc(66% + clamp(24px,3vw,48px)) center}}
@media(min-width:1100px){.hero-media img{object-position:44% center}}

/* V19: existing palette and type; quiet detail pages and usable interaction states. */
.visually-hidden,.contact-trap{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.case-shell{min-height:0;padding-bottom:clamp(2.5rem,5vw,5rem)}
.case-summary{display:flex;flex-wrap:wrap;gap:1.5rem 4rem;margin:1.5rem 0 0}
.case-summary div{max-width:34rem}.case-summary dt{color:var(--quiet);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.case-summary dd{margin:.5rem 0 0;line-height:1.6}
.case-preview{margin:0;padding:clamp(1rem,4vw,4rem) clamp(1rem,7vw,8rem);background:var(--charcoal)}
.case-preview img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.case-preview figcaption{display:flex;flex-wrap:wrap;gap:.65rem 1.5rem;margin-top:1rem;font-size:.8rem;color:var(--quiet);line-height:1.5}.case-preview figcaption span{color:var(--fire);letter-spacing:.12em}
.case-emphasis{font-size:clamp(1.2rem,2vw,1.65rem);border-left:2px solid var(--ember);padding-left:1.25rem}
.case-next{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem}.case-action{border:1px solid var(--fire);padding:.85rem 1.2rem;font-weight:800}
.case-pagination{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem 2rem;padding:2rem clamp(1rem,7vw,8rem);border-block:1px solid var(--line)}
.case-card-links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1rem}.case-card-links a{min-height:44px;display:inline-flex;align-items:center}
.case-next a,.case-pagination a,.contact-email{display:inline-flex;align-items:center;min-height:44px;line-height:1.5;overflow-wrap:anywhere}
.contact-email{font-size:.9rem;text-decoration:underline;text-underline-offset:.25em;max-width:100%}
.field-error,.field-hint{display:block;font-weight:400;text-transform:none;letter-spacing:normal;font-size:.8rem;line-height:1.5;margin-top:.4rem}.field-error{color:#a32e16}.field-hint{color:#59544e}.field-error[hidden]{display:none}
.contact [aria-invalid="true"]{border-color:#a32e16}.form-privacy{color:#59544e;font-size:.8rem;line-height:1.6;margin:0}.form-privacy a{text-decoration:underline;text-underline-offset:.2em}
.contact .local{color:#59544e}.contact form button{color:var(--sheet)}
.contact input,.contact select,.contact textarea{min-height:44px;font-size:16px}.contact form button{min-height:48px}.contact form button:disabled{opacity:.65;cursor:wait}.contact form .form-status{min-height:3em;font-size:.9rem;line-height:1.5}
.route-cta,.scene-copy a,.case-card-links a,.case-next a,.case-pagination a,.link-rail a,.contact-email,.contact form button{transition:color .18s ease,background-color .18s ease,border-color .18s ease,opacity .18s ease}
.case-next a:hover,.case-pagination a:hover,.case-card-links a:hover,.contact-email:hover{color:var(--fire)}.contact form button:hover:not(:disabled){background:#ff633f;color:var(--charcoal)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.compact-service-row:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.contact input:focus-visible,.contact select:focus-visible,.contact textarea:focus-visible{outline-color:var(--fire)}
.compact-service-row:hover,.compact-service-row:focus-visible{padding-left:0}.compact-service-row{transition:color .18s ease}
#kontakt{scroll-margin-top:6rem}#kontakt:focus{outline:none}
html.motion-off .route-cta,html.motion-off .case-next a,html.motion-off .case-card-links a,html.motion-off .case-pagination a,html.motion-off .contact-email,html.motion-off .contact form button,html.motion-off .link-rail a,html.motion-off .compact-service-row{transition:none}
@media(prefers-reduced-motion:reduce){html:not(.motion-on) .route-cta,html:not(.motion-on) .case-next a,html:not(.motion-on) .case-card-links a,html:not(.motion-on) .case-pagination a,html:not(.motion-on) .contact-email,html:not(.motion-on) .contact form button,html:not(.motion-on) .link-rail a,html:not(.motion-on) .compact-service-row{transition:none}}
@media(max-width:760px){.case-pagination{flex-direction:column}.case-next{align-items:flex-start;flex-direction:column}.case-summary{gap:1.25rem}.case-shell h1{overflow-wrap:anywhere}.case-card-links{gap:.5rem 1rem}}
