/* =========================================================
   Artur Digital Studio - Home Institucional
   Prefixo: .ads-*  (isola de Elementor/Hello)
   Paleta: navy da logo + dourado da logo.
   Tipografia: Plus Jakarta Sans (peso máx. 600).
   ========================================================= */

:root {
    --ads-bg: #ffffff;
    --ads-bg-soft: #f6f7fa;
    --ads-bg-dark: #0d1a36;       /* navy escuro da logo */
    --ads-bg-darker: #091228;
    --ads-navy: #0d1a36;
    --ads-line: #e6e8ec;
    --ads-line-strong: #d4d8de;

    --ads-text: #0d1a36;          /* navy da logo */
    --ads-text-muted: #5a637a;
    --ads-text-light: #c9cfdc;

    --ads-accent: #b8945a;        /* dourado da logo */
    --ads-accent-strong: #a07e46;
    --ads-accent-soft: #f6efe0;

    --ads-radius-sm: 8px;
    --ads-radius: 14px;
    --ads-radius-lg: 22px;

    --ads-shadow-sm: 0 1px 2px rgba(13, 26, 54, .04), 0 1px 1px rgba(13, 26, 54, .04);
    --ads-shadow: 0 8px 24px rgba(13, 26, 54, .07);
    --ads-shadow-lg: 0 24px 60px rgba(13, 26, 54, .12);

    --ads-container: 1200px;
    --ads-font: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ---------- Reset escopado ---------- */
body.ads-template-home-institucional {
    margin: 0;
    background: var(--ads-bg);
}

body.logged-in.ads-template-home-institucional,
body.admin-bar.ads-template-home-institucional {
    background: var(--ads-bg) !important;
}

body.logged-in.ads-template-home-institucional .ads-main,
body.admin-bar.ads-template-home-institucional .ads-main {
    display: block !important;
    min-height: 100vh;
    opacity: 1 !important;
    visibility: visible !important;
}

body.ads-template-home-institucional > header:not(.ads-header),
body.ads-template-home-institucional .site-header,
body.ads-template-home-institucional #site-header,
body.ads-template-home-institucional .page-header {
    display: none !important;
}

.ads-main, .ads-main * {
    box-sizing: border-box;
}
.ads-main {
    font-family: var(--ads-font);
    color: var(--ads-text);
    background: var(--ads-bg);
    line-height: 1.55;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.ads-main img, .ads-main svg { display: block; max-width: 100%; }
.ads-main h1, .ads-main h2, .ads-main h3, .ads-main h4 {
    margin: 0;
    color: var(--ads-text);
    letter-spacing: -0.02em;
    line-height: 1.18;
    font-weight: 600;
}
.ads-main p { margin: 0; }
.ads-main ul { list-style: none; margin: 0; padding: 0; }
.ads-main strong { font-weight: 600; }
.ads-main a { color: inherit; text-decoration: none; transition: color .2s ease, opacity .2s ease; }
.ads-main a:hover { color: var(--ads-accent); }

/* ---------- Layout ---------- */
.ads-container {
    width: 100%;
    max-width: var(--ads-container);
    margin: 0 auto;
    padding: 0 24px;
}
.ads-section {
    padding: 96px 0;
    position: relative;
}
.ads-section + .ads-section { border-top: 1px solid var(--ads-line); }

.ads-section__header { max-width: 760px; margin: 0 0 56px; }
.ads-section__header--split {
    max-width: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
.ads-section__header-text p + p { margin-top: 14px; }
.ads-section__title {
    font-size: clamp(1.75rem, 2.4vw, 2.5rem);
    margin-bottom: 16px;
}
.ads-section__lead {
    color: var(--ads-text-muted);
    font-size: 1.0625rem;
}
.ads-section__lead + .ads-section__lead { margin-top: 12px; }

.ads-eyebrow {
    display: inline-block;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ads-accent-strong);
    padding: 6px 10px;
    background: var(--ads-accent-soft);
    border-radius: 999px;
    margin-bottom: 18px;
}
.ads-eyebrow--light { background: rgba(184, 148, 90, .22); color: var(--ads-accent); }

.ads-accent { color: var(--ads-accent); }

/* ---------- Botões ---------- */
.ads-button {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 16px 28px;
    border-radius: var(--ads-radius-sm);
    font-weight: 600;
    font-size: .975rem;
    font-family: inherit;
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
    white-space: nowrap;
    line-height: 1;
}
.ads-button + .ads-button { margin-left: 0; }
.ads-button__icon { transition: transform .2s ease; display: inline-flex; align-items: center; }
.ads-button__icon--leading { transition: none; }
.ads-inline-icon {
    width: 1.22em;
    height: 1.22em;
    display: block;
    flex: 0 0 auto;
}
.ads-button .ads-inline-icon {
    width: 1.35em;
    height: 1.35em;
}
.ads-button:hover .ads-button__icon:not(.ads-button__icon--leading) { transform: translateX(4px); }
.ads-main a.ads-button--primary,
.ads-main button.ads-button--primary {
    background: var(--ads-text);
    color: #fff;
    border-color: var(--ads-text);
}
.ads-main a.ads-button--primary:hover,
.ads-main button.ads-button--primary:hover {
    background: var(--ads-bg-darker) !important;
    border-color: var(--ads-bg-darker) !important;
    color: #fff !important;
    box-shadow: var(--ads-shadow);
}
.ads-main a.ads-button--ghost,
.ads-main button.ads-button--ghost {
    background: transparent;
    color: var(--ads-text);
    border-color: var(--ads-line-strong);
}
.ads-main a.ads-button--ghost:hover,
.ads-main button.ads-button--ghost:hover {
    border-color: var(--ads-text);
    color: var(--ads-text);
    background: var(--ads-bg-soft);
}
.ads-main a.ads-button--light,
.ads-main button.ads-button--light {
    background: var(--ads-accent);
    color: #fff;
}
.ads-main a.ads-button--light:hover,
.ads-main button.ads-button--light:hover { background: #fff; color: var(--ads-text); }

/* ---------- Grids genéricos ---------- */
.ads-grid { display: grid; gap: 20px; }
.ads-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ads-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ads-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ---------- HERO ---------- */
.ads-hero {
    padding-top: 110px;
    padding-bottom: 110px;
    overflow: hidden;
    background:
        linear-gradient(90deg, #fff 0%, rgba(255,255,255,.97) 44%, rgba(255,255,255,.86) 100%),
        var(--ads-hero-bg, linear-gradient(180deg, #fff, #fff)),
        radial-gradient(800px 400px at 85% -10%, rgba(184, 148, 90, .10), transparent 60%),
        radial-gradient(700px 320px at -10% 110%, rgba(13, 26, 54, .05), transparent 60%),
        var(--ads-bg);
    background-size: cover, cover, auto, auto, auto;
    background-position: center, center right, center, center, center;
}
.ads-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(580px 220px at 76% 25%, rgba(255,255,255,.22), transparent 70%),
        linear-gradient(180deg, rgba(255,255,255,.45), rgba(255,255,255,.72));
    pointer-events: none;
}
.ads-hero > .ads-container {
    position: relative;
    z-index: 1;
}
.ads-hero__grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 56px;
    align-items: center;
}
.ads-hero__title {
    font-size: clamp(2.1rem, 4.2vw, 3.5rem);
    margin-bottom: 22px;
    font-weight: 600;
}
.ads-hero__subtitle {
    font-size: 1.125rem;
    color: var(--ads-text-muted);
    max-width: 620px;
    margin-bottom: 0;
}
.ads-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 34px;
}
.ads-hero__highlights {
    background: #fff;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius-lg);
    padding: 28px;
    box-shadow: var(--ads-shadow);
}
.ads-hero__visual {
    margin: -6px -6px 22px;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border: 1px solid var(--ads-line);
    background: var(--ads-bg-soft);
}
.ads-hero__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(.9) contrast(.96);
}
.ads-hero__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}
.ads-hero__pills li {
    font-size: .82rem;
    font-weight: 500;
    padding: 8px 12px;
    background: var(--ads-bg-soft);
    border: 1px solid var(--ads-line);
    border-radius: 999px;
    color: var(--ads-text);
}
.ads-hero__badge {
    display: flex;
    gap: 14px;
    padding: 16px;
    border: 1px dashed var(--ads-line-strong);
    border-radius: var(--ads-radius);
    background: var(--ads-bg-soft);
}
.ads-hero__badge-icon {
    flex: 0 0 42px;
    width: 42px; height: 42px;
    border-radius: 12px;
    background: var(--ads-accent-soft);
    color: var(--ads-accent-strong);
    display: grid; place-items: center;
}
.ads-hero__badge strong { display: block; font-size: .95rem; margin-bottom: 2px; font-weight: 600; }
.ads-hero__badge span { font-size: .85rem; color: var(--ads-text-muted); }

/* ---------- Cards ---------- */
.ads-positioning {
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.985)),
        var(--ads-section-photo, linear-gradient(180deg, #fff, #fff));
    background-size: cover;
    background-position: center;
}

.ads-card {
    background: #fff;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius);
    padding: 28px;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.ads-card:hover {
    border-color: var(--ads-accent);
    box-shadow: var(--ads-shadow);
    transform: translateY(-2px);
}
.ads-card__icon {
    width: 48px; height: 48px;
    border-radius: 12px;
    background: var(--ads-accent-soft);
    color: var(--ads-accent-strong);
    display: grid; place-items: center;
    margin-bottom: 18px;
}
.ads-card__title {
    font-size: 1.075rem;
    margin-bottom: 8px;
    font-weight: 600;
}
.ads-card__text {
    color: var(--ads-text-muted);
    font-size: .95rem;
}

.ads-card--solution { position: relative; padding-top: 56px; }
.ads-card__index {
    position: absolute;
    top: 22px; left: 28px;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .12em;
    color: var(--ads-accent-strong);
}

.ads-card--feature { display: flex; flex-direction: column; }
.ads-card__bullet {
    width: 32px; height: 32px;
    border-radius: 999px;
    background: var(--ads-text);
    color: var(--ads-accent);
    display: grid; place-items: center;
    margin-bottom: 14px;
}

/* ---------- Conformidade ---------- */
.ads-compliance { background: var(--ads-bg-soft); }
.ads-compliance__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.ads-compliance__list li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius-sm);
    font-size: .92rem;
    font-weight: 500;
}
.ads-compliance__list li span {
    color: var(--ads-accent);
    font-weight: 600;
}

