/*
 * CSS de Overrides (carrega por último)
 *
 * Use este arquivo quando o CSS do Elementor (ou do tema) estiver sobrescrevendo
 * regras do seu style.css apenas por ordem de carregamento.
 *
 * Dica: se mesmo assim não vencer, aumente especificidade do seletor e/ou use
 * !important apenas como último recurso.
 */

/* =========================================================
   1) TOKENS
   ========================================================= */
:root {
    --start-radius-card: 10px;
    --start-radius: 20px;
    --start-section-spacing-y: 80px;
    --start-section-spacing-top: 80px;
    --start-section-spacing-bottom: 80px;
    --start-section-spacing-x: 24px;
    --start-items-gap: 20px;
    --start-card-shadow-1: 0 8px 24px rgba(0,0,0,0.08);
    --start-card-shadow-2: 0 14px 34px rgba(0,0,0,0.12);
    --start-card-shadow-3: 0 24px 54px rgba(0,0,0,0.18);
    --start-card-border: rgba(15,23,42,0.12);
    --start-tone-bg: transparent;
    --start-tone-text: inherit;
    --start-tone-muted: inherit;
}

/* =========================================================
   2) OCULTAR WIDGETS COM SHORTCODE VAZIO
   =========================================================
   Remove widgets somente quando o marcador .start-empty-shortcode
   for o unico conteudo renderizado.
*/
.elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode > .start-empty-shortcode:only-child),
.elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode > p:only-child > .start-empty-shortcode:only-child),
.elementor-widget-shortcode:has(> .elementor-shortcode > .start-empty-shortcode:only-child),
.elementor-widget-shortcode:has(> .elementor-shortcode > p:only-child > .start-empty-shortcode:only-child),
.elementor-widget-text-editor:has(> .elementor-widget-container > .start-empty-shortcode:only-child),
.elementor-widget-text-editor:has(> .elementor-widget-container > p:only-child > .start-empty-shortcode:only-child),
.elementor-widget-text-editor:has(> .elementor-widget-container > .elementor-text-editor > .start-empty-shortcode:only-child),
.elementor-widget-text-editor:has(> .elementor-widget-container > .elementor-text-editor > p:only-child > .start-empty-shortcode:only-child),
.elementor-widget-text-editor:has(> .elementor-text-editor > .start-empty-shortcode:only-child),
.elementor-widget-text-editor:has(> .elementor-text-editor > p:only-child > .start-empty-shortcode:only-child),
.elementor-widget:has(> .start-empty-shortcode:only-child),
.elementor-widget:has(> .elementor-heading-title > .start-empty-shortcode:only-child),
.elementor-widget:has(> .elementor-widget-container > .start-empty-shortcode:only-child),
.elementor-widget:has(> .elementor-widget-container > p:only-child > .start-empty-shortcode:only-child),
.elementor-widget:has(> .elementor-button .start-empty-shortcode:only-child),
.start-condition:has(.start-empty-shortcode:only-child)
{
    display: none !important;
}

/* =========================================================
   3) UTILITARIOS DE LAYOUT
   ========================================================= */
.h-100 .start-elementor-section {
    height: 100vh;
}

.row-reverse .start-elementor-section .e-con-inner {
    flex-direction: row-reverse !important;
}

.column .start-elementor-section .e-con-inner {
    flex-direction: column !important;
}

.column-reverse .start-elementor-section .e-con-inner {
    flex-direction: column-reverse !important;
}

.container-sm .start-elementor-section > .e-con-inner {
    max-width: 740px;
    margin-left: auto;
    margin-right: auto;
}

.title-center .start-elementor-section .elementor-image-box-wrapper{
    text-align: center !important;
}

/* Grid utilitario para widgets internos de secao (desktop) */
.start-section-wrapper.grid-2 .elementor-grid, .start-section-wrapper.grid-2 .start-repeater-grid { grid-template-columns: repeat(2, 1fr); }
.start-section-wrapper.grid-3 .elementor-grid, .start-section-wrapper.grid-3 .start-repeater-grid { grid-template-columns: repeat(3, 1fr); }
.start-section-wrapper.grid-4 .elementor-grid, .start-section-wrapper.grid-4 .start-repeater-grid { grid-template-columns: repeat(4, 1fr); }
.start-section-wrapper.grid-5 .elementor-grid, .start-section-wrapper.grid-5 .start-repeater-grid { grid-template-columns: repeat(5, 1fr); }
.start-section-wrapper.grid-6 .elementor-grid, .start-section-wrapper.grid-6 .start-repeater-grid { grid-template-columns: repeat(6, 1fr); }

