/* TechCiência 3.5.0 — Identidade pública unificada e contraste acessível.
   A paleta corresponde à direção editorial da home 3.3.0.
   Aplicada globalmente ao rodapé; demais páginas usam o escopo :not(.page-home).
   O painel administrativo mantém seu tema independente. */
:root {
    --tc-navy: #061c31;
    --tc-navy-deep: #051b2e;
    --tc-navy-mid: #0a3453;
    --tc-blue: #115b9b;
    --tc-teal: #087e92;
    --tc-aqua: #8cece7;
    --tc-aqua-soft: #d8f6f4;
    --tc-paper: #f5f9fc;
    --tc-mist: #edf5f8;
    --tc-ink: #173453;
    --tc-copy: #566e81;
    --tc-line: rgba(21,89,134,.16);
    --tc-shadow: 0 20px 55px rgba(6,52,84,.10);
    --tc-ease: cubic-bezier(.18,1,.28,1);

    /* Compatibilidade com componentes e templates anteriores. */
    --page-bg: var(--tc-paper);
    --surface: #ffffff;
    --surface-soft: var(--tc-mist);
    --surface-muted: #f8fcff;
    --text: var(--tc-ink);
    --text-soft: var(--tc-copy);
    --heading: #102e49;
    --brand-1: var(--tc-aqua);
    --brand-2: #1ca4bb;
    --brand-3: var(--tc-blue);
    --brand-4: var(--tc-navy);
    --line: var(--tc-line);
    --shadow: var(--tc-shadow);
    --shadow-lg: 0 26px 62px rgba(6,52,84,.16);
}

