/* Theme mode foundation. Components consume semantic variables instead of hard-coded mode colors. */
:root {
    --paa-theme-bg: var(--paa-background-color);
    --paa-theme-bg-secondary: #f1f5f9;
    --paa-theme-bg-card: var(--paa-surface-color);
    --paa-theme-text: var(--paa-text-color);
    --paa-theme-text-secondary: var(--paa-muted-color);
    --paa-theme-border: var(--paa-border-color);
    --paa-theme-primary: var(--paa-primary-color);
    --paa-theme-focus: var(--paa-primary-color);
    --paa-theme-primary-hover: #1d4ed8;
    --paa-theme-input-bg: var(--paa-surface-color);
    --paa-theme-input-border: var(--paa-border-color);
    --paa-theme-header-bg: var(--paa-surface-color);
    --paa-theme-footer-bg: var(--paa-secondary-color);
    --paa-theme-shadow: var(--paa-shadow-md);
}

[data-theme="dark"] {
    --paa-theme-bg: #111827;
    --paa-theme-bg-secondary: #1f2937;
    --paa-theme-bg-card: #182230;
    --paa-theme-text: #f9fafb;
    --paa-theme-text-secondary: #cbd5e1;
    --paa-theme-border: #374151;
    --paa-theme-primary: #60a5fa;
    --paa-theme-primary-hover: #93c5fd;
    --paa-theme-input-bg: #1f2937;
    --paa-theme-input-border: #4b5563;
    --paa-theme-header-bg: #111827;
    --paa-theme-footer-bg: #030712;
    --paa-theme-shadow: 0 4px 20px rgba(0, 0, 0, .35);
}

html[data-theme="light"],
html[data-theme="dark"] {
    color-scheme: light;
    background-color: var(--paa-theme-bg);
}

html[data-theme="dark"] {
    color-scheme: dark;
}

body {
    background-color: var(--paa-theme-bg);
    color: var(--paa-theme-text);
}

@media (prefers-reduced-motion: no-preference) {
    body,
    button,
    input,
    select,
    textarea {
        transition: background-color .2s ease, color .2s ease, border-color .2s ease;
    }
}

@media (prefers-reduced-motion: reduce) {
    body,
    button,
    input,
    select,
    textarea {
        transition: none;
    }
}

/* Accessible light/dark mode toggle. */
.paa-theme-toggle {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-width: 5.25rem;
    min-height: 2.75rem;
    padding: .35rem .5rem;
    border: 1px solid var(--paa-theme-border);
    border-radius: 999px;
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-text);
    cursor: pointer;
    line-height: 1;
    font: inherit;
}

.paa-theme-toggle__track {
    position: relative;
    display: inline-block;
    width: 2.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--paa-theme-border);
}

.paa-theme-toggle__thumb {
    position: absolute;
    top: .125rem;
    left: .125rem;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: var(--paa-theme-text);
    transform: translateX(0);
    transition: transform .2s ease;
}

.paa-theme-toggle[data-theme-state="dark"] .paa-theme-toggle__thumb {
    transform: translateX(1rem);
}

.paa-theme-toggle__icon {
    display: inline-flex;
    width: 1rem;
    justify-content: center;
    font-size: 1rem;
}

.paa-theme-toggle:focus-visible {
    outline: 3px solid var(--paa-theme-primary);
    outline-offset: 3px;
}

.paa-theme-toggle:hover {
    border-color: var(--paa-theme-primary);
}