/* ── Grid responsivo (automatico, sem classes extras) ──────────────────────
   Tablet (769–1024 px): grids com 3+ colunas colapsam para 2 colunas.
   Mobile (≤ 768 px)   : todas as grids ficam em 1 coluna por padrao.
   Na exceção de grid-2 em telas medias (≥ 480 px) mantemos 2 colunas
   para casos de uso como icones/badges lado a lado (pares simples).
   ─────────────────────────────────────────────────────────────────────── */

/* TABLET */
@media (min-width: 769px) and (max-width: 1024px) {
    .start-section-wrapper.grid-3 .elementor-grid,
    .start-section-wrapper.grid-3 .start-repeater-grid,
    .start-section-wrapper.grid-4 .elementor-grid,
    .start-section-wrapper.grid-4 .start-repeater-grid,
    .start-section-wrapper.grid-5 .elementor-grid,
    .start-section-wrapper.grid-5 .start-repeater-grid,
    .start-section-wrapper.grid-6 .elementor-grid,
    .start-section-wrapper.grid-6 .start-repeater-grid { grid-template-columns: repeat(2, 1fr); }
}

/* MOBILE MEDIO (480–768 px): grid-2 fica em 2 colunas; o resto em 1 */
@media (min-width: 480px) and (max-width: 768px) {
    .start-section-wrapper.grid-3 .elementor-grid,
    .start-section-wrapper.grid-3 .start-repeater-grid,
    .start-section-wrapper.grid-4 .elementor-grid,
    .start-section-wrapper.grid-4 .start-repeater-grid,
    .start-section-wrapper.grid-5 .elementor-grid,
    .start-section-wrapper.grid-5 .start-repeater-grid,
    .start-section-wrapper.grid-6 .elementor-grid,
    .start-section-wrapper.grid-6 .start-repeater-grid { grid-template-columns: repeat(2, 1fr); }
}

/* MOBILE PEQUENO (≤ 479 px): tudo em 1 coluna */
@media (max-width: 479px) {
    .start-section-wrapper.grid-2 .elementor-grid,
    .start-section-wrapper.grid-2 .start-repeater-grid,
    .start-section-wrapper.grid-3 .elementor-grid,
    .start-section-wrapper.grid-3 .start-repeater-grid,
    .start-section-wrapper.grid-4 .elementor-grid,
    .start-section-wrapper.grid-4 .start-repeater-grid,
    .start-section-wrapper.grid-5 .elementor-grid,
    .start-section-wrapper.grid-5 .start-repeater-grid,
    .start-section-wrapper.grid-6 .elementor-grid,
    .start-section-wrapper.grid-6 .start-repeater-grid { grid-template-columns: 1fr; }
}

/* Utilitarios de gap para grids e repetidores */
.start-section-wrapper.gap-0 { --start-items-gap: 0px; }
.start-section-wrapper.gap-10 { --start-items-gap: 10px; }
.start-section-wrapper.gap-20 { --start-items-gap: 20px; }
.start-section-wrapper.gap-30 { --start-items-gap: 30px; }
.start-section-wrapper.gap-40 { --start-items-gap: 40px; }
.start-section-wrapper.gap-50 { --start-items-gap: 50px; }

/* Utilitarios de espacamento vertical de secao */
.start-section-wrapper.spacing-top-0 { --start-section-spacing-top: 0px; }
.start-section-wrapper.spacing-top-40 { --start-section-spacing-top: 40px; }
.start-section-wrapper.spacing-top-80 { --start-section-spacing-top: 80px; }
.start-section-wrapper.spacing-top-120 { --start-section-spacing-top: 120px; }

.start-section-wrapper.spacing-bottom-0 { --start-section-spacing-bottom: 0px; }
.start-section-wrapper.spacing-bottom-40 { --start-section-spacing-bottom: 40px; }
.start-section-wrapper.spacing-bottom-80 { --start-section-spacing-bottom: 80px; }
.start-section-wrapper.spacing-bottom-120 { --start-section-spacing-bottom: 120px; }

/* =========================================================
   4) SECOES START (BASE, TEMAS E VARIANTE BOX)
   ========================================================= */
