/* Named native Groups keep these full-width treatments editable and reusable. */
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-section {
 position: relative;
 isolation: isolate;
 padding-block: clamp(52px, 6vw, 84px);
 margin-block-start: 0;
}
.ctb-mobile-section > .ctb-row { position: relative; z-index: 1; }

/* Small accent rules provide a consistent break between the light sections. */
.ctb-mobile-process::before,
.ctb-mobile-partnership::before,
.ctb-mobile-team::before {
 content: "";
 position: absolute;
 top: 0;
 left: 50%;
 width: 80px;
 height: 4px;
 transform: translateX(-50%);
 background: linear-gradient(90deg, #109cde, #6c23c4);
 pointer-events: none;
}
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-process,
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-partnership,
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-team { background: #fff; }
.ctb-mobile-process > .ctb-row:first-child { max-width: 940px; }
.ctb-mobile-process > .ctb-row:nth-child(2) > .wp-block-column:last-child {
 padding: clamp(20px, 3vw, 32px);
 background: #f3f7fb;
 border-left: 3px solid #109cde;
 border-radius: 0 12px 12px 0;
}

/* CSS patterns stay crisp at every size and make no image requests. */
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-projects {
 background-color: #f2f7fb;
 background-image: radial-gradient(circle, #245a731c .8px, transparent 1px);
 background-size: 22px 22px;
 border-top: 1px solid #dce7ee;
}
.ctb-mobile-projects > .ctb-row:first-child { text-align: center; }
.ctb-mobile-projects > .ctb-row:first-child h2 { margin-block: 0 12px; }
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-stacks {
 background-color: #f3f7fb;
 background-image: linear-gradient(#245a7307 1px, transparent 1px), linear-gradient(90deg, #245a7307 1px, transparent 1px);
 background-size: 48px 48px;
 border-top: 1px solid #dce7ee;
}
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-mobile-divider.wp-block-separator {
 max-width: none;
 width: 100%;
 height: 3px;
 margin: 0;
 border: 0;
 opacity: 1;
 background: linear-gradient(90deg, #109cde, #245a73 55%, #6c23c4);
 color: transparent;
}

/* Full-width navy bands with restrained light effects and angled transitions. */
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-reviews {
 color: #fff;
 background: radial-gradient(ellipse at 5% 0, #109cde30, transparent 55%), repeating-linear-gradient(125deg, transparent 0 90px, #ffffff04 91px 92px), #142e3c;
 padding-bottom: clamp(76px, 8vw, 108px);
}
.ctb-mobile-reviews::after,
.ctb-mobile-cta::before,
.ctb-mobile-cta::after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 height: clamp(18px, 3vw, 40px);
 pointer-events: none;
}
.ctb-mobile-reviews::after,
.ctb-mobile-cta::after {
 bottom: -1px;
 background: #fff;
 clip-path: polygon(0 100%, 100% 0, 100% 100%);
}
.ctb-mobile-reviews .ctb-card {
 border: 0;
 border-top: 3px solid #109cde;
 box-shadow: 0 12px 32px #0002;
}
.ctb-mobile-reviews .ctb-reviews-button { margin-top: 32px; }
.ctb-mobile-reviews .wp-block-button__link,
.ctb-mobile-cta .wp-block-button__link {
 background: #fff;
 color: #142e3c;
 border: 1px solid #fff;
}
.ctb-mobile-reviews .wp-block-button__link:hover,
.ctb-mobile-reviews .wp-block-button__link:focus-visible,
.ctb-mobile-cta .wp-block-button__link:hover,
.ctb-mobile-cta .wp-block-button__link:focus-visible {
 background: #c9ecff;
 border-color: #c9ecff;
 color: #142e3c;
}
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-cta {
 color: #fff;
 background: radial-gradient(circle at 85% 45%, transparent 140px, #ffffff0a 141px 142px, transparent 143px 200px, #ffffff08 201px 202px, transparent 203px), radial-gradient(ellipse at 100% 0, #109cde50, transparent 60%), linear-gradient(115deg, #142e3c, #153e5a);
 padding-block: clamp(76px, 8vw, 112px);
}
.ctb-mobile-cta::before {
 top: -1px;
 background: #f3f7fb;
 clip-path: polygon(0 0, 100% 0, 0 100%);
}
.ctb-mobile-cta :where(h2, p) { color: inherit; }
.ctb-mobile-cta h2 { font-size: clamp(30px, 3.5vw, 42px); margin-block-start: 0; }
.ctb-mobile-cta > .ctb-row:first-child { align-items: center !important; }
.ctb-mobile-cta .wp-block-image { margin: 0; text-align: center; }
.ctb-mobile-cta .wp-block-image img { border-radius: 12px; box-shadow: 0 12px 32px #0002; }
.ctb-mobile-cta .wp-block-buttons { justify-content: center; }

.ctb-mobile-team .wp-block-separator { display: none; }
.ctb-mobile-team .ctb-team { background: #f3f7fb; border: 1px solid #dce7ee; }
:is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-faq {
 background: linear-gradient(180deg, #f2f7fb, #fff);
 border-top: 1px solid #dce7ee;
}

@media (max-width: 781px) {
 :is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-section { padding-block: 44px; }
 :is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-reviews { padding-bottom: 66px; }
 :is(.ctb-service-page, .editor-styles-wrapper) .ctb-section.ctb-mobile-cta { padding-block: 66px; }
 .ctb-mobile-cta .wp-block-column:empty { display: none; }
}
