html{scroll-behavior:smooth;}
*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Arial,sans-serif}
.hero{
  position:relative;
  height:100vh;
  overflow:hidden;
  background:#000;
}
.slide{
  position:absolute;
  inset:0;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  opacity:0;
  transform:scale(1);
  transition:opacity 1s;
  will-change:opacity, transform;
}

.slide.active{
  opacity:1;
  animation: heroZoom 5.4s linear forwards;
}
.slide.active{
  opacity:1;
  animation: heroZoom 5.4s linear forwards;
}
.hero-text{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  padding:0 1.5rem;
}

.hero-text h1{
  font-size:3.2rem;
  font-weight:800;
  margin:0 0 1rem 0;
}

.hero-text p{
  font-size:1.1rem;
  line-height:1.6;
  max-width:900px;
  margin:0 0 2.25rem 0;
}
.hero-text h1{font-size:3.2rem;font-weight:600}
.hero-text p{font-size:1.25rem}

/* SERVICES – restored */
.services{background:#0e0e11;color:#fff;padding:6rem 1.5rem}
.services-header{max-width:900px;margin:0 auto 4rem;text-align:center}
.services-header h2{font-size:2.6rem;margin-bottom:1rem}
.services-header p{font-size:1.1rem;opacity:.85}

.container{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2.5rem}

.service{background:#16161d;padding:2.5rem;border-radius:14px;text-align:center;transition:.3s}
.service i{font-size:2.8rem;color:#4da3ff;margin-bottom:1.2rem}
.service h3{font-size:1.4rem;margin-bottom:.6rem}
.service p{font-size:1rem;opacity:.85}
.service:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.4)}

/* EQUIPMENT */
.equipment{padding:5rem 1.5rem;background:#f5f7fa}
.equipment-header{max-width:900px;margin:0 auto 3rem;text-align:center}
.equipment-header h2{font-size:2.4rem;margin-bottom:1rem}
.equipment-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}
.equipment-box{background:#fff;padding:2.5rem;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.1)}
.equipment-box h3{font-size:1.5rem}
.equipment-box ul{margin-top:1rem;padding-left:1.2rem}
.equipment-box li{margin-bottom:.6rem}
.equipment-list{max-width:1000px;margin:3rem auto 0;text-align:center;font-size:1rem}

/* PROCESS + STATS */
.process{padding:5rem 1.5rem;text-align:center}
.process h2{font-size:2.4rem;margin-bottom:3rem}
.steps{max-width:1000px;margin:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem}
.step span{display:inline-block;width:44px;height:44px;background:#4da3ff;color:#fff;border-radius:50%;line-height:44px;margin-bottom:1rem;font-weight:600}

.stats{display:flex;justify-content:center;gap:4rem;padding:4rem 1.5rem;background:#0e0e11;color:#fff;text-align:center}
.stat strong{font-size:2.7rem;display:block}

.tech-icon {
  width: 24px;
  height: 24px;
  margin-right: 10px;
  vertical-align: middle;
}

/* Dvojnásobná velikost nadpisu 'Další technika' */
.equipment-list h4{
    font-size: 1.6em;
    margin-bottom: 1.2rem;
}

/* Původní krok zpět – bez zásahu do HTML */
.tech-icon{
    margin-right: 0.3rem;
}


/* --- Added sections (Parallax + Know-how + Gallery + Contacts) --- */
/* Media container is clipped (slide reveal) */
/* When active, media is pinned to viewport but stays BEHIND the following sections */
/* The image fills width but is NOT cropped (wide image) */
/* Overlay only inside this section */
.knowhow{
    background:#0e0e11;
    color:#fff;
    margin-top:-6rem;          /* earlier appearance */
    padding:7rem 1.5rem 5rem;  /* extra top padding so heading is never clipped */
    text-align:center;
    position:relative;
    z-index:3;
}
.knowhow h2{font-size:2.4rem;margin-bottom:1.4rem;letter-spacing:.04em}
.knowhow-text{max-width:72ch;margin:0 auto;font-size:1.05rem;line-height:1.75;text-align:justify;text-align-last:center;opacity:.9}

.gallery{background:#0e0e11;padding:3.5rem 1.5rem}
.gallery-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}
.thumb{border:0;border-radius:12px;cursor:pointer;position:relative;aspect-ratio:4/3;background:#9aa0a6;background-size: contain;
    background-repeat: no-repeat;background-position:center;transition:filter .25s ease, transform .25s ease}
.thumb:hover{filter:brightness(.8);transform:translateY(-2px)}
.thumb:focus-visible{outline:2px solid #4da3ff;outline-offset:3px}

.lightbox{position:fixed;inset:0;display:none;z-index:9999}
.lightbox.open{display:block}
.lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.85)}
.lightbox-ui{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2.5rem}
.lightbox-img{max-width:min(1100px,92vw);max-height:82vh;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.7);background:#111}
.lightbox-close{position:absolute;top:18px;right:18px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
.lightbox-close:hover{background:rgba(255,255,255,.18)}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
.lightbox-nav:hover{background:rgba(255,255,255,.18)}
.lightbox-prev{left:16px}
.lightbox-next{right:16px}

.contact-info{background:#0e0e11;color:#fff;padding:4.5rem 1.5rem;text-align:center}
.contact-info h2{font-size:2.2rem;margin-bottom:2rem}
.contact-items{max-width:900px;margin:0 auto;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}
.contact-item{display:flex;align-items:center;gap:.8rem;background:#16161d;padding:1rem 1.2rem;border-radius:14px}
.contact-item i{font-size:1.2rem;color:#4da3ff}
.contact-item a{color:#fff;text-decoration:none;opacity:.9}
.contact-item a:hover{opacity:1;text-decoration:underline}

@media (max-width:600px){
  }

/* ===== Parallax reveal (background fixed + slide mask, minimal JS) ===== */
.parallax-reveal{
  position: relative;
  height: 700px;              /* zachováno */
  background-color: #000;
  background-image: url("podklad1.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
    background-repeat: no-repeat;      /* bez černých pruhů nahoře/dole */
  background-attachment: fixed;/* "obrázek stojí", sekce se posouvají nad ním */
  overflow: hidden;
  isolation: isolate;          /* zabrání ovlivnění okolních sekcí */
}

/* Ztmavení obrázku */
.parallax-reveal .parallax-overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 1;
  pointer-events: none;
}

/* Slide mask: odkrývá obrázek shora dolů (masku posouváme nahoru) */
.parallax-reveal .parallax-media{
  position: absolute;
  inset: 0;
  background: #000;
  transform: translateY(0);
  transition: transform 900ms cubic-bezier(.2,.8,.2,1);
  z-index: 2;
  pointer-events: none;
}

/* Po vstupu do viewportu maska odjede nahoru -> reveal */
.parallax-reveal.is-visible .parallax-media{
  transform: translateY(-100%);
}

/* Původní IMG v markup ponecháme, ale nepoužíváme (pozadí řeší background-image) */
.parallax-reveal .parallax-media img{
  display: none;
}
/* ===== End Parallax reveal ===== */

.hero-btn{
  display:inline-block;
  background:#d40000;
  color:#fff;
  text-decoration:none;
  padding:0.95rem 1.6rem;
  border-radius:10px;
  font-weight:700;
}

.hero-nav{
  margin-top:2rem; /* ~ two lines space */
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.75rem;
}

.hero-dot{
  width:14px;
  height:14px;
  border-radius:50%;
  background:transparent;
  border:2.5px solid rgba(255,255,255,0.92);
  padding:0;
  cursor:pointer;
}

.hero-dot.is-active{
  background:#fff;
}

.hero-pause{
  width:22px;
  height:16px;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  position:relative;
  margin-left:0.5rem;
}

.hero-pause::before,
.hero-pause::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:4px;
  background:rgba(255,255,255,0.95);
  border-radius:2px;
}

.hero-pause::before{ left:5px; }
.hero-pause::after{ right:5px; }

@keyframes heroZoom{
  from{ transform:scale(1); }
  to{ transform:scale(1.1); }
}
  to{ transform:scale(1.1); }
}

@media (max-width: 768px){
  .hero-text h1{ font-size:2.1rem; }
  .hero-text p{ font-size:1rem; }
}


.slide.fading{
  opacity:0;
  /* transform is frozen inline in JS to avoid snap-back */
  transition:opacity 1s;
}

.hero.is-paused .slide.active{
  animation-play-state: paused;
}

/* === HERO fixes (layering + readability) === */
.hero{ position:relative; background:#000; }
.hero .slide{ z-index:1; }
.hero .hero-overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0.45);
  z-index:2;
  pointer-events:none;
}
.hero .hero-text{
  z-index:3;
}
.hero .hero-text h1{ font-weight:900; }
.hero .hero-btn{ border-radius:16px; }

.hero .hero-dot{
  width:14px;
  height:14px;
  border-width:2.5px;
}
/* === end HERO fixes === */

/* === HERO typography fine-tune === */
.hero .hero-text h1{
  font-weight:700; /* less heavy than 900 */
  text-shadow: 0 3px 12px rgba(0,0,0,0.65);
}

.hero .hero-text p{
  text-shadow: 0 2px 10px rgba(0,0,0,0.7);
}
/* === end HERO typography === */


/* === HERO stronger text separation === */
.hero .hero-text h1{
  text-shadow:
    0 4px 18px rgba(0,0,0,0.75),
    0 2px 6px rgba(0,0,0,0.85);
}

.hero .hero-text p{
  text-shadow:
    0 3px 14px rgba(0,0,0,0.75),
    0 1px 4px rgba(0,0,0,0.85);
}
/* === end HERO stronger text separation === */

/* === HERO font size increase === */
.hero .hero-text h1{
  font-size:3.6rem;
}

.hero .hero-text p{
  font-size:1.25rem;
}
/* === end HERO font size increase === */

/* === HERO spacing refinement === */
.hero .hero-text p{
  margin-top:1.5rem;
  line-height:1.8;
}
/* === end HERO spacing refinement === */

/* === HERO uppercase heading === */
.hero .hero-text h1{
  text-transform: uppercase;
}
/* === end HERO uppercase heading === */


/* === Elegant reveal on scroll (cards/boxes) === */
.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 700ms ease var(--reveal-delay, 0s),
    transform 700ms ease var(--reveal-delay, 0s);
  will-change: opacity, transform;
}

.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}
/* === end reveal === */


/* Allow stagger via inline transition-delay */
.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 700ms ease var(--reveal-delay, 0s),
    transform 700ms ease var(--reveal-delay, 0s);
  will-change: opacity, transform;
}


/* === Subtle hover lift for cards === */
.service{
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.service:hover{
  transform: translateY(-6px);
}
/* === end hover lift === */

/* === Service cards: keep scroll reveal + add subtle hover lift === */
.service{
  /* do NOT override reveal's opacity/transform transition */
  transition: box-shadow 220ms ease;
  will-change: transform;
}

/* ensure reveal transition remains active for service cards */
.service.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 700ms ease var(--reveal-delay, 0s),
    transform 700ms ease var(--reveal-delay, 0s);
  will-change: opacity, transform;
}

/* once visible, make hover lift snappier */
.service.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

.service:hover{
  transform: translateY(-6px);
}
/* === end service hover lift === */

/* Avoid hover lift on touch devices */
@media (hover: none){
  .service:hover{ transform: none; }
}

/* === Service cards: staggered reveal without delaying hover === */
.service.reveal{
  --reveal-y: 14px;
  --hover-y: 0px;
  opacity: 0;
  transform: translateY(calc(var(--reveal-y) + var(--hover-y)));
  transition:
    opacity 700ms ease var(--reveal-delay, 0s),
    transform 260ms ease 0s,
    box-shadow 180ms ease;
}

/* when visible */
.service.reveal.is-visible{
  opacity: 1;
  --reveal-y: 0px;
}

/* hover lift (instant, not affected by reveal delay) */
.service.reveal.is-visible:hover{
  --hover-y: -6px;
  box-shadow: 0 20px 40px rgba(0,0,0,.4);
}
/* === end service cards fix === */

/* === Service cards hover lift (explicit) === */
.service.reveal.is-visible{
  transition:
    opacity 700ms ease var(--reveal-delay, 0s),
    transform 140ms ease 0s,
    box-shadow 180ms ease;
}

.service.reveal.is-visible:hover{
  transform: translateY(-6px);
}
/* === end explicit hover lift === */

/* === Equipment boxes: slower reveal + stagger-friendly hover === */
.equipment-box.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 1100ms ease var(--reveal-delay, 0s),
    transform 260ms ease 0s,
    box-shadow 180ms ease;
  will-change: opacity, transform;
}

.equipment-box.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

.equipment-box.reveal.is-visible:hover{
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0,0,0,.4);
}
/* === end equipment boxes === */

