/* Institutional tokens. --elo-accent remains reserved for individual sectors. */
:root {
    --elo-primary: #101B3B;
    --elo-brand-accent: #E3AF64;
    --elo-control-radius: 5px;
    --elo-surface: #F2F0EB;
    --elo-primary-rgb: 16, 27, 59;
    --elo-surface-rgb: 242, 240, 235;
    --elo-accent-rgb: 227, 175, 100;
    --elo-deep: var(--elo-primary);
    --elo-muted: var(--elo-primary);
    --elo-line: rgba(var(--elo-primary-rgb), .18);
    --elo-surface-raised: var(--elo-surface);
    --elo-accent-ink: var(--elo-primary);
    --elo-accent-hover: var(--elo-brand-accent);
    /* Aliases also cover the sector grid embedded directly in Elementor. */
    --elo-navy: var(--elo-primary);
    --elo-navy-deep: var(--elo-deep);
    --elo-orange: var(--elo-brand-accent);
    --elo-text: var(--elo-primary);
}

body {
    color: var(--elo-primary);
    background-color: var(--elo-surface);
}

/* Shared soft corners; leave circular icons, LEDs and full-width sections intact. */
body .elementor .elementor-button,
body :is(.elo-primary-button, .elo-atp-button, .elo-link-card, .elo-service-card, .elo-atp-scope__item, .elo-atp-class-card, .elo-atp-guidance, .elo-sector-guidance, .elo-sector-modal__guidance),
body.home #servicos .elo-impact-card {
    border-radius: var(--elo-control-radius) !important;
}

/* Home panels/media use four soft corners; service cards keep only their top corners. */
body.home .elementor-11 :is(
    .elementor-element-ee0f67b,
    .elementor-element-f63eb75,
    .elementor-element-a9f21e4,
    .elementor-element-bb49a3c,
    .elementor-element-4f8618c,
    .elementor-element-e59a8b7
),
body.home .elementor-11 .elementor-element-993b3d3 .elementor-wrapper {
    border-radius: var(--elo-control-radius) !important;
}
body.home #servicos .elo-impact-card,
body.home #servicos .elementor-widget-image img {
    border-radius: var(--elo-control-radius) var(--elo-control-radius) 0 0 !important;
}
body.home .elementor-11 .elementor-element-993b3d3 .elementor-wrapper {
    overflow: hidden;
}

/* Override only Hello Elementor's unstyled fallback controls. */
a { color: var(--elo-accent-ink); }
a:hover { color: var(--elo-primary); }
button:not([class]), input[type="submit"]:not([class]) {
    color: var(--elo-primary);
    border-color: var(--elo-primary);
}
button:not([class]):hover, input[type="submit"]:not([class]):hover {
    color: var(--elo-primary);
    background-color: var(--elo-brand-accent);
}

/* Institutional Elementor CTAs; WhatsApp's own green variants are excluded. */
.elementor .elementor-element .elementor-button:not([href*="wa.me"]):not([href*="api.whatsapp.com"]),
.elementor .elementor-element .elementor-button[href*="api.whatsapp.com"] {
    color: var(--elo-primary);
    background-color: var(--elo-brand-accent);
}
.elementor .elementor-element .elementor-button:not([href*="wa.me"]):hover,
.elementor .elementor-element .elementor-button[href*="api.whatsapp.com"]:hover {
    color: var(--elo-primary);
    background-color: var(--elo-accent-hover);
}
.elementor .elementor-button svg { fill: currentColor; }
.elementor .elementor-element .elementor-button[href*="wa.me"] {
    color: var(--elo-primary);
    background-color: var(--elo-brand-accent);
}
.elementor .elementor-element .elementor-button[href*="wa.me"]:hover {
    color: var(--elo-surface);
    background-color: var(--elo-primary);
}

