/* 1. Ocultamos el enlace pero lo mantenemos presente para el Tabulador */
.skip-link {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* 2. Cuando recibe el foco (TAB), aparece como una "etiqueta" flotante */
.skip-link:focus {
    position: fixed !important; /* FIXED para que flote sobre la cabecera municipal */
    top: 20px !important;
    left: 20px !important;
    width: auto;
    height: auto;
    clip: auto;
    margin: 0;
    padding: 15px 25px;
    background-color: #004a99 !important; /* Azul Granada */
    color: #ffffff !important;
    font-weight: bold;
    font-size: 1.1em;
    z-index: 1000000; /* Asegura que está por encima de logos y menús */
    text-decoration: none;
    border: 3px solid #ffbf47 !important; /* Borde ámbar de alta visibilidad */
    border-radius: 4px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5);
}


/* Cabecera de la ficha (Igual a RESOLUCIÓN OFICIAL) */
.ficha-header {
    background-color: #004a99; /* Azul municipal */
    color: #ffffff !important;
    padding: 14px 20px;
    font-weight: 800;
    text-transform: uppercase;
    font-size: 1.05rem;
    letter-spacing: 0.5px; /* Mejora la legibilidad en mayúsculas */
    
}

.ficha-header.gris { background-color: #55595c; }

/* Cuerpo de la ficha */
.ficha-body {
    padding: 25px;
    line-height: 1.6;
    color: #333;
}

/* Botones dentro de fichas (Estilo "Nueva Consulta") */
.btn-ficha {
	background-color: #004a99; /* #f1f3f5;*/
    color: #ffffff !important; /*#333 */
    text-decoration: none !important;
    font-weight: bold;
    border-radius: 4px;
    display: flex !important;
    width: fit-content;
    margin: 20px auto 10px; 
    padding: 12px 24px;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    min-height: 48px !important;/* Estándar de Accesibilidad (Touch Targets) */
    min-width: 48px !important;
   transition: background-color 0.2s; /* Feedback */
   cursor: pointer;            /* Cambia el cursor a la mano, como en los enlaces */
    font-family: inherit;       /* Obliga al botón a usar la misma fuente que el resto */
    font-size: 1rem;            /* Asegura el tamaño del texto */
    line-height: normal;        /* Evita que el botón colapse el texto */
    border: 2px solid #003366;  /* El borde que definimos para el relieve */
    appearance: none;           /* Quita estilos de sistema (iOS/Windows) */
    -webkit-appearance: none;
}

.btn-ficha:hover { /* Efecto Hover para feedback visual */
   /* background-color: #e2e6ea; 
    border-color: #004a99;*/
    background-color: #003366 !important; 
    border-color: #002244 !important;
    color: #ffffff !important;
}

/* Espaciado para el enlace del BOE */
section p a {
    display: inline-block;
    padding: 2px 0;
}

/* 2. Añadimos un indicador de foco de alto contraste (Obligatorio RD 1112/2018) */
.btn-ficha:focus {
     outline: 3px solid #ffbf47 !important; 
     outline-offset: 2px; 
     box-shadow: 0 0 0 4px rgba(0, 74, 153, 0.4); 
     box-sizing: border-box;
}

/* Clase para ocultar visualmente pero mantener para lectores de pantalla */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Clase para mostrar el enlace solo cuando recibe el FOCO del teclado */
.sr-only-focusable:active, 
.sr-only-focusable:focus {
    position: absolute;
    top: 10px; /* Un poco de margen para que no pegue al borde */
    left: 10px;
    width: auto;
    height: auto;
    margin: 0;       /* ¡CRÍTICO! Resetea el margin: -1px de sr-only */
    clip: auto;     /* Resetea el recorte */
    overflow: visible;
    display: block;  /* Fuerza a que ocupe espacio visual */
    
    padding: 12px 20px;
    background-color: #004a99; /* Azul Granada */
    color: white !important;
    font-weight: bold;
    z-index: 100000; /* Por encima de TODO */
    text-decoration: none;
    border: 2px solid #ffbf47; /* Borde ámbar de accesibilidad */
    border-radius: 4px;
}

/* --- ESTILOS PARA EL PIE DE COMPROMISO --- */
.footer-buzon {
    margin-top: 50px;
    border-top: 1px solid #ddd;
    padding-top: 25px;
    clear: both;
}

.caja-compromiso {
    background-color: #f8f9fa;
    border-left: 5px solid #004a99; /* Azul municipal para coherencia */
    padding: 25px;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    transition: background-color 0.3s ease;
    text-align: justify;
}

.caja-compromiso:hover {
    background-color: #f1f3f5;
}

.caja-compromiso h4 {
    margin-top: 0;
    color: #004a99;
    font-size: 1.15rem;
    font-weight: bold;
}

.caja-compromiso p {
    font-size: 0.95rem;
    line-height: 1.6;
    color: #212529; /* Contraste alto para accesibilidad */
    margin-bottom: 0;
}

/* --- ESTILOS ESPECÍFICOS PARA FORMULARIOS --- */

/* Contenedor de cada par Etiqueta-Campo */
.form-group {
    margin-bottom: 2.5rem !important;
    margin-top: 1.5rem !important;
    width: 100%;
}

/* Etiquetas de los campos (Accesibilidad: Contraste y tamaño) */
.form-label {
    display: block;
    font-weight: bold;
    margin-bottom: 0.8rem;
    color: #212529;
    font-size: 1.05rem;
    margin-top: 5px; /* Pequeño margen superior extra */
}

/* Estilo para los campos de texto y áreas de texto (inputs/textareas) */
.form-control {
    display: block;             /* Fuerza a que se comporte como un bloque */
    width: 100% !important;     /* Obliga a ocupar todo el ancho de la ficha */
    max-width: 100%;            /* Evita que se salga del recuadro */
    padding: 12px 15px;         /* Más espacio interno para que sea cómodo */
    border: 1px solid #ced4da;
    border-radius: 4px;
    box-sizing: border-box; /* Evita que el campo se salga del contenedor */
    font-size: 1rem;
    color: #495057;
    background-color: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}

/* Para quitar el amarillo del autocompletado si te molesta visualmente */
.form-control:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 30px white inset !important;
}