/* === Process steps: stagger reveal + hover lift === */
.step.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 900ms ease var(--reveal-delay, 0s),
    transform 220ms ease 0s,
    box-shadow 180ms ease;
  will-change: opacity, transform;
}

.step.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

.step.reveal.is-visible:hover{
  transform: translateY(-6px);
}
/* === end process steps === */

/* === Contact section background reveal (fixed, bottom-anchored) === */
.contact-info{
  position: relative;
  background-color:#000;
  background-image: url("pozadi_kontakty.jpg");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
  background-attachment: fixed; /* photo stays, content scrolls over */
  padding: 5rem 1.5rem;
  overflow: hidden;
}



.contact-info > *{
  position: relative;
  z-index:1;
}
/* === end contact background === */

/* Contact background responsive sizing */
@media (min-width: 900px){
  .contact-info{
    background-size: 100% auto; /* full width, no side crop */
  }
}

/* === Contact recommendations heading === */


.contact-recommend-placeholder{
  width: 100%;
  max-width: 1100px;
  margin: 0 auto 1rem;
  min-height: 120px; /* space for future logos */
}
/* === end contact recommendations === */

/* Move Contact heading slightly lower */
.contact-info h2:first-of-type{
  margin-top: 2.5rem;
}

/* Ensure second contact heading uses same style */



.contact-spacer{height:14rem;}

/* Contact items: transparent background */
.contact-info .contact-item{
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* Back to top button (centered at page end) */
.back-to-top-inline{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin: 2.5rem auto 0;
  border-radius: 999px;
  border: 0;
  background: rgba(212,0,0,0.92);
  color: #fff;
  font-size: 26px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,0.35);
  animation: backToTopPulse 1.8s ease-in-out infinite;
}