/* Respect the administrator's device visibility choices. */
@media (min-width: 1025px) {
    .paa-theme-toggle--hide-desktop { display: none !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .paa-theme-toggle--hide-tablet { display: none !important; }
}

@media (max-width: 767px) {
    .paa-theme-toggle--hide-mobile { display: none !important; }
}

@media (max-width: 767px) {
    .paa-theme-toggle {
        min-width: 2.75rem;
        width: 2.75rem;
        padding: .35rem;
    }

    .paa-theme-toggle__track,
    .paa-theme-toggle__icon--light,
    .paa-theme-toggle__icon--dark {
        display: none;
    }

    .paa-theme-toggle::before {
        content: '☀';
        font-size: 1.05rem;
    }

    .paa-theme-toggle[data-theme-state="dark"]::before {
        content: '☾';
    }
}

@media (prefers-reduced-motion: reduce) {
    .paa-theme-toggle__thumb {
        transition: none;
    }
}

/* Accessibility refinements: keep the native button interaction model and
 * ensure the control remains identifiable at high zoom. */
.paa-theme-toggle:disabled,
.paa-theme-toggle[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: .65;
}

@media (min-width: 768px) {
    .paa-theme-toggle {
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .paa-theme-toggle,
    .paa-theme-toggle__thumb {
        transition: none !important;
    }
}

/* ======================================================================
 * Header + navigation theme integration.
 * Scoped overrides intentionally avoid changing Elementor widget-specific
 * colors configured by the editor.
 * ====================================================================== */
.paa-site-header {
    background: var(--paa-theme-header-bg);
    border-bottom-color: var(--paa-theme-border);
    box-shadow: var(--paa-theme-shadow);
}

.paa-brand {
    color: var(--paa-theme-text);
}

.paa-brand-text strong,
.paa-brand-text b {
    color: var(--paa-theme-text);
}

.paa-brand-text b {
    color: var(--paa-theme-primary);
}

.paa-brand-text small {
    color: var(--paa-theme-text-secondary);
}

.paa-header-search {
    background: var(--paa-theme-input-bg);
    border-color: var(--paa-theme-primary);
}

.paa-header-search input {
    background: var(--paa-theme-input-bg);
    color: var(--paa-theme-text);
}

.paa-header-search input::placeholder {
    color: var(--paa-theme-text-secondary);
    opacity: 1;
}

.paa-header-search button {
    background: var(--paa-theme-input-bg);
    color: var(--paa-theme-text-secondary);
}

.paa-header-search input:focus-visible,
.paa-header-search button:focus-visible {
    outline: 2px solid var(--paa-theme-primary);
    outline-offset: -2px;
}

.paa-header-nav a,
.paa-mobile-menu a {
    color: var(--paa-theme-text);
}

.paa-header-nav a:hover,
.paa-header-nav a:focus-visible,
.paa-mobile-menu a:hover,
.paa-mobile-menu a:focus-visible {
    color: var(--paa-theme-primary);
}

.paa-header-actions > a:not(.paa-publish) {
    color: var(--paa-theme-text);
}

.paa-header-actions > a:not(.paa-publish):hover,
.paa-header-actions > a:not(.paa-publish):focus-visible {
    color: var(--paa-theme-primary);
}

.paa-publish {
    background: var(--paa-theme-primary);
}

.paa-publish:hover,
.paa-publish:focus-visible {
    background: var(--paa-theme-primary-hover);
}

.paa-mobile-menu {
    background: var(--paa-theme-header-bg);
    border-top-color: var(--paa-theme-border);
}

/* Elementor-editable header wrappers. These selectors only theme the
 * container surfaces; explicit widget colors remain under Elementor control. */
.paa-elementor-home-header,
.paa-elementor-home-header-v2,
.elementor-element[data-id="home01hdr"].paa-elementor-home-header-v3,
.elementor-element[data-id="home01hdr"].paa-home-container--header {
    background: var(--paa-theme-header-bg) !important;
    border-bottom-color: var(--paa-theme-border) !important;
    box-shadow: var(--paa-theme-shadow) !important;
}

.paa-elementor-header-search,
.paa-elementor-core-search {
    background: var(--paa-theme-input-bg);
    border-color: var(--paa-theme-primary);
}

.paa-elementor-header-search input,
.paa-elementor-core-search input {
    background: var(--paa-theme-input-bg);
    color: var(--paa-theme-text);
}

.paa-elementor-header-search input::placeholder,
.paa-elementor-core-search input::placeholder {
    color: var(--paa-theme-text-secondary);
    opacity: 1;
}

/* Only theme the known header helper controls. Elementor button widgets
 * retain their editor-defined colors unless they use the theme helper class. */
.paa-elementor-header-navigation a {
    color: var(--paa-theme-text);
}

.paa-elementor-header-navigation a:hover,
.paa-elementor-header-navigation a:focus-visible {
    color: var(--paa-theme-primary);
}

.paa-elementor-header-publish {
    background: var(--paa-theme-primary);
    color: #fff;
}

.paa-elementor-header-publish:hover,
.paa-elementor-header-publish:focus-visible {
    background: var(--paa-theme-primary-hover);
}

/* The existing home header uses explicit Elementor IDs and !important for
 * layout. Only visual surface colors are overridden here. */
.elementor-element[data-id="home01hdr"] .paa-elementor-header-search input,
.elementor-element[data-id="home01hdr"] .paa-elementor-header-search button {
    background: var(--paa-theme-input-bg);
    color: var(--paa-theme-text);
}

.elementor-element[data-id="home01hdr"] .paa-elementor-header-search {
    border-color: var(--paa-theme-primary) !important;
}

.elementor-element[data-id="home01hdr"] .paa-elementor-header-publish {
    background: var(--paa-theme-primary) !important;
}

.elementor-element[data-id="home01hdr"] .paa-elementor-header-publish:hover,
.elementor-element[data-id="home01hdr"] .paa-elementor-header-publish:focus-visible {
    background: var(--paa-theme-primary-hover) !important;
}

@media (prefers-reduced-motion: reduce) {
    .paa-site-header,
    .paa-header-search,
    .paa-mobile-menu,
    .paa-elementor-home-header,
    .paa-elementor-home-header-v2,
    .paa-elementor-header-search,
    .paa-elementor-header-publish {
        transition: none;
    }
}

/* ======================================================================
 * Home, categories, shelves, carousels and promotional surfaces.
 * Presentation-only integration: business data remains owned by the plugin.
 * ====================================================================== */
.paa-hero,
.paa-section,
.paa-shelf,
.paa-ad-strip,
.paa-promo-row,
.paa-deal-row,
.paa-publicidade,
.paa-category-strip {
    background-color: var(--paa-theme-bg);
    color: var(--paa-theme-text);
}

.paa-section--muted {
    background-color: var(--paa-theme-bg-secondary);
}

.paa-hero {
    background:
        radial-gradient(circle at 85% 15%, rgba(96, 165, 250, .12), transparent 32%),
        linear-gradient(180deg, var(--paa-theme-bg-card) 0%, var(--paa-theme-bg) 100%);
}

.paa-search {
    background: var(--paa-theme-bg-card);
    border-color: var(--paa-theme-border);
    box-shadow: var(--paa-theme-shadow);
}

.paa-search input {
    color: var(--paa-theme-text);
}

.paa-search input::placeholder {
    color: var(--paa-theme-text-secondary);
}

.paa-section__heading h2,
.paa-shelf__title h2,
.paa-product-card h3,
.paa-product-card h3 a {
    color: var(--paa-theme-text);
}

.paa-section__eyebrow,
.paa-view-all {
    color: var(--paa-theme-primary);
}

.paa-shelf,
.paa-category-strip {
    border-bottom-color: var(--paa-theme-border);
}

.paa-product-card,
.paa-card,
.paa-empty-state {
    background: var(--paa-theme-bg-card);
    border-color: var(--paa-theme-border);
}

.paa-product-card__image,
.paa-ad-card__media {
    background: var(--paa-theme-bg-secondary);
}

.paa-product-card__prices strong {
    color: var(--paa-theme-text);
}

.paa-product-card__prices del,
.paa-product-card small,
.paa-product-card__meta span,
.paa-shelf__title p {
    color: var(--paa-theme-text-secondary);
}

.paa-product-card__favorite {
    background: color-mix(in srgb, var(--paa-theme-bg-card) 90%, transparent);
    color: var(--paa-theme-text-secondary);
    border: 1px solid var(--paa-theme-border);
}

.paa-market-category {
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-text) !important;
    border-color: transparent;
}

.paa-market-category:hover {
    background: var(--paa-theme-bg-secondary);
    border-color: var(--paa-theme-border);
    color: var(--paa-theme-primary) !important;
}

.paa-market-category__image {
    background: color-mix(in srgb, var(--paa-theme-primary) 12%, var(--paa-theme-bg-card));
}

.paa-market-category:nth-child(3n) .paa-market-category__image,
.paa-market-category:nth-child(4n) .paa-market-category__image {
    background: color-mix(in srgb, var(--paa-theme-primary) 10%, var(--paa-theme-bg-secondary));
}

.paa-market-category-arrow,
.paa-category-carousel-control {
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-text);
    border-color: var(--paa-theme-border);
    box-shadow: var(--paa-theme-shadow);
}

