body {
  font-family: 'Roboto', Arial, sans-serif;
  background: #f5f5f5;
  margin: 0;
  min-height: 100vh;
}

.contenedor {
  width: 100%;
  max-width: clamp(80vw, 1100px, 90vw);
  margin: 40px auto;
  background: rgba(255,255,255,0.35); /*blanco semitransparente*/
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(25, 118, 210, 0.15), 0 1.5px 8px rgba(229, 57, 53, 0.12);
  padding: 32px 24px;
  backdrop-filter: blur(12px); /*difuminado fuerte*/
  -webkit-backdrop-filter: blur(12px); /*compatibilidad con safari*/
  border: 1.5px solid rgba(255,255,255,0.25);
}
.header-con-imagenes {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0 24px 0;
	width: 100%
	box-sizing: border-box;
}

.img-header {
	display: block;
	max-height: 82px;
	max-width: 250;
	width: auto;
	height: auto;
	object-fit: contain;
	flex-shrink: 0;
	transition: max-width 0.3s, max-height 0.3s;
}

.header-con-imagenes h1 {
  flex: 1;
  text-align: center;
  font-size: 2rem;
  margin: 0 16px;
  color: #1976d2;
  font-weight: 700;
  /*margin-bottom: 32px;*/
  letter-spacing: 2px;
  line-height: 1.2;
  white-space: normal;
}

.filtros {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin-bottom: 32px;
}

.filtros select,
.filtros input {
  padding: 10px 14px;
  border: 1.5px solid #1976d2;
  border-radius: 8px;
  font-size: 1rem;
  outline: none;
  transition: border-color 0.3s;
}

.filtros input:focus,
.filtros select:focus {
  border-color: #e53935;
}

.table-responsive {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch:
}

table {
	width: 100%;
	table-layout: auto;
	border-collapse: collapse;
}

.tabla-departamento {
  margin-bottom: 48px;
}

