/* Responsive repair: keep the complete hero copy in frame across desktop,
   iPhone, landscape and translated variants. Last stylesheet in the cascade. */
:root { --ciidt-hero-base: 570px; }
html { overflow-x:clip; }
body { overflow-x:clip; }
body:not(.infrastructure-page):not(.contact-page) main > .hero {
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  position:relative!important;
  isolation:isolate!important;
  width:100vw!important;
  max-width:100vw!important;
  margin-inline:calc(50% - 50vw)!important;
  height:max(75svh,var(--ciidt-hero-fit,570px))!important;
  min-height:0!important;
  padding:clamp(116px,12svh,135px) max(5vw,calc((100vw - 1248px)/2)) 66px!important;
  overflow:hidden!important;
}
/* A crisp boundary separates the entire slider from the next section. */
body:not(.infrastructure-page):not(.contact-page) main > .hero::before {
  content:none!important;
  display:none!important;
  background:none!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy {
  box-sizing:border-box!important;
  position:relative!important;
  z-index:10!important;
  width:min(650px,100%)!important;
  max-width:650px!important;
  flex:0 1 650px!important;
  min-height:0!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  gap:clamp(12px,1.6vw,20px)!important;
  align-self:center!important;
  align-items:flex-start!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy h1 {
  max-width:650px!important;
  font-size:clamp(40px,4.35vw,68px)!important;
  line-height:1.07!important;
  letter-spacing:-.055em!important;
  margin:0!important;
  overflow-wrap:normal;
  text-wrap:balance;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy .hero-intro {
  max-width:590px!important;
  font-size:clamp(17px,1.55vw,21px)!important;
  line-height:1.45!important;
  margin:0!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero .hero-actions {
  box-sizing:border-box!important;
  max-width:100%!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:12px!important;
  margin:5px 0 0!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero .hero-actions > :is(a.button.primary,button.text-link) {
  max-width:100%!important;
  min-height:48px!important;
  height:auto!important;
  padding:12px 19px!important;
  font-size:clamp(14px,1.2vw,17px)!important;
  line-height:1.35!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero > :is(.hero-slide-two,.hero-slide-three) {
  box-sizing:border-box!important;
  align-items:center!important;
  width:100%!important;
  height:100%!important;
  inset:0!important;
  padding:clamp(116px,12svh,135px) max(5vw,calc((100vw - 1248px)/2)) 66px!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.slide-body,.slide-three-content) {
  box-sizing:border-box!important;
  position:relative!important;
  z-index:10!important;
  width:min(660px,100%)!important;
  max-width:660px!important;
  height:auto!important;
  max-height:none!important;
  flex:0 1 auto!important;
  gap:clamp(11px,1.5vw,18px)!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.hero-slide-two h2,.hero-slide-three h2) {
  font-size:clamp(39px,4.4vw,68px)!important;
  line-height:1.08!important;
  max-width:670px!important;
  margin:0!important;
  text-wrap:balance;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.hero-slide-two .lead,.hero-slide-three p) {
  max-width:585px!important;
  font-size:clamp(16px,1.32vw,19px)!important;
  line-height:1.47!important;
  margin:0!important;
}
/* Slider controls stay above the imagery. */
body:not(.infrastructure-page):not(.contact-page) main > .hero .hero-dots {
  z-index:15!important;
  bottom:21px!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero .ciidt-slider-arrows {
  z-index:15!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"]>.hero-scene :is(img,video) {
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center 59%!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  -webkit-mask-size:auto!important;
  mask-size:auto!important;
  filter:none!important;
}
/* Ensure long localized labels never break the buttons or align awkwardly. */
body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.hero-actions,.slide-body,.slide-three-content) a,
body:not(.infrastructure-page):not(.contact-page) main > .hero .hero-actions button {
  text-decoration:none;
}
@media(min-width:801px) and (max-height:720px){
  body:not(.infrastructure-page):not(.contact-page) main > .hero {
    padding-top:108px!important;
    padding-bottom:62px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > :is(.hero-slide-two,.hero-slide-three) {
    padding-top:108px!important;
    padding-bottom:62px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy h1{
    font-size:clamp(38px,4vw,57px)!important;
  }
}
@media(max-width:800px){
  body:not(.infrastructure-page):not(.contact-page) main > .hero {
    height:max(60svh,var(--ciidt-hero-fit,540px))!important;
    padding:125px 6% 64px!important;
    align-items:center!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > :is(.hero-slide-two,.hero-slide-three){
    padding:125px 6% 64px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy {
    width:100%!important;
    max-width:100%!important;
    gap:13px!important;
    align-self:center!important;
    padding:0!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy h1 {
    font-size:clamp(30px,6.8vw,44px)!important;
    line-height:1.085!important;
    max-width:100%!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy .hero-intro{
    font-size:clamp(15px,3.4vw,19px)!important;
    line-height:1.39!important;
    max-width:600px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero .hero-actions{
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:flex-start!important;
    gap:9px!important;
    margin-top:4px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero .hero-actions > :is(a.button.primary,button.text-link) {
    min-height:44px!important;
    height:auto!important;
    padding:11px 17px!important;
    font-size:clamp(14px,3.2vw,16px)!important;
    line-height:1.28!important;
    max-width:100%!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.slide-body,.slide-three-content){
    max-height:none!important;
    min-width:0;
    width:100%!important;
    gap:12px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.hero-slide-two h2,.hero-slide-three h2){
    font-size:clamp(31px,6.9vw,49px)!important;
    line-height:1.08!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.hero-slide-two .lead,.hero-slide-three p){
    font-size:clamp(14px,3.1vw,17px)!important;
    line-height:1.42!important;
    max-width:100%!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero .slide-services{
    gap:6px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero .slide-services span {
    padding:5px 8px!important;
    font-size:11px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero .slide-body>.slide-cta{
    margin-top:7px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"]>.hero-copy{
    padding-top:0!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"]>.hero-scene :is(img,video){
    object-fit:cover!important;
    object-position:center bottom!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero::before{
    display:none!important;
    background:none!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero .ciidt-slider-arrows{
    bottom:15px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero .hero-dots{
    bottom:26px!important;
  }
}
@media(max-width:500px){
  body:not(.infrastructure-page):not(.contact-page) main > .hero {
    padding:115px 6% 64px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > :is(.hero-slide-two,.hero-slide-three){
    padding:115px 6% 64px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy {
    gap:11px!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy h1 {
    font-size:clamp(29px,7.45vw,38px)!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero > .hero-copy .hero-intro{
    font-size:clamp(14px,3.8vw,17px)!important;
    line-height:1.36!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero :is(.hero-slide-two h2,.hero-slide-three h2){
    font-size:clamp(29px,7.2vw,37px)!important;
  }
}
/* The enquiry button is intentionally absent over a hero, which already
   has its own CTA, and becomes a small round contact launcher on phones. */
.ciidt-floating-contact.ciidt-within-hero:not(.is-open){
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(10px);
}
@media(max-width:1100px){
  .ciidt-floating-contact:not(.is-open){
    right:max(12px,env(safe-area-inset-right))!important;
    bottom:calc(max(15px,env(safe-area-inset-bottom)) + 8px)!important;
  }
  .ciidt-floating-contact:not(.is-open) .ciidt-floating-trigger {
    box-sizing:border-box!important;
    width:52px!important;
    min-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    max-width:52px!important;
    padding:7px!important;
    gap:0!important;
    border-radius:18px!important;
    justify-content:center!important;
  }
  .ciidt-floating-contact:not(.is-open) :is(.ciidt-floating-trigger-label,.ciidt-floating-trigger-icon){
    display:none!important;
  }
  .ciidt-floating-contact:not(.is-open) .ciidt-floating-indicator{
    display:grid!important;
    place-items:center!important;
    width:36px!important;
    height:36px!important;
    flex:0 0 36px!important;
    border-radius:12px!important;
  }
  .ciidt-floating-contact:not(.is-open) .ciidt-floating-indicator svg{
    width:20px!important;
    height:20px!important;
  }
}

/* Approved reference photography, with no feathered image edges. */
.solution-card:first-child img[src*="tomecek-2026"]{object-position:50% 45%;}
.contact-dialog-visual img[src*="tomecek-2026"]{object-position:50% 50%;}

/* A translucent enquiry button keeps the scene visible through frosted glass. */
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] .hero-actions > button.text-link{
  background:rgba(255,255,255,.34)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.15);
  backdrop-filter:blur(16px) saturate(1.15);
  border:2px solid rgba(37,74,94,.4)!important;
  color:#173747!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] .hero-actions > button.text-link:hover{
  background:rgba(255,255,255,.52)!important;
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] .hero-actions > button.text-link{background:rgba(255,255,255,.85)!important;}
}

/* Larger opening brand; the compact sticky-header size remains unchanged. */
body:not(.infrastructure-page):not(.contact-page) .site-header:not(.is-scrolled) .brand img{
  width:136px;
  height:102px;
}
@media(max-width:1100px){
  body:not(.infrastructure-page):not(.contact-page) .site-header:not(.is-scrolled) .brand img{width:120px;height:90px;}
}
@media(max-width:500px){
  body:not(.infrastructure-page):not(.contact-page) .site-header:not(.is-scrolled) .brand img{width:112px;height:84px;}
  body:not(.infrastructure-page):not(.contact-page) main > .hero,
  body:not(.infrastructure-page):not(.contact-page) main > .hero > :is(.hero-slide-two,.hero-slide-three){padding-top:130px!important;}
}

/* Opening slide uses the owner's original globe film, including its white backdrop. */
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"],
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] > .hero-scene {
  background:#fff!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"]::after,
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] > .hero-scene::after {
  display:none!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] > .hero-scene {
  inset:0 0 0 auto!important;
  width:65%!important;
  height:100%!important;
}
body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] > .hero-scene :is(img,video) {
  object-fit:contain!important;
  object-position:right bottom!important;
  mask-image:none!important;
  -webkit-mask-image:none!important;
}
@media(max-width:800px){
  body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] > .hero-scene {
    width:100%!important;
  }
  body:not(.infrastructure-page):not(.contact-page) main > .hero[data-slide="2"] > .hero-copy {
    align-self:flex-start!important;
  }
}
