/* Only the captured page AND explicitly marked homepage sections are affected.
   Native Builder controls own row max-width, section padding and column spacing. */
body.ecom-home-layout .ecom-home-section {
 --ecom-home-gutter: 24px;
 --ecom-home-heading-gap: 36px;
}
body.ecom-home-layout .ecom-home-section > .section-content {
 padding-inline: var(--ecom-home-gutter);
}
/* Native Normal rows include their own 15px column gutters. Reserve only
   the remaining gutter in their Section wrapper; no negative margins. */
body.ecom-home-layout .ecom-home-section.ecom-home-native-section > .section-content {
 padding-inline: max(0px, calc(var(--ecom-home-gutter) - 15px));
}
/* Mark custom CSS grids ecom-home-content; set their width in Builder. */
body.ecom-home-layout .ecom-home-section .ecom-home-content {
 width: 100%;
 min-width: 0;
 margin: 0 auto;
}
body.ecom-home-layout .ecom-home-section .ecom-section-heading,
body.ecom-home-layout .ecom-home-section .ecom-services-intro,
body.ecom-home-layout .ecom-home-section .ecom-tech-intro {
 margin: 0 auto var(--ecom-home-heading-gap);
}
body.ecom-home-layout .ecom-home-section .ecom-process-intro {
 margin: 0 auto;
}
body.ecom-home-layout .ecom-home-section .ecom-section-heading h2 { margin-top: 20px; margin-bottom: 20px; }
body.ecom-home-layout .ecom-home-section .ecom-hero-copy { padding-top: 0; }
body.ecom-home-layout .ecom-home-section.ecom-hero-section { min-height: 0; }
body.ecom-home-layout .ecom-home-section .ecom-hero-media { margin-top: 0; }
body.ecom-home-layout .ecom-home-section .ecom-live-badge { right: 0; }
body.ecom-home-layout .ecom-home-section .ecom-conversion-badge { left: 0; }
body.ecom-home-layout .ecom-home-section .ecom-process-cta {
 width: 100%;
 margin-top: 40px;
}
body.ecom-home-layout .ecom-home-section .ecom-funnel-panel { width: 100%; }
/* Existing theme.css card padding is !important: these scoped declarations
   are required to unify internal padding without changing other pages. */
body.ecom-home-layout .ecom-home-section .ecom-process-card,
body.ecom-home-layout .ecom-home-section .ecom-case-card { padding: 28px !important; }
body.ecom-home-layout .ecom-home-section .ecom-service-cell > .col-inner { padding: 28px; }
body.ecom-home-layout .ecom-home-section .ecom-services-grid { padding: 0; }
body.ecom-home-layout .ecom-home-section .ecom-flow-diagram--process {
 gap: 28px;
 padding: 0;
 min-width: 0;
 width: 100%;
 margin: var(--ecom-home-heading-gap) auto 0;
 grid-template-columns: repeat(5, minmax(0, 1fr));
}
body.ecom-home-layout .ecom-home-section.ecom-process-flow .section-content { overflow-x: visible; }
body.ecom-home-layout .ecom-home-section .ecom-flow-node { overflow-wrap: anywhere; }
/* Full-width orange Section; retain its artwork, typography and animations. */
body.ecom-home-layout .ecom-home-build.ecom-build-native {
 width: 100%;
 max-width: none;
 margin: 0;
}
body.ecom-home-layout .ecom-home-build > .section-content { padding: 0; }
body.ecom-home-layout .ecom-home-build .ecom-build-stage { padding-inline: 24px; }
@media (max-width: 1199px) {
 body.ecom-home-layout .ecom-home-section { --ecom-home-gutter: 24px; --ecom-home-heading-gap: 32px; }
 /* Preserve sequential order and reconnect vertically instead of scrolling. */
 body.ecom-home-layout .ecom-home-section .ecom-flow-diagram--process { grid-template-columns: 1fr; gap: 40px; }
 body.ecom-home-layout .ecom-home-section .ecom-process-step { min-width: 0; }
 body.ecom-home-layout .ecom-home-section .ecom-flow-node { min-height: 0; }
  body.ecom-home-layout .ecom-home-section .ecom-flow-node::before { left: calc(50% - 4px); top: -5px; }
 body.ecom-home-layout .ecom-home-section .ecom-flow-node::after { left: calc(50% - 4px); right: auto; top: auto; bottom: -5px; }
}
@media (max-width: 549px) {
 body.ecom-home-layout .ecom-home-section { --ecom-home-gutter: 16px; --ecom-home-heading-gap: 28px; }
 body.ecom-home-layout .ecom-home-section .ecom-process-card,
 body.ecom-home-layout .ecom-home-section .ecom-case-card { padding: 24px !important; }
 body.ecom-home-layout .ecom-home-section .ecom-service-cell > .col-inner { padding: 24px; }
 body.ecom-home-layout .ecom-home-section .ecom-tech-category > .col-inner { padding: 24px; }
 body.ecom-home-layout .ecom-home-build .ecom-build-stage { padding-inline: 20px; }
}
/* Flatsome's Normal spacing adds a 30px bottom gutter to every Column;
   section padding and explicit heading gaps now provide that vertical rhythm. */
body.ecom-home-layout .ecom-home-section .ecom-home-row > .col { padding-bottom: 0; }
body.ecom-home-layout .ecom-home-section .ecom-process-card { min-height: 0; }
body.ecom-home-layout .ecom-home-section .ecom-process-card h3 { margin-bottom: 24px; }
/* Saved page 141 uses native icon boxes for services. Keep row wrapping spaced. */
body.ecom-home-layout .ecom-home-section .ecom-home-card-row { row-gap: 24px; }
/* Native Column max-width alone aligns the readable booking copy to one side. */
body.ecom-home-layout .ecom-home-booking .ecom-home-row > .col > .col-inner { margin-inline: auto; }
/* Hero columns share a top edge and use their available column width. */
body.ecom-home-layout .ecom-hero-section .ecom-hero-copy { max-width: 100%; }
@media (min-width: 850px) {
 body.ecom-home-layout .ecom-hero-section .img img {
  width: auto; max-width: 100%; display: block; margin-left: auto; margin-right: 0;
  object-position: right top;
 }
}
/* Keep every paragraph line in its text column beside the floated icon. */
body.ecom-home-layout .ecom-process-card > h3,
body.ecom-home-layout .ecom-process-card > p:last-child { display:flow-root; }

/* Center the contact and social icons beneath the hero photo. */
body.ecom-home-layout .ecom-hero-section .social-icons { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px; width:100%; margin:16px auto 0; }
body.ecom-home-layout .ecom-hero-section .social-icons > a { margin:0 !important; }
