/* ASBAC Digital — Patch 34: polimento visual conservador
   Não altera layout estrutural; apenas estados, profundidade e acessibilidade. */
:root {
  --asbac-premium-shadow-sm: 0 8px 24px rgba(7, 38, 58, .07);
  --asbac-premium-shadow-md: 0 16px 42px rgba(7, 38, 58, .11);
  --asbac-premium-shadow-lg: 0 26px 64px rgba(7, 38, 58, .16);
  --asbac-premium-focus: 0 0 0 4px rgba(216, 173, 93, .24);
  --asbac-premium-ease: cubic-bezier(.2,.75,.25,1);
}

html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }

/* Foco visível e acessível */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #d8ad5d !important;
  outline-offset: 3px;
  box-shadow: var(--asbac-premium-focus);
}

/* Cabeçalho: profundidade sem mudar tamanho ou posicionamento */
.portal-header,
.asbac-app-hero-top {
  transition: box-shadow .28s var(--asbac-premium-ease), background-color .28s var(--asbac-premium-ease);
}
.portal-header.asbac-header-scrolled {
  box-shadow: 0 14px 38px rgba(0, 20, 32, .24);
}

/* Botões: resposta tátil discreta */
.portal-btn, .portal-btn-outline, .gold-btn, .ghost-btn,
.button, input[type="submit"], button, .btn {
  transition: transform .18s var(--asbac-premium-ease), box-shadow .22s var(--asbac-premium-ease),
              border-color .22s ease, background-color .22s ease, color .22s ease;
}
.portal-btn:hover, .portal-btn-outline:hover, .gold-btn:hover, .ghost-btn:hover,
.button:hover, input[type="submit"]:hover, button:hover, .btn:hover {
  transform: translateY(-1px);
}
.portal-btn:hover, .gold-btn:hover, input[type="submit"]:hover {
  box-shadow: 0 10px 26px rgba(216, 173, 93, .24);
}
.portal-btn:active, .portal-btn-outline:active, .gold-btn:active, .ghost-btn:active,
.button:active, input[type="submit"]:active, button:active, .btn:active {
  transform: translateY(0) scale(.985);
}

/* Cards: elevação homogênea e elegante */
.focus-card, .main-news, .side-news, .service-card, .contact-card, .comunicado-card,
.hero-feature-card, .asbac-info-card, .app-card, .dashboard-card, .card {
  transition: transform .24s var(--asbac-premium-ease), box-shadow .28s var(--asbac-premium-ease),
              border-color .24s ease;
}
.focus-card:hover, .main-news:hover, .side-news:hover, .comunicado-card:hover,
.hero-feature-card:hover, a.asbac-info-card:hover, a.app-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--asbac-premium-shadow-lg);
  border-color: rgba(216, 173, 93, .42);
}
.service-card:hover, .contact-card:hover, .asbac-info-card:hover, .app-card:hover,
.dashboard-card:hover, .card:hover {
  box-shadow: var(--asbac-premium-shadow-md);
}

/* Imagens: zoom mínimo somente em cards clicáveis */
.focus-card img, .main-news img, .side-news img, .hero-feature-card img {
  transition: transform .55s var(--asbac-premium-ease), filter .35s ease;
}
.focus-card:hover img, .main-news:hover img, .side-news:hover img, .hero-feature-card:hover img {
  transform: scale(1.025);
  filter: saturate(1.04) contrast(1.02);
}

/* Títulos e links */
.portal-menu a:not(.portal-btn):not(.portal-btn-outline) { position: relative; }
.portal-menu a:not(.portal-btn):not(.portal-btn-outline)::after {
  content: "";
  position: absolute;
  left: 0; right: 100%; bottom: -6px;
  height: 2px; border-radius: 99px;
  background: #f2cd7a;
  transition: right .22s var(--asbac-premium-ease);
}
.portal-menu a:not(.portal-btn):not(.portal-btn-outline):hover::after { right: 0; }

/* Formulários */
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
input:not([type="checkbox"]):not([type="radio"]):focus, select:focus, textarea:focus {
  border-color: #c69a3b !important;
  box-shadow: var(--asbac-premium-focus) !important;
}

/* Mensagens */
.asbac-alert, .alert, .messagelist li {
  border-radius: 14px;
  box-shadow: var(--asbac-premium-shadow-sm);
}

/* Entrada suave, aplicada por JS; conteúdo continua visível sem JavaScript */
.asbac-polish-ready .asbac-reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .42s ease, transform .42s var(--asbac-premium-ease);
}
.asbac-polish-ready .asbac-reveal.asbac-revealed {
  opacity: 1;
  transform: none;
}

/* Celular: sem exageros de movimento */
@media (max-width: 700px) {
  .focus-card:hover, .main-news:hover, .side-news:hover, .comunicado-card:hover,
  .hero-feature-card:hover, a.asbac-info-card:hover, a.app-card:hover {
    transform: none;
  }
  .portal-btn, .portal-btn-outline, .gold-btn, .ghost-btn { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .asbac-polish-ready .asbac-reveal { opacity: 1; transform: none; }
}

/* =========================================================
   PATCH 34.1 — CONTRASTE DOS FORMULÁRIOS DA ÁREA DO ASSOCIADO
   ========================================================= */

.area-associado form label,
.area-associado .form-label,
.area-associado fieldset legend,
.associado-main form label,
.associado-main .form-label,
.associado-main fieldset legend,
main form label,
main .form-label,
main fieldset legend {
    color: #ffffff !important;
    font-weight: 700;
}

.area-associado .helptext,
.area-associado .help-text,
.area-associado form small,
.associado-main .helptext,
.associado-main .help-text,
.associado-main form small,
main form .helptext,
main form .help-text,
main form small {
    color: #d7e6ef !important;
}

.area-associado form input[type="text"],
.area-associado form input[type="email"],
.area-associado form input[type="tel"],
.area-associado form input[type="number"],
.area-associado form input[type="date"],
.area-associado form input[type="file"],
.area-associado form select,
.area-associado form textarea,
.associado-main form input[type="text"],
.associado-main form input[type="email"],
.associado-main form input[type="tel"],
.associado-main form input[type="number"],
.associado-main form input[type="date"],
.associado-main form input[type="file"],
.associado-main form select,
.associado-main form textarea,
main form input[type="text"],
main form input[type="email"],
main form input[type="tel"],
main form input[type="number"],
main form input[type="date"],
main form input[type="file"],
main form select,
main form textarea {
    color: #102a3d !important;
    background: #ffffff !important;
}

.area-associado form input::placeholder,
.area-associado form textarea::placeholder,
.associado-main form input::placeholder,
.associado-main form textarea::placeholder,
main form input::placeholder,
main form textarea::placeholder {
    color: #667b8c !important;
    opacity: 1;
}

.area-associado form input[type="radio"] + label,
.area-associado form input[type="checkbox"] + label,
.associado-main form input[type="radio"] + label,
.associado-main form input[type="checkbox"] + label,
main form input[type="radio"] + label,
main form input[type="checkbox"] + label {
    color: #102a3d !important;
}

.area-associado .errorlist,
.associado-main .errorlist,
main form .errorlist {
    color: #ffd6d6 !important;
}
