/* Local layout adjustment: fill the viewport after the hero.
 * Keep the reference gutters, responsive grids and readable text widths.
 * ID scope takes precedence over the CSS reinserted by Framer hydration.
 */
#main #about > .framer-q5qpf2,
#main .framer-951uk .framer-1x3rcg5,
#main #services > .framer-yvsujg,
#main #process > .framer-1dr23lm,
#main #projects > .framer-1tyzj6b,
#main #pricing > .framer-19jgwc1,
#main #tetimonials > .framer-1ivafsu,
#main #cta > .framer-1q5xncj > .framer-1bxezn9,
#main footer.framer-bTzpi > .framer-1k1kl9a {
  max-width: none;
}

/* Let project artwork grow with the flexible row on wide displays. */
#main #projects :is(.framer-1un0wwb, .framer-eiqyyz, .framer-1h8fm3e) {
  max-width: none;
}

/* Each top-level section after Hero occupies at least one visible viewport.
 * Use a minimum so long content can grow, including stacked mobile layouts.
 * The nested About overlap decoration is deliberately outside this selector.
 */
#main main.framer-1yym52n > section:not(#hero),
#main footer.framer-bTzpi {
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
}

/* The contact panel fills its section; replace the old large spacer paddings
 * with balanced vertical space so a short form fits in one viewport.
 */
#main #cta {
  padding-block: 0;
}

#main #cta > .framer-1q5xncj {
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
  padding-block: clamp(32px, 6vh, 80px);
}

/* Demo already displays a 100vh sticky panel. Its 300vh scroll spacer remains
 * intact because it supplies the progress range for the showreel animation.
 */

/* Hide the published badge across SSR, hydration and client-side routing. */
#__framer-badge-container,
.__framer-badge {
  display: none !important;
}

/* Remove the live header clock on home and project routes. */
#main nav.framer-1abknys .framer-bk57ff-container {
  display: none !important;
}