.back-to-top-inline:hover{
  transform: translateY(-2px);
}

@keyframes backToTopPulse{
  0%{ transform: translateY(0) scale(1); box-shadow: 0 10px 26px rgba(0,0,0,0.35); }
  50%{ transform: translateY(0) scale(1.06); box-shadow: 0 14px 32px rgba(0,0,0,0.45); }
  100%{ transform: translateY(0) scale(1); box-shadow: 0 10px 26px rgba(0,0,0,0.35); }
}


/* === Partner logo button === */
.partner-logo-link{
  display: inline-block;
  margin: 1.8rem auto 2.2rem;
  text-align: center;
  transition: transform 200ms ease;
}

.partner-logo{
  max-width: 220px;
  width: 100%;
  height: auto;
  display: block;
}

.partner-logo-link:hover{
  transform: translateY(-6px);
}
/* === end partner logo button === */




/* Partner logos layout */
.partner-logos{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:2.5rem;
  margin:2rem auto 2.5rem;
  flex-wrap:wrap;
}



/* Contact people layout */
.contact-people{
  display:flex;
  justify-content:center;
  gap:3rem;
  margin-top:1.2rem;
  flex-wrap:wrap;
  text-align:center;
}

.contact-person strong{
  font-weight:700;
  font-size:1.05rem;
}

.contact-person span{
  font-size:0.95rem;
}

/* Center mail + facebook below names */
.contact-items-centered{
  display:flex;
  justify-content:center;
  gap:2rem;
  margin-top:2rem;
}



/* Blue icons for persons */
.person-icon{
  color:#1f6ed4;
  font-size:28px;
  margin-bottom:8px;
}

/* Vertical divider between persons */
.contact-divider{
  width:1px;
  background:rgba(255,255,255,0.5);
  height:60px;
  align-self:center;
}

/* Vertical contact layout */
.contact-items-vertical{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.8rem;
  margin-top:2rem;
}



/* Person block right alignment */
.contact-person{
  text-align:right;
  min-width:220px;
}

/* elegant icon styling */
.person-icon{
  color:#2f7de1;
  font-size:26px;
  margin-bottom:6px;
}

/* ensure names align right */
.contact-person strong,
.contact-person span{
  display:block;
  text-align:right;
}

/* === Contact people: subtle gradient panel + blue underline === */
.contact-people{
  background: rgba(0,0,0,0.55);
  padding: 1.2rem 1.6rem;
  border-radius: 16px;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  gap: 3rem;
}

.contact-person{
  text-align: left;
  min-width: 240px;
}

.contact-person strong{
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  font-weight: 700;
}

.contact-person strong::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 44px;
  height: 3px;
  background: #2f7de1;
  border-radius: 10px;
  opacity: 0.95;
}

.contact-person span{
  display:block;
  margin-top: 2px;
}

/* icon: cleaner, badge-like */
.person-icon{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom: 10px;
  color:#2f7de1;
  background: rgba(47,125,225,0.12);
  border: 1px solid rgba(47,125,225,0.35);
  font-size: 18px;
}
/* === end contact people panel === */

/* === Contact panel (solid, 55% opacity) === */
.contact-people{
  background: rgba(0,0,0,0.55);
  border-radius: 16px 16px 0 0;
  margin-bottom: 0;
}

.contact-items-vertical{
  background: rgba(0,0,0,0.55);
  border-radius: 0 0 16px 16px;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  padding: 1.2rem 1.6rem 1.6rem;
  margin-top: 0;
  gap: 1.1rem;
  align-items: center;
}

.contact-items-vertical .contact-item{
  font-size: 1.1rem;
}

/* push email slightly lower toward facebook */
.contact-items-vertical .contact-item:first-child{
  margin-top: 0.6rem;
}

.contact-person strong{
  font-size: 1.25rem;
}

.contact-person span{
  font-size: 1.05rem;
}
/* === end contact panel === */

/* === Fotogalerie (dynamic via fotky/list.json) === */
.gallery-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem;
}

.gallery-thumb{
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  background: #777;
  border: 0;
  padding: 0;
}

.gallery-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
}

.gallery-thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0);
  transition: background 180ms ease;
}

.gallery-thumb:hover::after{
  background: rgba(0,0,0,0.18);
}

/* Lightbox */
.lightbox{
  position: fixed;
  inset: 0;
  z-index: 200000;
  display: none;
}

.lightbox.is-open{
  display: block;
}

.lightbox-backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0.82);
}

.lightbox-content{
  position: relative;
  max-width: 1100px;
  margin: 4vh auto;
  padding: 52px 60px 28px;
}

.lightbox-title{
  position: absolute;
  top: 14px;
  left: 18px;
  right: 60px;
  color:#fff;
  font-weight: 700;
  font-size: 1.05rem;
  text-align: left;
  opacity: 0.95;
  white-space: nowrap;
  overflow:hidden;
  text-overflow: ellipsis;
}

.lightbox-close{
  position:absolute;
  top: 10px;
  right: 12px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border:0;
  background: rgba(255,255,255,0.14);
  color:#fff;
  font-size: 26px;
  cursor:pointer;
}

.lightbox-image{
  width: 100%;
  max-height: 78vh;
  object-fit: contain;
  display:block;
  margin: 0 auto;
  border-radius: 10px;
}

.lightbox-nav{
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border:0;
  background: rgba(255,255,255,0.14);
  color:#fff;
  font-size: 34px;
  line-height: 1;
  cursor:pointer;
}

.lightbox-prev{ left: 10px; }
.lightbox-next{ right: 10px; }

@media (max-width: 700px){
  .lightbox-content{ padding: 52px 16px 20px; }
  .lightbox-prev{ left: 6px; }
  .lightbox-next{ right: 6px; }
}
/* === end fotogalerie === */

/* === Lightbox animations + counter === */
.lightbox{
  opacity: 0;
  transition: opacity 200ms ease;
}

.lightbox.is-open{
  opacity: 1;
}

.lightbox-content{
  transform: translateY(10px) scale(0.98);
  opacity: 0;
  transition: transform 240ms ease, opacity 240ms ease;
}

.lightbox.is-open .lightbox-content{
  transform: translateY(0) scale(1);
  opacity: 1;
}

.lightbox-counter{
  position: absolute;
  top: 16px;
  right: 64px;
  color: rgba(255,255,255,0.85);
  font-weight: 600;
  font-size: 0.95rem;
}
/* === end lightbox animations + counter === */

/* === Gallery performance for larger sets (~30 photos) === */
.gallery-grid{
  content-visibility: auto;
  contain-intrinsic-size: 1200px 1600px;
  align-items: stretch;
}

.gallery-thumb{
  transition: transform 180ms ease;
}

.gallery-thumb:hover{
  transform: translateY(-3px);
}

.gallery-thumb img{
  image-rendering: auto;
}
/* === end gallery performance === */


/* === Contact section refinements === */
.contact-person{
  text-align: left !important;
  min-width: 280px;
}

.contact-people{
  background: rgba(0,0,0,0.55) !important;
  border-radius: 16px 16px 0 0;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  padding: 1.25rem 1.6rem 0.95rem;
  gap: 2.6rem;
  align-items: flex-start;
}