/* ---------- Projetos ---------- */
.ads-project {
    background: #fff;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius);
    overflow: hidden;
    transition: box-shadow .2s ease, transform .2s ease;
    display: flex;
    flex-direction: column;
}
.ads-project:hover { box-shadow: var(--ads-shadow); transform: translateY(-2px); }
.ads-project__thumb {
    aspect-ratio: 16/9;
    background:
        repeating-linear-gradient(135deg, rgba(13,26,54,.04) 0 1px, transparent 1px 12px),
        linear-gradient(135deg, #f3f5f8, #e7ebf1);
    display: grid; place-items: center;
    color: var(--ads-text-muted);
    font-weight: 600;
    font-size: .95rem;
}
.ads-project__body { padding: 22px; }
.ads-project__tag {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ads-accent-strong);
    margin-bottom: 10px;
}
.ads-project__title { font-size: 1.075rem; margin-bottom: 8px; font-weight: 600; }
.ads-project__text { color: var(--ads-text-muted); font-size: .92rem; margin-bottom: 14px; }
.ads-project__link { font-weight: 600; color: var(--ads-accent-strong); }
.ads-project__link:hover { color: var(--ads-accent); }

/* ---------- Área do Cliente ---------- */
.ads-client-area { background: var(--ads-bg); }
.ads-client-area__box {
    background:
        linear-gradient(90deg, rgba(13, 26, 54, .98), rgba(13, 26, 54, .88)),
        var(--ads-client-bg, linear-gradient(180deg, var(--ads-bg-dark), var(--ads-bg-dark))),
        radial-gradient(600px 300px at 100% 0%, rgba(184, 148, 90, .35), transparent 60%),
        var(--ads-bg-dark);
    background-size: cover, cover, auto, auto;
    background-position: center, center, center, center;
    color: #fff;
    border-radius: var(--ads-radius-lg);
    padding: 56px;
    display: grid;
    grid-template-columns: 1.4fr auto;
    gap: 32px;
    align-items: center;
}
.ads-client-area__box > .ads-button,
.ads-client-area__box > div:last-child {
    margin-top: 24px;
}
.ads-main .ads-section__title--light { color: #fff; }
.ads-main .ads-section__lead--light { color: var(--ads-text-light); }

/* ---------- CTA Final ---------- */
.ads-cta { background: var(--ads-bg-soft); }
.ads-cta__inner {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
}
.ads-cta__title {
    font-size: clamp(1.6rem, 2.6vw, 2.25rem);
    margin-bottom: 16px;
    font-weight: 600;
}
.ads-cta__text {
    color: var(--ads-text-muted);
    margin-bottom: 0;
    font-size: 1.05rem;
}
.ads-cta__buttons {
    display: flex;
    justify-content: center;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 30px;
}

/* ---------- Política de Privacidade ---------- */
.ads-privacy {
    background:
        radial-gradient(740px 360px at 88% 4%, rgba(184, 148, 90, .10), transparent 62%),
        var(--ads-bg);
}
.ads-privacy__hero {
    max-width: 860px;
    margin-bottom: 48px;
}
.ads-privacy__hero h1 {
    font-size: clamp(2.15rem, 4vw, 3.4rem);
    margin-bottom: 18px;
}
.ads-privacy__hero p {
    color: var(--ads-text-muted);
    font-size: 1.08rem;
}
.ads-privacy__updated {
    display: inline-flex;
    margin-top: 20px;
    color: var(--ads-accent-strong);
    font-size: .86rem;
    font-weight: 600;
}
.ads-privacy__layout {
    display: grid;
    grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
    gap: 36px;
    align-items: start;
}
.ads-privacy__summary {
    position: sticky;
    top: 130px;
    padding: 24px;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius);
    background: var(--ads-bg-soft);
}
.ads-privacy__summary strong {
    display: block;
    margin-bottom: 14px;
    color: var(--ads-text);
    font-size: 1rem;
}
.ads-privacy__summary li {
    position: relative;
    padding-left: 18px;
    color: var(--ads-text-muted);
    font-size: .92rem;
}
.ads-privacy__summary li + li { margin-top: 10px; }
.ads-privacy__summary li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .68em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ads-accent);
}
.ads-privacy__content {
    display: grid;
    gap: 18px;
}
.ads-privacy__content section {
    padding: 28px;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius);
    background: #fff;
    box-shadow: var(--ads-shadow-sm);
}
.ads-privacy__content h2 {
    margin-bottom: 12px;
    font-size: 1.25rem;
}
.ads-privacy__content p {
    color: var(--ads-text-muted);
}
.ads-privacy__content a {
    color: var(--ads-accent-strong);
    font-weight: 600;
}