.paa-market-category-arrow:hover,
.paa-category-carousel-control:hover {
    background: var(--paa-theme-primary) !important;
    border-color: var(--paa-theme-primary) !important;
    color: #fff !important;
}

.paa-ad-placeholder {
    background: var(--paa-theme-bg-card);
    border-color: var(--paa-theme-border);
    color: var(--paa-theme-text);
}

.paa-home-data-empty {
    color: var(--paa-theme-text-secondary);
    border-color: var(--paa-theme-border);
}

.paa-hero-banner {
    background: var(--paa-theme-bg-secondary);
}

.paa-hero-banner--primary,
.paa-hero-banner--repeat {
    background: var(--paa-theme-bg-secondary);
}

/* Keep deliberately branded promotional gradients intact while adapting
 * their surrounding surfaces and controls to the selected theme. */
.paa-publicidade-grid b {
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-primary);
}

@media (prefers-reduced-motion: reduce) {
    .paa-products,
    .paa-product-card__image img,
    .paa-market-category,
    .paa-market-category-arrow,
    .paa-category-carousel-control {
        scroll-behavior: auto;
        transition: none !important;
    }
}

/* ======================================================================
 * Reusable component system — light/dark theme integration.
 * Presentation only. Components keep their existing markup and behavior.
 * ====================================================================== */
.paa-button {
    background: var(--paa-theme-primary);
    color: #fff;
    border-color: var(--paa-theme-primary);
}

.paa-button:hover,
.paa-button:focus-visible {
    background: var(--paa-theme-primary-hover);
    border-color: var(--paa-theme-primary-hover);
    color: #fff;
}

.paa-button:focus-visible,
.paa-header-action:focus-visible,
.paa-menu-toggle:focus-visible,
.paa-product-card__favorite:focus-visible,
.paa-view-all:focus-visible {
    outline: 3px solid var(--paa-theme-primary);
    outline-offset: 2px;
}

.paa-button:disabled,
.paa-button[aria-disabled="true"] {
    background: var(--paa-theme-bg-secondary);
    border-color: var(--paa-theme-border);
    color: var(--paa-theme-text-secondary);
    opacity: .7;
    cursor: not-allowed;
}

.paa-card,
.paa-ad-card,
.paa-product-card,
.paa-empty-state {
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-text);
    border-color: var(--paa-theme-border);
    box-shadow: var(--paa-theme-shadow);
}

.paa-ad-card h3,
.paa-ad-card h3 a,
.paa-empty-state h2,
.paa-empty-state h3 {
    color: var(--paa-theme-text);
}

.paa-ad-card p,
.paa-ad-card__meta,
.paa-empty-state p,
.paa-empty-state small {
    color: var(--paa-theme-text-secondary);
}

.paa-ad-card__media,
.paa-product-card__image {
    background: var(--paa-theme-bg-secondary);
    color: var(--paa-theme-text-secondary);
}

.paa-ad-placeholder {
    color: var(--paa-theme-text-secondary);
}

.paa-badge {
    background: var(--paa-theme-bg-secondary);
    color: var(--paa-theme-text-secondary);
    border: 1px solid var(--paa-theme-border);
}

.paa-status-success { color: var(--paa-success-color); }
.paa-status-warning { color: var(--paa-warning-color); }
.paa-status-danger { color: var(--paa-danger-color); }

.paa-header-action,
.paa-menu-toggle {
    background: var(--paa-theme-bg-card);
    border-color: var(--paa-theme-border);
    color: var(--paa-theme-text);
}

.paa-header-action:hover,
.paa-menu-toggle:hover {
    background: var(--paa-theme-bg-secondary);
    border-color: var(--paa-theme-primary);
    color: var(--paa-theme-primary);
}

.paa-view-all {
    color: var(--paa-theme-primary);
}

