*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Inter,sans-serif;
}

body{
background:#f4f7fb;
}

.hero{
height:100vh;
background:url("img/hero-7.jpg") center/cover no-repeat;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
position:relative;
color:white;
}

.hero-overlay{
position:absolute;
width:100%;
height:100%;
background:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.5));
}

.hero-content{
position:relative;
max-width:900px;
animation:fadeUp 1.2s ease;
}

.hero-subtitle{
font-style:italic;
margin-bottom:20px;
opacity:.9;
}

.hero h1{
font-size:90px;
font-weight:800;
line-height:1.1;
}

.hero h1 span{
display:block;
font-size:30px;
font-weight:400;
margin-top:10px;
}

.scroll{
font-size:14px;
opacity:.8;
cursor:pointer;
}


.container{
width:1200px;
margin:auto;
padding:70px 0;
}

.tag{
color:#ff7a00;
font-size:13px;
font-weight:600;
letter-spacing:1px;
}

h2{
font-size:34px;
margin-top:10px;
color:#0b2c5f;
}

h2 span{
color:#ff7a00;
}

.desc{
margin-top:15px;
color:#6b7280;
width:500px;
line-height:1.6;
}

.cards{
display:flex;
gap:25px;
margin-top:40px;
}

.card{
background:white;
padding:25px;
border-radius:14px;
width:260px;
box-shadow:0 5px 20px rgba(0,0,0,.05);
transition:.3s;
}

.card:hover{
transform:translateY(-5px);
}

.card img{
width:70px;
height:70px;
border-radius:50%;
object-fit:cover;
}

.card h3{
margin-top:15px;
color:#0b2c5f;
}

.rol{
display:inline-block;
margin-top:8px;
padding:5px 14px;
border-radius:20px;
font-size:13px;
font-weight:600;
}

.azul{
background:#e7f0ff;
color:#1e4ed8;
}

.naranja{
background:#fff1e7;
color:#ff7a00;
}

.card p{
margin-top:10px;
color:#6b7280;
font-size:14px;
line-height:1.5;
}

.ministerios{
background:white;
margin-top:40px;
}

.areas{
display:flex;
gap:25px;
margin-top:40px;
}

.area{
padding:30px;
border-radius:14px;
width:260px;
color:white;
}

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

.area.azul{
background:#0b4aa2;
}

.area.naranja{
background:#ff7a00;
}

.servidores{
padding:120px 20px;
background:#f7f9fc;
font-family:'Montserrat',sans-serif;
}

.container{
max-width:1200px;
margin:auto;
text-align:center;
}

.tag{
background:#eaf2ff;
color:#2563eb;
padding:6px 16px;
border-radius:30px;
font-size:13px;
font-weight:600;
}

.servidores h2{
font-size:38px;
margin:15px 0;
}

.servidores h2 span{
color:#2563eb;
}

.desc{
max-width:650px;
margin:auto;
color:#555;
margin-bottom:60px;
}

.cards{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:30px;
}

/* CARD */

.card{
background:#fff;
border-radius:18px;
overflow:hidden;
box-shadow:0 10px 30px rgba(0,0,0,0.08);
transition:all .4s ease;
}

/* animación solo cuando js agregue clase */

.card.show{
transform:translateY(0);
opacity:1;
}

.card:hover{
transform:translateY(-10px) scale(1.02);
box-shadow:0 20px 45px rgba(0,0,0,0.15);
}

/* IMAGE */

.img-box{
position:relative;
height:200px;
overflow:hidden;
}

.img-box img{
width:100%;
height:100%;
object-fit:cover;
transition:transform .6s ease;
}

.card:hover img{
transform:scale(1.1);
}

/* CONTENT */

.card-content{
padding:25px;
}

.card-content h3{
margin-bottom:10px;
font-size:20px;
}

.rol{
display:inline-block;
padding:4px 12px;
border-radius:20px;
font-size:12px;
margin-bottom:10px;
}

.azul{
background:#e0edff;
color:#2563eb;
}

.naranja{
background:#fff1e6;
color:#ff7a00;
}

.card p{
font-size:14px;
color:#555;
}

.cta-servir{
position:relative;
height:460px;
background:url("img/iglesia-foto-1.jpg") center/cover fixed no-repeat;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
font-family:'Montserrat',sans-serif;
color:#fff;
overflow:hidden;
}

/* OVERLAY OSCURO PARA CONTRASTE */

.cta-overlay{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:linear-gradient(
130deg,
rgba(8,22,60,0.85),
rgba(20,60,120,0.70)
);
z-index:1;
}

/* CONTENIDO */

.cta-content{
position:relative;
z-index:2;
max-width:820px;
padding:20px;
animation:fadeUp 1s ease forwards;
}

/* ETIQUETA SUPERIOR */

.cta-tag{
font-size:12px;
letter-spacing:3px;
opacity:.85;
}

/* TITULO */

.cta-servir h2{
color:#ffffff;
font-size:48px;
margin:15px 0;
font-weight:700;
}

.cta-servir h2 span{
color:#ffffff;
}

/* TEXTO */

.cta-servir p{
font-size:18px;
line-height:1.6;
color:#e8e8e8;
margin-bottom:40px;
}

/* HORARIOS */

.cta-horarios{
display:flex;
align-items:center;
justify-content:center;
gap:40px;
}

.cta-hora p{
font-size:14px;
opacity:.7;
}

.cta-hora h3{
font-size:30px;
margin-top:4px;
font-weight:600;
}

/* DIVISOR */

.cta-line{
width:1px;
height:45px;
background:rgba(255,255,255,0.4);
}

/* ANIMACIÓN */

@keyframes fadeUp{
from{
opacity:0;
transform:translateY(40px);
}
to{
opacity:1;
transform:translateY(0);
}
}

@media(max-width:768px){

.cta-servir{
background-attachment:scroll;
height:420px;
}

.cta-servir h2{
font-size:36px;
}

.cta-servir p{
font-size:16px;
}

}