/* Regras compartilhadas de acesso, leitura e apresentação responsiva. */
:focus-visible {
    outline: 3px solid var(--color-primary, #6B1F2A);
    outline-offset: 4px;
}
.section--bg-primary :focus-visible,
.section--bg-dark :focus-visible,
.footer :focus-visible,
.panel--org:focus-visible,
.sticky-cta :focus-visible {
    outline-color: #FFFFFF;
}
.skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 2000;
    padding: 12px 20px;
    background: #FFFFFF;
    color: #6B1F2A;
    transform: translateY(-160%);
}
.skip-link:focus { transform: none; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: 100px; }

.form__input[aria-invalid="true"], .form__select[aria-invalid="true"] {
    border: 2px solid #FFFFFF;
    box-shadow: 0 0 0 2px #B00020;
}
.form__status {
    color: #FFFFFF;
    font-size: var(--text-sm);
}
.form a { text-decoration: underline; text-underline-offset: 3px; }
.btn-microcopy { opacity: 1; }
.btn { white-space: normal; text-align: center; }
.form__input, .form__select { min-width: 0; width: 100%; }
.form__input::placeholder { color: rgba(255, 255, 255, 0.8); }
.footer__bottom p { opacity: 1; }
body.page--clinica .footer__bottom [data-style],
body.page--nr-1 .footer__bottom [data-style] { opacity: 1; }
.page--nr-1 .hero { padding-top: 120px; }
.page--clinica .online-badge {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
    overflow-x: auto;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-align: center;
}
.faq-answer { overflow: visible; }
.faq-answer ul { list-style: disc; padding-left: 1.5em; }
body.page--clinica .section--bg-white [data-style*="clinica-style"],
body.page--clinica .section--bg-warm [data-style*="clinica-style"] {
    --color-gold: var(--color-gold-text);
}
.section:not(.section--bg-dark):not(.section--bg-primary) .section__label,
.section:not(.section--bg-dark):not(.section--bg-primary) .diferencial__number {
    color: var(--color-primary);
    opacity: 1;
}
/* Só esconder elementos quando o observer já está pronto para revelá-los. */
.reveal--pending {
    opacity: 0;
    transform: translateY(24px);
}
.reveal--left.reveal--pending { transform: translateX(-24px); }
.reveal--right.reveal--pending { transform: translateX(24px); }
.reveal--scale.reveal--pending { transform: scale(0.96); }
.reveal--fade.reveal--pending { transform: none; }
.reveal--visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .reveal--pending { opacity: 1; transform: none; }
}
@media (max-width: 767px) {
    .nav__links--open { max-height: calc(100dvh - 100px); overflow-y: auto; }
    .context-split > *, .cta-final__inner > *, .about__inner > * { min-width: 0; }
    .testimonials-grid, .dores-grid, .areas-grid { grid-template-columns: minmax(0, 1fr); }
    body.page--clinica .palestras-grid { grid-template-columns: minmax(0, 1fr); }
    body.page--clinica .btn-group { flex-wrap: wrap; }
    body.page--clinica #hero { padding-top: 110px; }
    .page--nr-1 .hero { padding-top: 110px; }
    .btn--large { padding: 18px 20px; }
}
.footer p { color: var(--color-accent-light); }
.section--bg-white .btn--outline,
.section--bg-warm .btn--outline,
.section--bg-nude .btn--outline {
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.section--bg-white .btn--outline:hover,
.section--bg-warm .btn--outline:hover,
.section--bg-nude .btn--outline:hover { color: #FFFFFF; background: var(--color-primary); }
.gateway-footer p { color: #D9C8C2; opacity: 1; }
body.page--index .gateway-footer [data-style] { opacity: 1; }
.page--index .panel--clinica .panel__label { color: #85651F; }
.form__direct-link { color: #FFFFFF; font-size: var(--text-sm); }
@media (max-width: 767px) {
    .nav:not(.nav--enhanced) { position: static; background: var(--color-bg); }
    .nav:not(.nav--enhanced) .nav__inner { flex-wrap: wrap; gap: 16px; }
    .nav:not(.nav--enhanced) .nav__links { display: flex; flex-wrap: wrap; }
}
/* A faixa clara mantém o texto legível sobre os dois painéis da entrada. */
.gateway-tagline { background: #F4F2F1; padding: 4px 12px; border-radius: 3px; }
.gateway-footer { position: relative; }
.page--index .split { min-height: calc(100svh - 72px); }
@media (min-width: 768px) {
    .page--index .panel { padding-top: clamp(180px, 22vh, 230px); padding-bottom: 64px; }
}
body.page--clinica #hero .container { max-width: 1040px; }
