*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Arial, Helvetica, sans-serif;
}

html{
scroll-behavior:smooth;
}

body{
padding-top:75px;
overflow-x:hidden;
color:#333;
}

button, a{
-webkit-tap-highlight-color: transparent;
}


/** HEADER **/

#header{
position:fixed;
top:0;
left:0;
width:100%;
background:#0f2433;
z-index:1000;

height:80px;      /* altura fija */
overflow:visible; /* permite sobresalir logo */
}

.nav-container{
max-width:1200px;
margin:auto;
display:flex;
justify-content:space-between;
align-items:center;

height:80px;
padding:0 20px;
}

/* LOGO */

.logo{
display:flex;
align-items:center;
}

.logo img{

height:130px;      /* logo grande */
width:auto;

margin-top:15px;   /* sobresale hacia abajo */

object-fit:contain;

}

/** MENU  **/

#menu{

display:flex;
gap:25px;

}


#menu a{

color:#cfd4d8;
text-decoration:none;
transition:0.3s;
font-size:15px;

}

#menu a:hover,
#menu a.active{
color:#caa25a;
}


/** CTA**/

.cta{

background:#caa25a;

padding:10px 20px;

border-radius:6px;

text-decoration:none;

color:#0f2433;

font-weight:bold;

}

#mobile-toggle{

display:none;

color:white;

font-size:22px;

cursor:pointer;

}



/* HERO */

body{
padding-top:80px;
}

.hero{

min-height:85vh;
height:auto;

background:

url("img/hero-comunidad.jpg")

center/cover;

display:flex;

justify-content:center;
align-items:center;

text-align:center;

position:relative;

padding-top:100px;
padding-bottom:80px;

}

.hero-badge{
font-size:15px;
color:#caa25a;
margin-bottom:20px;
font-weight:600;
}

.hero-gradient{

position:absolute;

inset:0;

top:0;
left:0;
width:100%;
height:100%;
background:
rgba(15,36,51,.75);
z-index:0;


}

.hero-content{

position:relative;

z-index:1;

color:white;

max-width:700px;

}

.hero-content h1{

font-size:48px;

margin-bottom:20px;

}

.hero-content p{

color:#cfd4d8;

margin-bottom:30px;

}


/****   BOTONES   **/

.hero-buttons{

display:flex;

gap:20px;

justify-content:center;

flex-wrap:wrap;

}

.btn-primary{

background:#caa25a;

padding:14px 28px;

border-radius:6px;

text-decoration:none;

color:#0f2433;

font-weight:bold;

}

.btn-secondary{

border:2px solid #caa25a;

padding:12px 28px;

text-decoration:none;

color:#caa25a;

border-radius:6px;

}



/* SECCIONES */

section{

min-height:100vh;
display:flex;
align-items:center;
padding:100px 20px;
scroll-margin-top:100px;

}

.container{

max-width:1100px;
margin:auto;
width:100%;
text-align:center;

}

h2{
font-size:42px;
margin-bottom:30px;
color:#0f2433;
}

p{
font-size:18px;
line-height:1.6;
}


/* SERVICIOS */

.servicios{
background:#f5f7f9;
}  

.servicios-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:30px;
}

.servicio{
padding:40px;
border-radius:12px;
box-shadow:0 10px 30px rgba(0,0,0,0.08);
transition:0.3s;
}

.servicio:hover{
transform:translateY(-8px);
}

/* COMUNIDADES */

.comunidades{
background:#0f2433;
color:white;
}

.comunidades h2{
color:white;
}

.comunidades-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:30px;
}

.comunidad-card{
background:#0b1f2c;
padding:40px;
border-radius:12px;
transition:0.3s;
}

.comunidad-card:hover{
transform:translateY(-8px);
}

/* NOSOTROS */

.nosotros{
background:white;
}

/* CONTACTO */

.contacto{
background:#f5f7f9;
min-height:auto !important;
display:block;
padding:80px 20px;
}

/** FORMULARIO  **/