.paa-view-all:hover,
.paa-view-all:focus-visible {
    color: var(--paa-theme-primary-hover);
}

.paa-link-disabled {
    color: var(--paa-theme-text-secondary);
}

/* Preserve explicit success/warning/danger semantics while giving badges a
 * readable surface in both themes. */
.paa-badge--success {
    background: color-mix(in srgb, var(--paa-success-color) 12%, var(--paa-theme-bg-card));
    color: var(--paa-success-color);
}

.paa-badge--warning {
    background: color-mix(in srgb, var(--paa-warning-color) 12%, var(--paa-theme-bg-card));
    color: var(--paa-warning-color);
}

.paa-badge--danger {
    background: color-mix(in srgb, var(--paa-danger-color) 12%, var(--paa-theme-bg-card));
    color: var(--paa-danger-color);
}

.paa-product-card__favorite:hover,
.paa-product-card__favorite:focus-visible {
    background: var(--paa-theme-primary);
    border-color: var(--paa-theme-primary);
    color: #fff;
}

.paa-product-card__prices strong {
    color: var(--paa-theme-text);
}

.paa-product-card__prices del,
.paa-product-card small,
.paa-product-card__meta span {
    color: var(--paa-theme-text-secondary);
}

.paa-cta__inner {
    background: var(--paa-secondary-color);
}

.paa-cta p {
    color: var(--paa-theme-text-secondary);
}

@media (prefers-reduced-motion: reduce) {
    .paa-button,
    .paa-card,
    .paa-ad-card,
    .paa-product-card,
    .paa-header-action,
    .paa-menu-toggle,
    .paa-product-card__favorite {
        transition: none !important;
    }
}

/* ======================================================================
 * ETAPA 9 — Forms, native dialogs/overlays, dropdowns and notifications.
 * Presentation-only rules. No form submission or business logic is handled.
 * ====================================================================== */

.paa-form,
.paa-form-field,
.paa-form-group {
    color: var(--paa-theme-text);
}

.paa-form label,
.paa-form-field label,
.paa-form-group label {
    color: var(--paa-theme-text);
}

.paa-form input:not([type="checkbox"]):not([type="radio"]),
.paa-form textarea,
.paa-form select,
.paa-form-field input:not([type="checkbox"]):not([type="radio"]),
.paa-form-field textarea,
.paa-form-field select,
.paa-form-group input:not([type="checkbox"]):not([type="radio"]),
.paa-form-group textarea,
.paa-form-group select {
    background-color: var(--paa-theme-input-bg);
    color: var(--paa-theme-text);
    border-color: var(--paa-theme-input-border);
}

.paa-form input::placeholder,
.paa-form textarea::placeholder,
.paa-form-field input::placeholder,
.paa-form-field textarea::placeholder,
.paa-form-group input::placeholder,
.paa-form-group textarea::placeholder {
    color: var(--paa-theme-text-secondary);
    opacity: 1;
}

.paa-form input:not([type="checkbox"]):not([type="radio"]):hover,
.paa-form textarea:hover,
.paa-form select:hover,
.paa-form-field input:not([type="checkbox"]):not([type="radio"]):hover,
.paa-form-field textarea:hover,
.paa-form-field select:hover,
.paa-form-group input:not([type="checkbox"]):not([type="radio"]):hover,
.paa-form-group textarea:hover,
.paa-form-group select:hover {
    border-color: var(--paa-theme-primary);
}

.paa-form input:not([type="checkbox"]):not([type="radio"]):focus,
.paa-form textarea:focus,
.paa-form select:focus,
.paa-form-field input:not([type="checkbox"]):not([type="radio"]):focus,
.paa-form-field textarea:focus,
.paa-form-field select:focus,
.paa-form-group input:not([type="checkbox"]):not([type="radio"]):focus,
.paa-form-group textarea:focus,
.paa-form-group select:focus {
    border-color: var(--paa-theme-primary);
    outline: 2px solid color-mix(in srgb, var(--paa-theme-primary) 35%, transparent);
    outline-offset: 1px;
}

.paa-form input:disabled,
.paa-form textarea:disabled,
.paa-form select:disabled,
.paa-form-field input:disabled,
.paa-form-field textarea:disabled,
.paa-form-field select:disabled,
.paa-form-group input:disabled,
.paa-form-group textarea:disabled,
.paa-form-group select:disabled {
    background-color: var(--paa-theme-bg-secondary);
    color: var(--paa-theme-text-secondary);
    border-color: var(--paa-theme-border);
    cursor: not-allowed;
}

.paa-form input[type="checkbox"],
.paa-form input[type="radio"],
.paa-form-field input[type="checkbox"],
.paa-form-field input[type="radio"],
.paa-form-group input[type="checkbox"],
.paa-form-group input[type="radio"] {
    accent-color: var(--paa-theme-primary);
}

.paa-form input[aria-invalid="true"],
.paa-form textarea[aria-invalid="true"],
.paa-form select[aria-invalid="true"],
.paa-form-field input[aria-invalid="true"],
.paa-form-field textarea[aria-invalid="true"],
.paa-form-field select[aria-invalid="true"],
.paa-form-group input[aria-invalid="true"],
.paa-form-group textarea[aria-invalid="true"],
.paa-form-group select[aria-invalid="true"] {
    border-color: var(--paa-danger-color);
}

.paa-form .paa-form-error,
.paa-form-field .paa-form-error,
.paa-form-group .paa-form-error {
    color: var(--paa-danger-color);
}

