/* Rozloženie obsahu stránky vloženého ako vizuálne upraviteľný Classic blok. */
.about .author-portrait {
  width:100%;
  max-width:480px;
  margin:0;
}
.about .author-portrait img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4 / 5;
  object-fit:cover;
  border-radius:24px;
}

/* Fotka zostane presný kruh aj pri zúžení mobilného displeja. */
.about .wp-block-image {
  width:min(400px,100%)!important;
  max-width:100%!important;
  aspect-ratio:1 / 1!important;
  margin-left:auto!important;
  margin-right:auto!important;
  overflow:hidden;
  border-radius:50%!important;
}
.about .wp-block-image img {
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  aspect-ratio:1 / 1!important;
  object-fit:cover!important;
  border-radius:50%!important;
}

/* Celé slovo zostane spolu; ďalší span v H1 ostáva samostatným modrým riadkom. */
.hero h1 span.no-break {
  display:inline!important;
  color:inherit!important;
  white-space:nowrap!important;
}

/* Posúvateľné referencie a recenzie. Bloky zostávajú v editore bežnými stĺpcami. */
.portfolio-grid.is-slider,
.review-grid.is-slider {
  display:flex!important;
  flex-wrap:nowrap!important;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.portfolio-grid.is-slider::-webkit-scrollbar,
.review-grid.is-slider::-webkit-scrollbar {
  display:none;
}
.portfolio-grid.is-slider {
  gap:28px!important;
}
.portfolio-grid.is-slider > .wp-block-column {
  flex:0 0 calc((100% - 28px) / 2)!important;
  min-width:0;
  scroll-snap-align:start;
}
.project > figure.project-preview {
  display:block;
  width:100%;
  height:350px;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  border:0!important;
  outline:0!important;
  border-radius:0;
  box-shadow:none!important;
  background:#17394f;
  font-size:0;
  line-height:0;
}
.project > figure.project-preview img {
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:top center;
  transform:scale(1.004);
  transform-origin:center;
}
.review-grid.is-slider {
  gap:20px!important;
}
.review-grid.is-slider > .wp-block-column {
  flex:0 0 calc((100% - 40px) / 3)!important;
  min-width:0;
  scroll-snap-align:start;
}
.review-grid.is-slider > .wp-block-column > .wp-block-quote {
  height:100%;
}
.slider-controls {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:-94px!important;
  margin-bottom:42px!important;
  position:relative;
  z-index:3;
  pointer-events:none;
}
.slider-controls[hidden] {
  display:none!important;
}
.slider-button {
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid #b7d5e6;
  border-radius:50%;
  background:#fff;
  color:#07588f;
  cursor:pointer;
  pointer-events:auto;
  transition:background-color .18s,color .18s,border-color .18s,transform .18s;
}
.slider-button svg {
  display:block;
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.slider-button:hover,
.slider-button:focus-visible {
  background:#07588f;
  border-color:#07588f;
  color:#fff;
  transform:translateY(-1px);
}
.slider-button:focus-visible {
  outline:3px solid #21c7e8;
  outline-offset:3px;
}
.slider-button:disabled {
  opacity:.38;
  cursor:default;
  transform:none;
}
.portfolio .slider-button {
  border-color:#547286;
  background:#17394f;
  color:#fff;
}
.portfolio .slider-button:hover,
.portfolio .slider-button:focus-visible {
  border-color:#59d8f0;
  background:#59d8f0;
  color:#102b3f;
}

@media(max-width:960px){
  .portfolio-grid.is-slider > .wp-block-column,
  .review-grid.is-slider > .wp-block-column {
    flex-basis:100%!important;
  }
  .project > figure.project-preview {
    height:390px;
  }
}

@media(max-width:960px){
  .slider-controls {
    justify-content:flex-start;
    margin-top:-24px!important;
    margin-bottom:26px!important;
  }
  .slider-button {
    width:44px;
    height:44px;
  }
}

@media(max-width:700px){
  .project > figure.project-preview {
    height:285px;
  }
}

@media(prefers-reduced-motion:reduce){
  .portfolio-grid.is-slider,
  .review-grid.is-slider {
    scroll-behavior:auto;
  }
}
.wp-site-blocks main{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

.wp-site-blocks main>.wp-block-post-content{
  width:100%;
  max-width:none;
  margin:0;
}

.hero>.alignwide,
.section>.alignwide,
.footer>.alignwide{
  box-sizing:border-box;
  width:min(1180px,calc(100% - 40px))!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Gutenberg constrained group nesmie centrovať obsah hlavičiek sekcií. */
.section-head{
  text-align:left!important;
}

.section-head>*{
  box-sizing:border-box;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left!important;
}

@media(max-width:700px){
  .hero>.alignwide,
  .section>.alignwide,
  .footer>.alignwide{
    width:100%!important;
    max-width:100%!important;
  }
}

/* Drobné prispôsobenie po prevode textov na natívne bloky. */
.review-grid blockquote>p.stars{
  min-height:0;
  margin-top:0;
  margin-bottom:12px;
}

.review-grid blockquote cite{
  color:var(--muted);
  font-size:.88rem;
  font-style:normal;
  font-weight:700;
}

.simple-contact .contact-email{
  margin:5px 0 12px;
}

.footer .wp-block-column p a{
  margin-bottom:0;
}

.footer .wp-block-column p{
  line-height:1.45!important;
}

.footer .wp-block-column p br{
  display:none;
}

/* Textové odkazy v informačnom stĺpci majú dostatočne veľkú dotykovú plochu. */
.footer .wp-block-column:last-child p a {
  display:flex!important;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:44px;
  padding:7px 0;
  margin:0 0 2px;
}

/* Kontakt má rovnaký dvojriadkový rytmus ako informačné odkazy vedľa neho. */
.footer .wp-block-column:nth-child(2) p {
  line-height:44px!important;
}
.footer .wp-block-column:nth-child(2) p a {
  display:flex!important;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:44px;
  margin:0;
}

/* Pôvodné pravidlo pre vlastné menu nesmie skryť Gutenberg navigáciu. */
/* A filtered ancestor traps fixed-position navigation inside the header. */
.site-header {
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  background:#fff;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open {
  height:100dvh;
  max-height:none;
  overflow-y:auto;
}
.site-header .is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top:0!important;
}
.site-header .is-menu-open .wp-block-navigation__container {
  flex-direction:column!important;
}
#recenzie a,.review-grid a {
  color:#07588f!important;
  text-decoration:underline!important;
  text-underline-offset:4px;
  text-decoration-thickness:1px;
}
#recenzie a:hover,.review-grid a:hover,
#recenzie a:focus-visible,.review-grid a:focus-visible {
  color:#064b79!important;
  text-decoration-thickness:2px;
}
@media(max-width:960px){
  body .site-header nav.wp-block-navigation{
    position:static;
    inset:auto;
    display:flex;
    flex-direction:row;
    align-items:center;
    width:auto;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
  }

  body .site-header .wp-block-navigation__responsive-container-open{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:8px;
    color:#102b3f;
    cursor:pointer;
  }

  body .site-header .wp-block-navigation__responsive-container.is-menu-open{
    position:fixed;
    inset:0;
    z-index:100;
    display:flex;
    padding:82px 26px 32px;
    background:#fff;
  }

  body .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
    gap:18px!important;
    align-items:flex-start;
  }

  body .site-header .wp-block-navigation__responsive-container-close{
    top:22px;
    right:22px;
    padding:8px;
  }
}

@media(max-width:700px){
  body .site-header .brand-logo{
    width:145px;
  }
}