/* Foco accesible para campos de entrada (Coherente con botones) */
.form-control:focus {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 2px;
    border-color: #004a99;
    box-shadow: 0 0 0 4px rgba(0, 74, 153, 0.4);
}

/* Ajuste para que el área de descripción sea amplia y cómoda */
textarea.form-control, #descripcion,[name="descripcion"] {
    min-height: 250px !important; 
    width: 100% !important;
    display: block !important;
    line-height: 1.6 !important;
    padding: 15px !important;
    font-family: Arial, sans-serif !important; /* Asegura que no use fuentes de sistema */
    font-size: 1rem !important;
    white-space: pre-wrap !important; /* CRÍTICO: Para que se respeten los saltos de línea */
    resize: vertical; 
    overflow-y: auto;
}

/* Mejora la visibilidad del placeholder en algunos navegadores */
.form-control::placeholder {
    color: #6c757d;
    opacity: 1;
}

/* Indicador de campo obligatorio */
.campo-requerido {
    color: #cc0000;
    font-weight: bold;
    margin-left: 3px;
    font-size: 1.1rem;
}

/* Pequeñas notas o ayudas debajo de los campos */
.form-nota {
    display: block;
    margin-top: 8px;
    font-size: 0.9rem;
    color: #6c757d;
    font-style: italic;
}


/* --- CONTENEDOR DE ACCIONES FINAL --- */
.contenedor-botones {
    display: flex;
    justify-content: center;
    gap: 25px;
    margin-top: 40px;
    margin-bottom: 40px;
}

/* --- VARIANTES DE BOTONES --- */

/* Botón Principal (Enviar) */
.btn-enviar {
    background-color: #004a99 !important; /* Azul Granada */
    color: #ffffff !important;
    /*border: none !important;*/
    min-height: 48px !important; /* El estándar de Google para dedos */
    min-width: 48px !important;
    padding: 12px 24px !important;
    margin-bottom: 10px; /* Separación entre botones */
}

.btn-enviar:hover {
    background-color: #003366 !important; /* Un tono más oscuro al pasar el ratón */
}

/* Botón Secundario (Volver) */
.btn-volver {
    background-color: #6c757d !important; /* Gris institucional */
    color: #ffffff !important;
    border: 2px solid #495057 !important; /*none !important;*/
    min-height: 48px !important; /* El estándar de Google para dedos */
    min-width: 48px !important;
    padding: 12px 24px !important;
    margin-bottom: 10px; /* Separación entre botones */
}

.btn-volver:hover {
    background-color: #5a6268 !important;
}
/* --- ESTILOS ESPECÍFICOS PARA PÁGINA DE GRACIAS --- */

/* Contenedor destacado para los códigos de seguimiento */
.resaltado-codigos {
    text-align: center;
    background-color: #f8f9fa;
    padding: 25px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    margin-bottom: 20px;
}

/* Título de los códigos */
.codigo-label {
    font-size: 1.1rem;
    margin-bottom: 10px;
    display: block;
}