.contact-person-image{
  display: block;
  width: min(100%, 380px);
  height: auto;
}

.contact-items-vertical{
  background: rgba(0,0,0,0.55) !important;
  border-radius: 0 0 16px 16px;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  padding: 0.3rem 1.6rem 1.6rem;
  margin-top: 0;
  gap: 1.6rem;
  align-items: center;
}

.contact-items-vertical .contact-item{
  font-size: 1.18rem;
}

.contact-items-vertical .contact-item:first-child{
  transform: translateY(0.95rem);
  margin-top: 0;
}

.contact-divider{
  width:1px;
  background:rgba(255,255,255,0.45);
  height:78px;
  align-self:center;
}

.person-icon{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom: 12px;
  color:#2f7de1;
  background: rgba(47,125,225,0.12);
  border: 1px solid rgba(47,125,225,0.35);
  font-size: 18px;
}
/* === end contact section refinements === */



/* === Contact email lower adjustment === */
.contact-items-vertical .contact-item.contact-item-email{
  transform: translateY(1.35rem);
}
/* === end email adjustment === */

/* === Optional thumbnail support for gallery === */
.gallery-thumb img{
  object-fit: cover;
}
/* === end thumbnail support === */




/* === Lightbox centering refinement === */
.lightbox-content{
  min-height: 92vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox-image{
  max-height: 78vh;
  margin: 0 auto;
}

.lightbox-nav{
  top: 50vh;
  transform: translateY(-50%);
}
/* === end lightbox centering refinement === */

/* === Contact row layout: mail left, facebook right === */
.contact-items-vertical{
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 4.5rem;
}

.contact-items-vertical .contact-item.contact-item-email{
  transform: none;
}

@media (max-width: 700px){
  .contact-items-vertical{
    flex-direction: column;
    gap: 1.8rem;
  }
}
/* === end contact row layout === */




/* === Contact names smaller + contacts lower === */
.contact-person-image{
  width: min(100%, 300px);
}

.contact-items-vertical{
  margin-top: 2cm;
}
/* === end contact names smaller + contacts lower === */



.contact-person-image{
    display:block;
    margin:0 auto;
    width:auto;
    max-width:520px;
}


/* === Contact names side alignment fix === */
.contact-people{
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  align-items: start;
  column-gap: 2.6rem;
}

.contact-people .contact-person:first-child{
  justify-self: end;
  text-align: right !important;
}

.contact-people .contact-person:last-child{
  justify-self: start;
  text-align: left !important;
}

.contact-person-image{
  display: block;
  width: auto;
  max-width: 520px;
}

.contact-people .contact-person:first-child .contact-person-image{
  margin-left: auto;
  margin-right: 0;
}

.contact-people .contact-person:last-child .contact-person-image{
  margin-left: 0;
  margin-right: auto;
}

.contact-divider{
  justify-self: center;
  align-self: center;
}
/* === end contact names side alignment fix === */


/* === HERO mobile refinement === */
@media (max-width: 768px){
  .hero{
    min-height: 100svh;
    height: 100svh;
  }

  .hero .slide{
    background-size: cover;
    background-position: center center;
  }

  .hero-text{
    padding: 1.25rem 1rem 2rem;
    justify-content: center;
  }

  .hero-text h1{
    font-size: 1.95rem;
    line-height: 1.12;
    max-width: 12ch;
    margin: 0 0 1.1rem 0;
  }

  .hero-text p{
    font-size: 0.98rem;
    line-height: 1.55;
    max-width: 28rem;
    margin: 0 0 1.6rem 0;
  }

  .hero-btn{
    width: min(100%, 18rem);
    text-align: center;
    padding: 1rem 1.35rem;
    border-radius: 14px;
  }

  .hero-nav{
    margin-top: 1.35rem;
    gap: 0.9rem;
    flex-wrap: wrap;
  }

  .hero-dot{
    width: 13px;
    height: 13px;
  }

  .hero-pause{
    margin-left: 0.25rem;
  }
}

@media (max-width: 480px){
  .hero-text{
    padding: 1rem 0.9rem 1.75rem;
  }

  .hero-text h1{
    font-size: 1.7rem;
    max-width: 11ch;
  }

  .hero-text p{
    font-size: 0.92rem;
    max-width: 23rem;
  }

  .hero-btn{
    width: min(100%, 16.5rem);
  }
}
/* === end HERO mobile refinement === */


/* === HERO mobile refinement v2 (smaller) === */
@media (max-width: 768px){
  .hero-text{
    padding: 0.75rem 0.8rem 1.3rem;
  }

  .hero-text h1{
    font-size: 1.45rem;
    line-height: 1.08;
    max-width: 10ch;
    margin: 0 0 0.7rem 0;
  }

  .hero-text p{
    font-size: 0.82rem;
    line-height: 1.42;
    max-width: 20rem;
    margin: 0 0 1rem 0;
  }

  .hero-btn{
    width: auto;
    min-width: 12.5rem;
    padding: 0.78rem 1.05rem;
    font-size: 0.92rem;
    border-radius: 12px;
  }

  .hero-nav{
    margin-top: 0.9rem;
    gap: 0.7rem;
  }

  .hero-dot{
    width: 11px;
    height: 11px;
  }

  .hero-pause{
    width: 20px;
    height: 14px;
  }
}

@media (max-width: 480px){
  .hero-text{
    padding: 0.55rem 0.7rem 1.1rem;
  }

  .hero-text h1{
    font-size: 1.25rem;
    max-width: 9.5ch;
  }

  .hero-text p{
    font-size: 0.76rem;
    max-width: 18rem;
    margin-bottom: 0.9rem;
  }

  .hero-btn{
    min-width: 11.5rem;
    padding: 0.72rem 0.95rem;
    font-size: 0.88rem;
  }

  .hero-nav{
    margin-top: 0.8rem;
  }
}
/* === end HERO mobile refinement v2 === */


/* === HERO mobile refinement v3 (force much smaller) === */
@media (max-width: 768px){
  .hero{
    height: 78svh !important;
    min-height: 78svh !important;
  }

  .hero-text{
    padding: 0.4rem 0.6rem 0.8rem !important;
  }

  .hero-text h1{
    font-size: 1.15rem !important;
    line-height: 1.02 !important;
    max-width: 9ch !important;
    margin: 0 0 0.45rem 0 !important;
  }

  .hero-text p{
    font-size: 0.70rem !important;
    line-height: 1.3 !important;
    max-width: 16rem !important;
    margin: 0 0 0.7rem 0 !important;
  }

  .hero-btn{
    min-width: 10.2rem !important;
    padding: 0.58rem 0.82rem !important;
    font-size: 0.78rem !important;
    border-radius: 10px !important;
  }

  .hero-nav{
    margin-top: 0.55rem !important;
    gap: 0.55rem !important;
  }

  .hero-dot{
    width: 9px !important;
    height: 9px !important;
  }

  .hero-pause{
    width: 17px !important;
    height: 12px !important;
  }
}

@media (max-width: 480px){
  .hero{
    height: 74svh !important;
    min-height: 74svh !important;
  }

  .hero-text h1{
    font-size: 1.0rem !important;
    max-width: 8.5ch !important;
  }

  .hero-text p{
    font-size: 0.66rem !important;
    max-width: 14.5rem !important;
  }

  .hero-btn{
    min-width: 9.4rem !important;
    padding: 0.52rem 0.72rem !important;
    font-size: 0.74rem !important;
  }
}
/* === end HERO mobile refinement v3 === */


/* === HERO mobile clipping fix === */
@media (max-width: 768px){
  .hero{
    height: 88svh !important;
    min-height: 88svh !important;
  }

  .hero-text{
    padding: 1rem 1rem 1.2rem !important;
    overflow: visible !important;
  }

  .hero-text h1{
    font-size: 1.15rem !important;
    line-height: 1.18 !important;
    max-width: 14ch !important;
    padding: 0 0.2rem !important;
    margin: 0 0 0.75rem 0 !important;
    overflow: visible !important;
    word-break: normal !important;
  }

  .hero-text p{
    font-size: 0.72rem !important;
    line-height: 1.42 !important;
    max-width: 17rem !important;
    padding: 0 0.2rem !important;
    margin: 0 0 0.8rem 0 !important;
    overflow: visible !important;
  }

  .hero-btn{
    min-width: 10.4rem !important;
    padding: 0.6rem 0.85rem !important;
    font-size: 0.8rem !important;
  }
}

@media (max-width: 480px){
  .hero{
    height: 84svh !important;
    min-height: 84svh !important;
  }

  .hero-text h1{
    font-size: 1.05rem !important;
    line-height: 1.2 !important;
    max-width: 13ch !important;
  }

  .hero-text p{
    font-size: 0.68rem !important;
    max-width: 15.5rem !important;
  }
}
/* === end HERO mobile clipping fix === */


/* === HERO mobile refinement v4 === */
@media (max-width: 768px){
  .hero{
    height: 86svh !important;
    min-height: 86svh !important;
  }

  .hero .slide{
    background-size: contain !important;
    background-position: center center !important;
  }

  .hero-text{
    padding: 0.9rem 1rem 1.4rem !important;
  }

  .hero-text h1{
    font-size: 1.45rem !important;
    line-height: 1.16 !important;
    max-width: none !important;
    margin: 0 0 0.95rem 0 !important;
    white-space: normal !important;
  }

  .hero-text p{
    font-size: 0.86rem !important;
    line-height: 1.48 !important;
    max-width: 18.5rem !important;
    margin: 0 0 1.55rem 0 !important;
  }

  .hero-btn{
    min-width: 11.6rem !important;
    padding: 0.72rem 1rem !important;
    font-size: 0.86rem !important;
  }

  .hero-nav{
    margin-top: 1.2rem !important;
  }
}

@media (max-width: 480px){
  .hero{
    height: 82svh !important;
    min-height: 82svh !important;
  }

  .hero-text h1{
    font-size: 1.28rem !important;
    line-height: 1.16 !important;
  }

  .hero-text p{
    font-size: 0.8rem !important;
    max-width: 17rem !important;
    margin-bottom: 1.35rem !important;
  }

  .hero-btn{
    min-width: 11rem !important;
    font-size: 0.82rem !important;
  }

  .hero-nav{
    margin-top: 1.05rem !important;
  }
}
/* === end HERO mobile refinement v4 === */


/* === HERO mobile refinement v5 (bigger image) === */
@media (max-width: 768px){
  .hero .slide{
    background-size: cover !important;
    background-position: center center !important;
  }

  .hero{
    height: 92svh !important;
    min-height: 92svh !important;
  }

  .hero-text{
    padding-top: 1.2rem !important;
  }
}

@media (max-width: 480px){
  .hero{
    height: 90svh !important;
    min-height: 90svh !important;
  }
}
/* === end HERO mobile refinement v5 === */


/* === HERO mobile better layout === */
.mobile-break{
  display:inline;
}

@media (max-width:768px){
  .mobile-break{
    display:block;
  }

  .hero{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding-top:1rem;
  }

  .hero-text{
    order:1;
  }

  .hero-bottom{
    order:2;
    margin-top:auto;
    padding-bottom:1.2rem;
  }
}
/* === end HERO mobile better layout === */


/* === HERO mobile better layout v2 === */
.hero-subcontent{
  display: contents;
}

@media (max-width: 768px){
  .hero-text{
    display:flex !important;
    flex-direction:column !important;
    justify-content:space-between !important;
    align-items:center !important;
    padding: 1rem 1rem 1.3rem !important;
  }

  .hero-text h1{
    align-self:center;
    margin-top: 0.35rem !important;
  }

  .hero-subcontent{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    margin-top:auto !important;
    width:100%;
  }

  .hero-subcontent p{
    margin-bottom: 1.35rem !important;
  }

  .hero-subcontent .hero-btn{
    margin-bottom: 1rem !important;
  }

  .hero-subcontent .hero-nav{
    margin-top: 0 !important;
  }
}

@media (max-width: 480px){
  .hero-text{
    padding: 0.9rem 0.9rem 1.15rem !important;
  }

  .hero-subcontent p{
    margin-bottom: 1.15rem !important;
  }

  .hero-subcontent .hero-btn{
    margin-bottom: 0.9rem !important;
  }
}
/* === end HERO mobile better layout v2 === */


/* === HERO mobile refinement v6 (safe version) === */
@media (max-width:768px){

  .hero-text h1{
    margin-top: 20px !important;
  }

  .hero .slide{
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
  }

  .hero{
    padding-top: 10px !important;
  }
}

@media (max-width:480px){
  .hero-text h1{
    margin-top: 18px !important;
  }
}
/* === end HERO mobile refinement v6 === */


/* === Mobile layout refinement pack v93 === */
@media (max-width: 768px){
  /* HERO: title top, image middle, copy bottom */
  .hero{
    position: relative;
    height: 100svh !important;
    min-height: 100svh !important;
    overflow: hidden;
  }

  .hero .hero-overlay{
    background: rgba(0,0,0,0.34) !important;
  }

  .hero .slide{
    top: 17svh !important;
    bottom: 22svh !important;
    left: 0 !important;
    right: 0 !important;
    inset: auto 0 !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
  }

  .hero-text{
    position: absolute !important;
    inset: 0 !important;
    display: grid !important;
    grid-template-rows: auto 1fr auto !important;
    align-items: stretch !important;
    justify-items: center !important;
    padding: 2cm 1rem 1.15rem !important;
    text-align: center !important;
  }

  .hero-text h1{
    align-self: start !important;
    margin: 0 !important;
    font-size: 1.34rem !important;
    line-height: 1.14 !important;
    max-width: 14ch !important;
    padding: 0 0.25rem !important;
    overflow: visible !important;
  }

  .mobile-break{
    display: block !important;
  }

  .hero-subcontent{
    align-self: end !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
  }

  .hero-subcontent p{
    font-size: 0.82rem !important;
    line-height: 1.45 !important;
    max-width: 18rem !important;
    margin: 0 0 1.35rem 0 !important;
  }

  .hero-btn{
    min-width: 11.1rem !important;
    padding: 0.7rem 0.95rem !important;
    font-size: 0.84rem !important;
    border-radius: 12px !important;
  }

  .hero-nav{
    margin-top: 0.95rem !important;
    gap: 0.7rem !important;
  }

  .hero-dot{
    width: 11px !important;
    height: 11px !important;
  }

  .hero-pause{
    width: 18px !important;
    height: 13px !important;
  }

  /* General mobile typography and spacing below HERO */
  .services,
  .equipment,
  .knowhow,
  .contact-info{
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .services{
    padding-top: 3.75rem !important;
    padding-bottom: 3.75rem !important;
  }

  .equipment,
  .knowhow,
  .contact-info{
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
  }

  .services h2,
  .equipment h2,
  .process h2,
  .knowhow h2,
  .contact-info h2{
    font-size: 1.35rem !important;
    line-height: 1.2 !important;
    margin-bottom: 0.9rem !important;
  }

  .services > p,
  .equipment-header p,
  .knowhow p,
  .contact-info p{
    font-size: 0.9rem !important;
    line-height: 1.55 !important;
  }

  .services-grid,
  .equipment-grid,
  .steps{
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  .service,
  .equipment-box,
  .step{
    padding: 1.25rem !important;
  }

  .service h3,
  .equipment-box h3,
  .step h3{
    font-size: 1.02rem !important;
  }

  .service p,
  .equipment-box li,
  .step p{
    font-size: 0.88rem !important;
    line-height: 1.5 !important;
  }

  .equipment-grid{
    gap: 1rem !important;
  }

  .steps{
    max-width: 100% !important;
  }

  .step-number,
  .step .number,
  .step .badge{
    transform: scale(0.9);
  }

  .parallax-reveal{
    height: 420px !important;
    background-size: contain !important;
  }

  .knowhow{
    margin-top: -2rem !important;
    padding-top: 4rem !important;
    padding-bottom: 3.25rem !important;
  }

  .knowhow .text-block,
  .knowhow .knowhow-text{
    max-width: 100% !important;
  }

  .gallery-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 1.2rem 0 !important;
  }

  .lightbox-content{
    margin: 2vh auto !important;
    padding: 52px 12px 18px !important;
    min-height: 96vh !important;
  }

  .lightbox-image{
    max-height: 72vh !important;
  }

  .contact-recommend-placeholder{
    min-height: 30px !important;
  }

  .partner-logos{
    gap: 1rem !important;
  }

  .partner-logo{
    max-width: 150px !important;
  }

  .contact-people{
    grid-template-columns: 1fr !important;
    row-gap: 1.1rem !important;
    justify-items: center !important;
    padding: 1rem 1rem 0.9rem !important;
  }

  .contact-divider{
    display: none !important;
  }

  .contact-people .contact-person:first-child,
  .contact-people .contact-person:last-child{
    justify-self: center !important;
    text-align: center !important;
  }

  .contact-people .contact-person:first-child .contact-person-image,
  .contact-people .contact-person:last-child .contact-person-image{
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 280px !important;
  }

  .contact-items-vertical{
    flex-direction: column !important;
    gap: 1.2rem !important;
    margin-top: 1rem !important;
    padding-top: 0.9rem !important;
  }

  .contact-item{
    font-size: 0.95rem !important;
  }

  .contact-items-vertical .contact-item.contact-item-email{
    transform: none !important;
  }

  .contact-spacer{
    height: 6rem !important;
  }

  .back-to-top-inline{
    width: 48px !important;
    height: 48px !important;
    font-size: 23px !important;
  }
}

@media (max-width: 480px){
  .hero .slide{
    top: 18svh !important;
    bottom: 24svh !important;
  }

  .hero-text{
    padding: 2cm 0.9rem 1rem !important;
  }

  .hero-text h1{
    font-size: 1.2rem !important;
    max-width: 13ch !important;
  }

  .hero-subcontent p{
    font-size: 0.76rem !important;
    max-width: 16rem !important;
    margin-bottom: 1.15rem !important;
  }

  .hero-btn{
    min-width: 10.6rem !important;
    font-size: 0.8rem !important;
  }

  .services h2,
  .equipment h2,
  .process h2,
  .knowhow h2,
  .contact-info h2{
    font-size: 1.25rem !important;
  }

  .gallery-grid{
    grid-template-columns: 1fr 1fr !important;
  }

  .partner-logo{
    max-width: 132px !important;
  }
}
/* === end mobile layout refinement pack v93 === */


/* === HERO mobile refinement v94 === */
@media (max-width:768px){

  .hero-text h1{
    font-size: 1.25rem !important;
    line-height: 1.18 !important;
    max-width: 15ch !important;
    text-align: center !important;
  }

  .mobile-line2{
    display:block !important;
  }

  .hero{
    height: 96svh !important;
  }

  .hero-subcontent p{
    max-width: 92% !important;
    padding: 0 0.6rem !important;
  }

  .hero-subcontent{
    transform: scale(0.95);
  }
}

@media (max-width:480px){
  .hero-text h1{
    font-size: 1.15rem !important;
    max-width: 14ch !important;
  }

  .hero-subcontent{
    transform: scale(0.92);
  }
}
/* === end HERO mobile refinement v94 === */


/* === Desktop/mobile hero title split + stats mobile fix v95 === */
/* desktop title stays on one line */
.hero-line1,
.hero-line2{
  display: inline;
}

.hero-line1::after{
  content: " ";
}

@media (max-width: 768px){
  /* mobile title becomes exactly two lines */
  .hero-text h1{
    max-width: none !important;
    white-space: normal !important;
  }

  .hero-line1,
  .hero-line2{
    display: block !important;
  }

  .hero-line1::after{
    content: "";
  }

  /* fix bottom stats clipping */
  .stats{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.7rem !important;
    padding: 2rem 0.75rem !important;
    align-items: start !important;
  }

  .stat{
    min-width: 0 !important;
  }

  .stat strong{
    display: block !important;
    font-size: 1rem !important;
    line-height: 1.1 !important;
  }

  .stat span{
    display: block !important;
    font-size: 0.7rem !important;
    line-height: 1.25 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }
}

@media (max-width: 480px){
  .stats{
    gap: 0.45rem !important;
    padding: 1.5rem 0.45rem !important;
  }

  .stat strong{
    font-size: 0.92rem !important;
  }

  .stat span{
    font-size: 0.62rem !important;
  }
}
/* === end hero title + stats fix === */


/* === Mobile refinements v96 === */
/* desktop support for rebuilt additional-tech block */
.equipment-tech-list{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem 1rem;
  align-items:center;
  justify-content:center;
}

.equipment-tech-item{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}

/* mobile only */
@media (max-width: 768px){
  /* HERO higher + larger copy */
  .hero{
    height: 92svh !important;
    min-height: 92svh !important;
  }

  .hero .slide{
    top: 12svh !important;
    bottom: 24svh !important;
    background-size: contain !important;
    background-position: center center !important;
  }

  .hero-text{
    padding: 1.2rem 0.9rem 0.9rem !important;
    grid-template-rows: auto 1fr auto !important;
  }

  .hero-text h1{
    margin-top: 0.9rem !important;
    font-size: 1.22rem !important;
    line-height: 1.14 !important;
    max-width: 15ch !important;
  }

  .hero-line1,
  .hero-line2{
    display:block !important;
  }

  .hero-subcontent{
    align-self: end !important;
    width: 100% !important;
    transform: none !important;
  }

  .hero-subcontent p{
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    max-width: 18rem !important;
    margin: 0 0 1.35rem 0 !important;
    padding: 0 .35rem !important;
  }

  .hero-btn{
    margin-top: .2rem !important;
  }

  .hero-nav{
    margin-top: 1rem !important;
  }

  /* "Co děláme" paragraph align with equipment paragraph sizing */
  .services > p,
  .services .section-intro{
    font-size: 0.9rem !important;
    line-height: 1.55 !important;
    max-width: 100% !important;
  }

  /* additional equipment icons stacked left with text on right */
  .equipment-tech-list{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:.8rem !important;
    margin-top: .8rem !important;
  }

  .equipment-tech-item{
    display:grid !important;
    grid-template-columns: 26px 1fr !important;
    align-items:center !important;
    column-gap:.7rem !important;
    width:100% !important;
  }

  .equipment-tech-item span{
    font-size: .9rem !important;
    line-height: 1.45 !important;
    text-align:left !important;
  }

  .tech-icon{
    width: 22px !important;
    height: 22px !important;
    justify-self:start !important;
  }

  /* contact names smaller on mobile */
  .contact-people .contact-person:first-child .contact-person-image,
  .contact-people .contact-person:last-child .contact-person-image,
  .contact-person-image{
    max-width: 165px !important;
  }
}

@media (max-width: 480px){
  .hero .slide{
    top: 13svh !important;
    bottom: 26svh !important;
  }

  .hero-text h1{
    font-size: 1.14rem !important;
    max-width: 14.5ch !important;
  }

  .hero-subcontent p{
    font-size: 0.86rem !important;
    max-width: 16.5rem !important;
  }

  .equipment-tech-item span{
    font-size: .86rem !important;
  }

  .contact-people .contact-person:first-child .contact-person-image,
  .contact-people .contact-person:last-child .contact-person-image,
  .contact-person-image{
    max-width: 150px !important;
  }
}
/* === end mobile refinements v96 === */


/* === Mobile refinement v97 === */
.hero-line1,
.hero-line2{
  display:inline;
}

.hero-line1::after{
  content:" ";
}

@media (max-width: 768px){
  /* HERO title exactly 2 lines + half-line gap */
  .hero-text h1{
    max-width: none !important;
    white-space: normal !important;
    font-size: 1.18rem !important;
    line-height: 1.12 !important;
  }

  .hero-line1,
  .hero-line2{
    display:block !important;
  }

  .hero-line1{
    margin-bottom: 0.5em !important; /* ~ half-line gap */
  }

  .hero-line1::after{
    content:"";
  }

  /* make hero intro a bit bigger */
  .hero-subcontent p{
    font-size: 0.94rem !important;
    line-height: 1.5 !important;
  }

  /* make "Co děláme" intro a bit smaller */
  .services > p,
  .services .section-intro{
    font-size: 0.86rem !important;
    line-height: 1.52 !important;
  }

  /* make know-how intro smaller too */
  .knowhow p,
  .knowhow .text-block p,
  .knowhow .knowhow-text{
    font-size: 0.86rem !important;
    line-height: 1.52 !important;
  }

  /* mobile contact names: keep both equal visually */
  .contact-people .contact-person:first-child .contact-person-image,
  .contact-people .contact-person:last-child .contact-person-image,
  .contact-person-image{
    max-width: 165px !important;
  }
}

@media (max-width: 480px){
  .hero-text h1{
    font-size: 1.12rem !important;
  }

  .hero-subcontent p{
    font-size: 0.9rem !important;
  }

  .services > p,
  .services .section-intro,
  .knowhow p,
  .knowhow .text-block p,
  .knowhow .knowhow-text{
    font-size: 0.84rem !important;
  }

  .contact-people .contact-person:first-child .contact-person-image,
  .contact-people .contact-person:last-child .contact-person-image,
  .contact-person-image{
    max-width: 150px !important;
  }
}
/* === end mobile refinement v97 === */


/* === Mobile refinements v98 === */
@media (max-width: 768px){
  .hero .slide{
    top: calc(12svh - 1cm) !important;
    bottom: calc(24svh + 1cm) !important;
  }

  .hero-subcontent p{
    max-width: 21.5rem !important;
    padding: 0 0.15rem !important;
  }

  .services > p,
  .services .section-intro{
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
  }

  .contact-people .contact-person:first-child .contact-person-image{
    max-width: 198px !important;
  }
}

@media (max-width: 480px){
  .hero .slide{
    top: calc(13svh - 0.9cm) !important;
    bottom: calc(26svh + 0.9cm) !important;
  }

  .hero-subcontent p{
    max-width: 19.2rem !important;
  }

  .services > p,
  .services .section-intro{
    font-size: 0.8rem !important;
  }

  .contact-people .contact-person:first-child .contact-person-image{
    max-width: 180px !important;
  }
}
/* === end mobile refinements v98 === */



/* === tweak Co delame text smaller v99 === */
@media (max-width:768px){
  .services > p,
  .services .section-intro{
    font-size: 0.78rem !important;
    line-height: 1.48 !important;
  }
}

@media (max-width:480px){
  .services > p,
  .services .section-intro{
    font-size: 0.76rem !important;
  }
}
/* === end tweak === */



/* === tweak Co delame even smaller v100 === */
@media (max-width:768px){
  .services > p,
  .services .section-intro{
    font-size: 0.74rem !important;
    line-height: 1.45 !important;
  }
}

@media (max-width:480px){
  .services > p,
  .services .section-intro{
    font-size: 0.72rem !important;
  }
}
/* === end tweak === */



/* === tweak Co delame even smaller again v101 === */
@media (max-width:768px){
  .services > p,
  .services .section-intro{
    font-size: 0.68rem !important;
    line-height: 1.42 !important;
  }
}

@media (max-width:480px){
  .services > p,
  .services .section-intro{
    font-size: 0.66rem !important;
  }
}
/* === end tweak === */



/* === Co delame smaller again v102 === */
@media (max-width:768px){
  .services > p,
  .services .section-intro{
    font-size: 0.62rem !important;
    line-height: 1.4 !important;
  }
}

@media (max-width:480px){
  .services > p,
  .services .section-intro{
    font-size: 0.60rem !important;
  }
}
/* === end === */



/* === fix osoba1 scaling mobile only v103 === */

.contact-person-image{
  max-width: unset !important;
}

@media (max-width:768px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.2);
    transform-origin: center;
  }
}