/* ---------- Página de chamados ---------- */
.ads-ticket {
    background:
        linear-gradient(135deg, rgba(246,247,251,.96), rgba(255,255,255,.98)),
        radial-gradient(circle at 82% 14%, rgba(184,148,90,.12), transparent 34%);
}
.ads-ticket__header {
    max-width: 780px;
    margin: 0 auto 34px;
    text-align: center;
}
.ads-ticket__header h1 {
    margin-bottom: 14px;
    font-size: clamp(2.2rem, 5vw, 4rem);
    line-height: 1.05;
    letter-spacing: 0;
}
.ads-ticket__header p {
    color: var(--ads-text-muted);
    font-size: 1.08rem;
}
.ads-ticket__panel {
    max-width: 760px;
    margin: 0 auto;
    padding: clamp(24px, 5vw, 42px);
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius);
    background: #fff;
    box-shadow: var(--ads-shadow);
}
.ads-ticket__content h2,
.ads-ticket__content h3 {
    margin-bottom: 16px;
    color: var(--ads-text);
    letter-spacing: 0;
}
.ads-ticket__content .wpas,
.ads-ticket__content .wpas-login-only {
    margin: 0;
}
.ads-ticket__content .wpas-form {
    display: grid;
    gap: 18px;
}
.ads-ticket__content .wpas-form-group {
    margin: 0;
}
.ads-ticket__content label {
    display: block;
    margin-bottom: 8px;
    color: var(--ads-text);
    font-weight: 600;
}
.ads-ticket__content input[type="text"],
.ads-ticket__content input[type="email"],
.ads-ticket__content input[type="password"],
.ads-ticket__content textarea,
.ads-ticket__content select,
.ads-ticket__content .wpas-form-control {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius-sm);
    padding: 12px 14px;
    background: #fff;
    color: var(--ads-text);
    font: inherit;
    box-shadow: none;
}
.ads-ticket__content input:focus,
.ads-ticket__content textarea:focus,
.ads-ticket__content select:focus,
.ads-ticket__content .wpas-form-control:focus {
    outline: 2px solid rgba(184,148,90,.25);
    border-color: var(--ads-accent);
}
.ads-ticket__content .wpas-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ads-text-muted);
}
.ads-ticket__content .wpas-checkbox label {
    margin: 0;
    color: inherit;
    font-weight: 500;
}
.ads-ticket__content .wpas-btn,
.ads-ticket__content button,
.ads-ticket__content input[type="submit"] {
    min-height: 48px;
    border: 0;
    border-radius: var(--ads-radius-sm);
    padding: 0 24px;
    background: var(--ads-text);
    color: #fff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.ads-ticket__content .wpas-btn:hover,
.ads-ticket__content button:hover,
.ads-ticket__content input[type="submit"]:hover {
    transform: translateY(-1px);
    background: #162139;
    box-shadow: var(--ads-shadow-sm);
}
.ads-ticket__content .wpas-forgot-password-link,
.ads-ticket__content a {
    color: var(--ads-accent-strong);
    font-weight: 600;
}

/* ---------- Footer da página ---------- */
.ads-pagefooter {
    background: var(--ads-bg-dark);
    color: var(--ads-text-light);
    padding: 64px 0 32px;
}
.ads-pagefooter h4 {
    color: var(--ads-accent);
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: 14px;
    font-weight: 600;
}
.ads-pagefooter__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.ads-pagefooter__brand strong {
    display: block;
    color: #fff;
    font-size: 1.1rem;
    margin-bottom: 6px;
    font-weight: 600;
}
.ads-pagefooter__brand span { font-size: .92rem; display: block; }
.ads-pagefooter__brand .ads-pagefooter__cnpj {
    margin-top: 10px;
    font-size: .82rem;
    color: var(--ads-text-light);
    opacity: .85;
}
.ads-pagefooter__nav ul li,
.ads-pagefooter__contact ul li {
    margin-bottom: 8px;
    font-size: .92rem;
}
.ads-pagefooter__nav a:hover,
.ads-pagefooter__contact a:hover { color: var(--ads-accent); }
.ads-footer-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.ads-pagefooter__social {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
}
.ads-social-link {
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.18);
    color: var(--ads-text-light);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}
