/**
 * Estilos compartilhados de todos os blocos/widgets (editor, preview JSON e página publicada).
 * Classes idênticas em ambos os contextos - fonte única de verdade.
 * Incluído por: editor.css (@import) e cp-render-styles.php
 */
/* Blocos base */
.cp-block { margin: 0 0 1em; }
.cp-block:last-child { margin-bottom: 0; }
.cp-section { box-sizing: border-box; width: 100%; }
.cp-section-inner { box-sizing: border-box; width: 100%; margin-left: auto; margin-right: auto; }
/* Colunas */
.cp-columns { display: grid; width: 100%; box-sizing: border-box; overflow: visible; }
.cp-col-cell { position: relative; min-height: 40px; min-width: 0; overflow: visible; }
.cp-col-cell-inner {
    position: relative;
    transform: translateZ(0);
    overflow: visible;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0;
}
.cp-col-cell-absolute {
    position: absolute !important;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 1;
    pointer-events: none;
    overflow: visible;
}
.cp-col-cell-absolute > * { pointer-events: auto; }
/* Carrossel dentro de coluna: ocupar largura total da célula */
.cp-col-cell-inner > .cp-carousel-json,
.cp-col-cell-inner > .cp-carousel { width: 100%; min-width: 0; box-sizing: border-box; }
.cp-block-group, .cp-block-group-render { overflow: visible; }
/* Button: transition unificado para evitar "piscar" (inline do render inclui transform/opacity) */
.cp-button,
.cp-btn-render {
    display: inline-block; text-decoration: none; cursor: pointer; border: none;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}