@media (max-width:480px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.2);
  }
}
/* === end fix === */


/* === osoba1 desktop restore + mobile only enlarge v104 === */
/* desktop: keep normal size */
.contact-people .contact-person:first-child .contact-person-image{
  transform: none !important;
}

/* mobile only: enlarge osoba1 */
@media (max-width:768px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.2) !important;
    transform-origin: center !important;
  }
}

@media (max-width:480px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.2) !important;
  }
}
/* === end osoba1 fix === */



/* === adjustments v105 === */

@media (min-width: 769px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(0.7) !important;
    transform-origin: center !important;
  }
}

@media (max-width:768px){
  .services > p,
  .services .section-intro{
    font-size: 0.58rem !important;
    line-height: 1.38 !important;
  }
}

@media (max-width:480px){
  .services > p,
  .services .section-intro{
    font-size: 0.56rem !important;
  }
}
/* === end adjustments === */



/* === corrections v106 === */

/* desktop osoba1: slightly bigger and aligned */
@media (min-width: 769px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(0.82) !important;
    transform-origin: center bottom !important;
    position: relative;
    top: -6px; /* lift up to align with osoba2 */
  }
}

/* mobile Co delame enforce stronger override */
@media (max-width:768px){
  .services > p,
  .services .section-intro{
    font-size: 0.72rem !important; /* ~20% smaller than base */
    line-height: 1.45 !important;
  }
}