.start-section-wrapper {
    position: relative;
}

.start-elementor-section {
    --padding-top: var(--start-section-spacing-top, var(--start-section-spacing-y));
    --padding-bottom: var(--start-section-spacing-bottom, var(--start-section-spacing-y));
    --padding-left: var(--start-section-spacing-x);
    --padding-right: var(--start-section-spacing-x);
}

.start-section-wrapper.no-spacing {
    --start-section-spacing-top: 0;
    --start-section-spacing-bottom: 0;
}

.start-section-wrapper.no-spacing-top {
    --start-section-spacing-top: 0;
}

.start-section-wrapper.no-spacing-bottom {
    --start-section-spacing-bottom: 0;
}

/* Variante box: mantem secao no container, com sombra e relevo */
.start-section-wrapper.box .start-elementor-section > .e-con-inner {
    box-sizing: border-box;
    max-width: var(--content-width);
    margin: var(--start-section-spacing-top, var(--start-section-spacing-y)) auto var(--start-section-spacing-bottom, var(--start-section-spacing-y));
    padding: 50px;
    border-radius: var(--start-radius);
    box-shadow: 0 5px 60px rgba(0,0,0,0.1);
}

.start-section-wrapper.light {
    background: rgba(0,0,0,0.03);
}

.start-section-wrapper.primary {
    background: var(--e-global-color-primary);
}

.start-section-wrapper.primary,
.start-section-wrapper.primary h1,
.start-section-wrapper.primary h2,
.start-section-wrapper.primary h3,
.start-section-wrapper.primary h4,
.start-section-wrapper.primary p,
.start-section-wrapper.primary a {
    color: #ffffff;
}

.start-section-wrapper.primary svg path {
    fill: #ffffff;
}

.start-section-wrapper.primary .elementor-button::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(255,255,255,0.05);
}

.start-section-wrapper.dark {
    background: var(--e-global-color-primary);
}

.start-section-wrapper.dark::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(0,0,0,0.5);
}

.start-section-wrapper.dark,
.start-section-wrapper.dark h1,
.start-section-wrapper.dark h2,
.start-section-wrapper.dark h3,
.start-section-wrapper.dark h4,
.start-section-wrapper.dark p,
.start-section-wrapper.dark a {
    color: #efefef;
}

.start-section-wrapper.dark svg path {
    fill: #efefef;
}

/* =========================================================
   5) CARDS E RAZOES DE IMAGEM
   ========================================================= */
.card {
    overflow: hidden;
    border-radius: var(--start-radius-card);
    border: solid 1px rgba(0,0,0,0.1);
}

.start-section-wrapper.card-no-border .card{
    border: none;
}

.start-section-wrapper.light .card,
.start-section-wrapper.light.box .start-elementor-section > .e-con-inner {
    background: #ffffff;
}

.start-section-wrapper.primary .card,
.start-section-wrapper.primary.box .start-elementor-section > .e-con-inner {
    background: linear-gradient(135deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.05) 100%);
}

.start-section-wrapper.primary .card i {
    color: #fff !important;
}

.start-section-wrapper.dark .card,
.start-section-wrapper.dark.box .start-elementor-section > .e-con-inner {
    background: linear-gradient(-60deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.05) 100%);
}

.start-section-wrapper.dark .card i {
    color: var(--e-global-color-primary) !important;
}

/* -- Proporcao da IMAGEM dentro do card ------------------------------------ */
/* card-img-{ratio} e o nome explicito; card-{ratio} mantido para legado.    */
.card-img-16x9 .card img, .card-16x9 .card img,
.card-img-3x2 .card img,  .card-3x2 .card img,
.card-img-4x3 .card img,  .card-4x3 .card img,
.card-img-1x1 .card img,  .card-1x1 .card img,
.card-img-4x5 .card img,  .card-4x5 .card img,
.card-img-3x4 .card img,  .card-3x4 .card img,
.card-img-9x16 .card img, .card-9x16 .card img { object-fit: cover; width: 100%; }

