:root { scroll-behavior: smooth; }
body { font-size: 1rem; line-height: 1.65; }
img { max-width: 100%; }
.brand-logo { height: 40px; width: auto; }
.tp-reading { max-width: 1060px; }
.tp-reading p, .tp-reading li { font-size: 1rem; }
.tp-reading > p { max-width: 85ch; }
.tp-hero-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; height: auto; }
.tp-card-image { width: 100%; height: 230px; object-fit: cover; }
.tp-table { min-width: 580px; background: white; }
.tp-table th, .tp-table td { padding: 1rem; vertical-align: top; }
.tp-table thead { background: #e9f0fb; }
.tp-table tbody th { font-weight: 600; min-width: 160px; }
.tp-faq details { background: white; border: 1px solid #d4ddeb; border-radius: 12px; margin-bottom: 12px; padding: 18px 22px; }
.tp-faq summary { cursor: pointer; font-weight: 600; }
.tp-faq p { margin: 16px 0 0; }
.tp-steps li { padding: .35rem 0; }
.tp-skip { position: fixed; left: 1rem; top: -100px; z-index: 9999; padding: 12px 20px; background: #102a4c; color: white; }
.tp-skip:focus { top: 12px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #0f5bd7; outline-offset: 4px; }
footer a { overflow-wrap: anywhere; }
.breadcrumb { margin-bottom: 0; }
.breadcrumb-item { overflow-wrap: anywhere; }
#contactoEstado:empty { display: none; }
#contactoEstado[data-state="error"] { color: #a51d22; }
#contactoEstado[data-state="success"] { color: #146c43; }
.text-white-50 { color: rgba(255,255,255,.86) !important; }
@media (max-width: 575px) { .display-5 { font-size: 2.05rem; } .tp-table th, .tp-table td { padding: .75rem; } }
@media (prefers-reduced-motion: reduce) { :root { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
