body:is(.site-page, .pricing-page) {
  --section-gap: calc(clamp(44px, 5.5vw, 80px) + 28.5px);
  --section-half-gap: calc(var(--section-gap) / 2);
  --video-link-gap: 24px;
  --video-link-line: calc(16px * 1.85);
}

/* Share the centre gutter of the image pairs with both text layouts. */
@media (min-width: 901px) {
  :is(#site-content, body.site-page, body.pricing-page)
  :is([data-sk-text-intro], [data-sk-text-continuation] > .container > .row) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
  }
}

/* Split one interval between adjacent blocks on the same background. */
body:is(.site-page, .pricing-page) section.text .sk-text-subheading {
  margin-block-start: var(--section-gap);
}
body:is(.site-page, .pricing-page) section.text .sk-text-subheading:has(> div > .sk-text-eyebrow + h3) {
  margin-block-start: calc(var(--section-gap) - 28.5px);
}

:is(#site-content, body.site-page, body.pricing-page)
:is(body > section, main > section):is(.text:not(.has-breadcrumbs, .package-overview), .image-grid, .single-image, .faq, .circles-section, .zig-zag, .image-text, .author, .sk-designer-section, .content-navigation) {
  padding-block: max(0px, calc(var(--section-start, var(--section-half-gap)) - var(--section-label, 0px))) var(--section-end, var(--section-half-gap));
}

body:is(.site-page, .pricing-page) section.text[data-sk-legacy-intro]:has([data-sk-text-intro] .sk-text-eyebrow) {
  --section-label: 28.5px;
}

/* Count the YouTube link in the interval measured from the video frame. */
:is(#site-content, body.site-page, body.pricing-page)
section.text[data-sk-youtube-video]:has(+ section:is([data-sk-text-intro], [data-sk-legacy-intro], [data-sk-text-continuation])) {
  padding-bottom: 0;
}
:is(#site-content, body.site-page, body.pricing-page)
section.text[data-sk-youtube-video]:has(+ section[data-sk-legacy-intro] .sk-text-eyebrow) {
  --sk-video-link-gap: min(var(--video-link-gap), calc(var(--section-gap) - var(--video-link-line) - 28.5px));
}
body:is(.site-page, .pricing-page)
section[data-sk-youtube-video] + section:is([data-sk-text-intro], [data-sk-legacy-intro], [data-sk-text-continuation]) {
  --section-start: calc(var(--section-gap) - var(--video-link-gap) - var(--video-link-line));
}
@media (max-width: 767px) {
  body:is(.site-page, .pricing-page) {
    --video-link-gap: 20px;
    --video-link-line: calc(14px * 1.85);
  }
}

body:is(.site-page, .pricing-page) section.faq[data-faq-system]:has(.mk-faq-label) {
  --section-label: 36.5px;
}
:is(#site-content, body.site-page, body.pricing-page) section.faq[data-faq-system] {
  padding-block: max(0px, calc(var(--section-start, var(--section-half-gap)) - var(--section-label, 0px))) var(--section-end, var(--section-half-gap));
}

/* Legacy wrappers add a second bottom margin inside the text blocks. */
body:is(.site-page, .pricing-page) section.text:not(.has-breadcrumbs, .package-overview)
  :is([data-sk-text-intro], [data-sk-text-intro] > div, .column > div:last-child, .column > p:last-child, .column > div:last-child > p:last-child) {
  margin-bottom: 0;
}

/* Start the section at the higher photo and offset the second photo within it. */
body:is(.site-page, .pricing-page) section.zig-zag {
  --photo-pair-gap: 20px;
}
body:is(.site-page, .pricing-page) section.zig-zag > .container > .row > div > .row {
  display: grid;
  gap: var(--photo-pair-gap);
  margin-inline: 0;
}
body:is(.site-page, .pricing-page) section.zig-zag > .container > .row > div > .row > .column {
  min-width: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-inline: 0;
}
body:is(.site-page, .pricing-page) section.zig-zag picture img {
  display: block;
}
@media (min-width: 992px) {
  body:is(.site-page, .pricing-page) section.zig-zag > .container > .row > div > .row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
  body:is(.site-page, .pricing-page) section.zig-zag > .container > .row > div > .row > .column:nth-child(2) {
    margin-top: 125px;
  }
}
@media (max-width: 767px) {
  body:is(.site-page, .pricing-page) section.zig-zag {
    --photo-pair-gap: 16px;
  }
}

body:is(.site-page, .pricing-page) :is(body > section, main > section):is(.slider.alt, .full-screen-bg.alt),
:is(#site-content, body) .sk-photo-cta[data-photo-cta="standard"][id^="cta-obsah-"] {
  margin-block: var(--section-half-gap);
}
body:is(.site-page, .pricing-page) :is(body > section, main > section).page-header {
  margin-bottom: 0;
}

/* At a colour change, each side of the boundary gets a full interval. */
body:is(.site-page, .pricing-page) :is(section.items, section.related-items, section.text.package-overview) {
  margin-block: 0;
  padding-block: var(--section-gap);
}
body:is(.site-page, .pricing-page) section.items > .container > .row {
  row-gap: 20px;
}
body:is(.site-page, .pricing-page) section.related-items > .container > .row {
  row-gap: 30px;
}
body:is(.site-page, .pricing-page) :is(section.items, section.related-items) > .container > .row > .column > a {
  margin-bottom: 0;
}
:is(#site-content, body.site-page, body.pricing-page) .sk-card-section[data-card-section="standard"] > .sk-card-section__inner {
  padding-block: var(--section-gap);
}
body:is(.site-page, .pricing-page) > .hp-footer > .hp-footer__inner {
  padding-top: var(--section-gap);
}

body:is(.site-page, .pricing-page) {
  :is(section.page-header, section.sk-project-facts, section.items, section.related-items, section.package-overview, section.sk-card-section) + section,
  :is(section.page-header, section.sk-project-facts, section.items, section.related-items, section.package-overview, section.sk-card-section) + main > section:first-of-type {
    --section-start: var(--section-gap);
  }

  section:has(+ :is(section.items, section.related-items, section.package-overview, section.sk-card-section, section.full-screen-bg:not(.alt), footer.hp-footer)),
  main:has(+ :is(section.items, section.related-items, section.sk-card-section, section.full-screen-bg:not(.alt), footer.hp-footer)) > section:last-of-type {
    --section-end: var(--section-gap);
  }
}