.card-img-16x9 .card img, .card-16x9 .card img { aspect-ratio: 16 / 9; }
.card-img-3x2 .card img,  .card-3x2 .card img  { aspect-ratio: 3  / 2; }
.card-img-4x3 .card img,  .card-4x3 .card img  { aspect-ratio: 4  / 3; }
.card-img-1x1 .card img,  .card-1x1 .card img  { aspect-ratio: 1  / 1; }
.card-img-4x5 .card img,  .card-4x5 .card img  { aspect-ratio: 4  / 5; }
.card-img-3x4 .card img,  .card-3x4 .card img  { aspect-ratio: 3  / 4; }
.card-img-9x16 .card img, .card-9x16 .card img { aspect-ratio: 9  / 16; }

/* -- Proporcao do CARD em si (container inteiro) --------------------------- */
/* Util quando todo o conteudo do card deve respeitar uma proporcao fixa.     */
.start-section-wrapper.card-box-16x9 .card { aspect-ratio: 16 / 9;  overflow: hidden; }
.start-section-wrapper.card-box-3x2  .card { aspect-ratio: 3  / 2;  overflow: hidden; }
.start-section-wrapper.card-box-4x3  .card { aspect-ratio: 4  / 3;  overflow: hidden; }
.start-section-wrapper.card-box-1x1  .card { aspect-ratio: 1  / 1;  overflow: hidden; }
.start-section-wrapper.card-box-4x5  .card { aspect-ratio: 4  / 5;  overflow: hidden; }
.start-section-wrapper.card-box-3x4  .card { aspect-ratio: 3  / 4;  overflow: hidden; }
.start-section-wrapper.card-box-9x16 .card { aspect-ratio: 9  / 16; overflow: hidden; }

/* -- Proporcao da IMAGEM PRINCIPAL da secao -------------------------------- */
/* Afeta somente widget Image do Elementor; nao interfere em imgs de cards.  */
.start-section-wrapper.section-img-16x9 .elementor-widget-image img { aspect-ratio: 16 / 9;  object-fit: cover; width: 100%; }
.start-section-wrapper.section-img-3x2  .elementor-widget-image img { aspect-ratio: 3  / 2;  object-fit: cover; width: 100%; }
.start-section-wrapper.section-img-4x3  .elementor-widget-image img { aspect-ratio: 4  / 3;  object-fit: cover; width: 100%; }
.start-section-wrapper.section-img-1x1  .elementor-widget-image img { aspect-ratio: 1  / 1;  object-fit: cover; width: 100%; }
.start-section-wrapper.section-img-4x5  .elementor-widget-image img { aspect-ratio: 4  / 5;  object-fit: cover; width: 100%; }
.start-section-wrapper.section-img-3x4  .elementor-widget-image img { aspect-ratio: 3  / 4;  object-fit: cover; width: 100%; }
.start-section-wrapper.section-img-9x16 .elementor-widget-image img { aspect-ratio: 9  / 16; object-fit: cover; width: 100%; }

/* =========================================================
   6) GALERIA NATIVA WORDPRESS (GRID)
   ========================================================= */
.gallery {
    display: grid;
    grid-gap: 20px;
    margin-bottom: 30px;
    width: 100%;
}

.gallery .gallery-item {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
}

.gallery-icon img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    object-fit: cover;
    aspect-ratio: 1 / 1;
}

.gallery-icon img:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 15px rgba(0,0,0,0.1);
}

.gallery-columns-1 { grid-template-columns: 1fr; }
.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.gallery-columns-5 { grid-template-columns: repeat(5, 1fr); }

.gallery-columns-6,
.gallery-columns-7,
.gallery-columns-8,
.gallery-columns-9 {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}

.gallery-caption {
    font-size: 13px;
    color: #666;
    text-align: center;
    margin-top: 5px;
    padding: 0 5px;
}

@media (max-width: 768px) {
    .gallery {
        grid-gap: 15px;
    }

    .gallery[class*="gallery-columns-"] {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }
}

