@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

:root{
--azul:#0B5A9A;
--azul-hover:#0D6DB8;
--azul-dark:#073B68;
--azul-deep:#042B4A;
--azul-light:#EAF4FC;
--azul-soft:#F5F9FD;
--dorado:#D5A82B;
--dorado-dark:#B88D18;
--blanco:#fff;
--texto:#34404B;
--gris:#71808D;
--gris-light:#F6F8FA;
--borde:#E2E9F0;
--sombra:0 15px 45px rgba(5,44,77,.10);
--sombra-hover:0 25px 60px rgba(5,44,77,.16);
--radio:20px;
}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
scroll-padding-top:85px;
}

body{
font-family:'Poppins',sans-serif;
color:var(--texto);
background:#fff;
line-height:1.7;
overflow-x:hidden;
}

body.modal-open{
overflow:hidden;
}

a{
text-decoration:none;
color:inherit;
}

img{
display:block;
max-width:100%;
}

button{
font-family:inherit;
}

.container{
width:92%;
max-width:1240px;
margin:auto;
}

/* =====================================================
HEADER
===================================================== */

header{
position:fixed;
top:0;
left:0;
width:100%;
height:82px;
z-index:1000;
background:rgba(255,255,255,.94);
backdrop-filter:blur(16px);
-webkit-backdrop-filter:blur(16px);
border-bottom:1px solid rgba(7,59,104,.08);
transition:.35s;
}

header.scrolled{
height:70px;
box-shadow:0 8px 35px rgba(5,44,77,.10);
}

.nav{
height:100%;
display:flex;
align-items:center;
justify-content:space-between;
}

.logo-link{
display:flex;
align-items:center;
gap:12px;
}

.logo-container{
display:flex;
align-items:center;
}

.logo{
width:52px;
height:52px;
object-fit:contain;
transition:.3s;
}

header.scrolled .logo{
width:46px;
height:46px;
}

.logo-text h1{
font-size:15px;
line-height:1.15;
font-weight:700;
color:var(--azul-dark);
}

.logo-text span{
display:block;
font-size:9px;
line-height:1.3;
font-weight:600;
letter-spacing:.7px;
color:var(--dorado);
margin-top:4px;
}

nav{
display:flex;
align-items:center;
gap:23px;
}

nav a{
position:relative;
font-size:11px;
font-weight:600;
color:var(--azul-dark);
padding:8px 0;
transition:.3s;
}

nav a::after{
content:"";
position:absolute;
left:0;
bottom:0;
width:0;
height:2px;
border-radius:10px;
background:var(--dorado);
transition:.3s;
}

nav a:hover,
nav a.active{
color:var(--azul);
}

nav a:hover::after,
nav a.active::after{
width:100%;
}

nav .nav-digital{
display:flex;
align-items:center;
gap:7px;
padding:9px 14px;
border-radius:8px;
background:var(--azul);
color:#fff;
}

nav .nav-digital::after{
display:none;
}

nav .nav-digital:hover{
background:var(--azul-dark);
color:#fff;
transform:translateY(-2px);
}

.menu-mobile{
display:none;
width:43px;
height:43px;
align-items:center;
justify-content:center;
border-radius:11px;
background:var(--azul-light);
color:var(--azul-dark);
font-size:19px;
cursor:pointer;
}

/* =====================================================
HERO
===================================================== */

.hero{
position:relative;
min-height:100vh;
display:flex;
align-items:center;
overflow:hidden;
background:var(--azul-deep);
}

.video-bg{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
z-index:0;
}

.overlay{
position:absolute;
inset:0;
z-index:1;
background:
linear-gradient(110deg,rgba(3,35,60,.95) 0%,rgba(5,59,101,.87) 48%,rgba(10,88,147,.66) 100%);
}

.hero-pattern{
position:absolute;
inset:0;
z-index:2;
opacity:.10;
background-image:
linear-gradient(rgba(255,255,255,.25) 1px,transparent 1px),
linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px);
background-size:65px 65px;
mask-image:linear-gradient(to right,black,transparent);
}

