body{
margin:0;
font-family:system-ui,-apple-system,Segoe UI,Roboto;
background:#f3f5f7;
color:#222;
}

/* HERO FOTO */

.hero{
background-image:url("/img/guardamar.jpeg");
background-size:cover;
background-position:center;
height:300px;
display:flex;
align-items:center;
justify-content:center;
position:relative;
}

.hero::before{
content:"";
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
background:rgba(0,60,120,0.55);
}

.heroContent{
position:relative;
color:white;
text-align:center;
background:rgba(0,0,0,0.35);
padding:25px 40px;
border-radius:14px;
}

.heroContent h1{
margin:0;
font-size:34px;
}

.availabilityIndicator{
margin-top:10px;
font-size:18px;
padding:8px 16px;
border-radius:6px;
}

/* CONTENIDO */

.container{
max-width:1100px;
margin:auto;
padding:30px 20px;
}

/* TARJETAS CARGADORES */

.connectors{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:20px;
}

.connector{
background:white;
padding:20px;
border-radius:14px;
box-shadow:0 8px 22px rgba(0,0,0,0.08);
text-align:center;
transition:0.2s;
}

.connector:hover{
transform:translateY(-3px);
box-shadow:0 10px 28px rgba(0,0,0,0.12);
}

.status{
margin:10px auto;
padding:6px 14px;
border-radius:20px;
display:inline-block;
font-weight:600;
font-size:14px;
}

.statusAvailable{
background:#2ecc71;
color:white;
}

.statusOccupied{
background:#e74c3c;
color:white;
}

.statusCharging{
background:#f39c12;
color:white;
}

.statusOffline{
background:#7f8c8d;
color:white;
}

/* MAPA Y FOTO */

.infoGrid{
display:grid;
grid-template-columns:1fr 1fr;
gap:25px;
margin-top:30px;
}

#map{
height:420px;
border-radius:14px;
box-shadow:0 4px 15px rgba(0,0,0,0.1);
}

.photo img{
width:100%;
border-radius:14px;
box-shadow:0 4px 15px rgba(0,0,0,0.1);
}

/* MOVIL */

@media (max-width:768px){

.hero{
height:220px;
}

.heroContent h1{
font-size:26px;
}

.infoGrid{
grid-template-columns:1fr;
}

}
.heroContent h2{
margin-top:5px;
font-weight:400;
font-size:20px;
opacity:0.9;
}
.navBtn{
display:inline-block;
margin-top:10px;
padding:8px 12px;
background:#2c7be5;
color:white;
border-radius:6px;
text-decoration:none;
font-size:14px;
}

.navBtn:hover{
background:#1a5ec8;
}
.mapMarker{
width:28px;
height:28px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:14px;
color:white;
border:3px solid white;
box-shadow:0 0 6px rgba(0,0,0,0.4);
}

.green{background:#2ecc71;}
.red{background:#e74c3c;}
.orange{background:#f39c12;}
.gray{background:#7f8c8d;}

.availabilityIndicator{
font-size:20px;
padding:10px 20px;
border-radius:8px;
margin-top:10px;
display:inline-block;
font-weight:600;
}

.status {
padding:6px 14px;
border-radius:20px;
font-weight:600;
display:inline-block;
}

.status.available{
background:#2ecc71;
color:white;
}

.status.occupied{
background:#e74c3c;
color:white;
}

.status.charging{
background:#f39c12;
color:white;
}

.status.offline{
background:#7f8c8d;
color:white;
}
.progress-bar{
  width:100%;
  height:8px;
  background:#eee;
  border-radius:6px;
  margin-top:10px;
  overflow:hidden;
}

.progress{
  height:100%;
  width:0%;
  background:#2ecc71;
  transition:width 0.5s ease;
}

.time{
  font-size:13px;
  margin-top:6px;
  color:#555;
}
#chargers{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:20px;
margin-top:30px;
}

.connector{
background:white;
border-radius:12px;
padding:20px;
box-shadow:0 4px 10px rgba(0,0,0,0.08);
text-align:center;
}

.connector h3{
margin-bottom:10px;
}

.status{
display:inline-block;
padding:6px 12px;
border-radius:20px;
font-size:14px;
color:white;
margin-bottom:10px;
}

.status.available{background:#2ecc71;}
.status.occupied{background:#e74c3c;}
.status.charging{background:#f39c12;}
.status.offline{background:#95a5a6;}
/* TARJETAS */

.chargerCard{
    background:white;
    border-radius:12px;
    padding:20px;
    text-align:center;
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
    transition:transform .2s ease;
}

.chargerCard:hover{
    transform:translateY(-4px);
}

/* ESTADOS */

.status{
    display:inline-block;
    padding:6px 14px;
    border-radius:20px;
    font-size:14px;
    margin:10px 0;
    color:white;
}

.status-available{
    background:#22c55e;
}

.status-occupied{
    background:#ef4444;
}

.status-charging{
    background:#f59e0b;
}

.status-offline{
    background:#9ca3af;
}

/* BARRA DE CARGA */

.progressContainer{
    width:100%;
    height:6px;
    background:#e5e7eb;
    border-radius:6px;
    margin-top:10px;
}

.progressBar{
    height:100%;
    width:100%;
    background:#22c55e;
    border-radius:6px;
    animation:chargingProgress 4h linear forwards;
}

@keyframes chargingProgress{
    from{width:100%;}
    to{width:0%;}
}
.progressContainer{
    width:100%;
    height:6px;
    background:#e5e7eb;
    border-radius:6px;
    margin-top:10px;
}

.progressBar{
    height:100%;
    background:#22c55e;
    border-radius:6px;
    transition:width 0.5s ease;
}