/* Valor de los códigos (Número y PIN) */
.codigo-valor {
    color: #004a99;
    font-size: 1.8rem;
    font-weight: 800;
    display: block;
}

/* Espaciado para el PIN (letras separadas para lectura fácil) */
.pin-valor {
    letter-spacing: 2px;
}

/* Lista de ayuda sin viñetas manuales */
.lista-ayuda {
    list-style-type: none;
    padding-left: 0;
    margin-top: 15px;
}

.lista-ayuda li {
    margin-bottom: 12px;
    padding-left: 25px;
    position: relative;
}

.lista-ayuda li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: #004a99;
    font-weight: bold;
}

/* Variante verde para la cabecera de la resolución */
.ficha-header.verde { 
    background-color: #28a745 !important; 
}

/* Diseño de filas etiqueta-valor para resúmenes */
.dato-fila {
    display: flex;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.dato-etiqueta {
    width: 30%;
    font-weight: bold;
    color: #555;
}

.dato-valor {
    width: 70%;
    color: #212529;
}

/* Caja de estado destacada */
.estado-destacado {
    background-color: #f8f9fa;
    border-left: 5px solid #004a99;
    padding: 15px 20px;
    margin: 20px 0;
}

/* --- ESTILOS PARA COMUNICACIONES OFICIALES (EMAIL) --- */

/* Contenedor principal del mensaje */
.email-container {
    font-family: 'Segoe UI', Arial, sans-serif;
    line-height: 1.6;
    color: #1a1a1a;
    max-width: 600px;
    margin: auto;
}

/* Cabecera institucional */
.email-header {
    border-bottom: 3px solid #004a99;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

/* Ficha de datos (Basada en la ficha que ya usamos) */
.email-card {
    background-color: #f8f9fa;
    border-left: 6px solid #004a99;
    padding: 20px;
    margin: 20px 0;
}

/* Botón de acción institucional */
.email-btn {
    background-color: #004a99;
    color: #ffffff !important;
    padding: 12px 25px;
    text-decoration: none;
    border-radius: 4px;
    font-weight: bold;
    display: inline-block;
}

/* Pie de página legal */
.email-footer {
    margin-top: 30px;
    padding-top: 15px;
    border-top: 1px solid #eee;
    font-size: 0.85rem;
    color: #666;
}
/* --- Estilos para el bloque de Privacidad --- */
.pie-legal {
   display: block;
   margin-top: 50px;
    padding: 5px 0; /* Hace el enlace más fácil de pulsar en móvil */ /*30px 20px;*/
    border-top: 1px dotted #ccc;
    text-align: center;
    font-size: 0.9em;
    color: #666;
    background-color: #fafafa; /* Fondo sutil para diferenciarlo del cuerpo */
    border-radius: 0 0 8px 8px;
}

.pie-legal-titulo {
    color: #333;
    margin-bottom: 20px;
    font-size: 1.1em;
    font-weight: bold;
}

/* Grid para el pie legal (2 columnas) */
.pie-legal-grid {
   display: flex; 
    flex-wrap: wrap; 
    justify-content: space-between; 
    gap: 30px; 
    margin-top: 15px;
    text-align: left;
    max-width: 850px;
    margin-left: auto;
    margin-right: auto;
}

.pie-legal-normativa {
    font-size: 0.8em;
    margin-top: 5px;
}
.pie-legal-enlace-contenedor {
    margin-top: 25px;
    border-top: 1px solid #eee;
    padding-top: 15px;
}
.enlace-privacidad {
    color: #004a99;
    text-decoration: underline;
    font-weight: bold;
}


/* Para que la descripción ocupe todo el ancho y se vea como un bloque */
.fila-descripcion {
    flex-direction: column !important;
    border-bottom: none !important;
}
.fila-descripcion .dato-etiqueta {
    width: 100% !important;
    margin-bottom: 10px;
}
.dato-valor-bloque {
    background: #fdfdfd;
    padding: 15px;
    border: 1px solid #eee;
    border-radius: 4px;
}

/* Estado en azul destacado */
.estado-valor-enfasis {
    color: #004a99;
    font-weight: 800;
}



.col-legal { 
    font-size: 0.9em; 
    flex: 1; 
    min-width: 280px; /* Evita que las columnas sean demasiado estrechas */
    line-height: 1.6;
}

/* Responsive: en móvil una sola columna */
@media (max-width: 600px) {
    .pie-legal-grid { flex-direction: column; text-align: center; }
}
/* Control de visibilidad de la resolución */
.seccion-visible {
    display: block !important;
}

.seccion-oculta {
    display: none !important;
}