.hero-content{
position:relative;
z-index:5;
width:92%;
max-width:1240px;
margin:auto;
padding:145px 0 100px;
}

.hero-kicker{
display:flex;
align-items:center;
gap:10px;
margin-bottom:18px;
color:rgba(255,255,255,.72);
font-size:10px;
font-weight:700;
letter-spacing:2px;
}

.kicker-line{
width:35px;
height:2px;
background:var(--dorado);
}

.badge{
display:inline-flex;
align-items:center;
gap:8px;
padding:8px 16px;
border:1px solid rgba(255,255,255,.24);
border-radius:50px;
background:rgba(255,255,255,.09);
color:#fff;
font-size:10px;
font-weight:600;
backdrop-filter:blur(10px);
margin-bottom:22px;
}

.badge i{
color:var(--dorado);
}

.hero-content h2{
max-width:850px;
font-size:clamp(50px,7vw,86px);
line-height:1.02;
letter-spacing:-3.5px;
font-weight:800;
color:#fff;
margin-bottom:22px;
}

.hero-content h2 span{
color:var(--dorado);
}

.hero-content p{
max-width:720px;
font-size:17px;
line-height:1.8;
color:rgba(255,255,255,.82);
margin-bottom:31px;
}

.hero-buttons{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:11px;
}

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:9px;
min-height:48px;
padding:12px 21px;
border-radius:10px;
border:2px solid transparent;
font-size:11px;
font-weight:700;
transition:.3s;
cursor:pointer;
}

.btn:hover{
transform:translateY(-3px);
box-shadow:0 14px 30px rgba(0,0,0,.20);
}

.btn-primary{
background:var(--azul);
color:#fff;
border-color:var(--azul);
}

.btn-primary:hover{
background:var(--azul-hover);
border-color:var(--azul-hover);
}

.btn-info{
background:#fff;
color:var(--azul-dark);
border-color:#fff;
}

.btn-info:hover{
background:var(--azul-light);
border-color:var(--azul-light);
}

.btn-secondary{
background:var(--dorado);
color:#fff;
border-color:var(--dorado);
}

.btn-secondary:hover{
background:var(--dorado-dark);
border-color:var(--dorado-dark);
}

.hero-bottom{
display:flex;
align-items:center;
gap:30px;
margin-top:48px;
padding-top:23px;
border-top:1px solid rgba(255,255,255,.13);
}

.hero-bottom div{
display:flex;
align-items:center;
gap:8px;
color:rgba(255,255,255,.65);
font-size:10px;
font-weight:500;
}

.hero-bottom i{
color:var(--dorado);
font-size:13px;
}

.hero-scroll{
position:absolute;
z-index:6;
right:4%;
bottom:35px;
display:flex;
flex-direction:column;
align-items:center;
gap:7px;
color:rgba(255,255,255,.50);
font-size:8px;
letter-spacing:1px;
text-transform:uppercase;
}

.hero-scroll i{
color:var(--dorado);
animation:scrollDown 1.8s infinite;
}

@keyframes scrollDown{
0%,100%{transform:translateY(0);}
50%{transform:translateY(6px);}
}

.circle{
position:absolute;
z-index:3;
border-radius:50%;
pointer-events:none;
}

.circle1{
width:350px;
height:350px;
right:-140px;
top:15%;
border:1px solid rgba(255,255,255,.13);
}

.circle2{
width:550px;
height:550px;
right:-245px;
top:1%;
border:1px solid rgba(213,168,43,.16);
}

.circle3{
width:190px;
height:190px;
right:19%;
bottom:-100px;
background:rgba(213,168,43,.07);
}

/* =====================================================
SECCIONES
===================================================== */

.section{
padding:105px 0;
background:#fff;
}

.section-title{
max-width:850px;
margin:0 auto 58px;
text-align:center;
}