/* Accessible accent for small labels on light backgrounds. */
.elo-catalog__content .elo-catalog__eyebrow,
.elo-detail-content .elo-catalog__eyebrow,
body .elo-faq .elo-catalog__eyebrow,
body .elo-related .elo-catalog__eyebrow,
.elo-ensaios-page .elementor .elementor-element.elementor-element-fe3f0a6 p,
.elo-atp-section .elo-atp-eyebrow {
    color: var(--elo-accent-ink);
}
body .elo-atp-overview .elo-atp-heading > .elo-atp-eyebrow { color: var(--elo-accent-ink); }
.elo-atp-scope .elo-atp-scope__item > span,
body .elo-atp-guidance a,
body .elo-atp-process-list > li > span,
body .elo-sector-modal__service-number,
body .elo-sector-guidance a strong,
body .elo-sector-modal__guidance a strong,
body .elo-link-card__action > span,
body .elo-link-card a span,
body .elo-service-card a span,
body .elo-related-services__links span,
body .elo-faq__items summary::after { color: var(--elo-accent-ink); }
.elo-atp-scope .elo-atp-scope__item > span { border-color: var(--elo-accent-ink); }
.elo-atp-final .elo-atp-eyebrow,
.elo-catalog-cta .elo-catalog__eyebrow {
    color: var(--elo-brand-accent);
}
body .elo-detail-card .elo-catalog__eyebrow { color: var(--elo-brand-accent); }
body .elo-sector-modal__header .elo-catalog__eyebrow { color: var(--elo-brand-accent); }
body .elo-sector-modal__close,
body .elo-sector-modal__close:focus {
    color: var(--elo-surface);
    background: rgba(var(--elo-surface-rgb), .1);
    border-color: rgba(var(--elo-surface-rgb), .28);
}
body .elo-sector-modal__close:hover,
body .elo-sector-modal__close:focus-visible {
    background: rgba(var(--elo-surface-rgb), .2);
    outline: 2px solid var(--elo-surface);
}

body .elo-atp-button--whatsapp { background: var(--elo-brand-accent); color: var(--elo-primary); }
body .elo-atp-button--whatsapp:hover,
body .elo-atp-button--whatsapp:focus-visible { background: var(--elo-primary); color: var(--elo-surface); }

/* A dark outer ring and light inner ring remain visible on either surface. */
:where(a, button, input, textarea, select, summary):focus-visible {
    outline: 3px solid var(--elo-primary);
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--elo-surface);
}
input::placeholder, textarea::placeholder { color: var(--elo-muted); opacity: 1; }

/* Home: institutional highlights; Mission keeps the official navy on its light surface. */
body.home .elementor-11 :is(
    .elementor-element-f63eb75,
    .elementor-element-a9f21e4,
    .elementor-element-a3a0df6,
    .elementor-element-1e651d0
) :is(.elementor-icon-box-title, .elementor-icon-box-title span, .elementor-icon-box-title a, .elementor-icon) {
    color: var(--elo-brand-accent) !important;
}
body.home .elementor-11 :is(
    .elementor-element-f63eb75,
    .elementor-element-a9f21e4,
    .elementor-element-a3a0df6,
    .elementor-element-1e651d0
) .elementor-icon svg {
    fill: var(--elo-brand-accent) !important;
}

body.home .elementor-11 .elementor-element-d413f95 :is(.elementor-icon-box-title, .elementor-icon-box-title span, .elementor-icon-box-title a, .elementor-icon) {
    color: var(--elo-primary) !important;
}
body.home .elementor-11 .elementor-element-d413f95 .elementor-icon svg {
    fill: var(--elo-primary) !important;
}

/* Override Elementor's per-widget and inline colors on the dark footer, including hover. */
body :is(.elementor-location-footer, .elementor-5662 .elementor-element-9b25533),
body :is(.elementor-location-footer, .elementor-5662 .elementor-element-9b25533) :is(
    .elementor-heading-title,
    .elementor-image-box-title,
    .elementor-image-box-description,
    .elementor-icon-list-text,
    .elementor-widget-text-editor,
    a, p, span, strong, em, small
) {
    color: #fff !important;
}

/* Keep the existing accessibility controls, changing their colors only. */
body #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle a {
    color: var(--elo-primary);
    background-color: var(--elo-brand-accent);
}
body #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay,
body #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items.pojo-a11y-links {
    background-color: var(--elo-surface);
    border-color: var(--elo-primary);
}
body #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a,
body #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay p.pojo-a11y-toolbar-title { color: var(--elo-primary); }
body #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a.active {
    color: var(--elo-primary);
    background-color: var(--elo-brand-accent);
}