.formulario{
max-width:600px;
margin:40px auto;
display:flex;
flex-direction:column;
gap:15px;
}

.formulario input,
.formulario textarea{
padding:15px;
border-radius:6px;
border:1px solid #ccc;
}

.formulario button{
background:#caa25a;
border:none;
padding:15px;
font-weight:bold;
cursor:pointer;
border-radius:8px;
transition:.3s;
}

.formulario button:hover{
    opacity:.9;
}

.check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-size:14px;
    text-align:left;
    line-height:1.5;
}

.check input{
    margin-top:4px;
}

.check a{
    color:#0f2433;
    font-weight:bold;
}

/* COOKIES */

.cookies-banner{
    position:fixed;
    bottom:50px; /* para que no tape la barra móvil */
    left:0;
    width:100%;
    background:#ffffff;
    padding:15px 20px;
    box-shadow:0 -2px 15px rgba(0,0,0,.15);
    z-index:9999;

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
}

.cookies-banner p{
    margin:0;
    font-size:14px;
    flex:1;
}

.cookies-banner a{
    color:#caa25a;
    font-weight:bold;
    text-decoration:none;
}

.cookies-buttons{
    display:flex;
    gap:10px;
}

.cookies-buttons button{
    border:none;
    padding:10px 15px;
    border-radius:6px;
    cursor:pointer;
    font-weight:bold;
}

#acceptCookies{
    background:#caa25a;
    color:#0f2433;
}

.secondary{
    background:#e5e5e5;
}

/* ANIMACIONES */

.fade-in{
opacity:0;
transform:translateY(60px);
transition:all 1s ease;
}

.fade-in.visible{
opacity:1;
transform:translateY(0);
}


/* FOOTER */

.footer{
background:#0b1f2c;
color:#cfd4d8;
position:relative;
font-size:14px;
}

.footer-container{
max-width:1200px;
margin:auto;
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:20px;
padding:40px 20px;
}

.footer-col h3,
.footer-col h4{
color:#caa25a;
margin-bottom:12px;
font-size:15px;
}

.footer-col p,
.footer-col a{
display:block;
color:#cfd4d8;
text-decoration:none;
margin-bottom:8px;
font-size:13px;
line-height:1.6;
}

.footer-col a:hover{
color:#caa25a;
}

.footer-bottom{
text-align:center;
padding:15px;
/**background:#0b1f2c;  **/
background:transparent;
border-top:1px solid rgba(255,255,255,.08);
font-size:12px;
line-height:1.4;
color:#cfd4d8;
}

.footer-bottom p{
font-size:12px !important;
margin:0;
}

/* WHATSAPP */

.whatsapp{

position:fixed;

bottom:70px;
right:15px;

width:50px;
height:50px;

background:#25D366;

border-radius:50%;

display:flex;

justify-content:center;
align-items:center;

font-size:24px;

text-decoration:none;

z-index:999;

}



/* BARRA MÓVIL */

.mobile-bar{

display:none;

}



/* MÓVIL */

@media(max-width:768px){

body{

padding-bottom:70px;

}


/* HEADER */

.nav-container{

height:70px;

}

.logo img{

height:55px;

}

.cta{

display:none;

}

#mobile-toggle{

display:block;
font-size:22px;
margin-left:8px;

}

#menu{

display:none;

flex-direction:column;

background:#0f2433;

position:absolute;

top:70px;

left:0;

width:100%;

padding:20px;

}

#menu.active{

display:flex;

}


/* HERO */

.hero{

min-height:75vh;

padding:

40px 20px 80px;

}

.hero-content{

margin-top:-30px;

}

.hero-content h1{

font-size:34px;

line-height:1.1;

}

.hero-content p{

font-size:18px;

}

.hero-buttons{

flex-direction:column;

gap:12px;

}

.btn-primary,
.btn-secondary{

width:100%;

padding:14px;

}


/* GRID */

.servicios-grid,
.comunidades-grid{

grid-template-columns:
1fr;

}


/* FOOTER */