.section-title>span{
display:inline-block;
margin-bottom:9px;
color:var(--azul);
font-size:10px;
font-weight:800;
letter-spacing:2px;
text-transform:uppercase;
}

.section-title h2{
color:var(--azul-dark);
font-size:clamp(30px,4vw,45px);
line-height:1.17;
font-weight:800;
margin-bottom:14px;
}

.section-title p{
max-width:720px;
margin:auto;
color:var(--gris);
font-size:12px;
line-height:1.85;
}

/* =====================================================
NOSOTROS
===================================================== */

.nosotros-content{
display:grid;
grid-template-columns:1fr 1fr;
gap:75px;
align-items:center;
margin-bottom:60px;
}

.nosotros-img{
position:relative;
padding:0 20px 20px 0;
}

.image-frame{
position:absolute;
left:0;
top:20px;
width:calc(100% - 20px);
height:calc(100% - 20px);
border:2px solid var(--azul);
border-radius:var(--radio);
}

.nosotros-img img{
position:relative;
z-index:1;
width:100%;
height:520px;
object-fit:cover;
border-radius:var(--radio);
box-shadow:var(--sombra);
}

.nosotros-badge{
position:absolute;
right:0;
bottom:55px;
z-index:4;
padding:17px 23px;
background:#fff;
border-left:4px solid var(--dorado);
border-radius:14px;
box-shadow:var(--sombra);
}

.nosotros-badge strong{
display:block;
font-size:22px;
line-height:1.2;
font-weight:800;
color:var(--azul-dark);
}

.nosotros-badge span{
display:block;
font-size:9px;
color:var(--gris);
margin-top:3px;
}

.image-label{
position:absolute;
z-index:4;
left:20px;
bottom:40px;
display:flex;
align-items:center;
gap:8px;
padding:9px 13px;
border-radius:9px;
background:rgba(7,59,104,.90);
color:#fff;
font-size:9px;
font-weight:600;
box-shadow:0 8px 20px rgba(0,0,0,.15);
}

.image-label i{
color:var(--dorado);
}

.nosotros-texto{
padding-right:5px;
}

.texto-intro{
margin-bottom:21px;
}

.texto-intro span{
font-size:9px;
font-weight:800;
letter-spacing:2px;
color:var(--dorado);
}

.texto-intro h3{
margin-top:7px;
font-size:31px;
line-height:1.25;
font-weight:800;
color:var(--azul-dark);
}

.nosotros-texto>p{
font-size:12px;
line-height:1.9;
color:var(--gris);
margin-bottom:14px;
}

.nosotros-highlights{
display:flex;
flex-wrap:wrap;
gap:17px;
margin-top:23px;
padding-top:20px;
border-top:1px solid var(--borde);
}

.nosotros-highlights div{
display:flex;
align-items:center;
gap:7px;
font-size:10px;
font-weight:600;
color:var(--azul-dark);
}

.nosotros-highlights i{
color:var(--dorado);
}

.cards{
display:grid;
gap:20px;
}

#nosotros .cards{
grid-template-columns:repeat(3,1fr);
}

.card{
position:relative;
background:#fff;
border:1px solid var(--borde);
border-radius:var(--radio);
transition:.35s;
}

#nosotros .card{
padding:31px 27px;
box-shadow:0 8px 30px rgba(5,44,77,.045);
overflow:hidden;
}

#nosotros .card:hover{
transform:translateY(-8px);
box-shadow:var(--sombra-hover);
border-color:rgba(11,90,154,.18);
}

.card-number{
position:absolute;
right:20px;
top:17px;
font-size:34px;
font-weight:800;
color:rgba(11,90,154,.055);
line-height:1;
}

.icon{
width:51px;
height:51px;
display:flex;
align-items:center;
justify-content:center;
margin-bottom:18px;
border-radius:14px;
background:var(--azul-light);
color:var(--azul);
font-size:20px;
}

.card h3{
font-size:18px;
color:var(--azul-dark);
margin-bottom:9px;
font-weight:700;
}

