/*
 * Rafa Builder — estilos base dos componentes (site público e canvas do editor).
 * Valores vêm das variáveis do Design System (--rb-*), com fallback para funcionar sem elas.
 */

.rb-root {
	--rb-align: flex-start;
	color: var(--rb-color-text, #1f2937);
	font-family: var(--rb-font-body, system-ui, sans-serif);
	line-height: var(--rb-line-height, 1.6);
}
.rb-root *,
.rb-root *::before,
.rb-root *::after { box-sizing: border-box; }
/* Regras base com especificidade zero (:where) para que estilos do usuário (.rb-{id}) sempre prevaleçam. */
:where(.rb-root) :where(img, svg, iframe) { max-width: 100%; }
:where(.rb-root) img { height: auto; display: block; }
:where(.rb-root) :where(h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote) { margin: 0; }
:where(.rb-root) :where(h1, h2, h3, h4, h5, h6) {
	font-family: var(--rb-font-heading, inherit);
	font-weight: var(--rb-heading-weight, 700);
	line-height: var(--rb-heading-line-height, 1.2);
	color: inherit;
}
:where(.rb-root) h1 { font-size: var(--rb-fs-4xl, 3rem); }
:where(.rb-root) h2 { font-size: var(--rb-fs-3xl, 2.4rem); }
:where(.rb-root) h3 { font-size: var(--rb-fs-2xl, 1.95rem); }
:where(.rb-root) h4 { font-size: var(--rb-fs-xl, 1.56rem); }
:where(.rb-root) h5 { font-size: var(--rb-fs-lg, 1.25rem); }
:where(.rb-root) h6 { font-size: var(--rb-fs-base, 1rem); }
:where(.rb-root) a { color: var(--rb-link-color, #1d4ed8); text-decoration: var(--rb-link-decoration, underline); text-underline-offset: 0.15em; }
:where(.rb-root) a:where(:hover) { color: var(--rb-link-hover, #0f172a); }
.rb-root :focus-visible {
	outline: var(--rb-focus-width, 3px) solid var(--rb-focus-color, #2563eb);
	outline-offset: 2px;
}
.rb-sr-only {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.rb-svg { width: 1em; height: 1em; flex: none; display: inline-block; vertical-align: -0.125em; }

/* Estrutura ---------------------------------------------------------------- */
.rb-section { position: relative; display: flex; flex-direction: column; background-size: cover; background-position: center; }
.rb-section.rb-has-overlay::before { content: ""; position: absolute; inset: 0; pointer-events: none; }
.rb-section__inner {
	position: relative; z-index: 1; width: 100%; margin-inline: auto;
	padding-inline: var(--rb-gutter, 24px);
	display: flex; flex-direction: column; gap: var(--rb-space-md, 16px);
}
.rb-width-boxed { max-width: calc(var(--rb-content-width, 1200px) + 2 * var(--rb-gutter, 24px)); }
.rb-width-wide { max-width: calc(var(--rb-wide-width, 1440px) + 2 * var(--rb-gutter, 24px)); }
.rb-width-full { max-width: none; }
.rb-section .rb-section .rb-section__inner { padding-inline: 0; }

.rb-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rb-space-lg, 32px); }
.rb-column { display: flex; flex-direction: column; gap: var(--rb-space-md, 16px); min-width: 0; }

/* Básicos ------------------------------------------------------------------ */
.rb-heading a { color: inherit; text-decoration: none; }
.rb-text > * + * { margin-top: 0.75em; }
.rb-text ul, .rb-text ol { padding-left: 1.25em; }

.rb-button { display: flex; justify-content: var(--rb-align); }
.rb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
	padding: var(--rb-btn-py, 12px) var(--rb-btn-px, 24px);
	border-radius: var(--rb-btn-radius, 8px);
	border: 2px solid transparent;
	font-family: inherit; font-weight: var(--rb-btn-weight, 600); font-size: var(--rb-fs-base, 1rem);
	text-transform: var(--rb-btn-transform, none);
	line-height: 1.2; text-decoration: none !important; cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.rb-btn--sm { padding: calc(var(--rb-btn-py, 12px) * .66) calc(var(--rb-btn-px, 24px) * .66); font-size: var(--rb-fs-sm, .875rem); }
.rb-btn--lg { padding: calc(var(--rb-btn-py, 12px) * 1.25) calc(var(--rb-btn-px, 24px) * 1.25); font-size: var(--rb-fs-lg, 1.125rem); }
.rb-btn--block { display: flex; width: 100%; }
.rb-btn--primary { background: var(--rb-color-primary, #1d4ed8); color: #fff; }
.rb-btn--primary:hover { background: var(--rb-color-secondary, #0f172a); color: #fff; }
.rb-btn--secondary { background: var(--rb-color-secondary, #0f172a); color: #fff; }
.rb-btn--secondary:hover { background: var(--rb-color-primary, #1d4ed8); color: #fff; }
.rb-btn--outline { background: transparent; color: currentColor; border-color: currentColor; }
.rb-btn--outline:hover { background: rgba(127, 127, 127, .12); }
.rb-btn--link { padding: 0; background: none; color: var(--rb-link-color, #1d4ed8); border: 0; }
.rb-btn--link:hover { color: var(--rb-link-hover, #0f172a); }
.rb-btn[aria-disabled="true"], .rb-btn:disabled { opacity: var(--rb-disabled-opacity, .5); cursor: not-allowed; }

.rb-icon { display: flex; justify-content: var(--rb-align); line-height: 1; color: var(--rb-color-primary, #1d4ed8); }
a.rb-icon { text-decoration: none; }
.rb-divider { border: 0; border-top: 1px solid var(--rb-color-border, #e5e7eb); margin: 0; width: 100%; }
.rb-spacer { height: 48px; }

.rb-list { padding-left: 1.25em; display: flex; flex-direction: column; gap: .4em; }
.rb-list--icons { list-style: none; padding-left: 0; }
.rb-list--icons li { display: flex; gap: .6em; align-items: baseline; }
.rb-list__icon { color: var(--rb-color-primary, #1d4ed8); }

/* Mídia -------------------------------------------------------------------- */
.rb-image { display: flex; flex-direction: column; align-items: var(--rb-align); }
.rb-image img { border-radius: inherit; }
.rb-image figcaption { margin-top: .5em; font-size: var(--rb-fs-sm, .875rem); color: var(--rb-color-muted, #5b6472); }
.rb-video { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--rb-radius-md, 8px); background: #000; }
.rb-video--4-3 { aspect-ratio: 4 / 3; }
.rb-video--1-1 { aspect-ratio: 1 / 1; }
.rb-video--9-16 { aspect-ratio: 9 / 16; max-width: 420px; }
.rb-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Conteúdo ----------------------------------------------------------------- */
.rb-testimonial { display: flex; flex-direction: column; gap: var(--rb-space-md, 16px); }
.rb-testimonial__quote { font-size: var(--rb-fs-lg, 1.125rem); font-style: italic; }
.rb-testimonial__rating { display: flex; gap: 2px; color: var(--rb-color-border, #d1d5db); }
.rb-testimonial__rating .is-on { color: var(--rb-color-accent, #f59e0b); }
.rb-testimonial__rating .is-on .rb-svg { fill: currentColor; }
.rb-testimonial__author { display: flex; gap: .75em; align-items: center; }
.rb-testimonial__author cite { display: block; font-style: normal; font-weight: 700; }
.rb-testimonial__role { display: block; font-size: var(--rb-fs-sm, .875rem); color: var(--rb-color-muted, #5b6472); }
.rb-testimonial__photo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }

.rb-card { display: flex; flex-direction: column; overflow: hidden; }
.rb-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.rb-card__body { padding: var(--rb-space-lg, 24px); display: flex; flex-direction: column; gap: var(--rb-space-sm, 8px); flex: 1; }
.rb-card__title { font-size: var(--rb-fs-xl, 1.5rem); }
.rb-card__text { color: var(--rb-color-muted, #5b6472); flex: 1; }

.rb-cta { --rb-align: center; display: flex; flex-direction: column; gap: var(--rb-space-md, 16px); }
.rb-cta__title { color: inherit; }
.rb-cta__actions { display: flex; flex-wrap: wrap; gap: var(--rb-space-sm, 8px); justify-content: var(--rb-align, center); }

/* Site --------------------------------------------------------------------- */
.rb-logo { display: flex; justify-content: var(--rb-align); }
.rb-logo a { display: inline-flex; color: inherit; text-decoration: none; }
.rb-logo__img { max-width: 100%; height: auto; }
.rb-logo__title { font-family: var(--rb-font-heading, inherit); font-weight: 800; font-size: var(--rb-fs-xl, 1.4rem); }

.rb-menu { position: relative; display: flex; justify-content: var(--rb-align); }
.rb-menu__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--rb-space-xs, 4px) var(--rb-space-md, 16px); }
.rb-menu--vertical .rb-menu__list { flex-direction: column; }
.rb-menu__list a { display: block; padding: .4em .2em; color: inherit; text-decoration: none; font-weight: 500; }
.rb-menu__list a:hover,
.rb-menu__list .current-menu-item > a { color: var(--rb-color-primary, #1d4ed8); }
.rb-menu__list li { position: relative; }
.rb-menu__list .sub-menu {
	list-style: none; margin: 0; padding: var(--rb-space-xs, 4px);
	position: absolute; top: 100%; left: 0; min-width: 200px; z-index: 60;
	background: var(--rb-color-background, #fff); box-shadow: var(--rb-shadow-md, 0 6px 16px rgba(0,0,0,.14));
	border-radius: var(--rb-radius-sm, 4px); display: none;
}
.rb-menu__list li:hover > .sub-menu,
.rb-menu__list li:focus-within > .sub-menu,
.rb-menu__list li.is-open > .sub-menu { display: block; }
.rb-menu--vertical .sub-menu { position: static; box-shadow: none; display: block; padding-left: var(--rb-space-md, 16px); }
.rb-menu__toggle {
	display: none; align-items: center; gap: .5em; padding: .5em .8em;
	border: 1px solid currentColor; border-radius: var(--rb-radius-sm, 4px);
	background: transparent; color: inherit; font: inherit; cursor: pointer;
}
.rb-menu__toggle .rb-svg { width: 1.25em; height: 1.25em; }
.rb-menu__list .menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; }
.rb-menu__subtoggle { border: 0; background: transparent; color: inherit; padding: .25em; cursor: pointer; line-height: 1; }
.rb-menu__list .menu-item-has-children > .sub-menu { flex-basis: 100%; }

.rb-site-header { position: relative; z-index: 100; }
.rb-site-header.is-sticky { position: sticky; top: 0; }
body.admin-bar .rb-site-header.is-sticky { top: 32px; }
@media (max-width: 782px) { body.admin-bar .rb-site-header.is-sticky { top: 46px; } }
.rb-site-header.is-transparent { position: absolute; left: 0; right: 0; top: 0; }
.rb-site-header.is-transparent.is-sticky { position: fixed; }
.rb-site-header.is-transparent .rb-section { background-color: transparent !important; transition: background-color .2s ease; }
.rb-site-header.is-transparent.is-scrolled .rb-section { background-color: var(--rb-color-background, #fff) !important; box-shadow: var(--rb-shadow-sm, 0 1px 3px rgba(0,0,0,.1)); }

/* Posts -------------------------------------------------------------------- */
.rb-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rb-space-lg, 32px); }
.rb-post { display: flex; flex-direction: column; gap: var(--rb-space-sm, 8px); }
.rb-post__thumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--rb-radius-md, 8px); }
.rb-post__title { font-size: var(--rb-fs-xl, 1.4rem); }
.rb-post__title a { color: inherit; text-decoration: none; }
.rb-post__date { font-size: var(--rb-fs-sm, .875rem); color: var(--rb-color-muted, #5b6472); }

/* Slides ------------------------------------------------------------------- */
.rb-slider { position: relative; width: 100%; height: var(--rb-slider-h, 560px); overflow: hidden; }
.rb-slider--boxed { max-width: var(--rb-content-width, 1200px); margin-inline: auto; border-radius: var(--rb-radius-lg, 16px); }
.rb-slider__track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.rb-slider__track::-webkit-scrollbar { display: none; }
.rb-slide { position: relative; flex: 0 0 100%; height: 100%; scroll-snap-align: start; display: flex; overflow: hidden; }
.rb-slide__media, .rb-slide__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rb-slide__overlay { position: absolute; inset: 0; pointer-events: none; }
.rb-slide__content { position: relative; z-index: 1; width: 100%; display: flex; padding: var(--rb-space-xl, 48px) calc(var(--rb-gutter, 24px) + 56px); }
.rb-slide__inner { max-width: min(680px, 100%); display: flex; flex-direction: column; gap: var(--rb-space-md, 16px); }
.rb-slide__title { font-size: var(--rb-fs-4xl, 3rem); color: inherit; }
.rb-slide__text { font-size: var(--rb-fs-lg, 1.125rem); }
.rb-slide__actions { display: flex; flex-wrap: wrap; gap: var(--rb-space-sm, 8px); }
.rb-slide--valign-top .rb-slide__content { align-items: flex-start; }
.rb-slide--valign-center .rb-slide__content { align-items: center; }
.rb-slide--valign-bottom .rb-slide__content { align-items: flex-end; }
.rb-slide--align-left .rb-slide__content { justify-content: flex-start; text-align: left; }
.rb-slide--align-center .rb-slide__content { justify-content: center; text-align: center; }
.rb-slide--align-center .rb-slide__actions { justify-content: center; }
.rb-slide--align-right .rb-slide__content { justify-content: flex-end; text-align: right; }
.rb-slide--align-right .rb-slide__actions { justify-content: flex-end; }
@media (max-width: 767px) {
	.rb-slide__content { padding: var(--rb-space-lg, 32px) var(--rb-gutter, 16px) calc(var(--rb-space-lg, 32px) + 24px); }
	.rb-slide__title { font-size: var(--rb-fs-3xl, 2rem); }
	.rb-slide--malign-left .rb-slide__content { justify-content: flex-start; text-align: left; }
	.rb-slide--malign-center .rb-slide__content { justify-content: center; text-align: center; }
	.rb-slide--malign-center .rb-slide__actions { justify-content: center; }
	.rb-slide--malign-right .rb-slide__content { justify-content: flex-end; text-align: right; }
	.rb-slider__arrow { display: none !important; }
}
/* Com JavaScript: slides empilhados e trocados por classe. */
.rb-slider.is-ready .rb-slider__track { overflow: hidden; scroll-snap-type: none; }
.rb-slider--slide.is-ready .rb-slider__track { transition: transform .5s ease; }
.rb-slider--fade.is-ready .rb-slider__track { display: block; position: relative; }
.rb-slider--fade.is-ready .rb-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.rb-slider--fade.is-ready .rb-slide.is-active { opacity: 1; visibility: visible; }
.rb-slider__arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
	width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer;
	display: none; align-items: center; justify-content: center;
	background: rgba(255,255,255,.9); color: #111; font-size: 22px;
}
.rb-slider.is-ready .rb-slider__arrow { display: inline-flex; }
.rb-slider__prev { left: 12px; }
.rb-slider__next { right: 12px; }
.rb-slider__dots { position: absolute; bottom: 14px; left: 0; right: 0; z-index: 2; display: none; justify-content: center; gap: 4px; }
.rb-slider.is-ready .rb-slider__dots { display: flex; }
.rb-slider__dot { width: 24px; height: 24px; border: 0; padding: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.rb-slider__dot::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.55); box-shadow: 0 0 0 1px rgba(0,0,0,.25); }
.rb-slider__dot[aria-current="true"]::before { background: #fff; transform: scale(1.25); }
.rb-slider__pause {
	position: absolute; right: 12px; bottom: 10px; z-index: 3; display: none;
	width: 32px; height: 32px; border-radius: 50%; border: 0; cursor: pointer;
	align-items: center; justify-content: center; background: rgba(0,0,0,.55); color: #fff;
}
.rb-slider.is-ready .rb-slider__pause { display: inline-flex; }
@media (prefers-reduced-motion: reduce) {
	.rb-slider .rb-slider__track, .rb-slider .rb-slide, .rb-btn { transition: none !important; }
}

/* Formulários -------------------------------------------------------------- */
.rb-form { display: flex; flex-direction: column; gap: var(--rb-space-md, 16px); }
.rb-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rb-space-md, 16px); }
.rb-form__field { grid-column: span 2; display: flex; flex-direction: column; gap: 6px; border: 0; padding: 0; margin: 0; min-width: 0; }
.rb-form__field--half { grid-column: span 1; }
@media (max-width: 767px) { .rb-form__field--half { grid-column: span 2; } }
.rb-form__label { font-weight: 600; padding: 0; }
.rb-form__req { color: #b91c1c; }
.rb-form__input {
	width: 100%; padding: .7em .85em; font: inherit; color: inherit;
	background: var(--rb-color-background, #fff);
	border: 1px solid var(--rb-color-border, #d1d5db); border-radius: var(--rb-radius-sm, 4px);
}
.rb-form__input:focus { border-color: var(--rb-color-primary, #1d4ed8); }
.rb-form__input[aria-invalid="true"], .rb-form__field.has-error .rb-form__input { border-color: #b91c1c; }
.rb-form__help { font-size: var(--rb-fs-sm, .875rem); color: var(--rb-color-muted, #5b6472); }
.rb-form__error { font-size: var(--rb-fs-sm, .875rem); color: #b91c1c; font-weight: 600; }
.rb-form__choices { display: flex; flex-direction: column; gap: 6px; }
.rb-form__choice { display: flex; gap: .5em; align-items: flex-start; font-weight: 400; cursor: pointer; }
.rb-form__choice input { margin-top: .3em; width: 1.1em; height: 1.1em; flex: none; }
.rb-form__status { padding: .8em 1em; border-radius: var(--rb-radius-sm, 4px); background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.rb-form__status.is-error { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.rb-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rb-form.is-sending .rb-btn { opacity: .6; pointer-events: none; }

/* =====================================================================
 * v0.2 — Contêiner flexível, widgets gerais/pro e efeitos.
 * Regras com :where() têm especificidade zero: o painel sempre vence.
 * ===================================================================== */

/* Contêiner ---------------------------------------------------------------- */
.rb-container { position: relative; display: flex; flex-direction: column; min-width: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.rb-container::before { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; z-index: 0; }
.rb-con-inner { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1 1 auto; width: 100%; margin-inline: auto; gap: var(--rb-space-md, 16px); min-width: 0; }
.rb-con-inner > * { min-width: 0; }
.rb-con-boxed > .rb-con-inner { max-width: var(--rb-content-width, 1200px); }
:where(.rb-root > .rb-container) { padding-inline: var(--rb-gutter, 24px); }
a.rb-con-link { color: inherit; text-decoration: none; }
:where(.rb-con-inner) > :where(.rb-video, .rb-divider, .rb-spacer, .rb-tabs, .rb-accordion, .rb-progress, .rb-gallery, .rb-carousel, .rb-google-maps, .rb-posts, .rb-form-block, .rb-slider-block, .rb-toc, .rb-price-list) { width: 100%; }

/* Moldura de ícone (padrão / empilhado / moldurado) ------------------------ */
.rb-iconwrap { display: inline-flex; align-items: center; justify-content: center; line-height: 1; flex: none; transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease; }
.rb-iconwrap .rb-svg { width: 1em; height: 1em; vertical-align: 0; }
.rb-iconwrap--stacked { background: var(--rb-color-primary, #1d4ed8); color: #fff; padding: .5em; }
.rb-iconwrap--framed { border: 2px solid currentColor; padding: .5em; }
.rb-iconwrap--stacked.rb-iconwrap--circle, .rb-iconwrap--framed.rb-iconwrap--circle { border-radius: 50%; }
.rb-iconwrap--stacked.rb-iconwrap--rounded, .rb-iconwrap--framed.rb-iconwrap--rounded { border-radius: 22%; }
:where(.rb-icon) { font-size: 48px; }

/* Animações de hover do botão ---------------------------------------------- */
.rb-hover-grow:hover { transform: scale(1.06); }
.rb-hover-shrink:hover { transform: scale(.94); }
.rb-hover-float:hover { transform: translateY(-4px); }
.rb-hover-sink:hover { transform: translateY(4px); }
.rb-hover-pulse:hover { animation: rb-pulse .9s ease-in-out infinite; }
.rb-hover-shine { position: relative; overflow: hidden; }
.rb-hover-shine::after { content: ""; position: absolute; top: 0; left: -75%; width: 50%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-20deg); pointer-events: none; }
.rb-hover-shine:hover::after { animation: rb-shine .8s ease; }
@keyframes rb-pulse { 50% { transform: scale(1.05); } }
@keyframes rb-shine { to { left: 125%; } }
.rb-btn--xs { padding: calc(var(--rb-btn-py, 12px) * .5) calc(var(--rb-btn-px, 24px) * .5); font-size: var(--rb-fs-xs, .75rem); }
.rb-btn--xl { padding: calc(var(--rb-btn-py, 12px) * 1.5) calc(var(--rb-btn-px, 24px) * 1.5); font-size: var(--rb-fs-xl, 1.4rem); }
.rb-btn .rb-svg { width: 1.1em; height: 1.1em; }

/* Mídia extra --------------------------------------------------------------- */
.rb-video--21-9 { aspect-ratio: 21 / 9; }
.rb-video--3-2 { aspect-ratio: 3 / 2; }
.rb-image a { display: block; max-width: 100%; }
.rb-google-maps { width: 100%; height: 360px; overflow: hidden; border-radius: var(--rb-radius-md, 8px); }
.rb-google-maps iframe { width: 100%; height: 100%; border: 0; display: block; filter: inherit; }
.rb-gallery { display: grid; grid-template-columns: repeat(var(--rb-per-view, 3), minmax(0, 1fr)); gap: var(--rb-item-gap, 12px); }
.rb-gallery__item { position: relative; overflow: hidden; border-radius: var(--rb-radius-sm, 4px); }
.rb-gallery__item a { display: block; }
.rb-gallery__item img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .4s ease; }
.rb-gallery__item:hover img { transform: scale(1.05); }
.rb-gallery__item figcaption { position: absolute; inset: auto 0 0 0; padding: .6em .8em; font-size: var(--rb-fs-sm, .875rem); color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.65)); }
@media (max-width: 767px) { .rb-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Carrossel genérico (imagens, depoimentos) ---------------------------------- */
.rb-carousel { position: relative; width: 100%; }
:where(.rb-carousel) { --rb-per-view: 1; --rb-item-gap: 16px; }
.rb-carousel__track { display: flex; gap: var(--rb-item-gap); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; }
.rb-carousel__track::-webkit-scrollbar { display: none; }
.rb-carousel__slide { flex: 0 0 calc((100% - (var(--rb-per-view) - 1) * var(--rb-item-gap)) / var(--rb-per-view)); scroll-snap-align: start; min-width: 0; }
.rb-carousel__slide img { width: 100%; height: 100%; object-fit: cover; }
.rb-carousel__slide figcaption { margin-top: .5em; font-size: var(--rb-fs-sm, .875rem); text-align: center; }
.rb-carousel__arrow, .rb-carousel__pause { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 0; padding: 0; cursor: pointer; display: none; align-items: center; justify-content: center; background: rgba(255,255,255,.92); color: #111; box-shadow: 0 2px 10px rgba(0,0,0,.15); font-size: 20px; }
.rb-carousel.is-ready .rb-carousel__arrow { display: inline-flex; }
.rb-carousel__prev { left: 10px; }
.rb-carousel__next { right: 10px; }
/* Cartões com texto: setas fora da área do conteúdo. */
.rb-testimonial-carousel.is-ready { padding-inline: 52px; }
.rb-testimonial-carousel .rb-carousel__prev { left: 0; }
.rb-testimonial-carousel .rb-carousel__next { right: 0; }
@media (max-width: 767px) { .rb-testimonial-carousel.is-ready { padding-inline: 0; padding-bottom: 52px; } .rb-testimonial-carousel .rb-carousel__arrow { top: auto; bottom: 0; transform: none; } .rb-testimonial-carousel .rb-carousel__prev { left: calc(50% - 52px); } .rb-testimonial-carousel .rb-carousel__next { right: calc(50% - 52px); } }
.rb-carousel__arrow[disabled] { opacity: .35; cursor: default; }
.rb-carousel__pause { top: auto; bottom: -4px; right: 0; transform: none; width: 32px; height: 32px; font-size: 14px; }
.rb-carousel.is-ready .rb-carousel__pause { display: inline-flex; }
.rb-carousel__dots { display: none; justify-content: center; gap: 2px; margin-top: 12px; }
.rb-carousel.is-ready .rb-carousel__dots { display: flex; }
.rb-carousel__dot { width: 24px; height: 24px; border: 0; padding: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: var(--rb-color-primary, #1d4ed8); }
.rb-carousel__dot::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; opacity: .3; transition: opacity .2s, transform .2s; }
.rb-carousel__dot[aria-current="true"]::before { opacity: 1; transform: scale(1.25); }

/* Lightbox ------------------------------------------------------------------ */
.rb-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(10,10,14,.92); padding: 56px 64px; }
.rb-lightbox[hidden] { display: none; }
.rb-lightbox__img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
.rb-lightbox__caption { position: absolute; left: 0; right: 0; bottom: 14px; text-align: center; color: #eee; font-size: 14px; padding: 0 64px; }
.rb-lightbox__btn { position: absolute; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 22px; }
.rb-lightbox__btn:hover { background: rgba(255,255,255,.25); }
.rb-lightbox__btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.rb-lightbox__close { top: 10px; right: 10px; }
.rb-lightbox__prev { left: 10px; top: 50%; transform: translateY(-50%); }
.rb-lightbox__next { right: 10px; top: 50%; transform: translateY(-50%); }
.rb-lightbox__count { position: absolute; top: 20px; left: 20px; color: #ccc; font-size: 13px; }
@media (max-width: 767px) { .rb-lightbox { padding: 56px 8px; } }

/* Caixa de ícone / caixa de imagem ------------------------------------------- */
.rb-icon-box, .rb-image-box { display: flex; flex-direction: column; align-items: var(--rb-align, center); text-align: center; gap: var(--rb-space-md, 16px); }
:where(.rb-icon-box) { --rb-align: center; }
:where(.rb-image-box) { --rb-align: center; }
.rb-ibox--left, .rb-ibox--right, .rb-imgbox--left, .rb-imgbox--right { flex-direction: row; align-items: flex-start; text-align: left; }
.rb-ibox--right, .rb-imgbox--right { flex-direction: row-reverse; text-align: right; }
:where(.rb-ibox__icon) { font-size: 44px; color: var(--rb-color-primary, #1d4ed8); }
.rb-ibox__content, .rb-imgbox__content { display: flex; flex-direction: column; gap: var(--rb-space-xs, 6px); min-width: 0; }
.rb-ibox__title, .rb-imgbox__title { font-size: var(--rb-fs-xl, 1.4rem); }
.rb-ibox__title a, .rb-imgbox__title a { color: inherit; text-decoration: none; }
.rb-ibox__text, .rb-imgbox__text { color: var(--rb-color-muted, #5b6472); }
.rb-imgbox__img { flex: none; width: 100%; max-width: 100%; overflow: hidden; border-radius: var(--rb-radius-md, 8px); }
.rb-imgbox--left .rb-imgbox__img, .rb-imgbox--right .rb-imgbox__img { width: 35%; }
.rb-imgbox__img img { width: 100%; transition: transform .4s ease; }
.rb-image-box:hover .rb-imgbox__img img { transform: scale(1.04); }

/* Contador / barra de progresso / avaliação ----------------------------------- */
.rb-counter { display: flex; flex-direction: column; align-items: var(--rb-align, center); text-align: center; gap: 4px; }
:where(.rb-counter) { --rb-align: center; }
.rb-counter__number { font-family: var(--rb-font-heading, inherit); font-weight: 800; font-size: var(--rb-fs-4xl, 3rem); line-height: 1.1; color: var(--rb-color-primary, #1d4ed8); font-variant-numeric: tabular-nums; }
.rb-counter__title { font-size: var(--rb-fs-lg, 1.125rem); color: var(--rb-color-muted, #5b6472); }
.rb-progress { display: flex; flex-direction: column; gap: 8px; }
.rb-progress__title { font-weight: 600; }
.rb-progress__track { position: relative; height: 22px; background: var(--rb-color-border, #e5e7eb); border-radius: 999px; overflow: hidden; }
.rb-progress__bar { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 10px; background: var(--rb-color-primary, #1d4ed8); color: #fff; font-size: 12px; font-weight: 600; border-radius: inherit; transition: width 1.4s cubic-bezier(.25,.8,.25,1); white-space: nowrap; overflow: hidden; }
.rb-progress__pct { margin-left: auto; }
.rb-js .rb-progress__bar[data-rb-progress]:not(.is-done) { width: 0 !important; }
.rb-star-rating { display: flex; align-items: center; gap: 10px; justify-content: var(--rb-align, flex-start); }
.rb-stars { position: relative; display: inline-flex; font-size: 22px; line-height: 1; color: var(--rb-color-accent, #f59e0b); }
.rb-stars__bg, .rb-stars__fg { display: inline-flex; gap: 2px; white-space: nowrap; }
.rb-stars__bg { color: var(--rb-color-border, #d1d5db); }
.rb-stars__fg { position: absolute; top: 0; left: 0; overflow: hidden; }
.rb-stars .rb-svg { fill: currentColor; stroke: none; }
.rb-rating__title { font-weight: 600; }

/* Depoimento (layout lateral) ------------------------------------------------- */
.rb-testimonial--aside { display: grid; grid-template-columns: auto 1fr; align-items: start; }

/* Abas ---------------------------------------------------------------------- */
.rb-tabs { display: flex; flex-direction: column; }
.rb-tabs__list { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid var(--rb-color-border, #e5e7eb); }
.rb-tabs--align-center .rb-tabs__list { justify-content: center; }
.rb-tabs--align-end .rb-tabs__list { justify-content: flex-end; }
.rb-tabs--align-stretch .rb-tabs__tab { flex: 1; }
.rb-tabs__tab { appearance: none; border: 0; background: transparent; font: inherit; font-weight: 600; color: var(--rb-color-muted, #5b6472); padding: .85em 1.25em; cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -1px; transition: color .15s, border-color .15s, background-color .15s; }
.rb-tabs__tab:hover { color: var(--rb-color-text, #1f2937); }
.rb-tabs__tab[aria-selected="true"] { color: var(--rb-color-primary, #1d4ed8); border-bottom-color: currentColor; }
.rb-tabs__panel { padding: var(--rb-space-md, 20px) 0; }
.rb-tabs__panel > * + * { margin-top: .75em; }
.rb-tabs__fallback-title { display: none; }
.rb-tabs--vertical { flex-direction: row; gap: var(--rb-space-lg, 24px); }
.rb-tabs--vertical .rb-tabs__list { flex-direction: column; flex-wrap: nowrap; border-bottom: 0; border-right: 1px solid var(--rb-color-border, #e5e7eb); min-width: 200px; }
.rb-tabs--vertical .rb-tabs__tab { text-align: left; border-bottom: 0; border-right: 3px solid transparent; margin: 0 -1px 0 0; }
.rb-tabs--vertical .rb-tabs__tab[aria-selected="true"] { border-right-color: currentColor; }
.rb-tabs--vertical .rb-tabs__panels { flex: 1; min-width: 0; }
@media (max-width: 767px) { .rb-tabs--vertical { flex-direction: column; } .rb-tabs--vertical .rb-tabs__list { flex-direction: row; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid var(--rb-color-border, #e5e7eb); min-width: 0; } }
/* Sem JavaScript: todos os painéis visíveis, cada um com seu título. */
html:not(.rb-js) .rb-tabs__list { display: none; }
html:not(.rb-js) .rb-tabs__panel[hidden] { display: block; }
html:not(.rb-js) .rb-tabs__fallback-title { display: block; font-size: var(--rb-fs-lg, 1.2rem); margin-bottom: .5em; }

/* Acordeão ------------------------------------------------------------------ */
.rb-accordion { display: flex; flex-direction: column; gap: 8px; }
.rb-acc__item { border: 1px solid var(--rb-color-border, #e5e7eb); border-radius: var(--rb-radius-sm, 6px); background: var(--rb-color-background, #fff); overflow: hidden; }
.rb-acc__title { display: flex; align-items: center; gap: 12px; padding: 1em 1.2em; cursor: pointer; list-style: none; font-weight: 600; user-select: none; transition: background-color .15s, color .15s; }
.rb-acc__title::-webkit-details-marker { display: none; }
.rb-acc__title::marker { content: ""; }
.rb-acc__title:hover { background: rgba(127,127,127,.06); }
.rb-acc__title--icon-right .rb-acc__heading { flex: 1; }
.rb-acc__title--icon-left .rb-acc__heading { flex: 1; order: 2; }
.rb-acc__heading { font-size: var(--rb-fs-base, 1.05rem); font-weight: inherit; color: inherit; margin: 0; }
.rb-acc__icon { display: inline-flex; flex: none; color: var(--rb-color-primary, #1d4ed8); }
.rb-acc__opened, .rb-acc__item[open] .rb-acc__closed { display: none; }
.rb-acc__item[open] .rb-acc__opened { display: inline-flex; }
.rb-acc__closed { display: inline-flex; }
.rb-acc__content { padding: 0 1.2em 1.1em; color: var(--rb-color-muted, #4b5563); }
.rb-acc__content > * + * { margin-top: .75em; }

/* Alerta -------------------------------------------------------------------- */
.rb-alert { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 1em 1.2em; border-radius: var(--rb-radius-sm, 6px); border-left: 4px solid; }
.rb-alert[hidden] { display: none; }
.rb-alert--info { background: #eff6ff; border-color: #2563eb; color: #1e3a8a; }
.rb-alert--success { background: #ecfdf5; border-color: #059669; color: #064e3b; }
.rb-alert--warning { background: #fffbeb; border-color: #d97706; color: #78350f; }
.rb-alert--danger { background: #fef2f2; border-color: #dc2626; color: #7f1d1d; }
.rb-alert__icon { font-size: 22px; line-height: 1; flex: none; }
.rb-alert__body { flex: 1; min-width: 0; }
.rb-alert__title { font-weight: 700; margin-bottom: 2px; }
.rb-alert__close { flex: none; border: 0; background: transparent; color: inherit; cursor: pointer; padding: 4px; line-height: 1; border-radius: 4px; opacity: .7; }
.rb-alert__close:hover { opacity: 1; }

/* Ícones sociais / compartilhar ------------------------------------------------ */
/* Cores das redes levemente escurecidas quando necessário para contraste ≥ 4.5:1 com texto branco (WCAG AA). */
.rb-social-icons, .rb-share-buttons { display: flex; flex-wrap: wrap; gap: var(--rb-item-gap, 10px); justify-content: var(--rb-align, flex-start); }
.rb-social__link, .rb-share__btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-width: 2.4em; height: 2.4em; padding: 0 .65em; font-size: 18px; text-decoration: none !important; color: #fff; background: var(--rb-net, #374151); transition: transform .15s ease, opacity .15s ease, background-color .15s; }
.rb-share__label { font-size: 14px; font-weight: 600; }
.rb-share--icon .rb-share__btn, .rb-social__link { padding: 0; width: 2.4em; }
.rb-social__link:hover, .rb-share__btn:hover { transform: translateY(-2px); opacity: .92; color: #fff; }
.rb-social--rounded .rb-social__link, .rb-social--rounded .rb-share__btn { border-radius: 8px; }
.rb-social--circle .rb-social__link, .rb-social--circle .rb-share__btn { border-radius: 999px; }
.rb-social--square .rb-social__link, .rb-social--square .rb-share__btn { border-radius: 0; }
.rb-social--custom .rb-social__link, .rb-social--custom .rb-share__btn { --rb-net: var(--rb-color-primary, #1d4ed8); }
.rb-social--facebook { --rb-net: #0d6fed; } .rb-social--instagram { --rb-net: #df2363; } .rb-social--linkedin { --rb-net: #0a66c2; }
.rb-social--youtube { --rb-net: #eb0000; } .rb-social--x { --rb-net: #000; } .rb-social--tiktok { --rb-net: #010101; }
.rb-social--whatsapp { --rb-net: #198644; } .rb-social--telegram { --rb-net: #1b7cab; } .rb-social--pinterest { --rb-net: #e60023; }
.rb-social--threads { --rb-net: #000; } .rb-social--github { --rb-net: #24292f; } .rb-social--behance { --rb-net: #1769ff; }
.rb-social--dribbble { --rb-net: #e11a67; } .rb-social--spotify { --rb-net: #15863d; } .rb-social--email { --rb-net: #4b5563; }
.rb-social--phone { --rb-net: #0f766e; } .rb-social--website { --rb-net: #374151; } .rb-social--map { --rb-net: #b45309; }

/* Âncora / shortcode / HTML ------------------------------------------------------ */
.rb-menu-anchor { height: 0; overflow: hidden; scroll-margin-top: var(--rb-anchor-offset, 90px); }

/* Chamada para ação (CTA) -------------------------------------------------------- */
.rb-cta { position: relative; overflow: hidden; border-radius: var(--rb-radius-lg, 14px); text-align: center; }
.rb-cta__content { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--rb-space-md, 16px); align-items: var(--rb-align, center); padding: var(--rb-space-xl, 48px) var(--rb-space-lg, 32px); }
.rb-cta__text { max-width: 60ch; }
.rb-cta--background { color: #fff; min-height: 340px; justify-content: center; }
.rb-cta--background .rb-cta__content { flex: 1; justify-content: center; }
.rb-cta__bg { position: absolute; inset: 0; z-index: 0; }
.rb-cta__bg img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.rb-cta__bg::after { content: ""; position: absolute; inset: 0; background: rgba(15,23,42,.55); }
.rb-cta--background:hover .rb-cta__bg img { transform: scale(1.05); }
.rb-cta--left, .rb-cta--right { flex-direction: row; align-items: stretch; text-align: left; }
.rb-cta--right { flex-direction: row-reverse; }
.rb-cta--left .rb-cta__content, .rb-cta--right .rb-cta__content { --rb-align: flex-start; flex: 1; }
.rb-cta__media { flex: 0 0 42%; margin: 0; }
.rb-cta__media img { width: 100%; height: 100%; object-fit: cover; }
.rb-cta--none, .rb-cta--top { background: var(--rb-color-surface, #f3f4f6); }
@media (max-width: 767px) { .rb-cta--left, .rb-cta--right { flex-direction: column; } }
.rb-ribbon { position: absolute; z-index: 3; top: 18px; right: -34px; width: 140px; transform: rotate(45deg); text-align: center; background: var(--rb-color-accent, #f59e0b); color: #111; font-size: 12px; font-weight: 700; padding: 5px 0; text-transform: uppercase; letter-spacing: .04em; box-shadow: 0 2px 6px rgba(0,0,0,.15); }

/* Tabela de preços ------------------------------------------------------------- */
.rb-price-table { position: relative; overflow: hidden; display: flex; flex-direction: column; text-align: center; background: var(--rb-color-background, #fff); border: 1px solid var(--rb-color-border, #e5e7eb); border-radius: var(--rb-radius-lg, 14px); box-shadow: var(--rb-shadow-md, 0 10px 30px rgba(15,23,42,.08)); }
.rb-price__header { padding: var(--rb-space-lg, 28px) var(--rb-space-md, 20px) var(--rb-space-sm, 10px); }
.rb-price__title { font-size: var(--rb-fs-xl, 1.5rem); }
.rb-price__subtitle { color: var(--rb-color-muted, #5b6472); margin-top: 4px; }
.rb-price__pricing { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 6px; padding: var(--rb-space-sm, 10px) var(--rb-space-md, 20px) var(--rb-space-md, 20px); }
.rb-price__original { color: var(--rb-color-muted, #5b6472); font-size: var(--rb-fs-lg, 1.2rem); }
.rb-price__amount { display: inline-flex; align-items: flex-start; font-family: var(--rb-font-heading, inherit); font-weight: 800; font-size: 3.4rem; line-height: 1; color: var(--rb-color-text, #111827); }
.rb-price__currency { font-size: .45em; margin-top: .25em; margin-right: .1em; }
.rb-price__fraction { font-size: .4em; top: 0; margin-top: .25em; }
.rb-price__period { width: 100%; color: var(--rb-color-muted, #5b6472); font-size: var(--rb-fs-sm, .9rem); }
.rb-price__features { list-style: none; margin: 0; padding: var(--rb-space-md, 16px) var(--rb-space-lg, 28px); border-top: 1px solid var(--rb-color-border, #e5e7eb); display: flex; flex-direction: column; gap: 10px; text-align: left; flex: 1; }
.rb-price__features li { display: flex; gap: 10px; align-items: baseline; }
.rb-price__mark { flex: none; display: inline-flex; color: #059669; }
.rb-price__features .is-excluded { color: var(--rb-color-muted, #9ca3af); text-decoration: line-through; }
.rb-price__features .is-excluded .rb-price__mark { color: #dc2626; }
.rb-price__footer { padding: var(--rb-space-md, 16px) var(--rb-space-lg, 28px) var(--rb-space-lg, 28px); display: flex; flex-direction: column; gap: 10px; }
.rb-price__note { font-size: var(--rb-fs-sm, .85rem); color: var(--rb-color-muted, #5b6472); }

/* Lista de preços -------------------------------------------------------------- */
.rb-price-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--rb-item-gap, 18px); }
.rb-plist__head { display: flex; align-items: baseline; gap: 10px; }
.rb-plist__title { font-weight: 700; font-size: var(--rb-fs-lg, 1.1rem); }
.rb-plist__title a { color: inherit; text-decoration: none; }
.rb-plist__sep { flex: 1; border-bottom: 2px dotted var(--rb-color-border, #d1d5db); transform: translateY(-4px); min-width: 20px; }
.rb-plist__price { font-weight: 700; color: var(--rb-color-primary, #1d4ed8); white-space: nowrap; }
.rb-plist__desc { color: var(--rb-color-muted, #5b6472); margin-top: 4px; font-size: var(--rb-fs-sm, .92rem); }

/* Flip box ------------------------------------------------------------------- */
.rb-flip-box { position: relative; min-height: 300px; perspective: 1200px; border-radius: var(--rb-radius-lg, 12px); }
.rb-flip__inner { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .7s cubic-bezier(.3,.7,.3,1); border-radius: inherit; }
.rb-flip__front, .rb-flip__back { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; border-radius: inherit; backface-visibility: hidden; -webkit-backface-visibility: hidden; padding: var(--rb-space-lg, 28px); }
.rb-flip__front { background: var(--rb-color-primary, #1d4ed8); color: #fff; }
.rb-flip__back { background: var(--rb-color-secondary, #0f172a); color: #fff; }
.rb-flip__bg { position: absolute; inset: 0; }
.rb-flip__bg img { width: 100%; height: 100%; object-fit: cover; }
.rb-flip__bg::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.rb-flip__content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.rb-flip__icon { font-size: 48px; line-height: 1; }
.rb-flip__title { font-size: var(--rb-fs-xl, 1.5rem); color: inherit; }
.rb-flip--flip .rb-flip__back { transform: rotateY(180deg); }
.rb-flip--flip.rb-flip--up .rb-flip__back, .rb-flip--flip.rb-flip--down .rb-flip__back { transform: rotateX(180deg); }
.rb-flip--flip:is(:hover, :focus-within) .rb-flip__inner { transform: rotateY(180deg); }
.rb-flip--flip.rb-flip--left:is(:hover, :focus-within) .rb-flip__inner { transform: rotateY(-180deg); }
.rb-flip--flip.rb-flip--up:is(:hover, :focus-within) .rb-flip__inner { transform: rotateX(180deg); }
.rb-flip--flip.rb-flip--down:is(:hover, :focus-within) .rb-flip__inner { transform: rotateX(-180deg); }
.rb-flip--fade .rb-flip__back, .rb-flip--slide .rb-flip__back, .rb-flip--zoom .rb-flip__back { transition: opacity .5s ease, transform .5s ease; opacity: 0; z-index: 2; }
.rb-flip--fade:is(:hover, :focus-within) .rb-flip__back, .rb-flip--zoom:is(:hover, :focus-within) .rb-flip__back { opacity: 1; transform: none; }
.rb-flip--zoom .rb-flip__back { transform: scale(.85); }
.rb-flip--slide .rb-flip__back { opacity: 1; transform: translateX(100%); }
.rb-flip--slide.rb-flip--left .rb-flip__back { transform: translateX(-100%); }
.rb-flip--slide.rb-flip--up .rb-flip__back { transform: translateY(100%); }
.rb-flip--slide.rb-flip--down .rb-flip__back { transform: translateY(-100%); }
.rb-flip--slide:is(:hover, :focus-within) .rb-flip__back { transform: none; }
.rb-flip-box:focus-visible { outline: 3px solid var(--rb-focus-color, #2563eb); outline-offset: 3px; }

/* Título animado ---------------------------------------------------------------- */
.rb-ah__dynamic { position: relative; display: inline-block; color: var(--rb-color-primary, #1d4ed8); }
.rb-ah--rotate .rb-ah__dynamic { display: inline-grid; vertical-align: bottom; }
.rb-ah--rotate .rb-ah__word { grid-area: 1 / 1; white-space: nowrap; opacity: 0; visibility: hidden; }
.rb-ah--rotate .rb-ah__word.is-visible { opacity: 1; visibility: visible; }
.rb-ah--fade .rb-ah__word { transition: opacity .5s ease, visibility .5s; }
.rb-ah--slide .rb-ah__dynamic { overflow: hidden; }
.rb-ah--slide .rb-ah__word { transform: translateY(100%); transition: transform .5s ease, opacity .5s ease, visibility .5s; }
.rb-ah--slide .rb-ah__word.is-visible { transform: none; }
.rb-ah--slide .rb-ah__word.is-leaving { transform: translateY(-100%); visibility: visible; opacity: 0; }
.rb-ah--clip .rb-ah__word.is-visible { animation: rb-clip .6s ease both; }
.rb-ah--typing .rb-ah__dynamic::after { content: ""; position: absolute; right: -4px; top: 10%; height: 80%; width: 2px; background: currentColor; animation: rb-caret 1s steps(1) infinite; }
.rb-ah--typing .rb-ah__word.is-visible { overflow: hidden; }
@keyframes rb-caret { 50% { opacity: 0; } }
@keyframes rb-clip { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
.rb-ah__highlight { z-index: 0; }
.rb-ah__shape { position: absolute; left: 50%; top: 50%; width: calc(100% + 20px); height: calc(100% + 20px); transform: translate(-50%, -50%); overflow: visible; z-index: -1; pointer-events: none; }
.rb-ah__shape path { fill: none; stroke: var(--rb-color-accent, #f59e0b); stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1500; stroke-dashoffset: 0; }
.rb-js .rb-ah__shape path { stroke-dashoffset: 1500; transition: stroke-dashoffset 1.2s ease; }
.rb-js .rb-ah__highlight.is-drawn .rb-ah__shape path { stroke-dashoffset: 0; }

/* Contagem regressiva ---------------------------------------------------------- */
.rb-cd__items { display: flex; flex-wrap: wrap; gap: var(--rb-item-gap, 12px); justify-content: var(--rb-align, center); }
.rb-cd__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-width: 88px; padding: 16px 10px; border-radius: var(--rb-radius-md, 10px); background: var(--rb-color-secondary, #0f172a); color: #fff; }
.rb-cd__digits { font-family: var(--rb-font-heading, inherit); font-size: 2.6rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.rb-cd__label { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; opacity: .8; }
.rb-cd--inline .rb-cd__item { flex-direction: row; align-items: baseline; min-width: 0; padding: 0; background: none; color: inherit; }
.rb-cd--inline .rb-cd__digits { font-size: 1.8rem; }
.rb-cd__message { text-align: center; font-weight: 600; font-size: var(--rb-fs-lg, 1.2rem); }

/* Citação ---------------------------------------------------------------------- */
.rb-blockquote { position: relative; display: flex; flex-direction: column; gap: 10px; }
.rb-bq__text { font-size: var(--rb-fs-lg, 1.25rem); font-style: italic; line-height: 1.5; }
.rb-bq__author { color: var(--rb-color-muted, #5b6472); font-weight: 600; }
.rb-bq__author cite { font-style: normal; }
.rb-bq--border { border-left: 4px solid var(--rb-color-primary, #1d4ed8); padding: 4px 0 4px 20px; }
.rb-bq--quotation { padding-top: 34px; }
.rb-bq__mark { position: absolute; top: -18px; left: -4px; font-size: 90px; line-height: 1; font-family: Georgia, serif; color: var(--rb-color-primary, #1d4ed8); opacity: .25; }
.rb-bq--boxed { background: var(--rb-color-surface, #f3f4f6); padding: 24px 28px; border-radius: var(--rb-radius-md, 10px); }

/* Carrossel de depoimentos ------------------------------------------------------- */
:where(.rb-testimonial-carousel) { --rb-per-view: 3; }
.rb-tcard { height: 100%; display: flex; flex-direction: column; gap: 16px; padding: 28px; background: var(--rb-color-background, #fff); border: 1px solid var(--rb-color-border, #e5e7eb); border-radius: var(--rb-radius-lg, 14px); box-shadow: var(--rb-shadow-sm, 0 4px 14px rgba(15,23,42,.06)); }
.rb-tcard__quote { flex: 1; font-size: var(--rb-fs-base, 1rem); line-height: 1.65; }
.rb-tcard__author { display: flex; align-items: center; gap: 12px; }
.rb-tcard__photo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.rb-tcard__name { display: block; font-style: normal; font-weight: 700; }
.rb-tcard__role { display: block; font-size: var(--rb-fs-sm, .875rem); color: var(--rb-color-muted, #5b6472); }
.rb-tcard .rb-stars { font-size: 16px; }
@media (max-width: 1024px) { :where(.rb-testimonial-carousel) { --rb-per-view: 2; } }
@media (max-width: 767px) { :where(.rb-testimonial-carousel) { --rb-per-view: 1; } }

/* Índice (TOC) ------------------------------------------------------------------ */
.rb-toc { border: 1px solid var(--rb-color-border, #e5e7eb); border-radius: var(--rb-radius-md, 8px); padding: 16px 20px; background: var(--rb-color-background, #fff); }
.rb-toc__title { font-weight: 700; font-size: var(--rb-fs-lg, 1.1rem); cursor: default; }
details.rb-toc > .rb-toc__title { cursor: pointer; }
.rb-toc__nav { margin-top: 10px; }
.rb-toc__nav ol, .rb-toc__nav ul { margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 4px; }
.rb-toc__nav ol ol, .rb-toc__nav ul ul { margin-top: 4px; }
.rb-toc__nav[data-marker="none"] ul { list-style: none; padding-left: .9em; }
.rb-toc__nav a { text-decoration: none; }
.rb-toc__nav a:hover, .rb-toc__nav a.is-active { text-decoration: underline; }

/* Formulário de busca --------------------------------------------------------- */
.rb-search-form { display: flex; width: 100%; max-width: 100%; }
.rb-search__input { flex: 1; min-width: 0; padding: .75em 1em; font: inherit; color: inherit; background: var(--rb-color-background, #fff); border: 1px solid var(--rb-color-border, #d1d5db); border-right: 0; border-radius: var(--rb-radius-sm, 6px) 0 0 var(--rb-radius-sm, 6px); }
.rb-search__btn { display: inline-flex; align-items: center; justify-content: center; gap: .4em; padding: 0 1.2em; border: 0; cursor: pointer; font: inherit; font-weight: 600; background: var(--rb-color-primary, #1d4ed8); color: #fff; border-radius: 0 var(--rb-radius-sm, 6px) var(--rb-radius-sm, 6px) 0; }
.rb-search__btn:hover { background: var(--rb-color-secondary, #0f172a); }

/* Posts: extras ----------------------------------------------------------------- */
.rb-post__thumb { display: block; overflow: hidden; border-radius: var(--rb-radius-md, 8px); }
.rb-post__thumb img { transition: transform .4s ease; }
.rb-post:hover .rb-post__thumb img { transform: scale(1.04); }
.rb-post__excerpt { color: var(--rb-color-muted, #5b6472); }
.rb-post__more { display: inline-flex; align-items: center; gap: .35em; font-weight: 600; text-decoration: none; }
.rb-posts__empty { color: var(--rb-color-muted, #5b6472); }
@media (max-width: 1024px) { .rb-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .rb-posts { grid-template-columns: 1fr; } }

/* Menu: indicador ----------------------------------------------------------------- */
.rb-menu--pointer-underline .rb-menu__list > li > a { position: relative; }
.rb-menu--pointer-underline .rb-menu__list > li > a::after { content: ""; position: absolute; left: .2em; right: .2em; bottom: 0; height: 2px; background: currentColor; transform: scaleX(0); transition: transform .2s ease; }
.rb-menu--pointer-underline .rb-menu__list > li > a:hover::after,
.rb-menu--pointer-underline .rb-menu__list > .current-menu-item > a::after { transform: scaleX(1); }
.rb-menu--pointer-background .rb-menu__list > li > a { padding: .45em .9em; border-radius: var(--rb-radius-sm, 6px); }
.rb-menu--pointer-background .rb-menu__list > li > a:hover,
.rb-menu--pointer-background .rb-menu__list > .current-menu-item > a { background: var(--rb-color-primary, #1d4ed8); color: #fff; }

/* Animações de entrada ------------------------------------------------------------ */
.rb-js .rb-anim:not(.is-animated) { opacity: 0; }
.rb-anim.is-animated { animation-duration: .8s; animation-fill-mode: both; animation-timing-function: cubic-bezier(.2,.7,.3,1); }
.rb-anim.is-animated[data-rb-anim-speed="fast"] { animation-duration: .45s; }
.rb-anim.is-animated[data-rb-anim-speed="slow"] { animation-duration: 1.4s; }
.rb-anim.is-animated[data-rb-anim="fadeIn"] { animation-name: rb-fadeIn; }
.rb-anim.is-animated[data-rb-anim="fadeInUp"] { animation-name: rb-fadeInUp; }
.rb-anim.is-animated[data-rb-anim="fadeInDown"] { animation-name: rb-fadeInDown; }
.rb-anim.is-animated[data-rb-anim="fadeInLeft"] { animation-name: rb-fadeInLeft; }
.rb-anim.is-animated[data-rb-anim="fadeInRight"] { animation-name: rb-fadeInRight; }
.rb-anim.is-animated[data-rb-anim="zoomIn"] { animation-name: rb-zoomIn; }
.rb-anim.is-animated[data-rb-anim="zoomOut"] { animation-name: rb-zoomOut; }
.rb-anim.is-animated[data-rb-anim="slideInUp"] { animation-name: rb-slideInUp; }
.rb-anim.is-animated[data-rb-anim="slideInDown"] { animation-name: rb-slideInDown; }
.rb-anim.is-animated[data-rb-anim="slideInLeft"] { animation-name: rb-slideInLeft; }
.rb-anim.is-animated[data-rb-anim="slideInRight"] { animation-name: rb-slideInRight; }
.rb-anim.is-animated[data-rb-anim="bounceIn"] { animation-name: rb-bounceIn; }
.rb-anim.is-animated[data-rb-anim="flipInX"] { animation-name: rb-flipInX; }
.rb-anim.is-animated[data-rb-anim="flipInY"] { animation-name: rb-flipInY; }
.rb-anim.is-animated[data-rb-anim="rotateIn"] { animation-name: rb-rotateIn; }
.rb-anim.is-animated[data-rb-anim="blurIn"] { animation-name: rb-blurIn; }
@keyframes rb-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes rb-fadeInUp { from { opacity: 0; transform: translate3d(0, 40px, 0); } to { opacity: 1; transform: none; } }
@keyframes rb-fadeInDown { from { opacity: 0; transform: translate3d(0, -40px, 0); } to { opacity: 1; transform: none; } }
@keyframes rb-fadeInLeft { from { opacity: 0; transform: translate3d(-40px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes rb-fadeInRight { from { opacity: 0; transform: translate3d(40px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes rb-zoomIn { from { opacity: 0; transform: scale(.85); } to { opacity: 1; transform: none; } }
@keyframes rb-zoomOut { from { opacity: 0; transform: scale(1.15); } to { opacity: 1; transform: none; } }
@keyframes rb-slideInUp { from { transform: translate3d(0, 100%, 0); } to { transform: none; } }
@keyframes rb-slideInDown { from { transform: translate3d(0, -100%, 0); } to { transform: none; } }
@keyframes rb-slideInLeft { from { transform: translate3d(-100%, 0, 0); } to { transform: none; } }
@keyframes rb-slideInRight { from { transform: translate3d(100%, 0, 0); } to { transform: none; } }
@keyframes rb-bounceIn { 0% { opacity: 0; transform: scale(.4); } 55% { opacity: 1; transform: scale(1.06); } 75% { transform: scale(.97); } to { transform: none; } }
@keyframes rb-flipInX { from { opacity: 0; transform: perspective(500px) rotateX(70deg); } to { opacity: 1; transform: none; } }
@keyframes rb-flipInY { from { opacity: 0; transform: perspective(500px) rotateY(70deg); } to { opacity: 1; transform: none; } }
@keyframes rb-rotateIn { from { opacity: 0; transform: rotate(-12deg) scale(.95); } to { opacity: 1; transform: none; } }
@keyframes rb-blurIn { from { opacity: 0; filter: blur(12px); } to { opacity: 1; filter: none; } }

/* Movimento reduzido: sem animações decorativas, conteúdo sempre visível. */
@media (prefers-reduced-motion: reduce) {
	.rb-js .rb-anim:not(.is-animated) { opacity: 1; }
	.rb-anim.is-animated { animation: none !important; }
	.rb-hover-pulse:hover, .rb-hover-shine:hover::after, .rb-ah--typing .rb-ah__dynamic::after, .rb-ah--clip .rb-ah__word.is-visible { animation: none !important; }
	.rb-flip__inner, .rb-flip__back, .rb-progress__bar, .rb-gallery__item img, .rb-cta__bg img, .rb-imgbox__img img, .rb-post__thumb img, .rb-iconwrap, .rb-carousel__track { transition: none !important; scroll-behavior: auto; }
	.rb-js .rb-progress__bar[data-rb-progress]:not(.is-done) { width: auto !important; }
	.rb-js .rb-ah__shape path { stroke-dashoffset: 0; transition: none; }
}

/* Responsivo base ------------------------------------------------------------- */
@media (max-width: 767px) {
	.rb-ibox--left, .rb-ibox--right, .rb-imgbox--left, .rb-imgbox--right { flex-direction: column; align-items: var(--rb-align, center); text-align: center; }
	.rb-imgbox--left .rb-imgbox__img, .rb-imgbox--right .rb-imgbox__img { width: 100%; }
	.rb-price__amount { font-size: 2.8rem; }
	.rb-cd__item { min-width: 70px; }
	.rb-cd__digits { font-size: 2rem; }
}