@media (max-width: 480px) {
    .gallery {
        grid-gap: 10px;
    }

    .gallery[class*="gallery-columns-"] {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* =========================================================
   7) FILTROS E REPETIDORES
   ========================================================= */
.start-repeater-grid {
    display: grid;
    gap: var(--start-items-gap);
}

.start-section-wrapper .elementor-grid {
    --grid-column-gap: var(--start-items-gap);
    --grid-row-gap: var(--start-items-gap);
    grid-column-gap: var(--start-items-gap);
    grid-row-gap: var(--start-items-gap);
}

form.start-tax-filters {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
}

form.start-tax-filters.flex-column {
    flex-direction: column;
    gap: 25px;
}

.start-tax-filter {
    flex: 1;
    position: relative;
}

.start-tax-filter .elementor-field {
    width: 100%;
}

.start-tax-filter__label {
    position: absolute;
    top: -24px;
    font-size: 0.9rem;
}

.start-tax-filter__actions {
    display: flex;
    gap: 20px;
    align-items: center;
}

/* =========================================================
   8) CORRECOES PONTUAIS DO ELEMENTOR
   ========================================================= */

/* Google Maps: evita marker arredondado por reset global de img */
.start-map-wrapper .gm-style img[style*="position: absolute"],
.start-map-wrapper .gm-style img[style*="position:absolute"] {
    border-radius: 0;
}

/* Swiper: previne colapso visual antes da inicializacao JS */
.elementor-widget-image-carousel .swiper-wrapper,
.elementor-widget-slides .swiper-wrapper,
.elementor-main-swiper .swiper-wrapper {
    display: flex;
    flex-wrap: nowrap;
    box-sizing: content-box;
}

.elementor-widget-image-carousel .swiper-container,
.elementor-main-swiper {
    overflow: hidden;
}

.swiper-slide {
    flex-shrink: 0;
    height: 100%;
    position: relative;
}

/* Popup/offcanvas: oculta por padrao ate Elementor ativar inline */
.dialog-widget-content:not(.dialog-lightbox-widget-content) {
    display: none;
}

/* Fade sem deslocamento para elementos com animacao de entrada */
.start-fade-delay {
    opacity: 0;
    transform: none !important;
    animation: startFadeIn 0.5s ease-out forwards;
    animation-delay: 0.2s;
}

@keyframes startFadeIn {
    from {
        opacity: 0;
        transform: none !important;
    }

    to {
        opacity: 1;
        transform: none !important;
    }
}

/* Botao precisa de contexto de posicionamento para pseudo-elementos */
.elementor-button {
    position: relative;
}


.topico[href=""] {
    pointer-events: none;
    cursor: default;
}

/* =========================================================
   9) SISTEMA DE CLASSES AUXILIARES (IA-FIRST)
   =========================================================
   Objetivo: fornecer blocos combinaveis para criar layouts em secoes e cards
   sem depender de CSS custom por pagina.

   Receita rapida de combinacao:
   - Estrutura: layout-* + grid-* + gap-*
   - Atmosfera: tone-* + deco-*
   - Card: card-* + radius-* + shadow-*
   - Motion: reveal-* + stagger-*
*/

/* Layouts de secao */
.start-section-wrapper.layout-split .start-elementor-section > .e-con-inner {
    display: grid;
    grid-template-columns: minmax(280px, 1.1fr) minmax(280px, 0.9fr);
    align-items: center;
    gap: clamp(20px, 4vw, 56px);
}

.start-section-wrapper.layout-media-right .start-elementor-section > .e-con-inner {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(280px, 1.1fr);
    align-items: center;
    gap: clamp(20px, 4vw, 56px);
}

.start-section-wrapper.layout-stack .start-elementor-section > .e-con-inner {
    display: flex;
    flex-direction: column;
    gap: clamp(14px, 2vw, 26px);
}

.start-section-wrapper.layout-spotlight {
    overflow: hidden;
}

.start-section-wrapper.layout-spotlight::before {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    top: -180px;
    right: -120px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 72%);
    pointer-events: none;
}

.start-section-wrapper.layout-zigzag .start-repeater-item:nth-child(2n) {
    transform: translateY(14px);
}