.card p{
font-size:10.5px;
line-height:1.8;
color:var(--gris);
}

.card .lema{
font-size:19px;
font-weight:700;
font-style:italic;
color:var(--azul);
padding-top:15px;
}

.card-lema{
background:linear-gradient(145deg,#fff,#F5F9FD);
}

.lema-line{
width:45px;
height:2px;
margin:19px 0 8px;
background:var(--dorado);
}

.lema-small{
font-size:9px;
color:var(--gris);
}

/* =====================================================
AGENDA DIGITAL
===================================================== */

.agenda-digital{
position:relative;
overflow:hidden;
padding:105px 0;
background:linear-gradient(135deg,var(--azul-deep) 0%,var(--azul-dark) 52%,#0A609F 100%);
}

.agenda-decoration{
position:absolute;
border-radius:50%;
pointer-events:none;
}

.agenda-decoration-1{
width:600px;
height:600px;
right:-300px;
top:-330px;
border:1px solid rgba(255,255,255,.09);
}

.agenda-decoration-2{
width:300px;
height:300px;
left:-200px;
bottom:-170px;
background:rgba(213,168,43,.045);
}

.agenda-titulo{
position:relative;
z-index:2;
text-align:center;
margin-bottom:58px;
}

.agenda-titulo>span{
display:inline-flex;
align-items:center;
gap:8px;
color:var(--dorado);
font-size:10px;
font-weight:800;
letter-spacing:2px;
}

.agenda-titulo h2{
margin-top:10px;
color:#fff;
font-size:clamp(30px,4vw,45px);
line-height:1.12;
font-weight:800;
}

.agenda-titulo h2 strong{
color:var(--dorado);
}

.agenda-titulo p{
margin-top:12px;
color:rgba(255,255,255,.62);
font-size:12px;
}

.agenda-contenido{
position:relative;
z-index:2;
display:grid;
grid-template-columns:.88fr 1.18fr .78fr;
gap:42px;
align-items:center;
}

.agenda-img{
position:relative;
display:flex;
align-items:center;
justify-content:center;
min-height:410px;
}

.agenda-img-glow{
position:absolute;
width:300px;
height:300px;
border-radius:50%;
background:rgba(213,168,43,.08);
box-shadow:0 0 100px rgba(213,168,43,.13);
}

.agenda-img-circle{
position:absolute;
width:350px;
height:350px;
border:1px solid rgba(255,255,255,.09);
border-radius:50%;
}

.agenda-img img{
position:relative;
z-index:3;
width:100%;
max-width:310px;
max-height:400px;
object-fit:contain;
filter:drop-shadow(0 25px 35px rgba(0,0,0,.35));
}

.agenda-lista-titulo{
display:flex;
align-items:center;
gap:12px;
margin-bottom:18px;
color:#fff;
}

.check-icon{
width:37px;
height:37px;
display:flex;
align-items:center;
justify-content:center;
border-radius:11px;
background:rgba(213,168,43,.13);
color:var(--dorado);
}

.agenda-lista-titulo strong{
display:block;
font-size:13px;
}

.agenda-lista-titulo span{
display:block;
font-size:9px;
color:rgba(255,255,255,.52);
margin-top:2px;
}

.agenda-texto ul{
list-style:none;
display:flex;
flex-direction:column;
gap:8px;
}

.agenda-texto li{
display:flex;
align-items:center;
gap:11px;
padding:10px 12px;
border-radius:10px;
background:rgba(255,255,255,.065);
border:1px solid rgba(255,255,255,.07);
color:rgba(255,255,255,.87);
font-size:10px;
font-weight:500;
transition:.3s;
}

.agenda-texto li:hover{
background:rgba(255,255,255,.12);
transform:translateX(5px);
}

.agenda-texto li>i{
flex:0 0 29px;
width:29px;
height:29px;
display:flex;
align-items:center;
justify-content:center;
border-radius:8px;
background:rgba(213,168,43,.11);
color:var(--dorado);
font-size:12px;
}

.agenda-botones{
display:flex;
flex-direction:column;
align-items:center;
gap:13px;
padding:25px;
border:1px solid rgba(255,255,255,.12);
border-radius:20px;
background:rgba(255,255,255,.065);
backdrop-filter:blur(10px);
}

.agenda-app-title{
width:100%;
display:flex;
align-items:center;
gap:8px;
padding-bottom:13px;
border-bottom:1px solid rgba(255,255,255,.10);
color:#fff;
font-size:10px;
font-weight:700;
}

.agenda-app-title i{
color:var(--dorado);
}

.servicio-link{
display:block;
width:100%;
transition:.3s;
}

.servicio-link:hover{
transform:translateY(-4px);
}

.servicio-img{
width:100%;
max-height:175px;
object-fit:contain;
border-radius:12px;
}

.store-buttons{
display:grid;
grid-template-columns:1fr 1fr;
gap:7px;
width:100%;
}

.store-buttons a{
display:block;
transition:.3s;
}

.store-buttons a:hover{
transform:translateY(-3px);
}

.play-img,
.iphone-img{
width:100%;
height:52px;
object-fit:contain;
}

/* =====================================================
MODAL
===================================================== */

.modal-comunicado{
position:fixed;
inset:0;
z-index:3000;
display:none;
align-items:center;
justify-content:center;
padding:20px;
background:rgba(3,25,43,.86);
backdrop-filter:blur(8px);
}

.modal-comunicado.active{
display:flex;
}

.modal-box{
position:relative;
width:min(850px,95vw);
max-height:92vh;
overflow:auto;
padding:10px;
background:#fff;
border-radius:20px;
box-shadow:0 30px 80px rgba(0,0,0,.35);
}

.modal-box img{
width:100%;
height:auto;
max-height:82vh;
object-fit:contain;
border-radius:13px;
}

.btn-cerrar{
position:absolute;
right:18px;
top:18px;
z-index:5;
width:40px;
height:40px;
border:0;
border-radius:50%;
background:var(--azul-dark);
color:#fff;
font-size:16px;
cursor:pointer;
box-shadow:0 5px 20px rgba(0,0,0,.20);
}

.btn-cerrar:hover{
background:var(--azul);
}

.btn-cerrar-texto{
display:block;
margin:10px auto 3px;
padding:9px 25px;
border:0;
border-radius:8px;
background:var(--azul);
color:#fff;
font-size:11px;
font-weight:700;
cursor:pointer;
}

/* =====================================================
PUBLICACIONES
===================================================== */

.publicaciones-section{
background:var(--gris-light);
}

.publicaciones-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;
}

.publicacion-card{
position:relative;
display:flex;
flex-direction:column;
overflow:hidden;
background:#fff;
border:1px solid var(--borde);
border-radius:18px;
box-shadow:0 8px 30px rgba(5,44,77,.055);
transition:.35s;
}

.publicacion-card:hover{
transform:translateY(-8px);
box-shadow:var(--sombra-hover);
}

.publicacion-imagen{
position:relative;
display:block;
height:235px;
overflow:hidden;
background:#eaf0f5;
}

.publicacion-imagen img{
width:100%;
height:100%;
object-fit:cover;
transition:.55s;
}

.publicacion-card:hover .publicacion-imagen img{
transform:scale(1.07);
}

.publicacion-overlay{
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:center;
background:rgba(5,44,77,.42);
opacity:0;
transition:.3s;
}

.publicacion-overlay i{
width:48px;
height:48px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
background:#fff;
color:var(--azul);
font-size:17px;
box-shadow:0 8px 25px rgba(0,0,0,.18);
}

.publicacion-card:hover .publicacion-overlay{
opacity:1;
}

.publicacion-body{
display:flex;
flex-direction:column;
flex:1;
padding:22px;
}

.publicacion-fecha{
display:flex;
align-items:center;
gap:7px;
margin-bottom:11px;
font-size:9px;
font-weight:600;
color:#84909A;
}

.publicacion-fecha i{
color:var(--dorado);
}

.publicacion-texto{
margin:0;
font-size:11px;
line-height:1.75;
color:#42505C;
display:-webkit-box;
-webkit-line-clamp:4;
-webkit-box-orient:vertical;
overflow:hidden;
min-height:77px;
}

.publicacion-btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
width:fit-content;
margin-top:18px;
padding:9px 15px;
border-radius:8px;
background:var(--azul);
color:#fff;
font-size:10px;
font-weight:600;
transition:.3s;
}

