body{
font-family: Arial, sans-serif;
margin:0;
background:#f5f7fa;
}

*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    overflow-x: hidden;
    width: 100%;
}

/* HEADER */
header{
color:white;
display:flex;
justify-content:space-between;
padding:20px;
align-items: center;
}

nav {
    display: flex;
    align-items: center;
}

nav a{
margin-left:20px;
text-decoration:none;
color:#333;
}

nav a img {
    display: block;
}

/* HERO */
.hero{
background:linear-gradient(135deg,#2b5cc7,#3ba4f5);
color:white;
text-align:center;
padding:120px 20px 80px 20px;
position:relative;
}

.hero h1{
font-size:50px;
max-width:800px;
margin:auto;
}

.hero p{
margin-top:15px;
font-size:18px;
opacity:0.9;
}

.hero-contenido{
max-width:900px;
margin:auto;
}

/* BUSCADOR */
.buscador{
margin-top:40px;
display:flex;
justify-content:center;
gap:15px;
flex-wrap:wrap;
}

.buscador select{
padding:12px;
border-radius:6px;
border:none;
min-width:200px;
}

.buscar{
background:#16a34a;
color:white;
border:none;
padding:12px 18px;
border-radius:6px;
font-size:18px;
cursor:pointer;
}

.buscar:hover{
background:#15803d;
}

/* OLAS ABAJO */
.olas{
position:absolute;
bottom:0;
left:0;
width:100%;
height:60px;
background:rgba(255,255,255,0.15);
border-radius:50% 50% 0 0;
}

/* CONTENEDOR */
.contenedor{
max-width:1100px;
margin:auto;
padding:60px 20px;
}

.subtitulo{
color:#666;
margin-bottom:20px;
}

/* RUTAS */
.rutas{
display:flex;
gap:25px;
flex-wrap:wrap;
}

.ruta{
flex:1;
min-width:250px;
padding:30px;
border-radius:12px;
color:white;
transition:0.3s;
}

.ruta:hover{
transform:translateY(-8px);
box-shadow:0 15px 30px rgba(0,0,0,0.2);
}

.card1{
background:linear-gradient(135deg,#ff7e5f,#ff4b2b);
}

.card2{
background:linear-gradient(135deg,#a18cd1,#6a5acd);
}

.card3{
background:linear-gradient(135deg,#56ccf2,#2f80ed);
}

.icono{
font-size:40px;
margin-bottom:15px;
}

.info{
display:flex;
justify-content:space-between;
margin-top:15px;
}

.dificultad{
background:rgba(255,255,255,0.3);
padding:5px 10px;
border-radius:20px;
font-size:12px;
}

/* CATEGORIAS */
.categorias{
display:flex;
gap:20px;
flex-wrap:wrap;
}

.categoria{
flex:1;
min-width:200px;
background:white;
padding:25px;
border-radius:10px;
text-align:center;
box-shadow:0 3px 10px rgba(0,0,0,0.1);
transition:0.3s;
}

.categoria:hover{
transform:translateY(-5px);
}

/* BLOG */
.blog-section{
display:flex;
gap:40px;
}

.blog-left{
flex:2;
}

.blog-item{
padding:15px 0;
border-bottom:1px solid #ddd;
cursor:pointer;
transition:0.3s;
}

.blog-item:hover{
color:#2563eb;
padding-left:10px;
}

.titulo{
font-weight:bold;
}

.descripcion{
font-size:14px;
color:#666;
}

/* MAPA */
.blog-right{
flex:1;
}

.mapa{
background:#eee;
padding:40px;
border-radius:10px;
text-align:center;
}

/* NEWSLETTER */
.newsletter{
text-align:center;
padding:60px 20px;
background:linear-gradient(90deg,#2563eb,#06b6d4);
color:white;
}

.newsletter input{
padding:10px;
border:none;
border-radius:5px;
}

.newsletter button{
padding:10px 20px;
border:none;
border-radius:5px;
background:white;
color:#2563eb;
font-weight:bold;
margin-left:10px;
cursor:pointer;
}

/* FOOTER */
footer{
background:#111;
color:white;
text-align:center;
padding:25px;
}

/* SESION */
.headerSesion{
	background:white;
}

.sesion1 {
    background:linear-gradient(135deg,#2b5cc7,#3ba4f5);
}

.sesion {
    text-align: center;  
    padding: 40px;
}

.sesion form {
    border: 2px solid black; 
    padding: 30px;
    max-width: 500px;
    margin: 0 auto;
    border-radius: 10px;
}

.sesion input {
    width: 100%; 
    padding: 10px;
    margin-bottom: 15px;
    border: 1px solid #ddd; 
	box-sizing: border-box;
    border-radius: 5px;
}

.sesion form button {
    width: 100%;
    padding: 10px;
    background-color: #333;
    color: white;
    border: none;
    cursor: pointer;
    border-radius: 5px;
}

.sesion button:hover {
    background-color:#2563eb;
    color: #333;
}

.sesion > a button {
    width: 400px;
    padding: 10px 25px;
    margin: 8px auto;
    background-color: #333;
    color: white;
    border: none;
    cursor: pointer;
    border-radius: 5px;
    transition: background-color 0.3s;
}

/* =========================
   RESPONSIVE - TABLET
   ========================= */
@media (max-width: 768px) {
    header {
        flex-direction: column;
        gap: 15px;
        padding: 15px;
    }

    nav {
        flex-wrap: wrap;
        justify-content: center;
        gap: 5px;
    }

    nav a {
        margin-left: 10px;
    }

    .hero {
        padding: 80px 20px 60px 20px;
    }

    .hero h1 {
        font-size: 32px;
    }

    .hero p {
        font-size: 16px;
    }

    .buscador {
        flex-direction: column;
        align-items: center;
    }

    .buscador select {
        width: 100%;
        max-width: 350px;
    }

    .ruta {
        min-width: 100%;
    }

    .categoria {
        min-width: calc(50% - 10px);
    }

    .blog-section {
        flex-direction: column;
    }
}

/* =========================
   RESPONSIVE - MOVIL
   ========================= */
@media (max-width: 480px) {

    .logo img {
        width: 140px;
        height: 35px;
    }

    .hero h1 {
        font-size: 24px;
    }

    .categoria {
        min-width: 100%;
    }
	
    footer{
        background: none;
		margin-top:30px;
    }
	.sesion {
		padding: 20px 10px;
	}

    .sesion form {
		max-width: 100%;
		width: 90%;
		margin: 0 auto;
	}

    .sesion input {
        padding: 10px;
    }

    .sesion form button {
        width: 100%;
    }

    .sesion > a button {
		width: 90%;
		margin: 8px auto;
		display: block;
	}
}