/* Hover genérico só em botões sem classe de efeito (evita conflito com hover configurado no editor) */
.cp-button:not([class*="cp-btn-hover-"]):hover,
.cp-btn-render:not([class*="cp-btn-hover-"]):hover { opacity: 0.92; transform: translateY(-1px); }
.cp-button.cp-btn-hover-border:hover,
.cp-btn-render.cp-btn-hover-border:hover { box-shadow: inset 0 0 0 2px currentColor; }
.cp-button.cp-btn-hover-line,
.cp-btn-render.cp-btn-hover-line { position: relative; overflow: hidden; }
.cp-button.cp-btn-hover-line::after,
.cp-btn-render.cp-btn-hover-line::after {
    content: ""; position: absolute; left: 12%; right: 12%; bottom: 6px; height: 2px;
    background: currentColor; transform: scaleX(0); transform-origin: center; transition: transform 0.22s ease;
}
.cp-button.cp-btn-hover-line:hover::after,
.cp-btn-render.cp-btn-hover-line:hover::after { transform: scaleX(1); }
.cp-button.cp-btn-hover-scale:hover,
.cp-btn-render.cp-btn-hover-scale:hover { transform: scale(1.05); }
.cp-button.cp-btn-hover-lift:hover,
.cp-btn-render.cp-btn-hover-lift:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.cp-button.cp-btn-hover-pulse:hover,
.cp-btn-render.cp-btn-hover-pulse:hover { animation: cp-btn-pulse 0.6s ease-in-out; }
.cp-button.cp-btn-hover-glow:hover,
.cp-btn-render.cp-btn-hover-glow:hover { box-shadow: 0 0 20px rgba(165,13,238,0.5); }
@keyframes cp-btn-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.03); }
}
/* Card */
.cp-card { box-sizing: border-box; transition: transform 0.2s, box-shadow 0.2s; }
.cp-card:hover { transform: translateY(-4px); box-shadow: 0 12px 24px -8px rgba(0,0,0,0.15) !important; }
.cp-card.cp-card-no-hover:hover { transform: none; box-shadow: none !important; }
.cp-card-icon { margin-bottom: 16px; display: flex; align-items: center; }
.cp-card-title { margin: 0 0 8px; }
.cp-card-text { margin: 0; }
/* Ícones */
.cp-icon { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; }
.cp-icon-svg svg { display: block; }
.cp-button .cp-icon { vertical-align: middle; }
.cp-button .cp-icon-fa { font-size: inherit; }
.cp-contact-item .cp-icon { flex-shrink: 0; }
/* Lista de ícones: hover via CSS vars */
.cp-icon-list-render .cp-icon-list-item:hover .cp-icon-list-icon-wrap { color: var(--il-icon-hover, inherit) !important; }
.cp-icon-list-render .cp-icon-list-item:hover .cp-icon-list-link { color: var(--il-link-hover, inherit) !important; }
.cp-icon-list-render .cp-icon-list-item:hover .cp-icon-list-text { color: var(--il-text-hover, inherit) !important; }
.cp-icon-list-sep { display: flex; align-items: center; flex-shrink: 0; }
.cp-icon-list-render[style*="flex-direction: column"] .cp-icon-list-sep { width: 100%; justify-content: center; padding: 0 !important; border-left: none !important; }
.cp-icon-material.material-symbols-outlined {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: inherit;
    line-height: 1;
    display: inline-block;
    letter-spacing: normal;
    white-space: nowrap;
    direction: ltr;
    font-variant-ligatures: normal;
}
/* Tooltips */
@keyframes cp-tooltip-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
.cp-section-hero .cp-tooltip-card,
section.cp-section-hero .cp-tooltip-card {
    animation: cp-tooltip-float 3s ease-in-out infinite;
}
.cp-tooltip-card,
.cp-icon-card[style*="position: absolute"],
.cp-icon-card[style*="position:absolute"],
.cp-icon-card[style*="position: fixed"],
.cp-icon-card[style*="position:fixed"] { opacity: 1 !important; }
/* Imagem placeholder */
.cp-image-placeholder {
    background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
    color: #64748b; display: flex; align-items: center; justify-content: center; min-height: 200px;
    border-radius: 8px; font-size: 0.875rem;
}
/* Testimonial */
.cp-testimonial { border: none; margin: 0; }
.cp-testimonial-quote { font-style: italic; margin: 0 0 0.75em; position: relative; }
.cp-testimonial-role { display: block; font-size: 0.875em; opacity: 0.7; font-style: normal; }
/* Carrossel de Depoimentos (front + editor) — 1 por vez: wrapper limita a viewport, track mais largo é recortado */
.cp-testimonials-carousel-json {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
    overflow-x: hidden !important;
}
.cp-testimonials-carousel-json .cp-testimonials-carousel-viewport {
    overflow: hidden;
    overflow-x: hidden;
}
.cp-testimonials-carousel-json .cp-carousel-track-json {
    min-width: 0;
}
.cp-testimonials-carousel-json .cp-testimonials-carousel-dots {
    padding-bottom: 4px;
}
.cp-testimonials-carousel-json .cp-carousel-slide-json {
    min-width: 0;
    overflow: hidden;
    flex-shrink: 0;
}
.cp-testimonials-carousel-json .cp-testimonial-carousel-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 100%;
    min-width: 0;
}
.cp-testimonials-carousel-json .cp-testimonial-carousel-avatar,
.cp-testimonials-carousel-json .cp-testimonial-carousel-avatar img {
    margin-left: auto;
    margin-right: auto;
}
.cp-testimonials-carousel-json .cp-testimonial-carousel-rating {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
.cp-testimonials-carousel-json .cp-testimonial-carousel-quote {
    flex: 1 1 auto;
    max-width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
    padding-left: 16px;
    padding-right: 16px;
}
.cp-testimonials-carousel-json footer,
.cp-testimonials-carousel-json .cp-testimonial-carousel-meta,
.cp-testimonials-carousel-json .cp-testimonial-carousel-tags {
    text-align: center;
}
.cp-testimonial-carousel-quote-icon { pointer-events: none; user-select: none; }
.cp-testimonials-carousel-wrapper .cp-carousel-slide { display: flex; align-items: stretch; }
/* Carousel arrow hover (via CSS custom properties) */
.cp-carousel-prev-json,
.cp-carousel-next-json,
.cp-carousel-arrow {
    transition: color 0.2s, background 0.2s, transform 0.2s;
}
.cp-carousel-prev-json:hover,
.cp-carousel-next-json:hover,
.cp-carousel-arrow:hover {
    color: var(--cp-arrow-hover-color) !important;
    background: var(--cp-arrow-hover-bg) !important;
    transform: var(--cp-arrow-base-transform, translateY(-50%)) scale(var(--cp-arrow-hover-scale, 1)) !important;
}
/* Contact item */
.cp-contact-item { margin-bottom: 0.25rem; display: flex; align-items: center; gap: 12px; }
.cp-contact-item:last-child { margin-bottom: 0; }
.cp-block.cp-contact-item a,
.cp-contact-item a { color: inherit !important; text-decoration: none; }
.cp-contact-item a:hover { text-decoration: underline; }
.cp-contact-label { font-weight: 600; min-width: 80px; }
/* Form */
.cp-form-field { margin-bottom: 1rem; }
.cp-form-field label { display: block; margin-bottom: 0.375rem; font-weight: 500; font-size: 0.9rem; }
.cp-form-field input, .cp-form-field textarea, .cp-form-field select {
    width: 100%; padding: 10px 14px;
    border-width: var(--cp-input-border-width, 1px);
    border-style: var(--cp-input-border-style, solid);
    border-color: var(--cp-input-border-color, #d1d5db);
    border-radius: var(--cp-input-border-radius, 6px);
    font-family: inherit; font-size: 0.95rem; transition: border-color 0.2s, box-shadow 0.2s;
}
/* Frontend: garantir que as bordas do formulário (definidas no editor) sejam aplicadas */
.cp-block.cp-form .cp-form-field input,
.cp-block.cp-form .cp-form-field textarea,
.cp-block.cp-form .cp-form-field select {
    border-width: var(--cp-input-border-width, 1px) !important;
    border-style: var(--cp-input-border-style, solid) !important;
    border-color: var(--cp-input-border-color, #d1d5db) !important;
    border-radius: var(--cp-input-border-radius, 6px) !important;
}
/* Cor do placeholder (variável --cp-input-placeholder-color no form) */
.cp-block.cp-form input::placeholder,
.cp-block.cp-form textarea::placeholder {
    color: var(--cp-input-placeholder-color, #9ca3af);
}
/* Modo foco: variáveis --cp-input-focus-* vêm do inline do input (editor e render PHP) */
.cp-form-field input:focus,
.cp-form-field textarea:focus,
.cp-form-field select:focus {
    outline: none !important;
    border-color: var(--cp-input-focus-border-color, var(--cp-global-linkColor, #6366f1)) !important;
    background-color: var(--cp-input-focus-background-color, inherit) !important;
    color: var(--cp-input-focus-color, inherit) !important;
    box-shadow: var(--cp-input-focus-box-shadow, 0 0 0 3px rgba(99, 102, 241, 0.2)) !important;
}
/* Maior especificidade no frontend para vencer estilos do tema (form dentro de .cp-block.cp-form) */
.cp-block.cp-form .cp-form-field input:focus,
.cp-block.cp-form .cp-form-field textarea:focus,
.cp-block.cp-form .cp-form-field select:focus {
    outline: none !important;
    border-color: var(--cp-input-focus-border-color, var(--cp-global-linkColor, #6366f1)) !important;
    background-color: var(--cp-input-focus-background-color, inherit) !important;
    color: var(--cp-input-focus-color, inherit) !important;
    box-shadow: var(--cp-input-focus-box-shadow, 0 0 0 3px rgba(99, 102, 241, 0.2)) !important;
}
.cp-form-field textarea { min-height: 120px; resize: vertical; }
/* Textarea ocupa as duas colunas do grid (formulário em layout grid) */
.cp-form-fields .cp-form-field:has(textarea) { grid-column: 1 / -1; }
.cp-form-render > div > div:has(textarea) { grid-column: 1 / -1; }
.cp-form-submit button {
    padding: 12px 28px; border: none; border-radius: 8px; font-weight: 600;
    font-size: 1rem; cursor: pointer; transition: opacity 0.2s, transform 0.2s;
    font-family: inherit;
}
.cp-form-submit button:hover { opacity: 0.9; transform: translateY(-1px); }
.cp-form .required { color: #ef4444; }
/* Rating Card (avaliação + estrelas + avatares + botão) */
.cp-rating-card, .cp-rating-card-render { box-sizing: border-box; }
.cp-rating-card-action { transition: opacity 0.2s, transform 0.2s; }
.cp-rating-card-action:hover { opacity: 0.9; transform: scale(1.05); }
.cp-rating-card-action .cp-rating-action-icon,
.cp-rating-card-action .material-symbols-outlined,
.cp-rating-card-action .cp-icon { color: #ffffff !important; }
.cp-rating-card-avatar-placeholder { flex-shrink: 0; }
/* Faixa Rolante (marquee) */
.cp-faixa-rolante, .cp-faixa-rolante-render {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    box-sizing: border-box;
    overflow: hidden;
}
.cp-block.cp-faixa-rolante {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    overflow: hidden !important;
    contain: layout paint;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.cp-faixa-rolante-render {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
.cp-faixa-rolante-angle {
    display: block;
    width: 100%;
    transform: rotate(var(--cp-marquee-angle, 0deg));
    transform-origin: center center;
}
.cp-faixa-rolante-track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: cp-marquee-scroll var(--cp-marquee-speed, 20s) linear infinite;
    will-change: transform;
}
.cp-faixa-rolante-render.is-dir-right .cp-faixa-rolante-track { animation-direction: reverse; }
.cp-faixa-rolante-render.is-pause-hover:hover .cp-faixa-rolante-track { animation-play-state: paused; }
.cp-faixa-rolante-seq {
    display: flex;
    align-items: center;
    gap: var(--cp-marquee-gap, 28px);
    flex-shrink: 0;
    padding-right: var(--cp-marquee-gap, 28px);
}
.cp-faixa-rolante-item,
.cp-faixa-rolante-sep {
    color: var(--cp-marquee-color, #ffffff);
    font-size: var(--cp-marquee-font-size, 16px);
    font-weight: var(--cp-marquee-font-weight, 700);
    letter-spacing: var(--cp-marquee-letter-spacing, 0.04em);
    text-transform: var(--cp-marquee-text-transform, uppercase);
    line-height: 1.2;
    white-space: nowrap;
}
.cp-faixa-rolante-sep { opacity: 0.7; }
@keyframes cp-marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-33.3333%); }
}
/* Social links — apenas ícones, estilizáveis via variáveis */
.cp-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cp-social-gap, 12px);
    justify-content: var(--cp-social-justify, flex-start);
    align-items: var(--cp-social-align, center);
}
.cp-social-links a.cp-social-link,
.cp-social-links .cp-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cp-social-icon-color, #94a3b8) !important;
    text-decoration: none !important;
    transition: color 0.2s ease, opacity 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
    width: var(--cp-social-icon-box-size, auto);
    height: var(--cp-social-icon-box-size, auto);
    min-width: var(--cp-social-icon-box-size, 0);
    min-height: var(--cp-social-icon-box-size, 0);
    background-color: var(--cp-social-icon-bg, transparent) !important;
    border-radius: var(--cp-social-icon-border-radius, 0);
    overflow: hidden;
}
.cp-social-links .cp-social-link:hover,
#cp-canvas-content .cp-social-links .cp-social-link:hover {
    color: var(--cp-social-icon-hover-color, var(--cp-social-icon-color, #94a3b8)) !important;
    background-color: var(--cp-social-icon-hover-bg, transparent) !important;
    opacity: 0.95;
    text-decoration: none !important;
    transition: color var(--cp-social-icon-transition, 0.2s ease), background-color var(--cp-social-icon-transition, 0.2s ease), opacity 0.2s ease, transform 0.2s ease;
}
.cp-social-links .cp-social-link .cp-icon,
.cp-social-links .cp-social-link > i,
.cp-social-links .cp-social-link > span {
    font-size: var(--cp-social-icon-size, 20px) !important;
    width: var(--cp-social-icon-size, 20px);
    height: var(--cp-social-icon-size, 20px);
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
/* Social links: mesmo estilo no editor e no frontend (preview/publicado) */
.cp-social-links .cp-social-link,
#cp-canvas-content .cp-social-links .cp-social-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--cp-social-icon-color, #94a3b8) !important;
    background-color: var(--cp-social-icon-bg, transparent) !important;
    width: var(--cp-social-icon-box-size, auto) !important;
    height: var(--cp-social-icon-box-size, auto) !important;
    min-width: var(--cp-social-icon-box-size, 0) !important;
    min-height: var(--cp-social-icon-box-size, 0) !important;
    border-radius: var(--cp-social-icon-border-radius, 0) !important;
    text-decoration: none !important;
}
/* Header nav: variáveis no container (.cp-header-nav-render) — cor e fundo hover */
.cp-header-nav-render .cp-nav-link:hover { color: var(--cp-nav-link-hover-color, var(--cp-nav-link-hover, #6366f1)) !important; background: var(--cp-nav-link-hover-bg, transparent) !important; }
/* Header nav hover effects */
.cp-nav-link, .cp-nav-cta { position: relative; transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; }
.cp-nav-link.cp-nav-link-effect-line::after {
    content: ""; position: absolute; left: 8px; right: 8px; bottom: -2px;
    height: var(--cp-nav-link-line-height, 2px);
    background: var(--cp-nav-link-line-color, currentColor); transform: scaleX(0); transform-origin: center; transition: transform 0.2s ease;
}
.cp-nav-link.cp-nav-link-effect-line:hover::after { transform: scaleX(1); }
.cp-nav-link.cp-nav-link-effect-background:hover {
    background: var(--cp-nav-link-hover-bg, color-mix(in srgb, currentColor 12%, transparent)) !important;
    border-radius: 8px;
}
.cp-nav-link.cp-nav-link-effect-lift:hover { transform: translateY(-1px); }
.cp-nav-link.cp-nav-link-effect-underline:hover { text-decoration: underline; text-underline-offset: var(--cp-nav-link-underline-offset, 2px); }
.cp-nav-link.cp-nav-link-effect-scale:hover { transform: scale(var(--cp-nav-link-scale, 1.05)); }
.cp-nav-link.cp-nav-link-effect-glow:hover { box-shadow: 0 0 var(--cp-nav-link-glow-blur, 12px) var(--cp-nav-link-glow-color, currentColor); }
.cp-nav-cta.cp-nav-cta-effect-outline:hover { box-shadow: inset 0 0 0 2px currentColor; }
.cp-nav-cta.cp-nav-cta-effect-glow:hover { box-shadow: 0 0 18px color-mix(in srgb, currentColor 45%, transparent); }
/* Menu widget — !important + alta especificidade para sobrescrever tema/preview */
.cp-menu-widget { width: 100%; box-sizing: border-box; }
/* Editor usa span.cp-menu-link, preview/publicado usa a.cp-menu-link — ambos precisam das variáveis */
.cp-menu-widget .cp-menu-link,
.cp-menu-widget a.cp-menu-link,
a.cp-menu-link {
    position: relative;
    color: var(--cp-menu-link-color, #94a3b8) !important;
    background: var(--cp-menu-link-bg, transparent);
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.cp-menu-widget .cp-menu-link:visited,
.cp-menu-widget a.cp-menu-link:visited,
a.cp-menu-link:visited { color: var(--cp-menu-link-color, #94a3b8) !important; }
.cp-menu-widget .cp-menu-link:hover,
.cp-menu-widget a.cp-menu-link:hover,
a.cp-menu-link:hover {
    color: var(--cp-menu-link-hover-color, var(--cp-global-primary-color, #a50dee)) !important;
    background: var(--cp-menu-link-hover-bg, transparent);
}
.cp-menu-widget .cp-menu-link.cp-menu-link-active,
.cp-menu-widget a.cp-menu-link.cp-menu-link-active,
a.cp-menu-link.cp-menu-link-active,
.cp-menu-widget .cp-menu-link.cp-menu-link-active:visited,
.cp-menu-widget a.cp-menu-link.cp-menu-link-active:visited,
a.cp-menu-link.cp-menu-link-active:visited {
    color: var(--cp-menu-link-active-color, var(--cp-global-primary-color, #a50dee)) !important;
    background: var(--cp-menu-link-active-bg, transparent);
}
.cp-menu-link.cp-menu-hover-effect-lift:hover { transform: translateY(-1px); }
.cp-menu-link.cp-menu-hover-effect-scale:hover { transform: scale(1.05); }
.cp-menu-link.cp-menu-hover-effect-glow:hover { box-shadow: 0 0 12px currentColor; }
.cp-menu-link.cp-menu-hover-effect-underline:hover { text-decoration: underline; text-underline-offset: 2px; }
.cp-menu-link.cp-menu-hover-effect-background:hover { background: var(--cp-menu-link-hover-bg, transparent); }
.cp-menu-link.cp-menu-hover-effect-line::after,
.cp-menu-link.cp-menu-active-effect-line::after {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: -3px;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.2s ease;
}
.cp-menu-link.cp-menu-hover-effect-line:hover::after,
.cp-menu-link.cp-menu-link-active.cp-menu-active-effect-line::after { transform: scaleX(1); }
.cp-menu-link.cp-menu-link-active.cp-menu-active-effect-underline { text-decoration: underline; text-underline-offset: 2px; }
.cp-menu-link.cp-menu-link-active.cp-menu-active-effect-background { background: var(--cp-menu-link-active-bg, transparent); }
.cp-menu-link.cp-menu-link-active.cp-menu-active-effect-scale { transform: scale(1.05); }
.cp-menu-link.cp-menu-link-active.cp-menu-active-effect-glow { box-shadow: 0 0 12px currentColor; }
/* FAQ accordion */
.cp-block.cp-faq { border: none; box-shadow: none; }
.cp-faq, .cp-faq-render { width: 100%; box-sizing: border-box; }
.cp-faq-render .cp-faq-item {
    position: relative;
    box-shadow: var(--cp-faq-item-box-shadow, none);
    transition: box-shadow 0.2s ease;
}
.cp-faq-render .cp-faq-answer {
    max-height: 0;
    overflow: hidden;
    padding: var(--cp-faq-answer-padding, 0 16px 16px);
    box-sizing: border-box;
    background: var(--cp-faq-answer-bg, transparent);
    color: var(--cp-faq-answer-color, #64748b);
    border-width: var(--cp-faq-answer-border-width, 0);
    border-style: var(--cp-faq-answer-border-style, solid);
    border-color: var(--cp-faq-answer-border-color, transparent);
    box-shadow: var(--cp-faq-answer-box-shadow, none);
    transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, background var(--cp-faq-answer-transition, 0.3s ease), color var(--cp-faq-answer-transition, 0.3s ease), padding var(--cp-faq-answer-transition, 0.3s ease), border var(--cp-faq-answer-transition, 0.3s ease), box-shadow var(--cp-faq-answer-transition, 0.3s ease);
}
.cp-faq-render .cp-faq-item:not(.cp-faq-item-open) .cp-faq-answer {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 0;
    max-height: 0;
    overflow: hidden;
    padding: 0;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
}
.cp-faq-render .cp-faq-item-open .cp-faq-answer {
    position: static;
    max-height: 800px;
    opacity: 1;
    visibility: visible;
    background: var(--cp-faq-answer-bg-active, var(--cp-faq-answer-bg, transparent));
    color: var(--cp-faq-answer-color-active, var(--cp-faq-answer-color, #64748b));
    padding: var(--cp-faq-answer-padding-active, var(--cp-faq-answer-padding, 16px));
    border-width: var(--cp-faq-answer-border-width-active, var(--cp-faq-answer-border-width, 0));
    border-style: var(--cp-faq-answer-border-style-active, var(--cp-faq-answer-border-style, solid));
    border-color: var(--cp-faq-answer-border-color-active, var(--cp-faq-answer-border-color, transparent));
    box-shadow: var(--cp-faq-answer-box-shadow-active, var(--cp-faq-answer-box-shadow, none));
}
.cp-faq-render .cp-faq-item:hover .cp-faq-answer {
    background: var(--cp-faq-answer-bg-hover, var(--cp-faq-answer-bg-active, var(--cp-faq-answer-bg, transparent)));
    color: var(--cp-faq-answer-color-hover, var(--cp-faq-answer-color-active, var(--cp-faq-answer-color, #64748b)));
    padding: var(--cp-faq-answer-padding-hover, var(--cp-faq-answer-padding-active, var(--cp-faq-answer-padding, 16px)));
    border-width: var(--cp-faq-answer-border-width-hover, var(--cp-faq-answer-border-width-active, var(--cp-faq-answer-border-width, 0)));
    border-style: var(--cp-faq-answer-border-style-hover, var(--cp-faq-answer-border-style-active, var(--cp-faq-answer-border-style, solid)));
    border-color: var(--cp-faq-answer-border-color-hover, var(--cp-faq-answer-border-color-active, var(--cp-faq-answer-border-color, transparent)));
    box-shadow: var(--cp-faq-answer-box-shadow-hover, var(--cp-faq-answer-box-shadow-active, var(--cp-faq-answer-box-shadow, none)));
}
.cp-faq-render .cp-faq-question {
    background: var(--cp-faq-question-bg, #f1f5f9);
    color: var(--cp-faq-question-color, #1e293b);
    border-radius: 6px;
    transition: background var(--cp-faq-question-bg-transition, 0.3s ease), color 0.2s ease;
}
.cp-faq-render .cp-faq-item:hover .cp-faq-question {
    background: var(--cp-faq-question-bg-hover, var(--cp-faq-question-bg, #f1f5f9));
    color: var(--cp-faq-question-color-hover, var(--cp-faq-question-color, #0f172a));
}
.cp-faq-render .cp-faq-item-open .cp-faq-question {
    background: var(--cp-faq-question-bg-active, var(--cp-faq-question-bg-hover, var(--cp-faq-question-bg, #f1f5f9)));
    color: var(--cp-faq-question-color-active, var(--cp-faq-question-color-hover, var(--cp-faq-question-color, #0f172a)));
}
.cp-faq-render .cp-faq-question .cp-icon,
.cp-faq-render .cp-faq-question [data-cp-subpath*=".icon"] {
    color: var(--cp-faq-icon-color, #94a3b8);
    transition: color 0.2s ease;
}
.cp-faq-render .cp-faq-question .cp-faq-chevron-closed,
.cp-faq-render .cp-faq-question .cp-faq-chevron-open {
    color: var(--cp-faq-chevron-color, #94a3b8);
    transition: color 0.2s ease;
}
.cp-faq-render .cp-faq-question .cp-faq-chevron-closed,
.cp-faq-render .cp-faq-question .cp-faq-chevron-open { flex-shrink: 0; display: inline-flex; align-items: center; }
.cp-faq-render .cp-faq-item .cp-faq-chevron-open { display: none; }
.cp-faq-render .cp-faq-item-open .cp-faq-question .cp-faq-chevron-closed { display: none; }
.cp-faq-render .cp-faq-item-open .cp-faq-question .cp-faq-chevron-open { display: inline-flex; }
.cp-faq-render .cp-faq-item:hover {
    background: var(--cp-faq-active-bg, #f1f5f9);
    border-color: var(--cp-faq-active-border, #cbd5e1);
}
.cp-faq-render .cp-faq-item:hover .cp-faq-question .cp-icon,
.cp-faq-render .cp-faq-item:hover .cp-faq-question [data-cp-subpath*=".icon"] {
    color: var(--cp-faq-icon-color-hover, var(--cp-faq-icon-color, #6366f1));
}
.cp-faq-render .cp-faq-item:hover .cp-faq-question .cp-faq-chevron-closed,
.cp-faq-render .cp-faq-item:hover .cp-faq-question .cp-faq-chevron-open {
    color: var(--cp-faq-chevron-color-hover, var(--cp-faq-chevron-color, #6366f1));
}
.cp-faq-render .cp-faq-item-open .cp-faq-question .cp-icon,
.cp-faq-render .cp-faq-item-open .cp-faq-question [data-cp-subpath*=".icon"] {
    color: var(--cp-faq-icon-color-active, var(--cp-faq-icon-color-hover, var(--cp-faq-icon-color, #6366f1)));
}
.cp-faq-render .cp-faq-item-open .cp-faq-question .cp-faq-chevron-closed,
.cp-faq-render .cp-faq-item-open .cp-faq-question .cp-faq-chevron-open {
    color: var(--cp-faq-chevron-color-active, var(--cp-faq-chevron-color-hover, var(--cp-faq-chevron-color, #6366f1)));
}

/* ========== Animações (entrada, saída, loop) — editor + preview + página publicada ========== */
.cp-animate-entrance { opacity: 0; }
.cp-animate-entrance.cp-in-view { opacity: 1; }
.cp-animate-exit.cp-in-view { opacity: 1; }
.cp-animate-exit.cp-out-view { opacity: 0; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="fadeIn"] { animation-name: cp-fadeIn; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="fadeInUp"] { animation-name: cp-fadeInUp; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="fadeInDown"] { animation-name: cp-fadeInDown; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="fadeInLeft"] { animation-name: cp-fadeInLeft; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="fadeInRight"] { animation-name: cp-fadeInRight; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="zoomIn"] { animation-name: cp-zoomIn; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="slideInUp"] { animation-name: cp-slideInUp; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="slideInDown"] { animation-name: cp-slideInDown; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="slideInLeft"] { animation-name: cp-slideInLeft; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="slideInRight"] { animation-name: cp-slideInRight; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="scaleIn"] { animation-name: cp-scaleIn; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="bounceIn"] { animation-name: cp-bounceIn; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="flipInX"] { animation-name: cp-flipInX; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="flipInY"] { animation-name: cp-flipInY; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="rotateIn"] { animation-name: cp-rotateIn; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="titleReveal"]:not(.cp-heading-char-animate) { animation-name: cp-titleReveal; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-animate-entrance.cp-in-view[data-entrance-animation="titleSlideUp"]:not(.cp-heading-char-animate) { animation-name: cp-titleSlideUp; animation-fill-mode: both; animation-timing-function: ease-out; }
.cp-heading-char-animate.cp-animate-entrance { opacity: 1 !important; }
.cp-heading-char-animate.cp-animate-entrance[data-entrance-animation="titleReveal"],
.cp-heading-char-animate.cp-animate-entrance[data-entrance-animation="titleSlideUp"] { animation: none !important; }
.cp-heading-char-animate .cp-char { opacity: 0; display: inline-block; }
.cp-heading-char-animate.cp-in-view[data-entrance-animation="titleReveal"] .cp-char { animation-name: cp-titleReveal; animation-fill-mode: both; animation-timing-function: ease-out; animation-duration: var(--cp-anim-dur, 0.6s); }
.cp-heading-char-animate.cp-in-view[data-entrance-animation="titleSlideUp"] .cp-char { animation-name: cp-titleSlideUp; animation-fill-mode: both; animation-timing-function: ease-out; animation-duration: var(--cp-anim-dur, 0.6s); }
.cp-animate-exit.cp-out-view[data-exit-animation="fadeOut"] { animation-name: cp-fadeOut; animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="fadeOutUp"] { animation-name: cp-fadeOutUp; animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="fadeOutDown"] { animation-name: cp-fadeOutDown; animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="zoomOut"] { animation-name: cp-zoomOut; animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="fadeOutLeft"] { animation-name: cp-fadeOutLeft; animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="fadeOutRight"] { animation-name: cp-fadeOutRight; animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="slideOutUp"], .cp-animate-exit.cp-out-view[data-exit-animation="slideOutDown"] { animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="slideOutUp"] { animation-name: cp-slideOutUp; }
.cp-animate-exit.cp-out-view[data-exit-animation="slideOutDown"] { animation-name: cp-slideOutDown; }
.cp-animate-exit.cp-out-view[data-exit-animation="scaleOut"], .cp-animate-exit.cp-out-view[data-exit-animation="bounceOut"] { animation-fill-mode: both; animation-timing-function: ease-in; }
.cp-animate-exit.cp-out-view[data-exit-animation="scaleOut"] { animation-name: cp-scaleOut; }
.cp-animate-exit.cp-out-view[data-exit-animation="bounceOut"] { animation-name: cp-bounceOut; }
.cp-animate-loop.cp-loop-pulse { animation: cp-loop-pulse 2s ease-in-out infinite; }
.cp-animate-loop.cp-loop-bounce { animation: cp-loop-bounce 2s ease-in-out infinite; }
.cp-animate-loop.cp-loop-float { animation: cp-loop-float 3s ease-in-out infinite; }
.cp-animate-loop.cp-loop-spin { animation: cp-loop-spin 3s linear infinite; }
.cp-animate-loop.cp-loop-shake { animation: cp-loop-shake 1.5s ease-in-out infinite; }
.cp-animate-loop.cp-loop-titleGlow:not(.cp-heading-char-animate) { animation: cp-loop-titleGlow 2.5s ease-in-out infinite; }
.cp-animate-loop.cp-loop-titleShimmer { background-size: 200% 100%; animation: cp-loop-titleShimmer 3s linear infinite; }
.cp-heading-char-animate.cp-loop-titleGlow { animation: none !important; }
.cp-heading-char-animate.cp-loop-titleGlow .cp-char { animation: cp-loop-titleGlow 2.5s ease-in-out infinite; }
@keyframes cp-titleReveal { from { opacity: 0; clip-path: inset(0 100% 0 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes cp-titleSlideUp { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: translateY(0); } }
@keyframes cp-loop-titleGlow { 0%, 100% { filter: drop-shadow(0 0 4px currentColor); } 50% { filter: drop-shadow(0 0 12px currentColor); } }
@keyframes cp-loop-titleShimmer { 0% { background-position: 200% center; } 100% { background-position: -200% center; } }
@keyframes cp-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes cp-fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cp-fadeInDown { from { opacity: 0; transform: translateY(-24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cp-fadeInLeft { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: translateX(0); } }
@keyframes cp-fadeInRight { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: translateX(0); } }
@keyframes cp-zoomIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }
@keyframes cp-slideInUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes cp-slideInDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }
@keyframes cp-slideInLeft { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes cp-slideInRight { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes cp-scaleIn { from { opacity: 0; transform: scale(0.5); } to { opacity: 1; transform: scale(1); } }
@keyframes cp-flipInX { from { opacity: 0; transform: perspective(400px) rotateX(-90deg); } to { opacity: 1; transform: perspective(400px) rotateX(0); } }
@keyframes cp-flipInY { from { opacity: 0; transform: perspective(400px) rotateY(-90deg); } to { opacity: 1; transform: perspective(400px) rotateY(0); } }
@keyframes cp-rotateIn { from { opacity: 0; transform: rotate(-180deg) scale(0.5); } to { opacity: 1; transform: rotate(0) scale(1); } }
@keyframes cp-bounceIn { 0% { opacity: 0; transform: scale(0.3); } 50% { transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } }
@keyframes cp-fadeOut { from { opacity: 1; } to { opacity: 0; } }
@keyframes cp-fadeOutUp { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-24px); } }
@keyframes cp-fadeOutDown { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(24px); } }
@keyframes cp-fadeOutLeft { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(-24px); } }
@keyframes cp-fadeOutRight { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(24px); } }
@keyframes cp-zoomOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.9); } }
@keyframes cp-slideOutUp { from { transform: translateY(0); } to { transform: translateY(-100%); } }
@keyframes cp-slideOutDown { from { transform: translateY(0); } to { transform: translateY(100%); } }
@keyframes cp-scaleOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.5); } }
@keyframes cp-bounceOut { 0% { transform: scale(1); } 25% { transform: scale(1.05); } 100% { opacity: 0; transform: scale(0.5); } }
@keyframes cp-loop-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.03); opacity: 0.9; } }
@keyframes cp-loop-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes cp-loop-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes cp-loop-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes cp-loop-shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); } 20%, 40%, 60%, 80% { transform: translateX(4px); } }

/* ─── Heading text effects (cp-heading-effect-*) ─── */
/* Efeito sem loop: executa uma vez ao entrar em viewport */
.cp-effect-no-loop:not(.cp-in-view) .cp-heading-effect,
.cp-effect-no-loop:not(.cp-in-view) .cp-heading-effect * { animation-play-state: paused; }
.cp-effect-no-loop .cp-heading-effect,
.cp-effect-no-loop .cp-heading-effect * { animation-iteration-count: 1; }
.cp-effect-no-loop.cp-in-view .cp-heading-effect,
.cp-effect-no-loop.cp-in-view .cp-heading-effect * { animation-play-state: running; }

.cp-heading-effect { position: relative; }
.cp-heading-effect .cp-heading-prefix,
.cp-heading-effect .cp-heading-suffix { display: inline; }

/* Prefixo/sufixo com formatação própria */
.cp-heading-prefix.cp-ps-own-format,
.cp-heading-suffix.cp-ps-own-format {
    background: none !important;
    background-clip: unset !important;
    -webkit-background-clip: unset !important;
    -webkit-text-fill-color: unset !important;
    text-shadow: none !important;
    -webkit-text-stroke: none !important;
    animation: none !important;
}

/* 1. perspective3d */
.cp-heading-effect-perspective3d {
    display: inline-block;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    animation: cp-effect-flip3d var(--cp-effect-dur, 5s) ease-in-out infinite;
    background: linear-gradient(160deg, var(--cp-effect-persp3d-grad1, #fff) 30%, var(--cp-effect-persp3d-grad2, #555) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    backface-visibility: hidden;
}
@keyframes cp-effect-flip3d {
    0%, 100% { transform: perspective(var(--cp-effect-persp3d-distance, 600px)) rotateX(0deg) rotateY(0deg) rotateZ(0deg); }
    25% { transform: perspective(var(--cp-effect-persp3d-distance, 600px)) rotateX(var(--cp-effect-persp3d-x, 6deg)) rotateY(var(--cp-effect-persp3d-y, 22deg)) rotateZ(var(--cp-effect-persp3d-z, 0deg)); }
    50% { transform: perspective(var(--cp-effect-persp3d-distance, 600px)) rotateX(calc(-1 * var(--cp-effect-persp3d-x, 9deg))) rotateY(calc(-1 * var(--cp-effect-persp3d-y, 18deg))) rotateZ(calc(-1 * var(--cp-effect-persp3d-z, 0deg))); }
    75% { transform: perspective(var(--cp-effect-persp3d-distance, 600px)) rotateX(calc(0.67 * var(--cp-effect-persp3d-x, 4deg))) rotateY(calc(0.55 * var(--cp-effect-persp3d-y, 12deg))) rotateZ(calc(0.5 * var(--cp-effect-persp3d-z, 0deg))); }
}

/* 2. gradientFlow */
.cp-heading-effect-gradientFlow {
    background: linear-gradient(90deg, var(--cp-effect-grad1, #ff006e), var(--cp-effect-grad2, #fb5607), var(--cp-effect-grad3, #ffbe0b), var(--cp-effect-grad1, #ff006e));
    background-size: 300% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: cp-effect-gradientFlow var(--cp-effect-dur, 3s) linear infinite;
}
@keyframes cp-effect-gradientFlow {
    0% { background-position: 0% 50%; }
    100% { background-position: 300% 50%; }
}

/* 5. glitch */
.cp-heading-effect-glitch {
    color: var(--cp-effect-glitch-base, #fff);
    position: relative;
    animation: cp-effect-glitchBase var(--cp-effect-dur, 3.5s) infinite;
}
.cp-heading-effect-glitch::before,
.cp-heading-effect-glitch::after {
    content: attr(data-text);
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
}
.cp-heading-effect-glitch::before {
    color: var(--cp-effect-glitch1, #ff003c);
    animation: cp-effect-glitchTop var(--cp-effect-dur, 3.5s) infinite;
    clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
}
.cp-heading-effect-glitch::after {
    color: var(--cp-effect-glitch2, #00fff9);
    animation: cp-effect-glitchBottom var(--cp-effect-dur, 3.5s) infinite;
    clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
}
@keyframes cp-effect-glitchBase {
    0%, 90%, 100% { transform: translate(0); }
    91% { transform: translate(calc(-1 * var(--cp-effect-glitch-intensity, 3px)), calc(0.33 * var(--cp-effect-glitch-intensity, 3px))); }
    93% { transform: translate(var(--cp-effect-glitch-intensity, 3px), calc(-0.33 * var(--cp-effect-glitch-intensity, 3px))); }
    95% { transform: translate(calc(-0.67 * var(--cp-effect-glitch-intensity, 3px)), calc(0.67 * var(--cp-effect-glitch-intensity, 3px))); }
    97% { transform: translate(calc(0.67 * var(--cp-effect-glitch-intensity, 3px)), calc(-0.67 * var(--cp-effect-glitch-intensity, 3px))); }
}
@keyframes cp-effect-glitchTop {
    0%, 89%, 100% { transform: translate(0); opacity: 0; }
    90% { transform: translate(calc(-1.67 * var(--cp-effect-glitch-intensity, 3px)), calc(-0.67 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    92% { transform: translate(calc(1.67 * var(--cp-effect-glitch-intensity, 3px)), calc(0.67 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    94% { transform: translate(calc(-1 * var(--cp-effect-glitch-intensity, 3px)), calc(-1.33 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    96% { transform: translate(var(--cp-effect-glitch-intensity, 3px), calc(1.33 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    98% { transform: translate(0); opacity: 0; }
}
@keyframes cp-effect-glitchBottom {
    0%, 89%, 100% { transform: translate(0); opacity: 0; }
    90% { transform: translate(calc(1.67 * var(--cp-effect-glitch-intensity, 3px)), calc(0.67 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    92% { transform: translate(calc(-1.67 * var(--cp-effect-glitch-intensity, 3px)), calc(-0.67 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    94% { transform: translate(var(--cp-effect-glitch-intensity, 3px), calc(1.33 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    96% { transform: translate(calc(-1 * var(--cp-effect-glitch-intensity, 3px)), calc(-1.33 * var(--cp-effect-glitch-intensity, 3px))); opacity: 1; }
    98% { transform: translate(0); opacity: 0; }
}

/* 6. neonGlow */
.cp-heading-effect-neonGlow {
    color: var(--cp-effect-neon2, #fff);
    text-shadow: 0 0 5px var(--cp-effect-neon2), 0 0 12px var(--cp-effect-neon2), 0 0 25px var(--cp-effect-neon1), 0 0 50px var(--cp-effect-neon1), 0 0 100px var(--cp-effect-neon1);
}
.cp-heading-effect-neonGlow.cp-effect-neon-flicker {
    animation: cp-effect-neonFlicker var(--cp-effect-neon-flicker-interval, 1.5s) infinite;
}
@keyframes cp-effect-neonFlicker {
    0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% {
        text-shadow: 0 0 5px var(--cp-effect-neon2), 0 0 12px var(--cp-effect-neon2), 0 0 25px var(--cp-effect-neon1), 0 0 50px var(--cp-effect-neon1), 0 0 100px var(--cp-effect-neon1);
        color: var(--cp-effect-neon2);
    }
    20%, 24%, 55% { text-shadow: none; color: rgba(255,255,255,0.5); }
}

/* 7. wavy */
.cp-heading-effect-wavy { display: flex; }
.cp-heading-effect-wavy .cp-char {
    display: inline-block;
    color: inherit;
    opacity: 1; /* sobrepõe .cp-heading-char-animate .cp-char { opacity: 0 } */
    animation: cp-effect-wave var(--cp-effect-dur, 1.5s) ease-in-out infinite;
}
@keyframes cp-effect-wave {
    0%, 100% { transform: translateY(0); color: inherit; }
    50% { transform: translateY(calc(var(--cp-effect-wavy-amp, 22) * -1px)); color: var(--cp-effect-wavy-peak, #c77dff); }
}

/* 8. splitText - top/bottom hover */
.cp-heading-effect-splitText { display: inline-block; }
.cp-heading-effect-splitText .cp-split-wrap {
    position: relative;
    overflow: hidden;
    height: 1.1em;
    white-space: nowrap;
}
.cp-heading-effect-splitText .cp-split-top,
.cp-heading-effect-splitText .cp-split-bottom {
    position: absolute; left: 0; width: 100%;
    transform: translateY(0);
    transition: transform var(--cp-effect-dur, 0.5s) cubic-bezier(.77,0,.18,1);
}
.cp-heading-effect-splitText .cp-split-top { top: 0; clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%); }
.cp-heading-effect-splitText .cp-split-bottom { top: 0; clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%); color: var(--cp-effect-split-bottom, #f59e0b); }
/* hover: editor usa .cp-canvas-block; página usa .cp-heading. --cp-effect-split-dist deve ser número (sem px). */
.cp-canvas-block:hover .cp-heading-effect-splitText .cp-split-top,
.cp-heading:hover .cp-heading-effect-splitText .cp-split-top { transform: translateY(calc(-1 * var(--cp-effect-split-dist, 10) * 1px)); }
.cp-canvas-block:hover .cp-heading-effect-splitText .cp-split-bottom,
.cp-heading:hover .cp-heading-effect-splitText .cp-split-bottom { transform: translateY(calc(var(--cp-effect-split-dist, 10) * 1px)); }

/* 9. textFill */
.cp-heading-effect-textFill {
    color: transparent;
    -webkit-text-stroke: var(--cp-effect-textfill-stroke-width, 0.5px) var(--cp-effect-textfill-stroke, rgba(255,255,255,0.18));
    position: relative;
}
.cp-heading-effect-textFill::before {
    content: attr(data-text);
    position: absolute; left: 0; top: 0;
    -webkit-text-stroke: 0;
    background: linear-gradient(90deg, var(--cp-effect-textfill-grad1, #f59e0b), var(--cp-effect-textfill-grad2, #ef4444), var(--cp-effect-textfill-grad3, #ec4899));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    width: 0;
    overflow: hidden;
    white-space: nowrap;
    animation: cp-effect-fillReveal var(--cp-effect-dur, 2.8s) ease-in-out infinite alternate;
}
@keyframes cp-effect-fillReveal {
    0% { width: 0%; }
    100% { width: 100%; }
}

/* 10. typewriter */
.cp-heading-effect-typewriter .cp-char {
    display: inline-block;
    opacity: 0;
    animation: cp-effect-typewriterReveal 0.05s linear forwards;
}
.cp-typewriter-cursor .cp-heading-effect-typewriter .cp-char:last-child::after,
.cp-heading-effect-typewriter.cp-typewriter-cursor .cp-char:last-child::after {
    content: '|';
    margin-left: 1px;
    animation: cp-effect-cursor 0.75s step-end infinite;
}
.cp-heading-effect-typewriter.cp-typewriter-no-cursor .cp-char::after { display: none; }
@keyframes cp-effect-typewriterReveal { to { opacity: 1; } }
@keyframes cp-effect-cursor { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

/* typewriter cycle (palavras em ciclo) */
.cp-typewriter-cycle .cp-typewriter-cycle-inner { display: inline-block; }
.cp-typewriter-cycle.cp-typewriter-cursor .cp-typewriter-cycle-inner::after {
    content: '|';
    margin-left: 1px;
    animation: cp-effect-cursor 0.75s step-end infinite;
}

/* 13. shimmer */
.cp-heading-effect-shimmer {
    background: linear-gradient(105deg, var(--cp-effect-shimmer-base, #3a3a3a) 0%, var(--cp-effect-shimmer-base, #3a3a3a) 35%, #888 44%, var(--cp-effect-shimmer-light, #fff) 50%, #888 56%, var(--cp-effect-shimmer-base, #3a3a3a) 65%, var(--cp-effect-shimmer-base, #3a3a3a) 100%);
    background-size: 400% 100%;
    background-position: 100% center;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: cp-effect-shineSwipe var(--cp-effect-dur, 3.2s) ease-in-out infinite;
}
@keyframes cp-effect-shineSwipe {
    0% { background-position: 130% center; }
    45%, 100% { background-position: -30% center; }
}

/* 14. verticalRotate */
.cp-heading-effect-verticalRotate { perspective: 600px; }
.cp-heading-effect-verticalRotate .cp-vrotate-wrap { display: flex; gap: 8px; align-items: center; }
.cp-heading-effect-verticalRotate .cp-vrotate-list {
    display: inline-block;
    height: -webkit-fill-available;
    overflow: hidden;
    position: relative;
    min-width: 140px;
}
.cp-heading-effect-verticalRotate .cp-vrotate-list span {
    display: block;
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    opacity: 0;
    transform: rotateX(90deg);
    transform-origin: top center;
    animation: cp-effect-vRotateIn var(--cp-effect-dur, 8s) ease-in-out infinite;
}
@keyframes cp-effect-vRotateIn {
    0% { opacity: 0; transform: rotateX(90deg); }
    8%, 20% { opacity: 1; transform: rotateX(0deg); }
    28% { opacity: 0; transform: rotateX(-90deg); }
    100% { opacity: 0; transform: rotateX(-90deg); }
}

/* 15. perspective3dMouse - base styles, transform via JS */
.cp-heading-effect-perspective3dMouse {
    transform-style: preserve-3d;
    transition: transform 0.15s ease-out;
    will-change: transform;
    background: linear-gradient(135deg, #e0e0e0, #888);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* 16. scrambleDecode - base style, content via JS */
.cp-heading-effect-scrambleDecode {
    color: var(--cp-effect-scramble-color, #39ff14);
    text-shadow: 0 0 8px rgba(57, 255, 20, 0.5);
}

/* 17. blurFadeIn */
.cp-heading-effect-blurFadeIn { display: flex; }
.cp-heading-effect-blurFadeIn .cp-char {
    display: inline-block;
    animation: cp-effect-blurFade var(--cp-effect-dur, 3s) ease-in-out infinite alternate;
    opacity: 0;
    filter: blur(var(--cp-effect-blur-amount, 12px));
}
@keyframes cp-effect-blurFade {
    0% { opacity: 0; filter: blur(var(--cp-effect-blur-amount, 14px)); transform: translateY(10px); }
    40%, 80% { opacity: 1; filter: blur(0); transform: translateY(0); }
    100% { opacity: 0; filter: blur(var(--cp-effect-blur-amount, 14px)); transform: translateY(-10px); }
}

/* 18. waterWave */
.cp-heading-effect-waterWave { position: relative; line-height: 1; }
.cp-heading-effect-waterWave .cp-water-outline {
    color: transparent;
    -webkit-text-stroke: 2px var(--cp-effect-water-outline, rgba(100,200,255,0.3));
}
.cp-heading-effect-waterWave .cp-water-fill {
    position: absolute;
    inset: 0;
    color: var(--cp-effect-water-fill, #7ee8ff);
    animation: cp-effect-waterRise var(--cp-effect-dur, 4s) ease-in-out infinite alternate;
    clip-path: polygon(0 100%, 0 80%, 5% 76%, 10% 72%, 15% 76%, 20% 80%, 25% 76%, 30% 72%, 35% 76%, 40% 80%, 45% 76%, 50% 72%, 55% 76%, 60% 80%, 65% 76%, 70% 72%, 75% 76%, 80% 80%, 85% 76%, 90% 72%, 95% 76%, 100% 80%, 100% 100%);
}
@keyframes cp-effect-waterRise {
    0% { clip-path: polygon(0 100%, 0 80%, 5% 76%, 10% 72%, 15% 76%, 20% 80%, 25% 76%, 30% 72%, 35% 76%, 40% 80%, 45% 76%, 50% 72%, 55% 76%, 60% 80%, 65% 76%, 70% 72%, 75% 76%, 80% 80%, 85% 76%, 90% 72%, 95% 76%, 100% 80%, 100% 100%); }
    33% { clip-path: polygon(0 100%, 0 55%, 5% 51%, 10% 47%, 15% 51%, 20% 55%, 25% 51%, 30% 47%, 35% 51%, 40% 55%, 45% 51%, 50% 47%, 55% 51%, 60% 55%, 65% 51%, 70% 47%, 75% 51%, 80% 55%, 85% 51%, 90% 47%, 95% 51%, 100% 55%, 100% 100%); }
    66% { clip-path: polygon(0 100%, 0 30%, 5% 26%, 10% 22%, 15% 26%, 20% 30%, 25% 26%, 30% 22%, 35% 26%, 40% 30%, 45% 26%, 50% 22%, 55% 26%, 60% 30%, 65% 26%, 70% 22%, 75% 26%, 80% 30%, 85% 26%, 90% 22%, 95% 26%, 100% 30%, 100% 100%); }
    100% { clip-path: polygon(0 100%, 0 5%, 5% 2%, 10% 0%, 15% 2%, 20% 5%, 25% 2%, 30% 0%, 35% 2%, 40% 5%, 45% 2%, 50% 0%, 55% 2%, 60% 5%, 65% 2%, 70% 0%, 75% 2%, 80% 5%, 85% 2%, 90% 0%, 95% 2%, 100% 5%, 100% 100%); }
}

/* 19. bounceElastic */
.cp-heading-effect-bounceElastic { display: inline-flex; gap: 0.01em; align-items: flex-end; }
.cp-heading-effect-bounceElastic .cp-char {
    display: inline-block;
    opacity: 1; /* sobrepõe .cp-heading-char-animate .cp-char { opacity: 0 } */
    transform-origin: bottom center;
    animation: cp-effect-elasticBounce var(--cp-effect-dur, 2.2s) cubic-bezier(.36,.07,.19,.97) infinite;
}
@keyframes cp-effect-elasticBounce {
    0%, 55%, 100% { transform: translateY(0) scaleY(1); }
    10% { transform: translateY(calc(-1 * var(--cp-effect-bounce-h, 42px))) scaleY(1.1); }
    18% { transform: translateY(6px) scaleY(0.88); }
    26% { transform: translateY(calc(-0.43 * var(--cp-effect-bounce-h, 42px))) scaleY(1.05); }
    34% { transform: translateY(3px) scaleY(0.96); }
    42% { transform: translateY(calc(-0.14 * var(--cp-effect-bounce-h, 42px))) scaleY(1.02); }
    50% { transform: translateY(0) scaleY(1); }
}

/* 21. fire */
.cp-heading-effect-fire { position: relative; filter: url('#cp-fire-filter'); }
.cp-heading-effect-fire .cp-fire-base {
    background: linear-gradient(0deg, #fff 0%, #fff8e1 15%, #ffeb3b 30%, #ff9800 55%, #ff5722 75%, #b71c1c 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    position: relative;
    z-index: 2;
}
.cp-heading-effect-fire .cp-fire-layer1,
.cp-heading-effect-fire .cp-fire-layer2,
.cp-heading-effect-fire .cp-fire-glow {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-text-fill-color: unset;
}
.cp-heading-effect-fire .cp-fire-layer1 { color: #ff6d00; filter: blur(6px); opacity: 0.7; animation: cp-effect-flameDance1 1.8s ease-in-out infinite alternate; z-index: 1; }
.cp-heading-effect-fire .cp-fire-layer2 { color: #d50000; filter: blur(14px); opacity: 0.5; animation: cp-effect-flameDance2 1.2s ease-in-out infinite alternate; z-index: 0; }
.cp-heading-effect-fire .cp-fire-glow { color: #ff3d00; filter: blur(28px); opacity: 0.4; animation: cp-effect-flameGlow 2.4s ease-in-out infinite alternate; z-index: 0; }
@keyframes cp-effect-flameDance1 {
    0%   { transform: translate(-1px, 1px) skewX(-1deg); opacity: 0.75; filter: blur(5px); }
    25%  { transform: translate(2px, -2px) skewX(2deg);  opacity: 0.6;  filter: blur(7px); }
    50%  { transform: translate(-2px, 0px) skewX(-2deg); opacity: 0.8;  filter: blur(5px); }
    75%  { transform: translate(1px, 1px) skewX(1deg);   opacity: 0.65; filter: blur(8px); }
    100% { transform: translate(-1px, -1px) skewX(0deg); opacity: 0.7;  filter: blur(6px); }
}
@keyframes cp-effect-flameDance2 {
    0%   { transform: translate(2px, 0px)  skewX(2deg);  opacity: 0.55; filter: blur(12px); }
    33%  { transform: translate(-2px, 2px) skewX(-3deg); opacity: 0.4;  filter: blur(16px); }
    66%  { transform: translate(1px, -1px) skewX(1deg);  opacity: 0.6;  filter: blur(13px); }
    100% { transform: translate(-1px, 1px) skewX(-1deg); opacity: 0.45; filter: blur(15px); }
}
@keyframes cp-effect-flameGlow {
    0%   { opacity: 0.3; transform: scale(1.0); filter: blur(25px); }
    50%  { opacity: 0.5; transform: scale(1.05); filter: blur(32px); }
    100% { opacity: 0.35; transform: scale(0.98); filter: blur(28px); }
}

/* 24. smoke */
.cp-heading-effect-smoke { position: relative; overflow: hidden; }
.cp-heading-effect-smoke .cp-smoke-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}
.cp-heading-effect-smoke .cp-smoke-text {
    position: relative;
    z-index: 2;
}

/* ========== Card de Posts (posts_card) ========== */
.cp-posts-card-render { box-sizing: border-box; }
.cp-posts-card-item { box-sizing: border-box; }
.cp-posts-card-item.cp-posts-card-layout-horizontal { display: flex; flex-direction: row; align-items: stretch; gap: 16px; }
.cp-posts-card-item.cp-posts-card-layout-horizontal .cp-posts-card-image { flex-shrink: 0; }
.cp-posts-card-item.cp-posts-card-layout-horizontal .cp-posts-card-body { flex: 1; min-width: 0; }
.cp-posts-card-item { min-width: 0; }
.cp-posts-card-item.cp-posts-card-has-hover:hover {
    background: var(--cp-card-hover-bg, inherit) !important;
    padding: var(--cp-card-hover-padding, inherit) !important;
    border-radius: var(--cp-card-hover-radius, inherit) !important;
    box-shadow: var(--cp-card-hover-shadow, none) !important;
    border-width: var(--cp-card-hover-border-width, inherit) !important;
    border-style: var(--cp-card-hover-border-style, inherit) !important;
    border-color: var(--cp-card-hover-border-color, inherit) !important;
}
.cp-posts-card-image { width: 100%; box-sizing: border-box; }
.cp-posts-card-image img { width: 100%; height: 100%; display: block; vertical-align: top; object-fit: cover; }
.cp-posts-card-badge-wrap { pointer-events: none; z-index: 10; }
.cp-posts-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.cp-posts-card-badge { margin-right: 4px; }
.cp-posts-card-date { font-size: 0.8125rem; opacity: 0.9; }
.cp-posts-card-footer { opacity: 0.85; }
.cp-posts-card-footer .cp-posts-card-meta-item { display: inline-flex; align-items: center; gap: 4px; }
.cp-posts-card-footer .cp-posts-card-meta-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cp-posts-card-footer .cp-posts-card-time { margin-left: 0; }
.cp-posts-card-footer .cp-posts-card-comments,
.cp-posts-card-footer .cp-posts-card-tags { font-size: inherit; }
.cp-posts-card-title { margin: 0 0 8px; }
.cp-posts-card-title a { text-decoration: none; transition: color 0.2s ease, opacity 0.2s ease; }
.cp-posts-card-title a:hover { text-decoration: none; opacity: 0.85; }
.cp-posts-card-excerpt { margin-bottom: 12px; font-weight: 400; }
.cp-posts-card-button { display: inline-block; text-decoration: none; transition: opacity 0.2s, background 0.2s, background-color 0.2s, color 0.2s; }
.cp-posts-card-button:hover { opacity: 0.9; }
.cp-posts-card-render .cp-posts-card-button:hover { background: var(--cp-btn-hover-bg, inherit); background-color: var(--cp-btn-hover-bg, inherit); color: var(--cp-btn-hover-color, inherit); }
.cp-posts-card-pagination { box-sizing: border-box; }
.cp-posts-card-load-more { transition: opacity 0.2s, background-color 0.2s, color 0.2s; }
.cp-posts-card-load-more:hover { opacity: 0.9; }
.cp-posts-card-pagination-prev:hover,
.cp-posts-card-pagination-next:hover { opacity: 0.9; }

/* Barra de filtro (pesquisa, categorias, ordem) */
.cp-posts-card-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    box-sizing: border-box;
}
.cp-posts-card-filter-search {
    min-width: 160px;
    max-width: 100%;
    padding: 8px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: inherit;
    color: inherit;
    background: #fff;
    box-sizing: border-box;
}
.cp-posts-card-filter-search:focus {
    outline: none;
    border-color: var(--cp-global-primary-color, #6366f1);
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
}
.cp-posts-card-filter-category,
.cp-posts-card-filter-order {
    min-width: 140px;
    max-width: 100%;
    padding: 8px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: inherit;
    color: inherit;
    background: #fff;
    cursor: pointer;
    box-sizing: border-box;
}
.cp-posts-card-filter-category:focus,
.cp-posts-card-filter-order:focus {
    outline: none;
    border-color: var(--cp-global-primary-color, #6366f1);
}
.cp-posts-card-ajax-container {
    min-height: 0;
    box-sizing: border-box;
}
.cp-posts-card-ajax-container.cp-posts-card-ajax-loading {
    opacity: 0.7;
    pointer-events: none;
}

@media (max-width: 1024px) {
    .cp-posts-card-render.cp-posts-cols-t-1 { grid-template-columns: repeat(1, 1fr) !important; }
    .cp-posts-card-render.cp-posts-cols-t-2 { grid-template-columns: repeat(2, 1fr) !important; }
    .cp-posts-card-render.cp-posts-cols-t-3 { grid-template-columns: repeat(3, 1fr) !important; }
    .cp-posts-card-render.cp-posts-cols-t-4 { grid-template-columns: repeat(4, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-t-1 { grid-template-columns: repeat(1, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-t-2 { grid-template-columns: repeat(2, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-t-3 { grid-template-columns: repeat(3, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-t-4 { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 768px) {
    .cp-posts-card-render.cp-posts-cols-m-1 { grid-template-columns: repeat(1, 1fr) !important; }
    .cp-posts-card-render.cp-posts-cols-m-2 { grid-template-columns: repeat(2, 1fr) !important; }
    .cp-posts-card-render.cp-posts-cols-m-3 { grid-template-columns: repeat(3, 1fr) !important; }
    .cp-posts-card-render.cp-posts-cols-m-4 { grid-template-columns: repeat(4, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-m-1 { grid-template-columns: repeat(1, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-m-2 { grid-template-columns: repeat(2, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-m-3 { grid-template-columns: repeat(3, 1fr) !important; }
    .cp-posts-card-inner.cp-posts-cols-m-4 { grid-template-columns: repeat(4, 1fr) !important; }
}

/* Fallback: Fixa → Rolar em mobile (Plano de Fundo > Comportamento da Imagem = Fixa) */
@media (max-width: 768px) {
    .cp-bg-attachment-fixed { background-attachment: scroll !important; }
}

/* ========== Header Nav: hamburger em mobile (front / preview) ========== */
@media (max-width: 768px) {
    .cp-header-nav-render .cp-nav-desktop,
    .cp-header-nav-render .cp-nav-right-group,
    .cp-header-nav-render .cp-nav-left,
    .cp-header-nav-render .cp-nav-right {
        display: none !important;
    }
    .cp-header-nav-render .cp-nav-hamburger-btn {
        display: flex !important;
    }
}
/* Preview: toggle "modo celular/tablet" usa classe no container (não media query) — aplicar mesmo layout */
#cp-preview-viewport.cp-viewport-tablet .cp-header-nav-render .cp-nav-desktop,
#cp-preview-viewport.cp-viewport-tablet .cp-header-nav-render .cp-nav-right-group,
#cp-preview-viewport.cp-viewport-tablet .cp-header-nav-render .cp-nav-left,
#cp-preview-viewport.cp-viewport-tablet .cp-header-nav-render .cp-nav-right,
#cp-preview-viewport.cp-viewport-mobile .cp-header-nav-render .cp-nav-desktop,
#cp-preview-viewport.cp-viewport-mobile .cp-header-nav-render .cp-nav-right-group,
#cp-preview-viewport.cp-viewport-mobile .cp-header-nav-render .cp-nav-left,
#cp-preview-viewport.cp-viewport-mobile .cp-header-nav-render .cp-nav-right {
    display: none !important;
}
#cp-preview-viewport.cp-viewport-tablet .cp-header-nav-render .cp-nav-hamburger-btn,
#cp-preview-viewport.cp-viewport-mobile .cp-header-nav-render .cp-nav-hamburger-btn {
    display: flex !important;
}
.cp-header-nav-render .cp-nav-hamburger-btn {
    align-items: center;
    justify-content: center;
}
.cp-header-nav-render .cp-nav-menu-panel {
    display: none;
}
.cp-header-nav-render.cp-nav-open .cp-nav-menu-panel {
    display: block;
}
.cp-header-nav-render .cp-nav-menu-panel .cp-nav-links {
    flex-direction: column;
    align-items: stretch;
}
.cp-header-nav-render .cp-nav-menu-panel .cp-nav-link {
    padding: 10px 12px;
}
.cp-header-nav-render .cp-nav-menu-overlay .cp-nav-menu-panel-inner {
    padding-top: 60px;
}

/* Separator (linha decorativa): garantir centralização quando layout = line */
.cp-separator-render {
    display: flex;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.cp-separator-render .cp-separator-line {
    flex-shrink: 0;
}

/* Galeria: colunas por dispositivo (grid) – front .cp-gallery-inner e editor .cp-gallery-wrapper */
@media (max-width: 1024px) {
    .cp-gallery-json[data-cols-tablet="1"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-tablet="1"] { grid-template-columns: repeat(1, 1fr) !important; }
    .cp-gallery-json[data-cols-tablet="2"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-tablet="2"] { grid-template-columns: repeat(2, 1fr) !important; }
    .cp-gallery-json[data-cols-tablet="3"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-tablet="3"] { grid-template-columns: repeat(3, 1fr) !important; }
    .cp-gallery-json[data-cols-tablet="4"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-tablet="4"] { grid-template-columns: repeat(4, 1fr) !important; }
    .cp-gallery-json[data-cols-tablet="5"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-tablet="5"] { grid-template-columns: repeat(5, 1fr) !important; }
    .cp-gallery-json[data-cols-tablet="6"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-tablet="6"] { grid-template-columns: repeat(6, 1fr) !important; }
}
@media (max-width: 768px) {
    .cp-gallery-json[data-cols-mobile="1"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-mobile="1"] { grid-template-columns: repeat(1, 1fr) !important; }
    .cp-gallery-json[data-cols-mobile="2"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-mobile="2"] { grid-template-columns: repeat(2, 1fr) !important; }
    .cp-gallery-json[data-cols-mobile="3"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-mobile="3"] { grid-template-columns: repeat(3, 1fr) !important; }
    .cp-gallery-json[data-cols-mobile="4"] .cp-gallery-inner,
    .cp-gallery-wrapper[data-cols-mobile="4"] { grid-template-columns: repeat(4, 1fr) !important; }
}