.publicacion-btn:hover{
background:var(--azul-dark);
transform:translateX(3px);
}

/* =====================================================
TALLERES
===================================================== */

.actividades{
background:#fff;
}

.talleres-grid{
grid-template-columns:repeat(4,1fr);
}

.taller-card{
overflow:hidden;
box-shadow:0 8px 28px rgba(5,44,77,.06);
}

.taller-card:hover{
transform:translateY(-9px);
box-shadow:var(--sombra-hover);
}

.taller-img{
position:relative;
height:270px;
overflow:hidden;
}

.taller-img img{
width:100%;
height:100%;
object-fit:cover;
transition:.6s;
}

.taller-card:hover .taller-img img{
transform:scale(1.08);
}

.taller-overlay{
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:center;
background:linear-gradient(to top,rgba(4,43,74,.70),rgba(4,43,74,.05) 65%);
opacity:0;
transition:.35s;
}

.taller-card:hover .taller-overlay{
opacity:1;
}

.taller-overlay i{
width:55px;
height:55px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
background:#fff;
color:var(--azul);
font-size:19px;
box-shadow:0 10px 30px rgba(0,0,0,.20);
}

.taller-info{
padding:19px 21px 21px;
}

.taller-info span{
font-size:8px;
font-weight:800;
letter-spacing:1.3px;
text-transform:uppercase;
color:var(--dorado);
}