.paa-form .paa-form-success,
.paa-form-field .paa-form-success,
.paa-form-group .paa-form-success {
    color: var(--paa-success-color);
}

.paa-form .paa-form-help,
.paa-form-field .paa-form-help,
.paa-form-group .paa-form-help {
    color: var(--paa-theme-text-secondary);
}

/* Native HTML dialog and theme helper modal classes, when supplied by an
 * existing component/plugin. These rules do not create modal behavior. */
dialog,
.paa-modal,
.paa-dialog {
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-text);
    border-color: var(--paa-theme-border);
    box-shadow: var(--paa-theme-shadow);
}

dialog::backdrop,
.paa-modal__overlay,
.paa-modal-overlay,
.paa-overlay {
    background: rgba(0, 0, 0, .55);
}

.paa-modal__title,
.paa-modal__content,
.paa-dialog__title,
.paa-dialog__content {
    color: var(--paa-theme-text);
}

.paa-modal__close,
.paa-dialog__close {
    color: var(--paa-theme-text);
    background: var(--paa-theme-bg-secondary);
    border-color: var(--paa-theme-border);
}

.paa-modal__close:hover,
.paa-modal__close:focus-visible,
.paa-dialog__close:hover,
.paa-dialog__close:focus-visible {
    color: var(--paa-theme-primary);
    border-color: var(--paa-theme-primary);
}

/* Common dropdown surfaces. Behavior/open state remains owned by the
 * existing navigation/component JavaScript or future plugin. */
.paa-dropdown,
.paa-dropdown-menu,
.paa-menu-dropdown,
.paa-select-menu {
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-text);
    border-color: var(--paa-theme-border);
    box-shadow: var(--paa-theme-shadow);
}

.paa-dropdown a,
.paa-dropdown-menu a,
.paa-menu-dropdown a,
.paa-select-menu a,
.paa-dropdown button,
.paa-dropdown-menu button,
.paa-menu-dropdown button,
.paa-select-menu button {
    color: var(--paa-theme-text);
}

.paa-dropdown a:hover,
.paa-dropdown a:focus-visible,
.paa-dropdown-menu a:hover,
.paa-dropdown-menu a:focus-visible,
.paa-menu-dropdown a:hover,
.paa-menu-dropdown a:focus-visible,
.paa-select-menu a:hover,
.paa-select-menu a:focus-visible,
.paa-dropdown button:hover,
.paa-dropdown button:focus-visible,
.paa-dropdown-menu button:hover,
.paa-dropdown-menu button:focus-visible,
.paa-menu-dropdown button:hover,
.paa-menu-dropdown button:focus-visible,
.paa-select-menu button:hover,
.paa-select-menu button:focus-visible {
    background: var(--paa-theme-bg-secondary);
    color: var(--paa-theme-primary);
}

/* Generic feedback surfaces, only when these semantic helper classes exist. */
.paa-notice,
.paa-alert,
.paa-notification {
    background: var(--paa-theme-bg-card);
    color: var(--paa-theme-text);
    border-color: var(--paa-theme-border);
}

.paa-notice--success,
.paa-alert--success,
.paa-notification--success {
    border-color: var(--paa-success-color);
}

.paa-notice--warning,
.paa-alert--warning,
.paa-notification--warning {
    border-color: var(--paa-warning-color);
}

.paa-notice--error,
.paa-alert--error,
.paa-notification--error {
    border-color: var(--paa-danger-color);
}

@media (prefers-reduced-motion: reduce) {
    dialog,
    .paa-modal,
    .paa-dialog,
    .paa-dropdown,
    .paa-dropdown-menu,
    .paa-menu-dropdown,
    .paa-select-menu,
    .paa-notice,
    .paa-alert,
    .paa-notification {
        transition: none !important;
    }
}

/* ======================================================================
 * ETAPA 11 — Acessibilidade do sistema Claro/Escuro
 * Presentation/accessibility only. No business logic.
 * ====================================================================== */

/* Keep the document background stable while the preference is applied. */
html[data-theme="light"],
html[data-theme="light"] body {
    background-color: var(--paa-theme-bg);
    color: var(--paa-theme-text);
}

html[data-theme="dark"],
html[data-theme="dark"] body {
    background-color: var(--paa-theme-bg);
    color: var(--paa-theme-text);
}

/* A visible keyboard focus indicator is required for every interactive
 * control that participates in the theme UI. */
:where(
    a,
    button,
    input,
    select,
    textarea,
    summary,
    [role="button"],
    [tabindex]:not([tabindex="-1"])
):focus-visible {
    outline: 3px solid var(--paa-theme-focus, var(--paa-primary-color));
    outline-offset: 3px;
}

/* Never remove the native focus indication for keyboard users. */
:where(
    a,
    button,
    input,
    select,
    textarea,
    summary,
    [role="button"]
):focus:not(:focus-visible) {
    outline: none;
}

/* Theme toggle: sufficiently large target and readable state. */
[data-theme-toggle] {
    min-width: 44px;
    min-height: 44px;
}

[data-theme-toggle][aria-pressed="true"],
[data-theme-toggle][data-theme-state="dark"] {
    color: var(--paa-theme-primary);
}

[data-theme-toggle]:disabled,
[data-theme-toggle][aria-disabled="true"] {
    opacity: .6;
    cursor: not-allowed;
}

/* Respect reduced-motion preferences for the complete theme surface,
 * including transitions added by Elementor or component layers. */
