:root{
  --azul:#004B87;
  --verde:#004B87;
  --rojo:#D62828;
  --blanco:#ffffff;
  --gris:#f5f7fa;
  --texto:#1f2937;
  --footer:#0b3a66;
}

/* Reset base */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--texto);
  background:var(--gris);
}
img{max-width:100%;display:block}

/* Contenedor */
.wrap{width:min(1200px,92%);margin-inline:auto}

/* Header + Navegación */
.header{
  position:sticky;top:0;z-index:1000;
  background:var(--azul);color:var(--blanco);
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.header .wrap{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px 0;
}

/* Logo */
.logo-wrap{
  background:var(--blanco);
  padding:6px 10px;
  border-radius:12px;
  box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.logo{height:42px}

/* Menú */
.menu{list-style:none;display:flex;align-items:center;gap:20px}
.menu > li{position:relative}
.menu > li > a{
  color:var(--blanco);text-decoration:none;font-weight:600;
  padding:10px 8px;border-radius:8px;display:flex;align-items:center;gap:6px;
}
.menu > li > a:hover{background:rgba(255,255,255,.1)}

/* Submenús (desktop) */
.submenu{
  display:none;position:absolute;top:110%;left:0;min-width:200px;
  background:var(--blanco);border-radius:12px;overflow:hidden;
  box-shadow:0 12px 24px rgba(0,0,0,.15);
}
.submenu li a{
  display:block;padding:12px 14px;text-decoration:none;color:var(--azul);
  font-weight:500;
}
.submenu li a:hover{background:#eef6ff}

/* Hover solo en desktop */
@media (min-width:769px){
  .has-submenu:hover > .submenu{display:block}
  .arrow{display:none}
}

/* Botón móvil */
.menu-toggle{
  display:none;background:none;border:none;color:var(--blanco);
  font-size:28px;cursor:pointer;line-height:1;padding:8px 10px;
}

/* Hero */
.hero{
  background:linear-gradient(135deg, var(--azul), #00355f);
  color:var(--blanco);
  padding:72px 0 56px;
  text-align:center;
  border-bottom:4px solid rgba(255,255,255,.08);
}
.hero h1{font-size:clamp(1.6rem,2.4vw,2.4rem);font-weight:800;margin-bottom:10px}
.hero p{opacity:.95}

/* Tarjetas */
.cards-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:22px;
  padding:38px 0;
  width:min(1000px,92%);
  margin-inline:auto;
}
.card{
  background:var(--blanco);border-radius:16px;overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  transform:translateY(40px);opacity:0;transition:transform .7s ease, opacity .7s ease;
}
.card.show{transform:translateY(0);opacity:1}
.card img{aspect-ratio:16/9;object-fit:cover;border-bottom:3px solid var(--azul)}
.card h3{font-size:1.1rem;color:var(--azul);padding:12px 16px 4px}
.card p{padding:0 16px 16px;color:#4b5563}
.card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(0,0,0,.12)}

/* Banner */
.banner{
  background:var(--rojo);color:var(--blanco);
  margin:10px 0 40px;padding:36px 0;text-align:center;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.banner h2{font-size:1.6rem;margin-bottom:6px}

/* Footer */
.footer{
  background:var(--footer);
  color:var(--blanco);
  padding:18px 0;
  text-align:center;
}

/* Animaciones */
.hidden{opacity:0;transform:translateY(30px)}
.show{opacity:1;transform:translateY(0);transition:all .8s ease-out}

/* Responsive */
@media (max-width:768px){
  .menu-toggle{display:block}
  .nav{position:absolute;top:100%;right:0;left:0;background:var(--azul);display:none}
  .nav.show-menu{display:block}
  .menu{flex-direction:column;align-items:stretch;padding:8px 10px;gap:4px}
  .menu > li > a{padding:12px 10px}
  .submenu{position:static;display:none;box-shadow:none;border-radius:10px;background:#003a69;margin:4px 0 8px}
  .submenu li a{color:#e7f2ff}
  .submenu li a:hover{background:#004b87}
  .has-submenu.open > a .arrow{transform:rotate(180deg)}
  .arrow{font-size:.85em;transition:transform .25s ease}
  .cards-grid{grid-template-columns:1fr}
}

/* Submenús visibles en móvil */
.has-submenu.open > .submenu {
  display: block;
}