.taller-info h3{
margin-top:5px;
font-size:15px;
line-height:1.35;
color:var(--azul-dark);
}

/* =====================================================
GALERÍA
===================================================== */

.section-gradient{
position:relative;
overflow:hidden;
background:linear-gradient(135deg,var(--azul-deep),var(--azul-dark));
}

.section-gradient::before{
content:"";
position:absolute;
width:600px;
height:600px;
right:-300px;
top:-350px;
border:1px solid rgba(255,255,255,.08);
border-radius:50%;
}

.section-title.light{
position:relative;
z-index:2;
}

.section-title.light>span{
color:var(--dorado);
}

.section-title.light h2{
color:#fff;
}

.section-title.light p{
color:rgba(255,255,255,.64);
}

.gallery{
position:relative;
z-index:2;
display:grid;
grid-template-columns:repeat(2,1fr);
gap:22px;
}

.gallery-item{
position:relative;
overflow:hidden;
height:380px;
border-radius:var(--radio);
background:#031D32;
border:1px solid rgba(255,255,255,.10);
box-shadow:0 18px 45px rgba(0,0,0,.22);
}

.gallery-item video{
width:100%;
height:100%;
display:block;
object-fit:cover;
transition:.6s;
}

.gallery-item:hover video{
transform:scale(1.05);
}

.gallery-overlay{
position:absolute;
left:0;
right:0;
bottom:0;
display:flex;
align-items:center;
justify-content:space-between;
padding:25px 22px 20px;
background:linear-gradient(transparent,rgba(3,25,43,.85));
color:#fff;
font-size:10px;
font-weight:600;
opacity:0;
transform:translateY(8px);
transition:.35s;
}

.gallery-item:hover .gallery-overlay{
opacity:1;
transform:translateY(0);
}

.gallery-overlay i{
width:39px;
height:39px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
background:#fff;
color:var(--azul);
font-size:11px;
}

/* =====================================================
CONTACTO
===================================================== */

.contact{
background:var(--gris-light);
}