@media (prefers-reduced-motion: reduce) {
    html,
    html * {
        scroll-behavior: auto !important;
    }

    html[data-theme] body,
    html[data-theme] body *,
    html[data-theme] body *::before,
    html[data-theme] body *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* High-contrast readiness. This hook can be activated by a future setting
 * without changing component markup or business logic. */
html[data-theme-contrast="high"] {
    --paa-theme-border: #111827;
    --paa-theme-text-secondary: #334155;
}

html[data-theme="dark"][data-theme-contrast="high"] {
    --paa-theme-border: #f8fafc;
    --paa-theme-text-secondary: #e2e8f0;
}

/* Native forced-colors mode should preserve semantics instead of relying on
 * decorative color values. */
@media (forced-colors: active) {
    [data-theme-toggle],
    .paa-button,
    .paa-header-action,
    .paa-menu-toggle,
    .paa-product-card__favorite,
    .paa-view-all,
    .paa-modal__close,
    .paa-dialog__close {
        forced-color-adjust: auto;
        border: 1px solid ButtonText;
    }

    :where(
        a,
        button,
        input,
        select,
        textarea,
        summary,
        [role="button"]
    ):focus-visible {
        outline: 3px solid Highlight;
    }
}

/* Disabled controls remain visually and semantically distinguishable in
 * both modes without relying on opacity alone. */
:where(
    button:disabled,
    input:disabled,
    select:disabled,
    textarea:disabled,
    [aria-disabled="true"]
) {
    cursor: not-allowed;
}

/* Form error/success states expose both border and text semantics. */
.paa-form-error,
.paa-form-success,
.paa-form-help {
    line-height: 1.5;
}

/* Prevent text from becoming unreadably small in compact responsive areas. */
.paa-form,
.paa-card,
.paa-ad-card,
.paa-product-card,
.paa-empty-state,
.paa-notice,
.paa-alert,
.paa-notification {
    overflow-wrap: anywhere;
}


/* Theme switcher placement and native navigation integration. */
.paa-builder-theme-switcher {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 8px 24px;
    background: var(--paa-surface-color, #fff);
    color: var(--paa-text-color, #172033);
    border-block: 1px solid var(--paa-border-color, #e2e8f0);
}
.paa-native-primary-nav {
    background: var(--paa-surface-color, #fff);
    border-top: 1px solid var(--paa-border-color, #e2e8f0);
}
.paa-primary-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin: 0;
    padding: 10px 0;
    list-style: none;
}
.paa-primary-menu a { color: var(--paa-text-color, #172033); text-decoration: none; }
.paa-mobile-toggle {
    display: none;
    min-width: 44px; min-height: 44px;
    margin: 8px 16px;
    border: 1px solid var(--paa-border-color, #e2e8f0);
    border-radius: 10px;
    background: var(--paa-surface-color, #fff);
    color: var(--paa-text-color, #172033);
}
.paa-mobile-menu {
    padding: 0 16px 12px;
    background: var(--paa-surface-color, #fff);
}
.paa-mobile-menu ul { margin: 0; padding: 0; list-style: none; }
.paa-mobile-menu a { display: block; padding: 12px; color: var(--paa-text-color, #172033); text-decoration: none; }
.paa-elementor-theme-switcher { display: inline-flex; align-items: center; }
[data-theme="dark"] .paa-builder-theme-switcher,
[data-theme="dark"] .paa-native-primary-nav,
[data-theme="dark"] .paa-mobile-menu {
    background: var(--paa-surface-color);
    color: var(--paa-text-color);
    border-color: var(--paa-border-color);
}
@media (max-width: 900px) {
    .paa-primary-menu { display: none; }
    .paa-mobile-toggle { display: inline-flex; align-items: center; justify-content: center; }
}


/* Elementor component coverage: keep specialized Home widgets on semantic theme colors. */
[data-theme="dark"] .paa-elementor-home-hero,
[data-theme="dark"] .paa-hero-banner,
[data-theme="dark"] .paa-elementor-home-shelf,
[data-theme="dark"] .paa-elementor-home-promo,
[data-theme="dark"] .paa-elementor-home-ad-carousel,
[data-theme="dark"] .paa-elementor-home-ad-slot,
[data-theme="dark"] .paa-elementor-home-footer,
[data-theme="dark"] .paa-featured-card,
[data-theme="dark"] .paa-trending-card,
[data-theme="dark"] .paa-nearby-card,
[data-theme="dark"] .paa-premium-card,
[data-theme="dark"] .paa-ads-card {
    color: var(--paa-theme-text);
}
[data-theme="dark"] .paa-featured-card,
[data-theme="dark"] .paa-trending-card,
[data-theme="dark"] .paa-nearby-card,
[data-theme="dark"] .paa-premium-card,
[data-theme="dark"] .paa-ads-card {
    background: var(--paa-theme-bg-card);
    border-color: var(--paa-theme-border);
    box-shadow: var(--paa-theme-shadow);
}
[data-theme="dark"] .paa-featured-card__content,
[data-theme="dark"] .paa-trending-card__content,
[data-theme="dark"] .paa-nearby-card__content,
[data-theme="dark"] .paa-premium-card__content,
[data-theme="dark"] .paa-ads-card__content,
[data-theme="dark"] .paa-featured-card__prices,
[data-theme="dark"] .paa-trending-card__prices,
[data-theme="dark"] .paa-premium-card__prices,
[data-theme="dark"] .paa-ads-card__prices {
    color: var(--paa-theme-text);
}
[data-theme="dark"] .paa-featured-card__shipping,
[data-theme="dark"] .paa-featured-card__sales,
[data-theme="dark"] .paa-trending-card__shipping,
[data-theme="dark"] .paa-trending-card__sales,
[data-theme="dark"] .paa-premium-card__shipping,
[data-theme="dark"] .paa-premium-card__sales,
[data-theme="dark"] .paa-ads-card__shipping,
[data-theme="dark"] .paa-ads-card__sales,
[data-theme="dark"] .paa-nearby-card__location {
    color: var(--paa-theme-text-secondary);
}
[data-theme="dark"] .paa-featured-header,
[data-theme="dark"] .paa-trending-header,
[data-theme="dark"] .paa-nearby-header,
[data-theme="dark"] .paa-premium-header,
[data-theme="dark"] .paa-ads-header,
[data-theme="dark"] .paa-shelf__header {
    color: var(--paa-theme-text);
}
[data-theme="dark"] .paa-elementor-home-ad-slot,
[data-theme="dark"] .paa-elementor-home-promo,
[data-theme="dark"] .paa-elementor-home-ad-carousel,
[data-theme="dark"] .paa-ad-slot--fallback,
[data-theme="dark"] .paa-ad-fallback-content {
    background: var(--paa-theme-bg-secondary);
    border-color: var(--paa-theme-border);
    color: var(--paa-theme-text-secondary);
}
.paa-elementor-menu-theme-switcher { display: inline-flex; align-items: center; margin-inline-start: 12px; }
.paa-elementor-header-profile-wrap { display: inline-flex; align-items: center; gap: 8px; }


/* ETAPA 2 — targeted dark-mode coverage for specialized Home/Elementor cards. */
html[data-theme="dark"] .paa-featured-card,
html[data-theme="dark"] .paa-ads-card,
html[data-theme="dark"] .paa-premium-card,
html[data-theme="dark"] .paa-nearby-card,
html[data-theme="dark"] .paa-trending-card,
html[data-theme="dark"] .paa-home-category-card,
html[data-theme="dark"] .paa-home-publicidade,
html[data-theme="dark"] .paa-home-ad-slot {
    color: var(--paa-text-color, #f8fafc);
    background: var(--paa-surface-color, #111827);
    border-color: var(--paa-border-color, #334155);
}
html[data-theme="dark"] .paa-featured-card p,
html[data-theme="dark"] .paa-ads-card p,
html[data-theme="dark"] .paa-premium-card p,
html[data-theme="dark"] .paa-nearby-card p,
html[data-theme="dark"] .paa-trending-card p,
html[data-theme="dark"] .paa-home-category-card p {
    color: var(--paa-muted-color, #cbd5e1);
}
html[data-theme="dark"] .paa-featured-card a,
html[data-theme="dark"] .paa-ads-card a,
html[data-theme="dark"] .paa-premium-card a,
html[data-theme="dark"] .paa-nearby-card a,
html[data-theme="dark"] .paa-trending-card a,
html[data-theme="dark"] .paa-home-category-card a {
    color: var(--paa-text-color, #f8fafc);
}
html[data-theme="dark"] .paa-featured-card .paa-price,
html[data-theme="dark"] .paa-ads-card .paa-price,
html[data-theme="dark"] .paa-premium-card .paa-price,
html[data-theme="dark"] .paa-nearby-card .paa-price,
html[data-theme="dark"] .paa-trending-card .paa-price {
    color: var(--paa-text-color, #f8fafc);
}
html[data-theme="dark"] .paa-featured-card img,
html[data-theme="dark"] .paa-ads-card img,
html[data-theme="dark"] .paa-premium-card img,
html[data-theme="dark"] .paa-nearby-card img,
html[data-theme="dark"] .paa-trending-card img,
html[data-theme="dark"] .paa-home-category-card img {
    filter: none;
}

/* Keep Elementor authoring controls outside the frontend theme surface. */
.elementor-editor-active html[data-theme="dark"] .elementor-panel,
.elementor-editor-active html[data-theme="dark"] #elementor-panel,
.elementor-editor-active html[data-theme="dark"] .elementor-control {
    color-scheme: light;
}


/* ETAPA 6 — Legacy marketplace surface normalization.
 * These selectors intentionally target known Space Anúncio components instead
 * of overriding Elementor globally. They close the remaining light-only
 * surfaces in the legacy Home CSS while preserving brand/CTA colors. */
html[data-theme="dark"] .paa-site-header,
html[data-theme="dark"] .paa-elementor-home-header,
html[data-theme="dark"] .paa-elementor-home-header-v2,
html[data-theme="dark"] .paa-category-strip,
html[data-theme="dark"] .paa-mobile-menu,
html[data-theme="dark"] .paa-listing-card,
html[data-theme="dark"] .paa-ad-placeholder,
html[data-theme="dark"] .paa-home-search {
    background: var(--paa-surface-color);
    color: var(--paa-text-color);
    border-color: var(--paa-border-color);
}

html[data-theme="dark"] .paa-header-search,
html[data-theme="dark"] .paa-elementor-core-search,
html[data-theme="dark"] .paa-elementor-header-search {
    background: var(--paa-surface-color);
    border-color: var(--paa-theme-border);
}

html[data-theme="dark"] .paa-header-search input,
html[data-theme="dark"] .paa-elementor-core-search input,
html[data-theme="dark"] .paa-elementor-header-search input,
html[data-theme="dark"] .paa-home-search input {
    background: transparent;
    color: var(--paa-text-color);
}

html[data-theme="dark"] .paa-header-search input::placeholder,
html[data-theme="dark"] .paa-elementor-core-search input::placeholder,
html[data-theme="dark"] .paa-elementor-header-search input::placeholder,
html[data-theme="dark"] .paa-home-search input::placeholder {
    color: var(--paa-muted-color);
    opacity: 1;
}

html[data-theme="dark"] .paa-header-search button,
html[data-theme="dark"] .paa-elementor-core-search button {
    background: var(--paa-surface-color);
    color: var(--paa-muted-color);
}

html[data-theme="dark"] .paa-brand,
html[data-theme="dark"] .paa-header-nav a,
html[data-theme="dark"] .paa-header-actions > a:not(.paa-publish),
html[data-theme="dark"] .paa-mobile-menu a,
html[data-theme="dark"] .paa-elementor-home-header .elementor-widget-button .elementor-button:not(:last-child) {
    color: var(--paa-text-color);
}

html[data-theme="dark"] .paa-market-category,
html[data-theme="dark"] .paa-category-card,
html[data-theme="dark"] .paa-listing-card,
html[data-theme="dark"] .paa-home-section--muted,
html[data-theme="dark"] .paa-home-container--trending {
    background: var(--paa-surface-color);
    color: var(--paa-text-color);
    border-color: var(--paa-border-color);
}

html[data-theme="dark"] .paa-category-card__icon,
html[data-theme="dark"] .paa-listing-card__media {
    background: var(--paa-theme-bg-secondary);
    color: var(--paa-theme-primary);
}

html[data-theme="dark"] .paa-listing-card p,
html[data-theme="dark"] .paa-category-card small,
html[data-theme="dark"] .paa-home-promo p {
    color: var(--paa-muted-color);
}

html[data-theme="dark"] .paa-home-promo {
    background: var(--paa-theme-bg-secondary);
    border-color: var(--paa-theme-border);
    color: var(--paa-text-color);
}

html[data-theme="dark"] .paa-ad-placeholder {
    background: var(--paa-surface-color);
    border-color: var(--paa-theme-border);
    color: var(--paa-muted-color);
}

html[data-theme="dark"] .paa-site-footer {
    background: var(--paa-theme-bg-secondary);
    border-color: var(--paa-theme-border);
    color: var(--paa-theme-text);
}

html[data-theme="dark"] .paa-site-footer a,
html[data-theme="dark"] .paa-footer-brand p,
html[data-theme="dark"] .paa-footer-bottom {
    color: var(--paa-muted-color);
}

html[data-theme="dark"] .paa-footer-bottom {
    border-color: var(--paa-theme-border);
}

/* Preserve intentional promotional/CTA surfaces in dark mode. */
html[data-theme="dark"] .paa-promo-card,
html[data-theme="dark"] .paa-hero-banner,
html[data-theme="dark"] .paa-hero-art {
    color: #fff;
}

/* The native header's mobile trigger must remain visible against either mode. */
html[data-theme="dark"] .paa-mobile-toggle {
    background: var(--paa-surface-color);
    color: var(--paa-text-color);
    border-color: var(--paa-border-color);
}

/* Legacy carousel controls: remove light-only backgrounds without changing
 * their geometry or interaction contract. */
html[data-theme="dark"] .paa-category-carousel-control,
html[data-theme="dark"] .paa-category-carousel-dot {
    background: var(--paa-surface-color);
    color: var(--paa-text-color);
    border-color: var(--paa-border-color);
}
html[data-theme="dark"] .paa-category-carousel-dot.is-active {
    background: var(--paa-theme-primary);
}

/* Keep WordPress/Elementor authoring surfaces visually neutral. */
body.elementor-editor-active .paa-site-header,
body.elementor-editor-active .paa-site-footer,
body.elementor-editor-active .paa-elementor-home-header,
body.elementor-editor-active .paa-elementor-home-header-v2 {
    color-scheme: light;
}

/* Stage 7 — fallback templates use the same semantic surface system. */
.paa-error-page,
.paa-page-header,
.paa-content-list,
.paa-content-card {
    color: var(--paa-text-color, #172033);
}
.paa-page-header { margin-bottom: 24px; }
.paa-content-list { display: grid; gap: 16px; }
.paa-content-card {
    background: var(--paa-surface-color, #fff);
    border: 1px solid var(--paa-border-color, #e2e8f0);
    border-radius: var(--paa-radius-md, 14px);
    padding: 24px;
}
.paa-content-card .entry-title { margin-top: 0; }
.paa-content-card .entry-title a { color: inherit; }
.paa-content-card .entry-summary,
.paa-content-card .entry-meta,
.archive-description { color: var(--paa-muted-color, #64748b); }
[data-theme="dark"] .paa-content-card,
[data-theme="dark"] .paa-empty-state {
    color: var(--paa-text-color, #f8fafc);
}
[data-theme="dark"] .paa-content-card .entry-summary,
[data-theme="dark"] .paa-content-card .entry-meta,
[data-theme="dark"] .archive-description { color: var(--paa-muted-color, #94a3b8); }

/* ETAPA 8 — Home: prevent the native primary menu from creating a second
 * navigation band between the main header and the first hero/carousel. The
 * Home header already exposes its primary actions and Elementor can provide
 * its own navigation when needed. Keep the native menu available on inner
 * pages. */
body.home .paa-site-header .paa-native-primary-nav,
body.front-page .paa-site-header .paa-native-primary-nav,
body.paa-elementor-page .paa-site-header .paa-native-primary-nav {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

body.home .paa-site-header,
body.front-page .paa-site-header {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.home .paa-hero-banner--primary,
body.front-page .paa-hero-banner--primary {
    margin-top: 0 !important;
}
