/* Ajustes de legibilidad, interacción táctil y pantallas de poca altura. */
html { scroll-padding-top: 112px; }
.hero-shade { background: linear-gradient(90deg, rgba(8,25,18,.8), rgba(8,25,18,.68)), linear-gradient(0deg, rgba(8,25,18,.3), transparent 35%); }
.image-caption { background: #173f35; backdrop-filter: none; border-color: #c7d5ca; font-size: 13px; }
input:not([type=hidden]), textarea { font-size: 16px; border-color: #819185; }
input::placeholder, textarea::placeholder { color: #66746b; opacity: 1; }
.form-required, .form-privacy { color: var(--muted); }
.contact-intro .contact-location { color: var(--muted) !important; }
.card-number, .step-number { color: #627668; }
.text-link { min-height: 44px; }
.breadcrumb { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; }
.language-switch summary { min-width: 44px; min-height: 44px; }
.language-menu a { min-height: 44px; }
.video-toggle {
    position: absolute;
    right: 76px;
    bottom: calc(100% + 18px);
    width: 44px;
    height: 44px;
}
.hero-inner { padding-bottom: 156px; }
.contact-close { width: 44px; height: 44px; }
.contact-dialog {
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    overscroll-behavior: contain;
    scroll-padding-block: 70px 24px;
}
.contact-intro h2 { padding-right: 28px; }
.contact-direct a { font-size: 13px; }
.form-required, .form-privacy { font-size: 12px !important; }
.contact-form .form-privacy { font-size: 12px !important; }
.field-error { font-size: 13px !important; }
.form-notice { font-size: 14px; }
.footer-links a { min-height: 32px; display: flex; align-items: center; }
.footer-lead input, .footer-lead input:focus { background: #fff; color: var(--ink); border-color: #819185; }
.footer-lead input::placeholder { color: #66746b; }
.footer-legal a { min-height: 32px; display: inline-flex; align-items: center; }
.legal-index a { min-height: 44px; display: flex; align-items: center; }
.legal-copy p, .legal-copy li { font-size: 16px; }
input[aria-invalid], textarea[aria-invalid] { border-color: #ad574e; }

@media (max-width: 800px) {
    .footer-links a { font-size: 14px; min-height: 44px; margin-bottom: 4px; }
    .footer-legal { font-size: 12px; gap: 4px 24px; }
    .footer-legal a { min-height: 44px; }
    .footer-bottom { font-size: 11px; }
    .stats-row span { font-size: 11px; }
    .documents-caption span { font-size: 12px; }
    .document-card .text-link { font-size: 14px; }
    .document-meta { font-size: 12px; }
    .contact-direct a { font-size: 13px; }
}

@media (max-width: 600px) {
    html { scroll-padding-top: 126px; }
    .hero { height: auto; min-height: max(650px, calc(100svh - 76px)); max-height: none; }
    .hero-inner { min-height: inherit; height: auto; padding-block: 50px 172px; }
    .hero-eyebrow { font-size: 11px; }
    .hero-description { font-size: 15px; line-height: 1.75; }
    .hero-actions .button, .hero-actions .text-link { font-size: 14px; }
    .hero-actions .text-link { padding-block: 10px; }
    .hero-principles { font-size: 12px; gap: 10px; }
    .hero-principles svg { width: 16px; height: 16px; }
    .hero-bottom { bottom: 24px; }
    .eyebrow { font-size: 11px; }
    .split-copy p:not(.eyebrow), .section-heading > p, .service-card p,
    .projects-intro p, .platform-strip p:not(.eyebrow), .page-intro,
    .contact-band p:not(.eyebrow), .partner-inner p { font-size: 16px; line-height: 1.8; }
    .service-card .text-link, .contact-band .button { font-size: 14px; }
    .service-card { padding: 24px; }
    .stats-row { gap: 24px; }
    .stats-row > div { min-width: 110px; }
    .stats-row span { font-size: 11px; }
    .tag-list li, .tech-inset span { font-size: 12px; }
    .tech-inset { min-width: 0; max-width: 100%; padding: 18px 20px; }
    .tech-inset strong { font-size: 15px; }
    .footer-company address { font-size: 13px; }
    .footer-company address span { font-size: 12px; }
    .footer-email { font-size: 14px; min-height: 32px; }
    .footer-links { justify-self: stretch; column-gap: 20px; }
    .footer-links h2 { font-size: 15px; }
    .footer-lead label { font-size: 14px; }
    .footer-lead .button { font-size: 14px; min-height: 52px; }
    .footer-bottom { padding-bottom: max(84px, calc(env(safe-area-inset-bottom) + 70px)); }
    .footer-legal { font-size: 12px; gap: 4px 20px; padding-right: 70px; }
    .footer-legal a { min-height: 44px; }
    .contact-dialog { width: calc(100% - 24px); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
    .contact-intro { padding: 26px 24px 22px; }
    .contact-intro > p:not(.eyebrow) { font-size: 14px; line-height: 1.7; }
    .contact-direct { padding-top: 20px; }
    .contact-direct span { font-size: 12px; }
    .contact-direct a { font-size: 13px; }
    .contact-form-wrap { padding: 24px; }
    .form-field label { font-size: 14px; }
    .contact-form .button { font-size: 14px; min-height: 52px; }
    .contact-form .form-privacy { font-size: 12px !important; }
    .contact-close { top: 10px; right: 10px; }
    .legal-copy { font-size: 16px; line-height: 1.8; }
    .legal-index { gap: 4px 24px; font-size: 14px; }
}

@media (max-height: 500px) {
    .hero { height: auto; max-height: none; min-height: 620px; }
    .hero-inner { height: auto; min-height: inherit; padding-block: 44px 156px; }
    .contact-dialog { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
}
