/* STRJ visual refinement. Apply after the existing immutable stylesheets.
   Only the three explicit page classes below opt into these changes. */

/* The original film stays; its pause control no longer needs a caption bar. */
body:is(.strj-visual-home,.strj-visual-tech) .premium-film {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #101316;
}
body:is(.strj-visual-home,.strj-visual-tech) .premium-film figcaption {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  display: flex;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
body:is(.strj-visual-home,.strj-visual-tech) .premium-film button {
  width: 44px;
  height: 44px;
  border: 1px solid #d7b69766;
  border-radius: 0;
  background: #101316e8;
  color: #f0d8bd;
}
body:is(.strj-visual-home,.strj-visual-tech) .premium-film > .premium-film-toggle {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
}
body:is(.strj-visual-home,.strj-visual-tech) .premium-film button:hover {
  background: #1d2328;
  border-color: #edb988;
}
body:is(.strj-visual-home,.strj-visual-tech) .premium-film button:focus-visible {
  outline: 2px solid #ff9b4d;
  outline-offset: -5px;
}
body:is(.strj-visual-home,.strj-visual-tech) .premium-film button[hidden] {
  display: none;
}

/* One featured web composition, then the two existing machine illustrations. */
body.strj-visual-home #reseni :is(.premium-cards,.premium-grid) {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 48px 36px;
}
body.strj-visual-home #reseni .premium-card {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
body.strj-visual-home #reseni .premium-card-image {
  aspect-ratio: auto;
  margin: 0 0 22px;
  background: transparent;
}
body.strj-visual-home #reseni .premium-card-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  transform: none;
}
body.strj-visual-home #reseni .premium-card:first-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0,1.4fr) minmax(0,.8fr);
  grid-template-rows: auto auto 1fr;
  align-items: start;
  column-gap: 44px;
}
body.strj-visual-home #reseni .premium-card:first-child > .premium-card-image {
  grid-column: 1;
  grid-row: 1 / 4;
  margin: 0;
}
body.strj-visual-home #reseni .premium-card:first-child > :not(.premium-card-image) {
  grid-column: 2;
}
body.strj-visual-home #reseni .premium-card:first-child > h3 {
  grid-row: 1;
  margin-top: clamp(6px,2.5vw,32px);
  font-size: clamp(1.65rem,2.6vw,2.25rem);
}
body.strj-visual-home #reseni .premium-card:first-child > .premium-link {
  grid-row: 3;
  align-self: start;
  justify-self: start;
}
body.strj-visual-home #reseni .premium-card p {
  max-width: 49ch;
}
body.strj-visual-home #reseni .premium-card h3 > .premium-link {
  min-height: 44px;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-decoration: none;
}
body.strj-visual-home #reseni .premium-card h3 > .premium-link:hover {
  color: #9a3c11;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}
body.strj-visual-home #reseni .premium-card:first-child > p:not(.visual-concept-note) {
  grid-row: 2;
}
body.strj-visual-home #reseni .premium-card .visual-concept-note {
  margin: 12px 0 0;
  color: var(--color-ash);
  font: 400 .8125rem/1.5 var(--font-sans);
  letter-spacing: 0;
}
body.strj-visual-home #reseni .premium-card:first-child > .visual-concept-note {
  grid-column: 1;
  grid-row: 4;
}
body.strj-visual-home #reseni .premium-section-head {
  margin-bottom: 34px;
}
body.strj-visual-home #reseni .premium-next {
  margin-top: 30px;
  padding-top: 0;
  border-top: 0;
}

/* Give the existing animated drawing a real column in every wizard state.
   Do not change visibility, animation classes, fieldsets, or click targets. */
body.strj-visual-home #stroj .st-scena {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(180px,250px);
  align-items: center;
  gap: 40px;
  position: relative;
  isolation: isolate;
}
body.strj-visual-home #stroj .st-levy {
  grid-column: 1;
  min-width: 0;
  order: 0;
}
body.strj-visual-home #stroj .st-pravy {
  grid-column: 2;
  display: block;
  position: relative;
  inset: auto;
  z-index: 0;
  order: 1;
  align-self: center;
  justify-self: center;
  width: 100%;
  max-width: 250px;
  height: auto;
  aspect-ratio: 1;
  padding: 0;
  margin: 0;
  opacity: 1;
  transform: none;
  mask-image: none;
  background: transparent;
  border: 0;
  pointer-events: none;
}
body.strj-visual-home #stroj .st-maskot {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 1;
}
body.strj-visual-home #stroj .st-znak-obal > svg {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