.titulo-departamento {
  background: linear-gradient(90deg, #1976d2 60%, #e53935 100%);
  color: #fff;
  padding: 12px 18px;
  border-radius: 9px 9px 0 0;
  font-size: 0.92rem;
  letter-spacing: 1px;
  margin-bottom: 0;
}

.tabla-directorio {
  width: 100%;
  border-collapse: collapse;
  background: #f8fafc;
  border-radius: 0 0 14px 14px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(25, 118, 210, 0.07);
}

.tabla-directorio thead {
  background: linear-gradient(90deg, #1976d2 60%, #e53935 100%);
  color: #fff;
}

.tabla-directorio th, .tabla-directorio td {
  padding: 12px 10px;
  text-align: left;
  font-size: 0.9rem;
  word-break: break-word;
}

.tabla-directorio tbody tr {
  background: #fff;
  transition: transform 0.22s cubic-bezier(.4,2.3,.3,1), box-shadow 0.22s;
  cursor: pointer;
}

.tabla-directorio tbody tr:hover {
  transform: scale(1.01);
  box-shadow: 0 4px 16px rgba(25, 118, 210, 0.11), 0 1px 4px rgba(229, 57, 53, 0.09);
  background: linear-gradient(90deg, #e3f2fd 60%, #ffebee 100%);
  z-index: 2;
}

footer {
  margin-top: 32px;
  text-align: right;
  font-size: 0.8rem;
  color: #6c7577d;
  padding: 0 18px 12px 0;
  text-shadow: 0 2px 8px rgba(255,255,255,0.45), 0 1px 1px rgba(0,0,0,0.22);
  font-weight: 500;
}

footer a {
  color: #1976d2;
  text-decoration: underline;
  font-weight: 600;
}

/*.footer-texto {
	background: rgba(255,255,255,0.72);
	color: #222;
	padding: 8px 12 px;
	border-radius; 12px;
	display: inline-block;
	box-shadow: 0 2px 8px rgba(25, 118, 210, 0.08);
}*/

@media (max-width: 900px) {
  .contenedor {
    padding: 10px;
  }
  .filtros {
    flex-direction: column;
    gap: 10px;
  }
  .tabla-directorio th, .tabla-directorio td {
    padding: 8px 4px;
    font-size: 0.8rem;
  }
}

.barra-sucursales {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-bottom: 18px;
  background: rgba(255,255,255,0.10);
  border-radius: 18px;
  padding: 16px 10px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 6px 24px rgba(25, 118, 210, 0.10), 0 1.5px 8px rgba(229, 57, 53, 0.09);
  overflow-x: auto;
}

.barra-sucursales button {
  background: rgba(255,255,255,0.30);
  color: #1976d2;
  border: 1.5px solid rgba(25, 118, 210, 0.18);
  outline: none;
  padding: 12px 28px;
  border-radius: 32px;
  font-size: 1rem;
  font-family: 'Roboto', Arial, sans-serif;
  cursor: pointer;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(25, 118, 210, 0.10);
  transition: 
	background 0.25s cubic-bezier(.4,2,.3,1),
	color 0.18s,
	transform 0.18s, 
	box-shadow 0.18s,
	border-color 0.18s;
   position: relative;
   overflow: hidden;
   backdrop-filter: blur(2px);
}

.barra-sucursales button.active,
.barra-sucursales button:hover {
  background: rgba(229, 57, 53, 0.13);
  color: #e53935;
  border-color: #e53935;
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 6px 24px rgba(229, 57, 53, 0.11), 0 2px 8px rgba(25, 118, 210, 0.09);
}

.contenedor-busqueda {
	display: flex;
	justify-content: right;
	margin-bottom: 32px;
}

#busqueda {
  width: 100%;
  max-width: 400px;
  padding: 12px 18px;
  border: 1.5px solid #1976d2;
  border-radius: 24px;
  font-size: 1.08rem;
  font-family: 'Roboto', Arial, sans-serif;
  outline: none;
  background: rgba(255,255,255,0.60);
  color: #222;
  box-shadow: 0 2px 8px rgba(25, 118, 210, 0.07);
  transition: border-color 0.22s, box-shadow 0.22s;
}

#busqueda:focus {
  border-color: #e53935;
  box-shadow: 0 4px 16px rgba(229, 57, 53, 0.13);
}

@media (max-width: 700px) {
  .barra-sucursales {
    gap: 8px;
    padding: 8px 2px;
    border-radius: 14px;
  }
  .barra-sucursales button {
    font-size: 0.98rem;
    padding: 8px 18px;
    border-radius: 20px;
  }
  .contenedor-busqueda {
    margin-bottom: 20px;
    padding: 0 6px;
  }
  #busqueda {
    max-width: 100%;
    font-size: 1rem;
    padding: 10px 12px;
  }
 
 @media (max-width: 900px) {
	 .img-header {
		 max-width: 120px;
		 height: 60px;
	 }
	 .header-con-imagenes h1 {
		font-size: 1.2rem;
		margin: 0 8px;
	 }
 }
 
 @media (max-width: 600px) {
	 .img-header {
		 max-width: 70px;
		 height: 40px;
	 }
	 .header-con-imagenes {
		 padding: 10px 0 16px 0;
		 gap: 8px;
	 }
	 .header-con-imagenes h1 {
		 font-size: 1rem;
		 margin: 0 4px;
	 }
 }
 
@media (max-width: 700px) {
.tabla-directorio, .tabla-directorio tbody, .tabla-directorio tr, .tabla-directorio td {
	display: block;
	width: 100%;
	/*box-sizing: border-box;*/
	}
.tabla-directorio thead {
	display: none;
	}
.tabla-directorio tr {
	margin-bottom: 16px;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 2px 4px rgba(0,0,0,0.07);
	border: 1px solid #ddd;
	padding: 12px;
	}
.tabla-directorio td {
	border: none;
	padding: 8px 0;
	position: relative;
	padding-left: 40%;
	min-height: 30px;
	border-bottom: 1px solid #eee;
	font-size: 0.8rem;
	line-height: 1.4;
	text-align: left;
	word-break: break-word;
	/*white-space: normal;*/
	box-sizing: border-box;
	vertical-align: top;
	background: #fff;
	/*z-index: 1;*/
	}
td:last-child {
	border-bottom: none;
	}
.tabla-directorio td:before {
	content: attr(data-label);
	position: absolute;
	left: 12px;
	top: 8px;
	width: 35%;
	min-width: 60px;
	font-weight: bold;
	color: #1976d2;
	font-size: 0.93rem;
	white-space: normal;
	overflow-wrap: break-word;
	line-height: 1.4;
	text-align: left;
	box-sizing: border-box;
	pointer-events: none;
	/*z-index: 0;*/
	}
}

@media (max-width: 700px) {
/* Efecto hover en las cards*/
table tr:hover {
transform: scale(1.02);
box-shadow: 0 4px 8px rgba(0,0,0,0.15);
transition: transform 0.2s, box-shadow 0.2s;
}
/*Espaciado del contenedor en móvil*/
.contenedor {
padding: 10px 8px;
}
/*Título de departamento/sucursal en móvil*/
.titulo-departamento {
font-size: 0.9rem;
text-align: center;
margin-bottom: 16px;
}
}