.ads-social-link:hover {
    color: var(--ads-accent);
    border-color: rgba(184,148,90,.55);
    background: rgba(184,148,90,.08);
    transform: translateY(-1px);
}
.ads-social-link .ads-inline-icon {
    width: 18px;
    height: 18px;
}
.ads-pagefooter__bottom {
    padding-top: 24px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: .85rem;
    flex-wrap: wrap;
}
.ads-pagefooter__top { color: var(--ads-accent); font-weight: 600; }

/* ---------- Responsivo ---------- */
@media (max-width: 1024px) {
    .ads-section { padding: 72px 0; }
    .ads-hero { padding-top: 80px; padding-bottom: 80px; }
    .ads-hero__grid { grid-template-columns: 1fr; gap: 40px; }
    .ads-section__header--split { grid-template-columns: 1fr; gap: 16px; }
    .ads-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ads-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ads-compliance__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ads-client-area__box { grid-template-columns: 1fr; padding: 40px; }
}

@media (max-width: 640px) {
    .ads-section { padding: 56px 0; }
    .ads-hero { padding-top: 64px; padding-bottom: 64px; }
    .ads-container { padding: 0 18px; }
    .ads-grid--4, .ads-grid--3, .ads-grid--2 { grid-template-columns: 1fr; }
    .ads-compliance__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ads-pagefooter__grid { grid-template-columns: 1fr; gap: 28px; }
    .ads-button { width: 100%; justify-content: center; }
    .ads-hero__cta .ads-button,
    .ads-cta__buttons .ads-button { width: auto; }
}