.footer-container{

grid-template-columns:
1fr;

text-align:center;

}


/* BARRA MÓVIL */

.mobile-bar{

display:flex;

position:fixed;

bottom:0;
left:0;

width:100%;

height:46px;

z-index:3000;

}

.mobile-btn{

flex:1;

display:flex;

justify-content:center;
align-items:center;

font-size:11px;

text-decoration:none;

color:white;

}

.call{

background:#091822;

}

.whatsapp-btn{

background:#25D366;

}

.budget{

background:#caa25a;

color:#0f2433;

}

}

/* ===== AJUSTES FINALES MÓVIL ===== */


@media (max-width:768px){

body{
padding-bottom:55px;
padding-top:70px;
overflow-x:hidden;
}

/* HEADER */

#header{
height:70px;
background:#0f2433;
}

.nav-container{
height:70px;
padding:0 18px;
display:flex;
justify-content:space-between;
align-items:center;
}

.logo img{
height:70px;
width:auto;
display:block;
}

.cta{
display:none !important;
}

#mobile-toggle{
display:block;
font-size:22px;
color:white;
cursor:pointer;
margin-right:5px;
}

.colegiado{
    font-size:16px;
    font-weight:600;
    margin:20px 0;
}

/* HERO */

.hero{
display:flex;
align-items:center;
justify-content:center;

min-height:92vh;
padding-top:80px;
padding-bottom:70px;


}

.hero-content{
margin-top:-50px;
max-width:90%;
}

.hero-content h1{
font-size:22px;
line-height:1.1;

font-weight:700;

max-width:280px;
margin:auto auto 20px;
}

.hero-content p{
font-size:15px;
line-height:1.5;

max-width:280px;

margin:
0 auto 25px;
}

/* BOTONES */

.hero-buttons{
display:flex;
flex-direction:column;
gap:12px;
margin-top:15px;

}

.btn-primary,
.btn-secondary{

width:100%;

padding:16px;

border-radius:12px;

font-size:17px;

font-weight:600;

}


.btn-secondary{

border:2px solid rgba(
202,162,90,.8);

background:
rgba(15,36,51,.25);

backdrop-filter:
blur(6px);

color:#d6ae66;
padding:14px;
}

/**   mas pequeñas las letras **/
.servicios h2,
.comunidades h2,
.nosotros h2,
.contacto h2{
    font-size:24px;
}

.servicios p,
.comunidades p,
.nosotros p,
.contacto p{
    font-size:12px;
}

/* MENÚ DESPLEGABLE */

#menu{
display:none;
position:absolute;
top:70px;
left:0;
width:100%;
background:#0f2433;
padding:20px;
flex-direction:column;
gap:18px;


transition:.3s;
opacity:0;
visibility:hidden;
}


#menu.active{
display:flex;

opacity:1;
visibility:visible;
}


/* BARRA INFERIOR */

.mobile-bar{
height:44px;
}

.mobile-btn{
font-size:10px;
padding:5px;
}


/* WHATSAPP */

.whatsapp{

display:none;

}

/** OPCIONAL SI QUIERO se puede quitar**/
.footer-bottom{
font-size:11px;
padding:12px;
}

.footer-bottom p{
font-size:11px !important;
}

}
.cookies-banner{
    bottom:44px;
    padding:12px;
}

.cookies-banner p{
    font-size:12px;
}

.cookies-buttons{
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
}

.cookies-buttons button{
    font-size:12px;
    padding:8px 12px;
}

/* PÁGINAS LEGALES */

.legal{
padding:140px 20px 80px;
background:#f5f7f9;
min-height:100vh;
}

.legal .container{
max-width:900px;
text-align:left;
}

.legal h1{
color:#0f2433;
margin-bottom:30px;
}

.legal h2{
font-size:24px;
margin-top:35px;
margin-bottom:15px;
color:#0f2433;
}

.legal p,
.legal li{
font-size:16px;
line-height:1.8;
margin-bottom:15px;
}

.legal ul{
padding-left:25px;
}