.contact-grid{
display:grid;
grid-template-columns:.82fr 1.18fr;
gap:30px;
align-items:stretch;
}

.contact-info{
padding:38px;
background:#fff;
border:1px solid var(--borde);
border-radius:var(--radio);
box-shadow:var(--sombra);
}

.contact-heading{
margin-bottom:21px;
}

.contact-heading span{
font-size:9px;
font-weight:800;
letter-spacing:2px;
color:var(--dorado);
}

.contact-heading h3{
margin-top:5px;
font-size:27px;
line-height:1.2;
color:var(--azul-dark);
}

.contact-heading p{
margin-top:7px;
font-size:10px;
color:var(--gris);
}

.mesa-btn{
width:100%;
margin-bottom:24px;
}

.info-box{
display:flex;
align-items:flex-start;
gap:14px;
padding:15px 0;
border-top:1px solid var(--borde);
}

.info-box>i{
flex:0 0 43px;
width:43px;
height:43px;
display:flex;
align-items:center;
justify-content:center;
border-radius:12px;
background:var(--azul-light);
color:var(--azul);
font-size:15px;
}

.info-box h4{
font-size:11px;
font-weight:700;
color:var(--azul-dark);
margin-bottom:2px;
}

.info-box p{
font-size:10px;
line-height:1.7;
color:var(--gris);
}

.info-box p strong{
color:var(--azul);
}

.contact-map{
position:relative;
min-height:100%;
overflow:hidden;
border-radius:var(--radio);
box-shadow:var(--sombra);
background:#dfe7ed;
}

.contact-map iframe{
display:block;
width:100%;
height:100%;
min-height:510px;
border:0;
}

.map-label{
position:absolute;
z-index:3;
left:18px;
top:18px;
display:flex;
align-items:center;
gap:8px;
padding:10px 14px;
border-radius:9px;
background:rgba(255,255,255,.94);
color:var(--azul-dark);
font-size:10px;
font-weight:700;
box-shadow:0 7px 20px rgba(0,0,0,.12);
}

.map-label i{
color:var(--azul);
}

/* =====================================================
FOOTER
===================================================== */

footer{
padding:52px 0 22px;
background:var(--azul-deep);
color:#fff;
}

.footer-content{
width:92%;
max-width:1240px;
margin:auto;
display:grid;
grid-template-columns:1fr auto auto;
align-items:center;
gap:55px;
padding-bottom:30px;
border-bottom:1px solid rgba(255,255,255,.10);
}

.footer-brand{
display:flex;
align-items:center;
gap:14px;
}

.footer-brand img{
width:60px;
height:60px;
object-fit:contain;
}

.footer-brand h3{
font-size:15px;
font-weight:700;
}

.footer-brand p{
font-size:9px;
color:var(--dorado);
font-weight:600;
}

.footer-links{
display:flex;
gap:20px;
}

.footer-links a{
font-size:9px;
color:rgba(255,255,255,.60);
transition:.3s;
}

.footer-links a:hover{
color:#fff;
}

.footer-social{
display:flex;
gap:8px;
}

.footer-social a{
width:39px;
height:39px;
display:flex;
align-items:center;
justify-content:center;
border:1px solid rgba(255,255,255,.13);
border-radius:50%;
color:#fff;
font-size:12px;
transition:.3s;
}

.footer-social a:hover{
background:var(--dorado);
border-color:var(--dorado);
transform:translateY(-3px);
}

.copyright{
width:92%;
max-width:1240px;
margin:19px auto 0;
text-align:center;
font-size:8px;
color:rgba(255,255,255,.42);
}

/* =====================================================
BACK TOP
===================================================== */

#backTop{
position:fixed;
right:24px;
bottom:24px;
z-index:900;
width:44px;
height:44px;
display:flex;
align-items:center;
justify-content:center;
border:0;
border-radius:50%;
background:var(--azul);
color:#fff;
font-size:13px;
box-shadow:0 10px 28px rgba(11,90,154,.30);
cursor:pointer;
opacity:0;
visibility:hidden;
transform:translateY(15px);
transition:.3s;
}