/* ---------- Acessibilidade ---------- */
.ads-main a:focus-visible,
.ads-main button:focus-visible {
    outline: 2px solid var(--ads-accent);
    outline-offset: 3px;
    border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
    .ads-main *,
    .ads-main *::before,
    .ads-main *::after { transition: none !important; animation: none !important; }
}

/* Reveal on scroll */
.ads-reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.ads-reveal.is-visible { opacity: 1; transform: none; }

/* =========================================================
   BARRA DE ACESSIBILIDADE
   ========================================================= */
.ads-a11y {
    background: var(--ads-bg-dark);
    color: #fff;
    font-size: .8rem;
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.ads-a11y__inner {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    padding: 8px 0;
    flex-wrap: wrap;
}
.ads-a11y__label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 500;
    color: var(--ads-text-light);
    margin-right: auto;
}
.ads-a11y__tools {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ads-main .ads-a11y__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font-family: inherit;
    font-size: .8rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
    line-height: 1;
}
.ads-main .ads-a11y__btn:hover,
.ads-main .ads-a11y__btn:focus-visible {
    background: rgba(255,255,255,.08);
    border-color: var(--ads-accent);
    color: var(--ads-accent);
}
.ads-main .ads-a11y__btn[aria-pressed="true"] {
    background: var(--ads-accent);
    border-color: var(--ads-accent);
    color: var(--ads-text);
}