/* Tons / atmosferas de secao */
.start-section-wrapper.tone-ocean {
    --start-tone-bg: linear-gradient(135deg, #0c3e77 0%, #1f6bb3 100%);
    --start-tone-text: #f8fbff;
    --start-tone-muted: rgba(248,251,255,0.82);
    background: var(--start-tone-bg);
    color: var(--start-tone-text);
}

.start-section-wrapper.tone-sand {
    --start-tone-bg: linear-gradient(140deg, #f8f1e7 0%, #f3e6d3 100%);
    --start-tone-text: #3f3022;
    --start-tone-muted: #6d5a49;
    background: var(--start-tone-bg);
    color: var(--start-tone-text);
}

.start-section-wrapper.tone-forest {
    --start-tone-bg: linear-gradient(145deg, #0f5132 0%, #2d7b52 100%);
    --start-tone-text: #f6fff9;
    --start-tone-muted: rgba(246,255,249,0.82);
    background: var(--start-tone-bg);
    color: var(--start-tone-text);
}

.start-section-wrapper.tone-sunset {
    --start-tone-bg: linear-gradient(135deg, #7f2b16 0%, #c75620 45%, #f29c38 100%);
    --start-tone-text: #fff8f3;
    --start-tone-muted: rgba(255,248,243,0.84);
    background: var(--start-tone-bg);
    color: var(--start-tone-text);
}

.start-section-wrapper[class*="tone-"] h1,
.start-section-wrapper[class*="tone-"] h2,
.start-section-wrapper[class*="tone-"] h3,
.start-section-wrapper[class*="tone-"] h4,
.start-section-wrapper[class*="tone-"] h5,
.start-section-wrapper[class*="tone-"] h6 {
    color: var(--start-tone-text);
}

.start-section-wrapper[class*="tone-"] p,
.start-section-wrapper[class*="tone-"] li,
.start-section-wrapper[class*="tone-"] .elementor-widget-text-editor {
    color: var(--start-tone-muted);
}

/* Decoracao */
.start-section-wrapper.deco-grid::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(to right, rgba(255,255,255,0.08) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255,255,255,0.08) 1px, transparent 1px);
    background-size: 38px 38px;
    opacity: 0.45;
}

.start-section-wrapper.deco-dots::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: radial-gradient(rgba(255,255,255,0.2) 1.4px, transparent 1.4px);
    background-size: 20px 20px;
    opacity: 0.45;
}

/* Cards */
.card-elevated .card {
    border: 1px solid transparent;
    box-shadow: var(--start-card-shadow-2);
}

.card-soft .card {
    border: 1px solid var(--start-card-border);
    box-shadow: var(--start-card-shadow-1);
    background: #ffffff;
}

.card-glass .card {
    border: 1px solid rgba(255,255,255,0.35);
    background: linear-gradient(140deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.08) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.card-outline .card {
    border: 2px solid currentColor;
    box-shadow: none;
}

.card-accent-top .card {
    border-top: 4px solid var(--e-global-color-primary);
}

.card-hover-lift .card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.card-hover-lift .card:hover {
    transform: translateY(-8px);
    box-shadow: var(--start-card-shadow-3);
}

/* Raio e sombra auxiliares */
.radius-none { --start-radius-card: 0px; --start-radius: 0px; }
.radius-sm { --start-radius-card: 8px; --start-radius: 12px; }
.radius-md { --start-radius-card: 14px; --start-radius: 20px; }
.radius-lg { --start-radius-card: 22px; --start-radius: 30px; }
.radius-pill { --start-radius-card: 999px; --start-radius: 999px; }

.shadow-soft .card { box-shadow: var(--start-card-shadow-1); }
.shadow-medium .card { box-shadow: var(--start-card-shadow-2); }
.shadow-strong .card { box-shadow: var(--start-card-shadow-3); }

/* Grid responsivo auxiliar */
.start-section-wrapper.grid-auto-sm .elementor-grid,
.start-section-wrapper.grid-auto-sm .start-repeater-grid {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.start-section-wrapper.grid-auto-md .elementor-grid,
.start-section-wrapper.grid-auto-md .start-repeater-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.start-section-wrapper.grid-auto-lg .elementor-grid,
.start-section-wrapper.grid-auto-lg .start-repeater-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

/* Tipografia utilitaria */
.text-balance h1,
.text-balance h2,
.text-balance h3,
.text-balance .elementor-heading-title {
    text-wrap: balance;
}

.text-compact p,
.text-compact li {
    line-height: 1.45;
}

.title-left .start-elementor-section .elementor-image-box-wrapper {
    text-align: left !important;
}

.title-right .start-elementor-section .elementor-image-box-wrapper {
    text-align: right !important;
}

/* Motion */
.reveal-up {
    opacity: 0;
    transform: translateY(18px);
    animation: startRevealUp 0.55s ease forwards;
}

.reveal-fade {
    opacity: 0;
    animation: startRevealFade 0.45s ease forwards;
}

.stagger-children > * {
    opacity: 0;
    transform: translateY(16px);
    animation: startRevealUp 0.55s ease forwards;
}

.stagger-children > *:nth-child(1) { animation-delay: 0.06s; }
.stagger-children > *:nth-child(2) { animation-delay: 0.12s; }
.stagger-children > *:nth-child(3) { animation-delay: 0.18s; }
.stagger-children > *:nth-child(4) { animation-delay: 0.24s; }
.stagger-children > *:nth-child(5) { animation-delay: 0.30s; }
.stagger-children > *:nth-child(6) { animation-delay: 0.36s; }

@keyframes startRevealUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes startRevealFade {
    to {
        opacity: 1;
    }
}

@media (max-width: 1024px) {
    .start-section-wrapper.layout-split .start-elementor-section > .e-con-inner,
    .start-section-wrapper.layout-media-right .start-elementor-section > .e-con-inner {
        grid-template-columns: 1fr;
    }

    .start-section-wrapper.layout-zigzag .start-repeater-item:nth-child(2n) {
        transform: none;
    }
}

/*
START_TOOLBAR_SUGGESTIONS

# Formato:
# - uma classe por linha
# - opcional: classe|Rótulo amigável

title-center|Titulos centralizados
title-left|Titulos a esquerda
title-right|Titulos a direita
text-balance|Titulos com quebra equilibrada
text-compact|Texto com entrelinha compacta

card-img-16x9|Img do card 16:9
card-img-3x2|Img do card 3:2
card-img-4x3|Img do card 4:3
card-img-1x1|Img do card 1:1
card-img-4x5|Img do card 4:5
card-img-3x4|Img do card 3:4
card-img-9x16|Img do card 9:16

card-box-16x9|Card 16:9
card-box-3x2|Card 3:2
card-box-4x3|Card 4:3
card-box-1x1|Card 1:1
card-box-4x5|Card 4:5
card-box-3x4|Card 3:4
card-box-9x16|Card 9:16

section-img-16x9|Img da secao 16:9
section-img-3x2|Img da secao 3:2
section-img-4x3|Img da secao 4:3
section-img-1x1|Img da secao 1:1
section-img-4x5|Img da secao 4:5
section-img-3x4|Img da secao 3:4
section-img-9x16|Img da secao 9:16

card-no-border|Card sem borda
card-soft|Card suave
card-elevated|Card elevado
card-glass|Card glass
card-outline|Card contorno
card-accent-top|Card com faixa superior
card-hover-lift|Card com hover lift

radius-none|Raio 0
radius-sm|Raio pequeno
radius-md|Raio medio
radius-lg|Raio grande
radius-pill|Raio pílula

shadow-soft|Sombra suave
shadow-medium|Sombra media
shadow-strong|Sombra forte

tone-ocean|Atmosfera ocean
tone-sand|Atmosfera areia
tone-forest|Atmosfera floresta
tone-sunset|Atmosfera sunset

deco-grid|Decoracao em grade
deco-dots|Decoracao em pontos

layout-split|Layout em duas colunas
layout-media-right|Layout com midia a direita
layout-stack|Layout empilhado
layout-spotlight|Layout com spotlight
layout-zigzag|Layout em zigzag

reveal-up|Animacao de subida
reveal-fade|Animacao fade
stagger-children|Animacao escalonada nos filhos

h-100|Altura 100vh
column|Widgets em coluna
box|Container com sombra
row-reverse|Ordem reversa
column-reverse|Ordem reversa vertical
container-sm|Container centralizado e estreito
no-spacing|Sem espaçamento vertical
no-spacing-top|Sem espaçamento no topo
no-spacing-bottom|Sem espaçamento embaixo

spacing-top-0|Topo 0px
spacing-top-40|Topo 40px
spacing-top-80|Topo 80px
spacing-top-120|Topo 120px

spacing-bottom-0|Embaixo 0px
spacing-bottom-40|Embaixo 40px
spacing-bottom-80|Embaixo 80px
spacing-bottom-120|Embaixo 120px

grid-2|2 Colunas
grid-3|3 Colunas
grid-4|4 Colunas
grid-5|5 Colunas
grid-6|6 Colunas
grid-auto-sm|Auto grid pequeno
grid-auto-md|Auto grid medio
grid-auto-lg|Auto grid grande

gap-0|Gap 0px
gap-10|Gap 10px
gap-20|Gap 20px
gap-30|Gap 30px
gap-40|Gap 40px
gap-50|Gap 50px

END_TOOLBAR_SUGGESTIONS
*/