/* ----- Elementos compartilhados do site público ----- */
body:not(.page-home) { background: var(--tc-paper); color: var(--tc-ink); }
body:not(.page-home) :is(h1,h2,h3,h4) { color: var(--heading); }
body:not(.page-home) :is(a,button,input,select,textarea,summary):focus-visible,
.site-footer :is(a,button):focus-visible { outline: 3px solid #14b9bd; outline-offset: 4px; }
body:not(.page-home) .eyebrow { color: var(--tc-teal); }
body:not(.page-home) .text-link,
body:not(.page-home) .catalog-card a,
body:not(.page-home) .post-card a,
body:not(.page-home) .related-service-card > div > a { color: var(--tc-teal); }
body:not(.page-home) .text-link:hover,
body:not(.page-home) .catalog-card a:hover,
body:not(.page-home) .post-card a:hover { color: var(--tc-navy); }
body:not(.page-home) .btn--primary {
    background: linear-gradient(118deg, #087184 0%, var(--tc-blue) 100%);
    color: #fff;
    box-shadow: 0 13px 34px rgba(6,88,121,.19);
}
body:not(.page-home) .btn--ghost {
    color: var(--tc-blue);
    border: 1px solid rgba(12,99,135,.26);
    background: #fff;
}
body:not(.page-home) :is(.btn,.header-contact,.catalog-card,.post-card,.related-service-card) {
    transition: transform .35s var(--tc-ease), border-color .35s ease, background .35s ease, box-shadow .35s var(--tc-ease);
}
body:not(.page-home) .btn:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(6,52,84,.19); }

/* Header legível nas páginas internas, mesma paleta do header sólido da home. */
body:not(.page-home) .site-header {
    background: rgba(250,253,255,.97);
    border-bottom: 1px solid var(--tc-line);
    box-shadow: 0 10px 40px rgba(4,37,64,.055);
    backdrop-filter: blur(18px) saturate(1.25);
}
body:not(.page-home) .site-header .brand-lockup__name,
body:not(.page-home) .site-header .main-nav :is(a,.main-nav__services) { color: var(--tc-ink); }
body:not(.page-home) .site-header .main-nav :is(a:hover,a[aria-current="page"],.main-nav__services:hover) { color: var(--tc-teal); }
body:not(.page-home) .site-header .header-contact { border-radius: 7px; background: var(--tc-blue); color: #fff; box-shadow: none; }
body:not(.page-home) .site-header .header-contact:hover { background: var(--tc-navy-mid); }

/* ----- Aberturas das páginas: atmosfera científica com turquesa e azul-petróleo ----- */
body:not(.page-home) .page-hero,
body.page-service-detail .service-detail-hero {
    isolation: isolate;
    position: relative;
    background:
      radial-gradient(ellipse at 82% 12%, rgba(29,179,186,.23) 0%, transparent 41%),
      radial-gradient(ellipse at 5% 100%, rgba(13,106,146,.28) 0%, transparent 43%),
      linear-gradient(132deg, #051b2e 0%, #092b45 55%, #0a3a55 100%);
    overflow: hidden;
}
body:not(.page-home) .page-hero::before,
body.page-service-detail .service-detail-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: .25;
    background-image: radial-gradient(circle, rgba(140,236,231,.65) 1px, transparent 1.5px);
    background-size: 48px 48px;
    mask-image: linear-gradient(90deg,transparent 18%,#000 95%);
}
body:not(.page-home) .page-hero :is(h1,h2),
body.page-service-detail .service-detail-hero :is(h1,h2) { color: #fff; }
body:not(.page-home) .page-hero :is(.eyebrow,.page-hero__lead),
body.page-service-detail .service-detail-hero :is(.eyebrow,.service-detail-hero__lead) { color: #c8e7ee; }
body:not(.page-home) .page-hero .eyebrow,
body.page-service-detail .service-detail-hero .eyebrow { color: var(--tc-aqua); }
body:not(.page-home) .page-hero h1 span { color: var(--tc-aqua); }
body:not(.page-home) .page-hero { padding-block: clamp(72px,8vw,124px); }
body.page-service-detail .service-detail-hero { padding-block: clamp(70px,8vw,118px); }
body:not(.page-home) .page-hero__media,
body.page-service-detail .service-detail-hero__media {
    border-radius: 15px;
    border: 1px solid rgba(140,236,231,.25);
    box-shadow: 0 27px 80px rgba(0,14,31,.37);
}
body:not(.page-home) .page-hero .pill-row > *,
body.page-service-detail .service-breadcrumb { color: #c7e4ec; }
body.page-service-detail .service-breadcrumb a { color: var(--tc-aqua); }
body.page-service-detail .service-detail-hero__media figcaption { color: #fff; }

/* ----- Capas claras, módulos e cartões com a mesma linguagem editorial da home ----- */
body:not(.page-home) :is(.split-story,.services-catalog,.capability-section,.service-overview,.service-deliverables,.service-benefits,.related-services,.news-section,.service-scope,.service-process,.faq-preview,.institution-method,.technical-basis,.research-case) {
    background-color: var(--tc-paper);
}
body:not(.page-home) :is(.split-story,.service-overview,.service-benefits,.related-services,.news-section,.research-case) { background-color: #fff; }
body:not(.page-home) :is(.catalog-card,.capability-grid article,.service-scope-card,.service-deliverables__cards article,.service-process__timeline article > div,.related-service-card,.post-card,.faq-preview__list details) {
    border: 1px solid var(--tc-line);
    background: #fff;
    border-radius: 15px;
    box-shadow: none;
}
body:not(.page-home) :is(.catalog-card,.capability-grid article,.service-scope-card,.service-deliverables__cards article,.related-service-card,.post-card):hover {
    border-color: rgba(19,156,164,.38);
    box-shadow: 0 20px 48px rgba(6,52,84,.12);
}
body:not(.page-home) :is(.catalog-card__image img,.post-card__image img,.related-service-card__image img) { transition: transform .75s var(--tc-ease); }
body:not(.page-home) :is(.catalog-card,.post-card,.related-service-card):hover :is(.catalog-card__image img,.post-card__image img,.related-service-card__image img) { transform: scale(1.035); }
body:not(.page-home) :is(.catalog-card__icon,.service-mini-card__icon) { background: var(--tc-aqua-soft); }
body:not(.page-home) :is(.post-card__category,.catalog-card__body > span) { color: var(--tc-teal); }
body:not(.page-home) .capability-grid article:nth-child(2),
body:not(.page-home) .capability-grid article:nth-child(5) {
    background: linear-gradient(144deg,var(--tc-navy-mid),var(--tc-blue));
    border-color: rgba(140,236,231,.3);
}
body:not(.page-home) .capability-grid article:nth-child(2) :is(h3,p),
body:not(.page-home) .capability-grid article:nth-child(5) :is(h3,p) { color: #fff; }
body:not(.page-home) .capability-grid article:nth-child(2) > span,
body:not(.page-home) .capability-grid article:nth-child(5) > span { color: var(--tc-aqua); }
body:not(.page-home) .institution-method__steps li,
body:not(.page-home) .location-accordion details { border-color: var(--tc-line); }
body:not(.page-home) :is(.faq-preview,.service-process) { background-image: linear-gradient(140deg, var(--tc-mist), var(--tc-paper)); }
body:not(.page-home) .faq-preview__shell { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
body:not(.page-home) .faq-preview__list details { border-radius: 10px; }
body:not(.page-home) .faq-preview__list summary { color: var(--tc-ink); }
body:not(.page-home) .faq-preview__list details[open] summary { color: var(--tc-teal); }
body:not(.page-home) :is(.service-audience__shell,.contact-cta-panel__shell) {
    background: radial-gradient(circle at 90% 0%,rgba(39,176,182,.28),transparent 40%),linear-gradient(135deg,var(--tc-navy-deep),var(--tc-navy-mid));
    border: 1px solid rgba(140,236,231,.18);
    box-shadow: var(--tc-shadow);
}
body:not(.page-home) .service-audience__list li { border-color: rgba(140,236,231,.18); }
body:not(.page-home) .service-process__timeline article > span,
body:not(.page-home) .service-benefits__grid article span { background: linear-gradient(135deg,var(--tc-teal),var(--tc-blue)); }

/* Vitrine de projetos digitais e credenciais seguem o mesmo tema. */
body.page-service-detail .digital-portfolio-showcase {
    background: radial-gradient(circle at 16% 12%,rgba(140,236,231,.17),transparent 31%), var(--tc-paper);
}
body.page-service-detail .saas-projects-showcase {
    background: radial-gradient(circle at 89% 17%,rgba(25,178,184,.2),transparent 39%),
                radial-gradient(circle at 4% 90%,rgba(14,90,130,.32),transparent 42%),
                linear-gradient(140deg,var(--tc-navy-deep),var(--tc-navy-mid));
}
body.page-service-detail .saas-projects-showcase .eyebrow { color: var(--tc-aqua); }
body.page-service-detail .saas-projects-showcase__project > span { border-color: rgba(140,236,231,.45); color: var(--tc-aqua); }
body.page-service-detail .saas-projects-showcase__featured-label { color: var(--tc-aqua); border-color: rgba(140,236,231,.32); }
body.page-service-detail .technical-basis__role,
body.page-service-detail .technical-publication__type { color: var(--tc-teal); }
body.page-service-detail .technical-basis__note { border-left-color: var(--tc-teal); background: var(--tc-mist); }

/* ----- Contato e carreiras: superfícies refinadas, formulários intactos ----- */
body.page-contact .contact-simple,
body.page-careers .careers-page { background: linear-gradient(135deg,var(--tc-mist),#fff 66%); }
body.page-contact .contact-simple__shell {
    width: min(calc(100% - 44px),1180px);
    display: grid;
    grid-template-columns: minmax(290px,.8fr) minmax(0,1.2fr);
    gap: 0;
    align-items: stretch;
    border: 1px solid var(--tc-line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--tc-shadow);
    background: #fff;
}
body.page-contact .contact-simple__intro {
    max-width: none;
    margin: 0;
    padding: clamp(36px,5vw,70px);
    background: radial-gradient(circle at 0 0,rgba(30,170,185,.32),transparent 46%),linear-gradient(145deg,var(--tc-navy-deep),var(--tc-navy-mid));
}
body.page-contact .contact-simple__intro :is(h1,p:not(.eyebrow)) { color: #fff; }
body.page-contact .contact-simple__intro h1 span { color: var(--tc-aqua); }
body.page-contact .contact-simple__intro .eyebrow { color: var(--tc-aqua); }
body.page-contact .contact-simple__intro > p:last-child { color: #c3dce8; }
body.page-contact .contact-simple__form { padding: clamp(28px,4vw,62px); background: #fff; }
body.page-careers .careers-page__intro {
    padding: 32px;
    border-radius: 15px;
    background: linear-gradient(145deg,var(--tc-navy-deep),var(--tc-navy-mid));
    box-shadow: var(--tc-shadow);
}
body.page-careers .careers-page__intro :is(h1,p:not(.eyebrow)) { color: #fff; }
body.page-careers .careers-page__intro h1 span,
body.page-careers .careers-page__intro .eyebrow { color: var(--tc-aqua); }
body.page-careers .careers-page__intro > p:last-child { color: #c6e1e7; }
body.page-careers .careers-page__content { border-color: var(--tc-line); }
body:not(.page-home) :is(.careers-form,.contact-simple__form) :is(input:not([type="checkbox"]),textarea,select) {
    border-color: rgba(25,103,132,.28);
    background: #fbfdff;
    border-radius: 9px;
}
body:not(.page-home) :is(.careers-form,.contact-simple__form) :is(input:not([type="checkbox"]),textarea,select):focus { border-color: var(--tc-teal); box-shadow: 0 0 0 4px rgba(22,183,187,.12); background: #fff; }
body:not(.page-home) .career-file input[type="file"]::file-selector-button { background: var(--tc-blue); }

/* ----- Publicações, textos legais e tela 404 ----- */
body.page-article .article-page,
body.page-legal .legal-page,
body.page-error .legal-page { background: linear-gradient(160deg,var(--tc-mist),var(--tc-paper)); }
body:not(.page-home) :is(.article-page__shell,.legal-page__shell) {
    background: #fff;
    border: 1px solid var(--tc-line);
    border-radius: 16px;
    box-shadow: 0 14px 48px rgba(6,52,84,.075);
    padding: clamp(28px,4.4vw,64px);
}
body.page-article .article-page__shell,
body.page-legal .legal-page__shell { border-top: 4px solid #1aa9b5; }
body.page-article .article-page__cover { border-radius: 11px; }
body.page-article .article-page__content :is(a,h2,h3),
body.page-legal .legal-content a { color: var(--tc-teal); }
body.page-legal .legal-content h2 { color: var(--tc-ink); }
body.page-error .legal-page__shell { text-align: center; }

/* ----- Rodapé único, sem variação entre home e páginas internas ----- */
body .site-footer {
    position: relative;
    margin: 0;
    padding: clamp(54px,7vw,106px) 0 24px;
    color: #fff;
    background:
      radial-gradient(ellipse at 96% 8%,rgba(24,132,150,.27),transparent 47%),
      radial-gradient(ellipse at 2% 99%,rgba(10,82,112,.24),transparent 47%),
      linear-gradient(155deg,var(--tc-navy-deep) 0%,#08283e 60%,#051827 100%);
    border-top: 1px solid rgba(140,236,231,.24);
    overflow: hidden;
}
body .site-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg,transparent 5%,rgba(140,236,231,.78) 49%,transparent 95%);
    pointer-events: none;
}
body .site-footer .footer-panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(270px,.9fr) minmax(0,1.2fr);
    gap: clamp(30px,5.5vw,85px);
    padding: 0 0 clamp(40px,5vw,70px);
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
}
body .site-footer .brand-lockup--footer .brand-lockup__name { color: #fff; }
body .site-footer .brand-lockup--footer .brand-lockup__tagline { color: #b2d3df; }
body .site-footer .footer-brand p,
body .site-footer .footer-contact-list,
body .site-footer .footer-company-data { color: #c2d8df; line-height: 1.7; }
body .site-footer .footer-panel :is(p,li,a) { color: #c2d8df; }
body .site-footer .footer-panel h3 {
    margin: 0 0 12px;
    color: var(--tc-aqua);
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .15em;
}
body .site-footer .footer-links { grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(20px,4vw,46px); }
body .site-footer .footer-links > div { gap: 12px; }
body .site-footer .footer-links a { display: inline-flex; width: fit-content; font-size: .91rem; line-height: 1.45; transition: color .2s ease,transform .3s var(--tc-ease); }
body .site-footer .footer-links a:hover,
body .site-footer .footer-contact-list a:hover,
body .site-footer .footer-bottom a:hover { color: var(--tc-aqua); }
body .site-footer .footer-links a:hover { transform: translateX(3px); }
body .site-footer .footer-company-data strong { color: #fff; }
body .site-footer .footer-socials a {
    border: 1px solid rgba(140,236,231,.25);
    background: rgba(140,236,231,.08);
    transition: transform .3s ease,background .3s ease,border-color .3s ease;
}
body .site-footer .footer-socials a:hover { transform: translateY(-3px); background: rgba(140,236,231,.18); border-color: var(--tc-aqua); }
body .site-footer .footer-bottom {
    align-items: center;
    border-top: 1px solid rgba(140,236,231,.18);
    padding-top: 24px;
    color: #a9c2d0;
    font-size: .83rem;
}
body .site-footer .footer-bottom p,
body .site-footer .footer-bottom a { color: #a9c2d0; }

/* ----- Contraste garantido por superfície (correção 3.5.0) -----
   A tipografia global usa tinta escura nas superfícies claras. Componentes
   de fundo escuro precisam de exceções explícitas, com especificidade superior
   a body:not(.page-home) :is(h1,h2,h3,h4). Não usar !important global. */
body:not(.page-home) .page-hero :is(h1,h2,h3,h4),
body.page-service-detail .service-detail-hero :is(h1,h2,h3,h4),
body:not(.page-home) .contact-cta-panel__shell :is(h1,h2,h3,h4),
body.page-service-detail .service-audience__shell :is(h1,h2,h3,h4),
body.page-service-detail .saas-projects-showcase :is(.saas-projects-showcase__intro,.saas-projects-showcase__copy) :is(h1,h2,h3,h4) {
    color: #ffffff;
}
body:not(.page-home) .contact-cta-panel__shell :is(.eyebrow,.eyebrow--light),
body.page-service-detail .service-audience__shell :is(.eyebrow,.eyebrow--light),
body.page-service-detail .saas-projects-showcase :is(.eyebrow,.eyebrow--light) {
    color: var(--tc-aqua);
}
body:not(.page-home) .contact-cta-panel__shell :is(p:not(.eyebrow),li),
body.page-service-detail .service-audience__shell :is(p:not(.eyebrow),li),
body.page-service-detail .saas-projects-showcase :is(.saas-projects-showcase__intro,.saas-projects-showcase__copy) > p:not(.eyebrow) {
    color: #d5e7ed;
}
body.page-service-detail .saas-projects-showcase .saas-projects-showcase__project p {
    color: #cee0e8;
}
body.page-service-detail .saas-projects-showcase .saas-projects-showcase__project > span,
body.page-service-detail .saas-projects-showcase .saas-projects-showcase__featured-label {
    color: var(--tc-aqua);
}
/* Formulários e superfícies claras: conteúdo e placeholders distinguíveis. */
body:not(.page-home) :is(.careers-form,.contact-simple__form) :is(input:not([type="checkbox"]),textarea,select) {
    color: var(--tc-ink);
}
body:not(.page-home) :is(.careers-form,.contact-simple__form) :is(input:not([type="checkbox"]),textarea)::placeholder {
    color: #586d7e;
    opacity: 1;
}
body:not(.page-home) :is(.careers-form,.contact-simple__form) :is(label,.form-helper,.field-help) {
    color: var(--tc-ink);
}

/* ----- Responsividade e acessibilidade ----- */
@media (max-width: 980px) {
    body.page-contact .contact-simple__shell { grid-template-columns: 1fr; max-width: 740px; }
    body.page-contact .contact-simple__intro { padding: 38px; }
    body .site-footer .footer-panel { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    body:not(.page-home) .page-hero,
    body.page-service-detail .service-detail-hero { padding-block: 55px; }
    body.page-contact .contact-simple__shell { width: min(calc(100% - 28px),740px); }
    body.page-contact .contact-simple__intro { padding: 30px 24px; }
    body.page-contact .contact-simple__form { padding: 32px 24px; }
    body.page-careers .careers-page__intro { padding: 28px 24px; }
    body .site-footer { padding-top: 52px; }
    body .site-footer .footer-panel { padding: 0 0 34px; gap: 30px; }
    body .site-footer .footer-links { grid-template-columns: 1fr 1fr; gap: 24px; }
    body .site-footer .footer-bottom { align-items: flex-start; }
}
@media (max-width: 430px) {
    body .site-footer .footer-links { grid-template-columns: 1fr; }
    body .site-footer .footer-bottom { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    body:not(.page-home) :is(.btn,.catalog-card,.post-card,.related-service-card),
    body .site-footer :is(a,button) { animation: none !important; transition-duration: .01ms !important; }
}
