/* Ajustes especificos para Elementor */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-button { transition: transform .2s ease, opacity .2s ease, background-color .2s ease; }
.elementor-button:hover { transform: translateY(-1px); }

/* CRECE service and local landing system 1801 */
:where(.crece-service-detail-section, .crece-local-page) {
    --crece-layout-width: 1180px;
    --crece-layout-gutter: 32px;
    --crece-card-radius: 8px;
    --crece-card-border: rgba(146, 112, 168, .14);
    --crece-card-shadow: 0 18px 45px rgba(64, 56, 77, .065);
}

:where(.crece-service-detail-section, .crece-local-page) > .elementor-container {
    width: min(var(--crece-layout-width), calc(100% - (var(--crece-layout-gutter) * 2))) !important;
    max-width: none !important;
    margin-inline: auto !important;
}

:where(.crece-service-detail-section, .crece-local-page) > .elementor-container > .elementor-column {
    min-width: 0 !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-widget-wrap {
    min-width: 0 !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-widget-heading .elementor-heading-title {
    letter-spacing: 0 !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-widget-text-editor {
    color: var(--soulvi-text) !important;
    font-size: 1rem !important;
    line-height: 1.72 !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-widget-text-editor p {
    margin: 0 0 14px !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-icon-box-title {
    margin: 0 0 8px !important;
    letter-spacing: 0 !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-icon-box-description {
    margin: 0 !important;
    color: var(--soulvi-text) !important;
    line-height: 1.58 !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-icon-box-icon {
    margin: 0 !important;
    display: flex !important;
    flex: 0 0 auto !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-icon-box-wrapper {
    min-width: 0 !important;
}

:where(.crece-service-detail-section, .crece-local-page) .crece-icon-lavender .elementor-icon {
    background: var(--soulvi-primary) !important;
}

:where(.crece-service-detail-section, .crece-local-page) .crece-icon-peach .elementor-icon {
    background: var(--soulvi-secondary) !important;
}

:where(.crece-service-detail-section, .crece-local-page) .crece-icon-sage .elementor-icon {
    background: var(--soulvi-accent) !important;
}

:where(.crece-service-detail-section, .crece-local-page) .crece-icon-gold .elementor-icon {
    background: var(--soulvi-gold) !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-icon {
    color: #fff !important;
    fill: #fff !important;
}

:where(.crece-service-detail-section, .crece-local-page) .elementor-icon i,
:where(.crece-service-detail-section, .crece-local-page) .elementor-icon svg {
    color: inherit !important;
    fill: currentColor !important;
}

/* Shared heading treatment */
.crece-service-section-title,
.crece-local-title-band {
    text-align: center !important;
}

.crece-service-section-title .elementor-heading-title,
.crece-local-section-title .elementor-heading-title {
    color: var(--soulvi-primary) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2.25rem, 4vw, 3.4rem) !important;
    font-weight: 500 !important;
    line-height: 1.08 !important;
}

html body .elementor :is(
    .crece-native-section-title,
    .crece-native-section-heading,
    .crece-about-section-title,
    .crece-contact-panel-title,
    .crece-service-section-title,
    .crece-local-title-band .crece-local-section-title
) .elementor-heading-title {
    position: relative !important;
    display: inline-block !important;
    padding-bottom: 36px !important;
}

html body .elementor :is(
    .crece-native-section-title,
    .crece-native-section-heading,
    .crece-about-section-title,
    .crece-contact-panel-title,
    .crece-service-section-title,
    .crece-local-title-band .crece-local-section-title
) .elementor-heading-title::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 14px !important;
    width: 132px !important;
    height: 1px !important;
    background: linear-gradient(
        90deg,
        var(--soulvi-secondary) 0 43%,
        transparent 43% 57%,
        var(--soulvi-secondary) 57% 100%
    ) !important;
    transform: translateX(-50%) !important;
}

html body .elementor :is(
    .crece-native-section-title,
    .crece-native-section-heading,
    .crece-about-section-title,
    .crece-contact-panel-title,
    .crece-service-section-title,
    .crece-local-title-band .crece-local-section-title
) .elementor-heading-title::before {
    content: "\2665" !important;
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 6px !important;
    z-index: 1 !important;
    color: var(--soulvi-secondary) !important;
    font-family: Arial, sans-serif !important;
    font-size: 12px !important;
    line-height: 1 !important;
    transform: translateX(-50%) !important;
}

/* Remove legacy wrapper dividers so every heading has only one component. */
html body .elementor :is(
    .crece-native-section-title,
    .crece-native-section-heading,
    .crece-about-section-title,
    .crece-contact-panel-title,
    .crece-service-section-title,
    .crece-local-section-title
)::before,
html body .elementor :is(
    .crece-native-section-title,
    .crece-native-section-heading,
    .crece-about-section-title,
    .crece-contact-panel-title,
    .crece-service-section-title,
    .crece-local-section-title
)::after {
    content: none !important;
    display: none !important;
}

.crece-heart-divider-widget {
    margin: 0 !important;
}

html body .elementor :is(
    .crece-heart-divider,
    .crece-blog-heart,
    .crece-services-heart,
    .crece-legal-heart
) {
    width: 132px !important;
    margin: 14px auto 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    color: var(--soulvi-secondary) !important;
    font-family: Arial, sans-serif !important;
    font-size: 12px !important;
    line-height: 1 !important;
}

html body .elementor :is(
    .crece-heart-divider,
    .crece-blog-heart,
    .crece-services-heart,
    .crece-legal-heart
)::before,
html body .elementor :is(
    .crece-heart-divider,
    .crece-blog-heart,
    .crece-services-heart,
    .crece-legal-heart
)::after {
    content: "" !important;
    display: block !important;
    flex: 0 0 50px !important;
    width: 50px !important;
    height: 1px !important;
    background: var(--soulvi-secondary) !important;
}

html body .elementor :is(
    .crece-heart-divider,
    .crece-blog-heart,
    .crece-services-heart,
    .crece-legal-heart
) span {
    display: inline-flex !important;
    color: var(--soulvi-secondary) !important;
}

/* Local pages previously stored a second standalone divider after each title. */
.crece-local-title-band .crece-local-section-title + .crece-heart-divider-widget,
.crece-local-title-band .crece-heart-divider-widget {
    display: none !important;
}

/* General service pages */
.crece-service-detail-hero {
    padding: clamp(42px, 5vw, 72px) 0 clamp(58px, 7vw, 94px) !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 10% 82%, rgba(238, 185, 170, .12), transparent 24%),
        linear-gradient(180deg, #fffaf7 0%, #fff8f4 100%) !important;
    border-bottom: 1px solid rgba(238, 185, 170, .2) !important;
}

.crece-service-detail-hero > .elementor-container {
    display: grid !important;
    grid-template-columns: minmax(0, .88fr) minmax(440px, 1.12fr) !important;
    gap: clamp(42px, 5vw, 76px) !important;
    align-items: center !important;
}

.crece-service-detail-hero > .elementor-container > .elementor-column {
    width: 100% !important;
}

.crece-service-detail-hero .elementor-widget-wrap {
    padding: 0 !important;
}

.crece-service-breadcrumb-widget {
    margin: 0 0 20px !important;
    color: var(--soulvi-muted) !important;
    font-size: .88rem !important;
}

.crece-service-breadcrumb-widget a {
    color: var(--soulvi-primary) !important;
    text-decoration: none !important;
}

.crece-service-kicker {
    margin: 0 0 20px !important;
}

.crece-service-kicker .elementor-icon-box-wrapper {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 14px 8px 9px !important;
    border: 1px solid rgba(146, 112, 168, .11) !important;
    border-radius: 999px !important;
    background: rgba(232, 223, 240, .58) !important;
}

.crece-service-kicker .elementor-icon {
    width: 30px !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    font-size: 14px !important;
}

.crece-service-kicker .elementor-icon-box-title {
    margin: 0 !important;
    color: var(--soulvi-primary-dark) !important;
    font-family: inherit !important;
    font-size: .86rem !important;
    font-weight: 800 !important;
}

.crece-service-hero-title {
    margin: 0 0 24px !important;
}

.crece-service-hero-title .elementor-heading-title {
    color: var(--soulvi-primary) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(3.25rem, 5.3vw, 5rem) !important;
    font-weight: 500 !important;
    line-height: 1.01 !important;
}

.crece-service-hero-copy {
    max-width: 650px !important;
    margin: 0 0 30px !important;
    font-size: 1.04rem !important;
    line-height: 1.74 !important;
}

.crece-service-hero-copy strong {
    color: var(--soulvi-text) !important;
    font-size: 1.1rem !important;
}

.crece-service-primary-button .elementor-button {
    min-height: 50px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 0 24px !important;
    border-radius: 8px !important;
    background: var(--soulvi-primary) !important;
    color: #fff !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    box-shadow: 0 12px 26px rgba(116, 82, 142, .2) !important;
}

.crece-service-primary-button .elementor-button-content-wrapper {
    width: auto !important;
    height: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    line-height: inherit !important;
}

.crece-service-primary-button .elementor-button-icon {
    margin: 0 !important;
    display: inline-flex !important;
    flex: 0 0 15px !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

.crece-service-primary-button .elementor-button-icon svg {
    width: 15px !important;
    height: 15px !important;
    display: block !important;
}

.crece-service-primary-button .elementor-button-text {
    line-height: 1.2 !important;
}

.crece-service-hero-image img {
    width: 100% !important;
    height: clamp(430px, 38vw, 580px) !important;
    display: block !important;
    object-fit: cover !important;
    box-shadow: 0 24px 58px rgba(64, 56, 77, .1) !important;
}

.crece-service-intro,
.crece-service-work,
.crece-service-audience,
.crece-service-methods,
.crece-service-faq-section {
    padding: clamp(64px, 7vw, 94px) 0 !important;
}

.crece-service-intro,
.crece-service-audience,
.crece-service-faq-section {
    background: #fffaf7 !important;
}

.crece-service-work,
.crece-service-methods {
    background: rgba(255, 255, 255, .78) !important;
}

.crece-service-intro-col > .elementor-widget-wrap {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

.crece-service-intro-col > .elementor-widget-wrap > .crece-service-section-title,
.crece-service-intro-col > .elementor-widget-wrap > .crece-service-centered-copy {
    grid-column: 1 / -1 !important;
}

.crece-service-centered-copy {
    width: min(100%, 900px) !important;
    margin: 0 auto 14px !important;
    text-align: center !important;
}

.crece-service-outcome,
.crece-service-work-card,
.crece-service-audience-card,
.crece-service-method {
    height: 100% !important;
    margin: 0 !important;
}

.crece-service-outcome .elementor-icon-box-wrapper,
.crece-service-work-card .elementor-icon-box-wrapper,
.crece-service-audience-card .elementor-icon-box-wrapper,
.crece-service-method .elementor-icon-box-wrapper {
    height: 100% !important;
    padding: 24px !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
    border: 1px solid var(--crece-card-border) !important;
    border-radius: var(--crece-card-radius) !important;
    background: rgba(255, 255, 255, .92) !important;
    box-shadow: var(--crece-card-shadow) !important;
}

.crece-service-outcome .elementor-icon,
.crece-service-work-card .elementor-icon,
.crece-service-audience-card .elementor-icon,
.crece-service-method .elementor-icon {
    width: 50px !important;
    height: 50px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    font-size: 21px !important;
    box-shadow: 0 10px 22px rgba(64, 56, 77, .09) !important;
}

.crece-service-outcome .elementor-icon-box-title,
.crece-service-work-card .elementor-icon-box-title,
.crece-service-audience-card .elementor-icon-box-title,
.crece-service-method .elementor-icon-box-title {
    color: var(--soulvi-heading) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
}

.crece-service-work-col > .elementor-widget-wrap {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.crece-service-work-col > .elementor-widget-wrap > .crece-service-section-title,
.crece-service-work-col > .elementor-widget-wrap > .crece-service-centered-copy {
    grid-column: 1 / -1 !important;
}

/*
 * Elementor stores these card groups as inner sections. They must span the
 * parent grid before their own columns are distributed, otherwise Elementor's
 * percentage widths squeeze a complete row into a single grid cell.
 */
.crece-service-intro-col > .elementor-widget-wrap > .crece-service-outcomes,
.crece-service-work-col > .elementor-widget-wrap > .crece-service-work-grid,
.crece-service-methods .elementor-widget-wrap > .crece-service-method-grid {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    grid-column: 1 / -1 !important;
}

.crece-service-outcomes > .elementor-container,
.crece-service-work-grid > .elementor-container,
.crece-service-method-grid > .elementor-container {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    gap: 20px !important;
}

.crece-service-outcomes > .elementor-container,
.crece-service-work-grid > .elementor-container {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.crece-service-method-grid > .elementor-container {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.crece-service-outcomes > .elementor-container > .elementor-column,
.crece-service-work-grid > .elementor-container > .elementor-column,
.crece-service-method-grid > .elementor-container > .elementor-column {
    width: auto !important;
    min-width: 0 !important;
}

.crece-service-short-copy {
    margin-bottom: 16px !important;
}

.crece-service-audience-content > .elementor-widget-wrap {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.crece-service-audience-content > .elementor-widget-wrap > .crece-service-section-title,
.crece-service-audience-content > .elementor-widget-wrap > .crece-service-audience-intro,
.crece-service-audience-content > .elementor-widget-wrap > .crece-service-audience-signals-title {
    grid-column: 1 / -1 !important;
}

.crece-service-audience-intro {
    width: min(100%, 900px) !important;
    margin: 0 auto 8px !important;
    text-align: center !important;
}

.crece-service-audience-signals-title {
    margin: 14px 0 4px !important;
    text-align: center !important;
}

.crece-service-audience-signals-title .elementor-heading-title {
    color: var(--soulvi-heading) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.65rem !important;
    font-weight: 500 !important;
}

.crece-service-methods > .elementor-container > .elementor-column > .elementor-widget-wrap {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    overflow: hidden !important;
    border: 1px solid var(--crece-card-border) !important;
    border-radius: var(--crece-card-radius) !important;
    background: #fff !important;
    box-shadow: var(--crece-card-shadow) !important;
}

@media (min-width: 1025px) {
    .crece-service-methods > .elementor-container {
        width: calc(100% - clamp(48px, 6vw, 128px)) !important;
    }

    .crece-service-method .elementor-icon-box-wrapper {
        min-height: 220px !important;
        padding: clamp(28px, 2.2vw, 42px) !important;
        gap: clamp(16px, 1.4vw, 24px) !important;
    }
}

.crece-service-methods .crece-service-section-title {
    grid-column: 1 / -1 !important;
    padding: 38px 24px 24px !important;
}

.crece-service-method .elementor-icon-box-wrapper {
    border: 0 !important;
    border-right: 1px solid var(--crece-card-border) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.crece-service-method:last-child .elementor-icon-box-wrapper {
    border-right: 0 !important;
}

.crece-service-faq-col > .elementor-widget-wrap {
    width: min(100%, 980px) !important;
    margin-inline: auto !important;
}

.crece-service-faq .elementor-accordion-item,
.crece-local-accordion .elementor-accordion-item {
    margin-bottom: 12px !important;
    overflow: hidden !important;
    border: 1px solid var(--crece-card-border) !important;
    border-radius: var(--crece-card-radius) !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(64, 56, 77, .045) !important;
}

.crece-service-faq .elementor-tab-title,
.crece-local-accordion .elementor-tab-title {
    padding: 18px 20px !important;
    border: 0 !important;
    color: var(--soulvi-heading) !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
}

.crece-service-faq .elementor-tab-content,
.crece-local-accordion .elementor-tab-content {
    padding: 0 20px 20px !important;
    border: 0 !important;
    color: var(--soulvi-text) !important;
    line-height: 1.65 !important;
}

/* Local service pages */
.crece-local-hero {
    padding: clamp(44px, 5vw, 72px) 0 clamp(64px, 7vw, 96px) !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 7% 86%, rgba(238, 185, 170, .13), transparent 25%),
        linear-gradient(180deg, #fffaf7 0%, #fff8f4 100%) !important;
    border-bottom: 1px solid rgba(238, 185, 170, .2) !important;
}

.crece-local-hero > .elementor-container {
    display: grid !important;
    grid-template-columns: minmax(0, .86fr) minmax(470px, 1.14fr) !important;
    gap: clamp(44px, 5vw, 76px) !important;
    align-items: center !important;
}

.crece-local-hero > .elementor-container > .elementor-column {
    width: 100% !important;
}

.crece-local-hero .elementor-widget-wrap {
    padding: 0 !important;
}

.crece-local-breadcrumb {
    margin: 0 0 20px !important;
    color: var(--soulvi-muted) !important;
    font-size: .88rem !important;
    font-weight: 600 !important;
}

.crece-local-breadcrumb a {
    color: var(--soulvi-primary) !important;
    text-decoration: none !important;
}

.crece-local-hero-title {
    margin: 0 0 25px !important;
}

.crece-local-hero-title .elementor-heading-title {
    color: var(--soulvi-primary) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2.9rem, 4.25vw, 4.15rem) !important;
    font-weight: 500 !important;
    line-height: 1.02 !important;
}

.crece-local-hero-copy {
    max-width: 650px !important;
    font-size: 1.03rem !important;
}

.crece-local-hero-copy strong {
    color: var(--soulvi-text) !important;
    font-size: 1.08rem !important;
}

.crece-local-hero-copy-column .crece-heart-divider {
    margin-left: 0 !important;
}

.crece-local-hero-image img {
    width: 100% !important;
    height: clamp(390px, 34vw, 500px) !important;
    display: block !important;
    object-fit: cover !important;
    border-radius: 6px 34px 6px 34px !important;
    box-shadow: 0 24px 58px rgba(64, 56, 77, .1) !important;
}

.crece-local-title-band {
    padding: clamp(54px, 6vw, 78px) 0 24px !important;
    background: #fffaf7 !important;
}

.crece-local-title-band .elementor-widget-wrap {
    padding: 0 !important;
}

.crece-local-info-panel,
.crece-local-items-grid,
.crece-local-audience-section,
.crece-local-steps-grid,
.crece-local-faq-section {
    padding: 0 0 clamp(54px, 6vw, 78px) !important;
    background: #fffaf7 !important;
}

.crece-local-info-panel > .elementor-container {
    display: grid !important;
    grid-template-columns: minmax(0, 1.9fr) minmax(300px, .8fr) !important;
    overflow: hidden !important;
    border: 1px solid var(--crece-card-border) !important;
    border-radius: var(--crece-card-radius) !important;
    background: #fff !important;
    box-shadow: var(--crece-card-shadow) !important;
}

.crece-local-info-panel > .elementor-container > .elementor-column {
    width: 100% !important;
}

.crece-local-info-panel .elementor-widget-wrap {
    height: 100% !important;
    padding: 30px !important;
}

.crece-local-info-panel > .elementor-container > .elementor-column:last-child {
    background: rgba(255, 255, 255, .72) !important;
    border-left: 1px solid var(--crece-card-border) !important;
}

.crece-local-general-link .elementor-icon-box-wrapper {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    padding: 22px !important;
    border-left: 3px solid var(--soulvi-secondary) !important;
    border-radius: 0 var(--crece-card-radius) var(--crece-card-radius) 0 !important;
    background: #fff !important;
}

.crece-local-general-link .elementor-icon {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--soulvi-secondary) !important;
    color: #fff !important;
    font-size: 18px !important;
}

.crece-local-general-link .elementor-icon i,
.crece-local-general-link .elementor-icon svg {
    color: #fff !important;
    fill: #fff !important;
}

.crece-local-general-link .elementor-icon-box-content {
    min-width: 0 !important;
}

.crece-local-general-link .elementor-icon-box-title {
    color: var(--soulvi-primary-dark) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.18rem !important;
    font-weight: 500 !important;
}

.crece-local-general-link .elementor-icon-box-description {
    color: var(--soulvi-text) !important;
    font-size: .96rem !important;
    line-height: 1.55 !important;
}

.crece-local-items-grid > .elementor-container,
.crece-local-steps-grid > .elementor-container {
    display: grid !important;
    gap: 18px !important;
}

.crece-local-items-grid > .elementor-container {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.crece-local-steps-grid > .elementor-container {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.crece-local-items-grid > .elementor-container > .elementor-column,
.crece-local-steps-grid > .elementor-container > .elementor-column {
    width: 100% !important;
}

.crece-local-item-card,
.crece-local-step-card {
    height: 100% !important;
    margin: 0 !important;
}

.crece-local-item-card .elementor-icon-box-wrapper,
.crece-local-step-card .elementor-icon-box-wrapper {
    height: 100% !important;
    padding: 23px !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 15px !important;
    border: 1px solid var(--crece-card-border) !important;
    border-radius: var(--crece-card-radius) !important;
    background: #fff !important;
    box-shadow: 0 12px 32px rgba(64, 56, 77, .05) !important;
}

.crece-local-item-card .elementor-icon,
.crece-local-step-card .elementor-icon {
    width: 48px !important;
    height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--soulvi-primary) !important;
    font-size: 20px !important;
    box-shadow: 0 10px 22px rgba(64, 56, 77, .08) !important;
}

.crece-local-items-grid > .elementor-container > .elementor-column:nth-child(4n + 1) .crece-local-item-card .elementor-icon {
    background: var(--soulvi-primary) !important;
}

.crece-local-items-grid > .elementor-container > .elementor-column:nth-child(4n + 2) .crece-local-item-card .elementor-icon {
    background: var(--soulvi-secondary) !important;
}

.crece-local-items-grid > .elementor-container > .elementor-column:nth-child(4n + 3) .crece-local-item-card .elementor-icon {
    background: var(--soulvi-accent) !important;
}

.crece-local-items-grid > .elementor-container > .elementor-column:nth-child(4n + 4) .crece-local-item-card .elementor-icon {
    background: var(--soulvi-gold) !important;
}

.crece-local-item-card .elementor-icon-box-title,
.crece-local-step-card .elementor-icon-box-title {
    color: var(--soulvi-heading) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.19rem !important;
    font-weight: 500 !important;
    line-height: 1.24 !important;
}

.crece-local-audience-section > .elementor-container {
    display: grid !important;
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr) !important;
    overflow: hidden !important;
    border: 1px solid var(--crece-card-border) !important;
    border-radius: var(--crece-card-radius) !important;
    background: #fff !important;
    box-shadow: var(--crece-card-shadow) !important;
}

.crece-local-audience-section > .elementor-container > .elementor-column {
    width: 100% !important;
}

.crece-local-audience-section .elementor-widget-wrap {
    height: 100% !important;
    padding: 30px !important;
}

.crece-local-audience-section > .elementor-container > .elementor-column:last-child {
    background: rgba(232, 223, 240, .48) !important;
    border-left: 1px solid var(--crece-card-border) !important;
}

.crece-local-sign-list .elementor-icon-list-items {
    display: grid !important;
    gap: 0 !important;
}

.crece-local-sign-list .elementor-icon-list-item {
    padding: 11px 0 !important;
    border-bottom: 1px solid rgba(146, 112, 168, .12) !important;
}

.crece-local-sign-list .elementor-icon-list-item:last-child {
    border-bottom: 0 !important;
}

.crece-local-sign-list .elementor-icon-list-icon {
    color: var(--soulvi-primary) !important;
}

.crece-local-sign-list .elementor-icon-list-text {
    color: var(--soulvi-text) !important;
    line-height: 1.45 !important;
}

.crece-local-faq-section > .elementor-container {
    width: min(980px, calc(100% - (var(--crece-layout-gutter) * 2))) !important;
}

/* Shared note */
.crece-service-note-section,
.crece-local-note-section {
    padding: 0 0 clamp(34px, 4vw, 48px) !important;
    background: #fffaf7 !important;
}

.crece-unified-note-box .elementor-icon-box-wrapper,
.crece-local-note .elementor-icon-box-wrapper {
    padding: 24px 28px !important;
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    border: 1px solid rgba(146, 112, 168, .13) !important;
    border-radius: var(--crece-card-radius) !important;
    background: linear-gradient(90deg, rgba(232, 223, 240, .72), rgba(255, 255, 255, .92)) !important;
}

.crece-unified-note-box .elementor-icon,
.crece-local-note .elementor-icon {
    width: 54px !important;
    height: 54px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--soulvi-primary) !important;
    font-size: 23px !important;
}

.crece-unified-note-box .elementor-icon-box-title,
.crece-local-note .elementor-icon-box-title {
    color: var(--soulvi-primary-dark) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.38rem !important;
    font-weight: 500 !important;
}

/* Shared CTA */
.crece-service-detail-cta,
.crece-local-cta {
    padding: 0 0 clamp(64px, 7vw, 92px) !important;
    background: #fffaf7 !important;
}

.crece-service-detail-cta > .elementor-container,
.crece-local-cta > .elementor-container {
    display: grid !important;
    grid-template-columns: minmax(230px, .72fr) minmax(360px, 1.25fr) minmax(260px, .78fr) !important;
    align-items: stretch !important;
    overflow: hidden !important;
    border: 1px solid rgba(238, 185, 170, .2) !important;
    border-radius: var(--crece-card-radius) !important;
    background:
        radial-gradient(circle at 88% 12%, rgba(146, 112, 168, .1), transparent 24%),
        linear-gradient(100deg, #fff2eb 0%, #fffaf7 58%, #f7f0fa 100%) !important;
    box-shadow: var(--crece-card-shadow) !important;
}

.crece-service-detail-cta > .elementor-container > .elementor-column,
.crece-local-cta > .elementor-container > .elementor-column {
    width: 100% !important;
}

.crece-service-detail-cta .elementor-widget-wrap,
.crece-local-cta .elementor-widget-wrap {
    height: 100% !important;
}

.crece-native-cta-media .elementor-widget-wrap,
.crece-native-cta-image-column .elementor-widget-wrap {
    padding: 0 !important;
}

.crece-native-cta-image,
.crece-native-cta-image .elementor-widget-container,
.crece-native-cta-image img {
    height: 100% !important;
}

.crece-native-cta-image img {
    width: 100% !important;
    min-height: 235px !important;
    display: block !important;
    object-fit: cover !important;
}

.crece-native-cta-copy .elementor-widget-wrap {
    padding: 34px clamp(26px, 3vw, 44px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.crece-native-cta-title {
    margin: 0 0 12px !important;
}

.crece-native-cta-title .elementor-heading-title {
    color: var(--soulvi-primary) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.75rem, 2.4vw, 2.45rem) !important;
    font-weight: 500 !important;
    line-height: 1.12 !important;
}

.crece-native-cta-actions .elementor-widget-wrap {
    padding: 30px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 12px !important;
}

.crece-native-cta-actions .elementor-widget-button {
    width: 100% !important;
    margin: 0 !important;
}

.crece-native-cta-actions .elementor-button {
    width: 100% !important;
    min-height: 50px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 0 20px !important;
    border-radius: 8px !important;
    font-weight: 800 !important;
}

.crece-native-cta-button-primary .elementor-button,
.crece-local-button-primary .elementor-button {
    background: var(--soulvi-primary) !important;
    color: #fff !important;
    box-shadow: 0 12px 26px rgba(116, 82, 142, .2) !important;
}

.crece-native-cta-button-secondary .elementor-button,
.crece-local-button-secondary .elementor-button {
    border: 1px solid rgba(146, 112, 168, .22) !important;
    background: rgba(255, 255, 255, .76) !important;
    color: var(--soulvi-text) !important;
}

.crece-native-cta-actions .elementor-button-content-wrapper {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
}

.crece-native-cta-actions .elementor-button-icon {
    display: inline-flex !important;
    align-items: center !important;
}

@media (max-width: 1024px) {
    :where(.crece-service-detail-section, .crece-local-page) {
        --crece-layout-gutter: 26px;
    }

    .crece-service-detail-hero > .elementor-container,
    .crece-local-hero > .elementor-container {
        grid-template-columns: 1fr 1fr !important;
        gap: 34px !important;
    }

    .crece-service-intro-col > .elementor-widget-wrap,
    .crece-service-work-col > .elementor-widget-wrap,
    .crece-service-audience-content > .elementor-widget-wrap,
    .crece-local-items-grid > .elementor-container,
    .crece-local-steps-grid > .elementor-container {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .crece-service-intro-col > .elementor-widget-wrap > .crece-service-section-title,
    .crece-service-intro-col > .elementor-widget-wrap > .crece-service-centered-copy,
    .crece-service-work-col > .elementor-widget-wrap > .crece-service-section-title,
    .crece-service-work-col > .elementor-widget-wrap > .crece-service-centered-copy,
    .crece-service-audience-content > .elementor-widget-wrap > .crece-service-section-title,
    .crece-service-audience-content > .elementor-widget-wrap > .crece-service-audience-intro,
    .crece-service-audience-content > .elementor-widget-wrap > .crece-service-audience-signals-title {
        grid-column: 1 / -1 !important;
    }

    .crece-service-methods > .elementor-container > .elementor-column > .elementor-widget-wrap {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .crece-service-outcomes > .elementor-container,
    .crece-service-work-grid > .elementor-container,
    .crece-service-method-grid > .elementor-container {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .crece-service-method .elementor-icon-box-wrapper {
        border-right: 1px solid var(--crece-card-border) !important;
        border-bottom: 1px solid var(--crece-card-border) !important;
    }

    .crece-service-method:nth-of-type(odd) .elementor-icon-box-wrapper {
        border-right: 0 !important;
    }

    .crece-local-info-panel > .elementor-container,
    .crece-local-audience-section > .elementor-container {
        grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr) !important;
    }

    .crece-service-detail-cta > .elementor-container,
    .crece-local-cta > .elementor-container {
        grid-template-columns: minmax(210px, .72fr) minmax(330px, 1.28fr) !important;
    }

    .crece-service-detail-cta > .elementor-container > .crece-native-cta-actions,
    .crece-local-cta > .elementor-container > .crece-native-cta-actions {
        grid-column: 1 / -1 !important;
    }

    .crece-native-cta-actions .elementor-widget-wrap {
        padding-top: 0 !important;
        flex-direction: row !important;
    }
}

@media (max-width: 767px) {
    :where(.crece-service-detail-section, .crece-local-page) {
        --crece-layout-gutter: 16px;
    }

    .crece-service-detail-hero,
    .crece-local-hero {
        padding: 30px 0 48px !important;
    }

    .crece-service-detail-hero > .elementor-container,
    .crece-local-hero > .elementor-container {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    .crece-service-hero-title .elementor-heading-title,
    .crece-local-hero-title .elementor-heading-title {
        font-size: clamp(2.35rem, 10.5vw, 2.85rem) !important;
    }

    .crece-service-hero-image img,
    .crece-local-hero-image img {
        height: 285px !important;
        border-radius: 8px 26px 8px 26px !important;
        -webkit-mask-image: none !important;
        mask-image: none !important;
        clip-path: none !important;
    }

    .crece-service-intro,
    .crece-service-work,
    .crece-service-audience,
    .crece-service-methods,
    .crece-service-faq-section {
        padding: 52px 0 !important;
    }

    .crece-service-section-title .elementor-heading-title,
    .crece-local-section-title .elementor-heading-title {
        font-size: clamp(2.05rem, 10vw, 2.65rem) !important;
    }

    .crece-service-intro-col > .elementor-widget-wrap,
    .crece-service-work-col > .elementor-widget-wrap,
    .crece-service-audience-content > .elementor-widget-wrap,
    .crece-service-methods > .elementor-container > .elementor-column > .elementor-widget-wrap,
    .crece-local-items-grid > .elementor-container,
    .crece-local-steps-grid > .elementor-container {
        grid-template-columns: 1fr !important;
    }

    .crece-service-outcomes > .elementor-container,
    .crece-service-work-grid > .elementor-container,
    .crece-service-method-grid > .elementor-container {
        grid-template-columns: 1fr !important;
    }

    .crece-service-methods > .elementor-container > .elementor-column > .elementor-widget-wrap {
        border-radius: 8px !important;
    }

    .crece-service-method .elementor-icon-box-wrapper,
    .crece-service-method:nth-of-type(odd) .elementor-icon-box-wrapper {
        border-right: 0 !important;
        border-bottom: 1px solid var(--crece-card-border) !important;
    }

    .crece-service-method:last-child .elementor-icon-box-wrapper {
        border-bottom: 0 !important;
    }

    .crece-service-outcome .elementor-icon-box-wrapper,
    .crece-service-work-card .elementor-icon-box-wrapper,
    .crece-service-audience-card .elementor-icon-box-wrapper,
    .crece-service-method .elementor-icon-box-wrapper,
    .crece-local-item-card .elementor-icon-box-wrapper,
    .crece-local-step-card .elementor-icon-box-wrapper {
        padding: 21px !important;
    }

    .crece-local-title-band {
        padding: 48px 0 22px !important;
    }

    .crece-local-info-panel > .elementor-container,
    .crece-local-audience-section > .elementor-container {
        grid-template-columns: 1fr !important;
    }

    .crece-local-info-panel .elementor-widget-wrap,
    .crece-local-audience-section .elementor-widget-wrap {
        padding: 23px !important;
    }

    .crece-local-info-panel > .elementor-container > .elementor-column:last-child,
    .crece-local-audience-section > .elementor-container > .elementor-column:last-child {
        border-left: 0 !important;
        border-top: 1px solid var(--crece-card-border) !important;
    }

    .crece-local-info-panel,
    .crece-local-items-grid,
    .crece-local-audience-section,
    .crece-local-steps-grid,
    .crece-local-faq-section {
        padding-bottom: 50px !important;
    }

    .crece-unified-note-box .elementor-icon-box-wrapper,
    .crece-local-note .elementor-icon-box-wrapper {
        padding: 22px !important;
        align-items: flex-start !important;
    }

    .crece-service-detail-cta > .elementor-container,
    .crece-local-cta > .elementor-container {
        grid-template-columns: 1fr !important;
    }

    .crece-native-cta-image img {
        min-height: 190px !important;
        height: 190px !important;
    }

    .crece-native-cta-copy .elementor-widget-wrap {
        padding: 28px 22px 20px !important;
        text-align: center !important;
    }

    .crece-native-cta-actions .elementor-widget-wrap {
        padding: 0 22px 28px !important;
        flex-direction: column !important;
    }

    .crece-native-cta-actions .elementor-button {
        width: 100% !important;
    }
}