/* Two generous concept images follow the existing web-service introduction. */
body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) {
  grid-template-columns: minmax(0,1fr);
  gap: 34px;
}
body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) > div:first-child:not(.visual-web-pair) {
  display: grid;
  grid-template-columns: minmax(0,.95fr) minmax(0,1fr);
  align-items: start;
  column-gap: 64px;
}
body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) > div:first-child:not(.visual-web-pair) > :not(ul) {
  grid-column: 1;
}
body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) > div:first-child:not(.visual-web-pair) > ul {
  grid-column: 2;
  grid-row: 1 / 5;
  margin: 0;
}
body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) > div:first-child:not(.visual-web-pair) > .btn {
  justify-self: start;
  align-self: start;
  margin-top: 16px;
}
body.strj-visual-tech .visual-web-pair {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  align-items: start;
  gap: 28px;
  min-width: 0;
}
body.strj-visual-tech .visual-web-pair > figure,
body.strj-visual-shop .visual-shop-concept {
  min-width: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
body.strj-visual-tech .visual-web-pair img,
body.strj-visual-shop .visual-shop-concept img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
body.strj-visual-tech .visual-web-pair figcaption,
body.strj-visual-shop .visual-shop-concept figcaption {
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-ash);
  font: 400 .8125rem/1.5 var(--font-sans);
  letter-spacing: 0;
  text-transform: none;
}
body.strj-visual-shop main > .ph > .ph-in:has(> .visual-shop-concept) {
  grid-template-columns: minmax(0,.92fr) minmax(0,1.18fr);
  gap: 44px;
}
/* Existing client proposals remain visible, in proportion to the new examples. */
body:is(.strj-visual-tech,.strj-visual-shop) .visual-existing-example {
  grid-column: 1 / -1;
  min-width: 0;
  max-width: none;
  margin: 8px 0 0;
}
body:is(.strj-visual-tech,.strj-visual-shop) figure.visual-existing-example,
body:is(.strj-visual-tech,.strj-visual-shop) .visual-existing-example > figure.detail-proof {
  display: grid;
  grid-template-columns: 200px minmax(0,1fr);
  align-items: center;
  gap: 22px;
  width: 100%;
  max-width: none;
  margin: 8px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
}
body:is(.strj-visual-tech,.strj-visual-shop) .visual-existing-example img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
body:is(.strj-visual-tech,.strj-visual-shop) .visual-existing-example figcaption {
  max-width: 48ch;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-ash);
  font: 400 .8125rem/1.6 var(--font-sans);
  letter-spacing: 0;
  text-transform: none;
}
body:is(.strj-visual-tech,.strj-visual-shop) .visual-existing-example a:focus-visible {
  outline: 2px solid var(--color-orange);
  outline-offset: 4px;
}

@media (max-width: 979px) {
  body.strj-visual-home #reseni .premium-card:first-child {
    grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);
    column-gap: 28px;
  }
  body.strj-visual-home #stroj .st-scena {
    grid-template-columns: minmax(0,1fr) 180px;
    gap: 24px;
  }
  body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) > div:first-child:not(.visual-web-pair) {
    column-gap: 32px;
  }
  body.strj-visual-shop main > .ph > .ph-in:has(> .visual-shop-concept) {
    grid-template-columns: minmax(0,1fr);
    gap: 28px;
  }
  body.strj-visual-shop .visual-shop-concept {
    max-width: 760px;
    justify-self: start;
  }
}
@media (max-width: 700px) {
  body.strj-visual-home #reseni :is(.premium-cards,.premium-grid) {
    grid-template-columns: minmax(0,1fr);
    gap: 38px;
  }
  body.strj-visual-home #reseni .premium-card:first-child {
    display: block;
  }
  body.strj-visual-home #reseni .premium-card:first-child > .premium-card-image {
    margin-bottom: 22px;
  }
  body.strj-visual-home #reseni .premium-card:first-child > h3 {
    margin-top: 0;
  }
  body.strj-visual-home #reseni .premium-card:first-child > .visual-concept-note {
    margin: -10px 0 22px;
  }
  body.strj-visual-home #stroj .st-scena {
    grid-template-columns: minmax(0,1fr);
    gap: 22px;
  }
  body.strj-visual-home #stroj .st-levy,
  body.strj-visual-home #stroj .st-pravy {
    grid-column: 1;
  }
  body.strj-visual-home #stroj .st-pravy {
    width: 138px;
    max-width: 100%;
  }
  body.strj-visual-home #stroj .st-otazka {
    font-size: clamp(1.75rem,7.5vw,2.35rem);
    line-height: 1.12;
  }
  body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) > div:first-child:not(.visual-web-pair) {
    display: block;
  }
  body.strj-visual-tech #web-build .premium-work:has(> .visual-web-pair) > div:first-child:not(.visual-web-pair) > ul {
    margin-block: 22px;
  }
  body.strj-visual-tech .visual-web-pair {
    grid-template-columns: minmax(0,1fr);
    gap: 26px;
  }
  body:is(.strj-visual-tech,.strj-visual-shop) figure.visual-existing-example,
  body:is(.strj-visual-tech,.strj-visual-shop) .visual-existing-example > figure.detail-proof {
    grid-template-columns: 120px minmax(0,1fr);
    gap: 16px;
  }
}