/* Estado: alto contraste */
.ads-a11y-contrast .ads-main,
.ads-a11y-contrast .ads-main * {
    background-color: #000 !important;
    color: #ffeb3b !important;
    border-color: #ffeb3b !important;
}
.ads-a11y-contrast .ads-main a,
.ads-a11y-contrast .ads-main a *,
.ads-a11y-contrast .ads-main .ads-accent {
    color: #ffffff !important;
}
.ads-a11y-contrast .ads-main img,
.ads-a11y-contrast .ads-main svg { filter: grayscale(100%) contrast(1.4) brightness(1.4); }
.ads-a11y-contrast .ads-main .ads-a11y__btn { background: transparent !important; }

@media (max-width: 720px) {
    .ads-a11y__inner { justify-content: center; }
    .ads-a11y__label { display: none; }
    .ads-a11y__btn span,
    .ads-a11y__btn { font-size: .75rem; padding: 5px 10px; }
}

/* =========================================================
   HEADER
   ========================================================= */
.ads-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    border-bottom: 1px solid var(--ads-line);
}
body.admin-bar.ads-template-home-institucional .ads-header { top: 32px; }
.ads-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 0;
}
.ads-header__brand {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 600;
    color: var(--ads-text);
    text-decoration: none;
}
.ads-header__brand-logo {
    width: 200px;
    max-height: 52px;
    object-fit: contain;
}

.ads-header__nav { display: flex; align-items: center; gap: 20px; }
.ads-header__nav a {
    font-size: .88rem;
    font-weight: 500;
    color: var(--ads-text);
    position: relative;
}
.ads-header__nav a:hover { color: var(--ads-accent-strong); }
.ads-header__cta { display: flex; align-items: center; gap: 12px; }
.ads-header__cta .ads-button { padding: 12px 18px; font-size: .88rem; }

.ads-header__burger {
    display: none;
    width: 48px;
    height: 48px;
    background: var(--ads-text) !important;
    border: 1px solid var(--ads-text) !important;
    border-radius: 10px;
    color: #fff !important;
    cursor: pointer;
    align-items: center; justify-content: center;
    box-shadow: none;
}
.ads-header__burger:hover,
.ads-header__burger:focus-visible,
.ads-header__burger[aria-expanded="true"] {
    background: var(--ads-bg-darker) !important;
    border-color: var(--ads-bg-darker) !important;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(13, 26, 54, .18);
    outline: none;
}
.ads-header__burger svg {
    width: 26px !important;
    height: 26px !important;
    stroke-width: 2.3;
}

@media (max-width: 960px) {
    .ads-header__nav, .ads-header__cta .ads-button { display: none; }
    .ads-header__burger { display: inline-flex; }
    .ads-header__nav.is-open {
        display: flex;
        position: absolute;
        top: 100%; left: 0; right: 0;
        flex-direction: column;
        align-items: stretch;
        background: #fff;
        padding: 18px 24px;
        gap: 14px;
        border-bottom: 1px solid var(--ads-line);
        box-shadow: var(--ads-shadow);
    }
}

@media (max-width: 782px) {
    body.admin-bar.ads-template-home-institucional .ads-header { top: 46px; }
}

/* =========================================================
   CLIENTES - MARQUEE
   ========================================================= */
