/* Alcance limitado al buscador; conserva la cabecera y el pie corporativos. */
.jobs-card { overflow: visible; }
.jobs-location-wrap { position: relative; }
#jobs_locations { position: absolute; z-index: 1050; top: 100%; left: 0; right: 0; list-style: none; margin: 4px 0 0; padding: 4px; max-height: min(240px, 35dvh); overflow-y: auto; overscroll-behavior: contain; background: white; border: 1px solid #8c3345; border-radius: 9px; box-shadow: 0 8px 20px #20293620; }
#jobs_locations [role=option] { padding: 12px; min-height: 44px; cursor: pointer; overflow-wrap: anywhere; line-height: 1.35; }
#jobs_locations [aria-selected=true], #jobs_locations [role=option]:hover { background: #f7e9ed; color: #6f2636; }
#jobs_location_help { display: block; color: #475467; margin-top: 6px; line-height: 1.4; }
.jobs-control[aria-invalid=true] { border-color: #b42318 !important; }
.jobs-btn:focus-visible, .jobs-view-link:focus-visible { outline: 3px solid #8c3345; outline-offset: 3px; }
.jobs-btn:disabled { opacity: .5; cursor: default; transform: none; }
.jobs-results { min-width: 0; }
#jobs_status { color: #475467; line-height: 1.5; }
.jobs-pagination { display: flex; gap: 12px; justify-content: space-between; align-items: center; margin-top: 20px; }
.jobs-pagination [hidden] { display: none; }
.jobs-pagination span { text-align: center; color: #475467; }
.jobs-offer { border: 1px solid #e5e7eb; border-radius: 12px; padding: 18px; margin-bottom: 12px; background: #fff; overflow-wrap: anywhere; }
.jobs-offer h3 { font-size: 1.1rem; line-height: 1.4; margin: 0 0 10px; color: #202936; }
.jobs-offer p { margin: 0 0 8px; line-height: 1.5; }
.jobs-offer time { color: #667085; font-size: .9rem; }
.jobs-offer .jobs-view-link { display: block; text-align: center; min-height: 44px; padding: 11px; margin-top: 14px; }
.jobs-cards { display: none; }
.jobs-desktop-table { width: 100%; border-collapse: collapse; }
.jobs-desktop-table th, .jobs-desktop-table td { text-align: left; padding: 14px 12px; border-bottom: 1px solid #e5e7eb; overflow-wrap: anywhere; }
.jobs-desktop-table th { color: #475467; border-bottom: 2px solid #8c3345; }
.jobs-desktop-table td:nth-child(2) { font-weight: 600; }
.jobs-desktop-table .jobs-view-link { min-height: 44px; padding-top: 12px; }
@media (max-width: 1023.98px), (pointer: coarse) and (max-width: 1400px) {
 .jobs-desktop-table { display: none; }
 .jobs-cards { display: block; }
 .jobs-shell { width: 100%; max-width: 850px; padding: 0 12px; }
 .jobs-page { padding: 20px 0 28px; }
 .jobs-page .jobs-heading { margin: 0 16px 18px; }
 .jobs-heading h1 { font-size: 1.8rem; }
 .jobs-heading p { font-size: .95rem; line-height: 1.4; }
 .jobs-filters { padding: 16px; border-radius: 18px 18px 0 0; }
 .jobs-results { padding: 8px 12px 16px; overflow-x: visible; }
 .jobs-actions { margin-top: 12px; }
 .jobs-pagination .jobs-btn { width: auto; flex: 0 0 auto; padding: 10px 12px; }
 .jobs-pagination { gap: 8px; }
}
@media (max-width: 575.98px) {
 .jobs-heading p { display: none; }
 .jobs-actions { display: grid; grid-template-columns: 1fr 1.6fr; }
 .jobs-btn { padding: 10px 8px; font-size: .9rem; }
}
@media (max-height: 500px) and (orientation: landscape) {
 #jobs_locations { max-height: 150px; max-height: 32dvh; }
 .jobs-page { padding-top: 12px; }
}

.jobs-extra summary { cursor: pointer; padding: 8px 0; min-height: 44px; color: #475467; font-weight: 600; }
.jobs-extra summary span { font-weight: 400; font-size: .85rem; }
.jobs-extra summary:focus-visible { outline: 3px solid #8c3345; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .jobs-page .jobs-btn { transition: none; } }
/* Safari en iPhone amplía la página al enfocar un campo con letra menor de 16 px (1rem aquí son 14,4 px). */
@media (pointer: coarse) { .jobs-control { font-size: 16px !important; } }