#backTop.show{
opacity:1;
visibility:visible;
transform:translateY(0);
}

#backTop:hover{
background:var(--azul-dark);
transform:translateY(-4px);
}

/* =====================================================
RESPONSIVE
===================================================== */

@media(max-width:1150px){

nav{
gap:14px;
}

nav a{
font-size:10px;
}

.agenda-contenido{
grid-template-columns:.8fr 1.2fr;
}

.agenda-img{
grid-row:span 2;
}

.talleres-grid{
grid-template-columns:repeat(2,1fr);
}

.publicaciones-grid{
grid-template-columns:repeat(2,1fr);
}

.footer-content{
grid-template-columns:1fr auto;
}

.footer-links{
display:none;
}
}

@media(max-width:850px){

header,
header.scrolled{
height:70px;
}

.menu-mobile{
display:flex;
}

nav{
position:absolute;
top:70px;
left:0;
width:100%;
display:none;
flex-direction:column;
align-items:stretch;
gap:0;
padding:10px 5%;
background:#fff;
box-shadow:0 15px 30px rgba(0,0,0,.10);
}

nav.active{
display:flex;
}

nav a,
nav .nav-digital{
padding:13px 0;
font-size:11px;
border-bottom:1px solid var(--borde);
background:none;
color:var(--azul-dark);
border-radius:0;
}

nav a::after{
display:none;
}

.nosotros-content{
grid-template-columns:1fr;
gap:50px;
}

.nosotros-img{
max-width:700px;
width:100%;
margin:auto;
}

#nosotros .cards{
grid-template-columns:1fr;
}

.agenda-contenido{
grid-template-columns:1fr;
gap:35px;
}

.agenda-img{
grid-row:auto;
min-height:350px;
}

.agenda-img img{
max-width:270px;
}

.agenda-botones{
max-width:430px;
width:100%;
margin:auto;
}

.contact-grid{
grid-template-columns:1fr;
}

.contact-map iframe{
min-height:400px;
}

.footer-content{
grid-template-columns:1fr;
justify-items:center;
text-align:center;
}

.footer-brand{
justify-content:center;
}
}

@media(max-width:600px){

.section{
padding:75px 0;
}

.hero-content{
padding:120px 0 75px;
}

.hero-kicker{
font-size:8px;
}

.hero-content h2{
font-size:45px;
letter-spacing:-1.5px;
}

.hero-content p{
font-size:13px;
}

.hero-buttons{
flex-direction:column;
align-items:stretch;
max-width:340px;
}

.hero-buttons .btn{
width:100%;
}

.hero-bottom{
gap:14px;
flex-wrap:wrap;
}

.hero-bottom div{
font-size:8px;
}

.hero-scroll{
display:none;
}

.nosotros-img{
padding:0 8px 8px 0;
}

.nosotros-img img{
height:380px;
}

.image-frame{
top:8px;
width:calc(100% - 8px);
height:calc(100% - 8px);
}

.nosotros-badge{
right:5px;
bottom:28px;
}

.image-label{
left:10px;
bottom:15px;
}

.texto-intro h3{
font-size:26px;
}

.nosotros-highlights{
flex-direction:column;
gap:9px;
}

.talleres-grid{
grid-template-columns:1fr;
}

.taller-img{
height:280px;
}

.publicaciones-grid{
grid-template-columns:1fr;
}

.publicacion-imagen{
height:250px;
}

.gallery{
grid-template-columns:1fr;
}

.gallery-item{
height:280px;
}

.gallery-overlay{
opacity:1;
transform:none;
}

.contact-info{
padding:27px 21px;
}

.contact-map iframe{
min-height:350px;
}

.logo{
width:45px;
height:45px;
}

.logo-text h1{
font-size:11px;
}

.logo-text span{
font-size:7px;
}

.footer-brand{
flex-direction:column;
}

.store-buttons{
grid-template-columns:1fr;
}

}