.ads-clients { background: var(--ads-bg); padding-top: 80px; padding-bottom: 80px; }
.ads-clients__intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 40px;
}
.ads-clients__intro h2 { font-size: clamp(1.5rem, 2.2vw, 2rem); margin-bottom: 12px; }
.ads-clients__intro p { color: var(--ads-text-muted); }

.ads-marquee {
    position: relative;
    overflow: hidden;
    min-height: 92px;
    padding: 12px 0;
    mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.ads-marquee__track {
    display: flex;
    gap: 56px;
    width: max-content;
    animation: ads-marquee 42s linear infinite;
    align-items: center;
}
.ads-marquee:hover .ads-marquee__track { animation-play-state: paused; }
.ads-marquee__item {
    flex: 0 0 auto;
    display: grid; place-items: center;
    height: 72px;
    min-width: 140px;
    padding: 0 12px;
}
.ads-marquee__item img {
    max-height: 64px;
    max-width: 210px;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: .84;
    filter: grayscale(100%) saturate(0) contrast(1.05) brightness(.92);
    transition: filter .35s ease, opacity .35s ease, transform .35s ease;
}
.ads-marquee:hover .ads-marquee__item img,
.ads-marquee__item:hover img {
    opacity: 1;
    filter: grayscale(0%) saturate(1) contrast(1) brightness(1);
    transform: scale(1.05);
}
@keyframes ads-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* =========================================================
   PROJETO EM DESTAQUE
   ========================================================= */
.ads-featured-section { background: var(--ads-bg); }
.ads-featured-section .ads-featured { margin-top: 0; }

/* Destaques em slide */
.ads-featured {
    margin-top: 64px;
    background:
        radial-gradient(600px 300px at 100% 0%, rgba(184, 148, 90, .25), transparent 60%),
        var(--ads-bg-dark);
    color: #fff;
    border-radius: var(--ads-radius-lg);
    padding: 48px;
    position: relative;
    overflow: hidden;
}
.ads-featured__slides {
    position: relative;
    min-height: 360px;
}
.ads-featured__slide {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transform: translateX(18px);
    transition: opacity .45s ease, transform .45s ease, visibility .45s ease;
    pointer-events: none;
}
.ads-featured__slide.is-active {
    position: relative;
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    pointer-events: auto;
}
.ads-featured__eyebrow {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ads-accent);
    margin-bottom: 14px;
}
.ads-main .ads-featured__title {
    font-size: clamp(1.4rem, 2.2vw, 1.8rem);
    color: #fff;
    margin-bottom: 12px;
    font-weight: 600;
}
.ads-featured__text { color: var(--ads-text-light); font-size: 1rem; margin-bottom: 22px; }
.ads-featured__meta {
    display: flex; flex-wrap: wrap; gap: 14px;
    margin-top: 28px;
}
.ads-featured__meta li {
    font-size: .78rem;
    font-weight: 500;
    padding: 7px 12px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 999px;
    color: var(--ads-text-light);
}
.ads-featured__logo {
    background: #fff;
    border-radius: var(--ads-radius);
    padding: 36px;
    display: grid; place-items: center;
    aspect-ratio: 16/10;
}
.ads-featured__logo img { max-height: 160px; max-width: 100%; object-fit: contain; }
.ads-featured__controls {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 28px;
}
.ads-featured__dot {
    width: 34px;
    height: 6px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .24);
    cursor: pointer;
    padding: 0;
    transition: width .2s ease, background .2s ease;
}
.ads-featured__dot.is-active {
    width: 54px;
    background: var(--ads-accent);
}

@media (max-width: 860px) {
    .ads-featured { padding: 32px; }
    .ads-featured__slides { min-height: 0; }
    .ads-featured__slide {
        grid-template-columns: 1fr;
        position: absolute;
        gap: 28px;
    }
    .ads-featured__slide.is-active { position: relative; }
    .ads-marquee__item { height: 60px; min-width: 120px; }
    .ads-marquee__item img { max-height: 44px; max-width: 140px; }
}

/* =========================================================
   MAPA DO BRASIL
   ========================================================= */