/* even stronger specificity fallback */
@media (max-width:768px){
  section.services p{
    font-size: 0.72rem !important;
  }
}

@media (max-width:480px){
  .services > p,
  .services .section-intro,
  section.services p{
    font-size: 0.7rem !important;
  }
}
/* === end corrections === */



/* === corrections v107 === */

/* mobile: lift osoba1 about 1cm */
@media (max-width: 768px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.2) translateY(-1cm) !important;
    transform-origin: center !important;
  }

  /* match Co děláme intro + service card text to equipment intro size */
  .services > p,
  .services .section-intro,
  section.services p,
  .service p,
  .services .service p{
    font-size: 0.9rem !important;
    line-height: 1.55 !important;
  }
}

@media (max-width: 480px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.2) translateY(-0.9cm) !important;
  }

  .services > p,
  .services .section-intro,
  section.services p,
  .service p,
  .services .service p{
    font-size: 0.86rem !important;
    line-height: 1.52 !important;
  }
}
/* === end corrections v107 === */


/* === Contact image cleanup v108 === */
/* There were multiple old overrides fighting each other.
   This block resets the two name images explicitly for desktop and mobile. */

/* base reset */
.contact-people .contact-person .contact-person-image{
  position: relative !important;
  top: 0 !important;
  transform: none !important;
  transform-origin: center center !important;
}

