:root{
    --color-primario:#2C3639;
    --color-secundario:#d5cebb;
    --color-terciario:#a27b5c;
    --color-hover:#3b5249;
    --color-blanco:#ffffff;
}

body{
    margin:0;
    padding:0;
    font-family:Arial, sans-serif;
    background-color:#f5f5f5;
    color:var(--color-primario);
}

/* PORTADA */
.portadaRutas{
    position:relative;
    width:100%;
    height:350px;
    overflow:hidden;
}

.portadaRutas img{
    width:100%;
    height:100%;
    object-fit:cover;
    filter:brightness(70%);
}

.contenidoPortada{
    position:absolute;
    top:50%;
    left:8%;
    transform:translateY(-50%);
    color:white;
    max-width:500px;
}

.contenidoPortada h1{
    font-size:55px;
    margin-bottom:20px;
}

.contenidoPortada p{
    font-size:20px;
    line-height:1.6;
}

/* CONTENEDOR PRINCIPAL */
.contenedorPrincipal{
    display:flex;
    gap:30px;
    padding:40px;
    background-color:#f3f1ec;
}

/* BARRA LATERAL */
.barraLateral{
    width:260px;
    background-color:white;
    border-radius:15px;
    padding:25px;
    height:fit-content;
    box-shadow:0 0 10px rgba(0,0,0,0.08);
}

.barraLateral h2{
    margin-top:0;
    font-size:24px;
}

.btnActivo{
    width:100%;
    padding:14px;
    border:none;
    border-radius:10px;
    background-color:var(--color-hover);
    color:white;
    font-size:16px;
    margin-bottom:20px;
    cursor:pointer;
}

.barraLateral ul{
    list-style:none;
    padding:0;
}

.barraLateral li{
    padding:12px 0;
    border-bottom:1px solid #ddd;
    transition:0.3s;
    cursor:pointer;
}

.barraLateral li:hover{
    color:var(--color-terciario);
    transform:translateX(5px);
}

/* NIVELES */
.niveles{
    margin-top:30px;
}

.niveles p{
    display:flex;
    align-items:center;
    gap:10px;
}

.facil,
.moderado,
.dificil{
    width:15px;
    height:15px;
    border-radius:50%;
    display:inline-block;
}

.facil{ background-color:#3fa34d; }
.moderado{ background-color:#e0a12b; }
.dificil{ background-color:#c0392b; }

/* RECOMENDADOR */
.recomendador{
    margin-top:35px;
    background-color:#f7f5f0;
    padding:20px;
    border-radius:15px;
}

.btnRecomendador{
    width:100%;
    padding:12px;
    border:none;
    border-radius:10px;
    background-color:var(--color-terciario);
    color:white;
    cursor:pointer;
    transition:0.3s;
}

.btnRecomendador:hover{
    background-color:var(--color-hover);
    transform:scale(1.03);
}

/* CONTENIDO */
.contenidoRutas{ flex:1; }

.categoria{
    margin-bottom:50px;
}

.categoria h2{
    font-size:35px;
    margin-bottom:25px;
    border-bottom:3px solid var(--color-terciario);
    width:fit-content;
    padding-bottom:5px;
}

/* TARJETAS */
.tarjetas{
    display:flex;
    flex-wrap:wrap;
    gap:25px;
}

.cardRuta{
    width:350px;
    background-color:white;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 0 12px rgba(0,0,0,0.08);
    transition:transform 0.3s ease, box-shadow 0.3s ease;
}

.cardRuta:hover{
    transform:translateY(-8px);
    box-shadow:0 10px 25px rgba(0,0,0,0.15);
}

.cardRuta img{
    width:100%;
    height:220px;
    object-fit:cover;
}

.infoRuta{ padding:20px; }

.infoRuta h3{
    margin-top:0;
    font-size:24px;
}

.infoRuta p{ line-height:1.6; }

/* TEXTOS DE DIFICULTAD */
.facilTexto{ color:#3fa34d; font-weight:bold; }
.moderadoTexto{ color:#d98c10; font-weight:bold; }
.dificilTexto{ color:#c0392b; font-weight:bold; }

/* BOTONES */
.infoRuta button{
    margin-top:10px;
    padding:12px 24px;
    border:none;
    border-radius:10px;
    background-color:var(--color-terciario);
    color:white;
    cursor:pointer;
    transition:transform 0.3s, background-color 0.3s;
}

.infoRuta button:hover{
    background-color:var(--color-hover);
    transform:scale(1.08);
}

/* MODAL */
.modal {
  display: none;
  position: fixed;
  z-index: 2000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.6);
  animation: fadeIn 0.3s ease-in;
}

.modal-contenido {
  background-color: #fff;
  margin: 10% auto;
  padding: 25px;
  border-radius: 12px;
  width: 80%;
  max-width: 600px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: slideDown 0.4s ease;
}

.modal-contenido h2 {
  margin-top: 0;
  color: var(--color-terciario);
}

.cerrar {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}

.cerrar:hover { color: var(--color-hover); }

/* Animaciones */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideDown {
  from { transform: translateY(-50px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* RESPONSIVE */
@media(max-width:1000px){
    .contenedorPrincipal{ flex-direction:column; }
    .barraLateral{ width:100%; }
    .tarjetas{ justify-content:center; }
}

@media(max-width:700px){
    .contenidoPortada h1{ font-size:38px; }
    .contenidoPortada p{ font-size:17px; }
    .cardRuta{ width:100%; }
}