.ads-mapsection { background: var(--ads-bg-soft); }
.ads-mapsection__grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 56px;
    align-items: center;
}
.ads-mapsection__text h2 { font-size: clamp(1.75rem, 2.4vw, 2.3rem); margin-bottom: 14px; }
.ads-mapsection__text p { color: var(--ads-text-muted); margin-bottom: 14px; }
.ads-mapsection__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 22px;
}
.ads-mapsection__stat {
    background: #fff;
    border: 1px solid var(--ads-line);
    border-radius: var(--ads-radius-sm);
    padding: 16px;
    text-align: center;
}
.ads-mapsection__stat strong {
    display: block;
    font-size: 1.6rem;
    color: var(--ads-accent-strong);
    font-weight: 600;
    margin-bottom: 4px;
}
.ads-mapsection__stat span { font-size: .8rem; color: var(--ads-text-muted); }

.ads-map {
    position: relative;
    aspect-ratio: 1 / 1;
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
}
.ads-map__states-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 22px 36px rgba(15, 23, 42, .08));
}
.ads-map__pins-layer {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
    pointer-events: none;
}
.ads-map__pin {
    pointer-events: visiblePainted;
}
.ads-map__pin-dot {
    fill: var(--ads-accent);
    transition: r .25s ease, fill .25s ease;
}
.ads-map__pin--key .ads-map__pin-dot {
    fill: var(--ads-navy);
}
.ads-map__pin-ring {
    fill: none;
    stroke: var(--ads-accent);
    stroke-width: 2;
    opacity: .55;
    transform-origin: center;
    transform-box: fill-box;
    animation: ads-pulse 2.4s ease-out infinite;
}
.ads-map__pin--key .ads-map__pin-ring {
    stroke: var(--ads-navy);
}
.ads-map__pin:hover .ads-map__pin-dot { r: 8; fill: var(--ads-accent-strong); }
.ads-map__pin-label {
    font-family: var(--ads-font);
    font-size: 11px;
    font-weight: 600;
    fill: var(--ads-text);
    paint-order: stroke;
    stroke: #fff;
    stroke-width: 4px;
    stroke-linejoin: round;
    opacity: 0;
    transition: opacity .2s ease;
    pointer-events: none;
}
.ads-map__pin:hover .ads-map__pin-label { opacity: 1; }
@keyframes ads-pulse {
    0%   { r: 5; opacity: .6; }
    100% { r: 16; opacity: 0; }
}

.ads-map__legend {
    margin-top: 18px;
    display: flex; flex-wrap: wrap; gap: 8px;
    justify-content: center;
}
.ads-map__legend li {
    font-size: .78rem;
    color: var(--ads-text-muted);
    background: #fff;
    border: 1px solid var(--ads-line);
    border-radius: 999px;
    padding: 5px 11px;
}
.ads-map__legend li::before {
    content: "";
    display: inline-block;
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--ads-accent);
    margin-right: 7px;
    vertical-align: middle;
}

@media (max-width: 1024px) {
    .ads-mapsection__grid { grid-template-columns: 1fr; gap: 40px; }
    .ads-mapsection__stats { grid-template-columns: repeat(3, 1fr); }
    .ads-privacy__layout { grid-template-columns: 1fr; }
    .ads-privacy__summary { position: static; }
}
@media (max-width: 640px) {
    .ads-mapsection__stats { grid-template-columns: 1fr; }
    .ads-header__brand-logo { width: min(200px, 56vw); max-height: 52px; }
    .ads-hero__cta,
    .ads-cta__buttons { gap: 14px; }
    .ads-featured__logo { padding: 24px; }
    .ads-featured__logo img { max-height: 90px; }
    .ads-privacy__content section,
    .ads-privacy__summary { padding: 22px; }
}

/* Overrides finais para impedir heranca rosa de tema/plugin em botoes. */
body.ads-template-home-institucional .ads-main .ads-header__burger,
body.ads-template-home-institucional .ads-main .ads-header__burger:hover,
body.ads-template-home-institucional .ads-main .ads-header__burger:focus-visible,
body.ads-template-home-institucional .ads-main .ads-header__burger[aria-expanded="true"],
body.ads-template-home-institucional .ads-main .ads-button--primary:hover,
body.ads-template-home-institucional .ads-main .ads-button--primary:focus-visible {
    background: var(--ads-bg-darker) !important;
    background-color: var(--ads-bg-darker) !important;
    border-color: var(--ads-bg-darker) !important;
    color: #fff !important;
}

body.ads-template-home-institucional .ads-main .ads-header__burger svg {
    width: 26px !important;
    height: 26px !important;
}