/* desktop */
@media (min-width: 769px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(0.82) !important;
    transform-origin: center center !important;
    top: -14px !important;   /* lift osoba1 to align with osoba2 */
  }

  .contact-people .contact-person:last-child .contact-person-image{
    transform: none !important;
    top: 0 !important;
  }
}

/* mobile */
@media (max-width: 768px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.20) translateY(-0.6cm) !important;
    transform-origin: center center !important;
    top: 0 !important;
  }

  .contact-people .contact-person:last-child .contact-person-image{
    transform: none !important;
    top: 0 !important;
  }
}

@media (max-width: 480px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.20) translateY(-0.55cm) !important;
  }
}
/* === end contact image cleanup === */



/* === mobile fine-tune v109 === */
@media (max-width: 768px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.20) translateY(0.2cm) !important;
  }
}

@media (max-width: 480px){
  .contact-people .contact-person:first-child .contact-person-image{
    transform: scale(1.20) translateY(0.1cm) !important;
  }
}
/* === end === */

/* === desktop alignment fix v111 === */
@media (min-width:769px){
  .contact-people .contact-person:first-child .contact-person-image{
    top: 0 !important;
    transform: scale(0.82) !important;
  }
}
/* === end === */


/* ===== Poptávkový formulář ===== */
.inquiry-page {
  min-height: 100vh;
  background:
    linear-gradient(180deg, rgba(8,10,16,0.88), rgba(8,10,16,0.96)),
    url('pozadi_kontakty.jpg') center/cover no-repeat fixed;
  color: #fff;
}
.inquiry-shell {
  width: min(100%, 760px);
  margin: 0 auto;
  padding: 2rem 1.1rem 4rem;
}
.inquiry-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.inquiry-back {
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  opacity: 0.9;
}
.inquiry-back:hover { opacity: 1; }
.inquiry-card {
  background: rgba(19, 22, 30, 0.88);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 22px;
  box-shadow: 0 18px 44px rgba(0,0,0,0.28);
  padding: clamp(1.25rem, 3vw, 2.2rem);
  backdrop-filter: blur(6px);
}
.inquiry-card h1 {
  margin: 0 0 0.45rem;
  font-size: clamp(1.85rem, 4.5vw, 2.7rem);
  line-height: 1.15;
}
.inquiry-title-line {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}
.inquiry-heart, .inquiry-wave {
  color: #d40000;
  font-size: 0.95em;
  line-height: 1;
}
.inquiry-wave {
  color: #fff;
}
.inquiry-lead {
  margin: 0 0 2rem;
  font-size: 1.05rem;
  color: rgba(255,255,255,0.85);
}
.inquiry-form { display: grid; gap: 1.35rem; }
.inquiry-group { display: grid; gap: 0.65rem; }
.inquiry-label, .inquiry-legend { font-weight: 700; color: #fff; }
.inquiry-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.9rem;
}
.inquiry-field, .inquiry-textarea {
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: #fff;
  padding: 0.95rem 1rem;
  font: inherit;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.inquiry-field::placeholder, .inquiry-textarea::placeholder { color: rgba(255,255,255,0.58); }
.inquiry-field:focus, .inquiry-textarea:focus {
  outline: none;
  border-color: rgba(212,0,0,0.95);
  box-shadow: 0 0 0 4px rgba(212,0,0,0.14);
  background: rgba(255,255,255,0.09);
}
.inquiry-textarea { min-height: 170px; resize: vertical; }
.inquiry-help { font-size: 0.95rem; color: rgba(255,255,255,0.7); }
.inquiry-error {
  display: none;
  font-size: 0.95rem;
  color: #ff8d8d;
}
.inquiry-field.is-invalid, .inquiry-textarea.is-invalid {
  border-color: #ff5e5e;
  box-shadow: 0 0 0 4px rgba(255,94,94,0.12);
}
.inquiry-field.is-invalid + .inquiry-error, .inquiry-textarea.is-invalid + .inquiry-error { display: block; }
.inquiry-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 0.75rem;
  margin-top: 0.35rem;
}
.inquiry-submit, .inquiry-secondary {
  appearance: none;
  border: 0;
  border-radius: 12px;
  font: inherit;
  font-weight: 800;
  padding: 0.86rem 1rem;
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  min-width: 0;
}
.inquiry-submit {
  background: #d40000;
  color: #fff;
  box-shadow: 0 10px 26px rgba(212,0,0,0.26);
}
.inquiry-submit:hover { transform: translateY(-1px); }
.inquiry-secondary {
  background: rgba(255,255,255,0.08);
  color: #fff;
}
.inquiry-phone {
  white-space: nowrap;
}
.form-status {
  min-height: 1.2rem;
  font-size: 0.95rem;
  color: #ffb9b9;
}
.thanks-box { text-align: center; }
.thanks-box p {
  color: rgba(255,255,255,0.84);
  max-width: 42rem;
  margin: 0 auto 1.25rem;
}
@media (max-width: 700px) {
  .inquiry-page { background-attachment: scroll; }
  .inquiry-row { grid-template-columns: 1fr; }
  .inquiry-topbar { align-items: flex-start; flex-direction: column; }
  .inquiry-card { border-radius: 18px; padding: 1.15rem; }
  .inquiry-actions { grid-template-columns: 1fr; }
}


.headline {
  display: flex;
  align-items: center;
  gap: 8px;
}

.smiley {
  height: 1em;
  width: auto;
}

.example { font-style: italic; font-weight: normal; }
