/* Reset + variables */
:root{
  --bg-1: #f5f9ff;
  --bg-2: #e9f2ff;
  --card: #ffffff;
  --primary: #0b63d6;
  --primary-dark: #053a78;
  --muted: #6b7f98;
  --accent: #1e90ff;
  --radius: 12px;
  --container-max: 1100px;
  --gap: 1.125rem;
  --transition: 180ms ease-in-out;
  --text: #0b1b2b;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color:var(--text);
  background:linear-gradient(180deg,var(--bg-1),var(--bg-2));
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.5;
  font-size:16px;
}

/* Accessibility: visible skip link on focus */
.skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip-link:focus{
  left:16px;
  top:16px;
  width:auto;
  height:auto;
  padding:.5rem .75rem;
  background:#000;
  color:#fff;
  border-radius:6px;
  z-index:1000;
}

/* Layout */
.container{ max-width:var(--container-max); margin:48px auto; padding:0 24px; }

/* Header */
.site-header{ background: linear-gradient(90deg, rgba(11,99,214,0.06), rgba(5,58,120,0.04)); border-bottom:1px solid rgba(11,99,214,0.06) }
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:24px 0; }
.brand{ display:flex; gap:14px; align-items:center; font-weight:700; font-family:Merriweather,serif; color:var(--primary-dark) }
.logo{ width:48px; height:48px; border-radius:8px; background:linear-gradient(135deg,var(--primary),var(--accent)); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; box-shadow:0 4px 18px rgba(11,99,214,0.15) }
.brand-title{ font-size:1rem }
.brand-sub{ font-size:.8125rem; color:var(--muted) }

.site-nav a{ color:var(--muted); text-decoration:none; margin-left:20px; font-weight:600; transition:color var(--transition); }
.site-nav a:hover, .site-nav a:focus{ color:var(--primary-dark); outline:none; }
/* Hacer que el botón del nav tenga la misma apariencia que los enlaces */
.site-nav .nav-link {
  background: none;
  border: 0;
  color: var(--muted);
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  margin-left: 20px;
  font-family: inherit;
  font-size: 1rem;
}
.site-nav .nav-link:hover,
.site-nav .nav-link:focus { color: var(--primary-dark); outline: none; }

/* Hero */
.hero{ background:linear-gradient(180deg, rgba(11,99,214,0.04), rgba(11,99,214,0.02)); border-radius:var(--radius); padding:40px; display:flex; gap:36px; align-items:center; box-shadow:0 8px 30px rgba(9,30,66,0.06) }
.hero-content{ max-width:56ch }
.hero h1{ margin:0 0 .5rem 0; font-family:Merriweather,serif; font-size:2.25rem; color:var(--primary-dark) }
.subtitle{ margin:0 0 1rem 0; font-weight:600; color:var(--muted); font-size:1rem }
.lead{ margin:0 0 1.25rem 0; color:#172a3a; line-height:1.6 }
.hero-visual{ min-width:260px; display:flex; align-items:center; justify-content:center }

/* CTA */
.cta{ display:inline-block; background:var(--primary); color:white; padding:.75rem 1.25rem; border-radius:10px; text-decoration:none; font-weight:600; box-shadow:0 8px 20px rgba(11,99,214,0.18); transition:transform var(--transition) }
.cta:focus, .cta:hover{ transform:translateY(-2px); outline:none }

/* Features / Cards */
.features{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:28px }
.card{ background:var(--card); border-radius:12px; padding:20px; box-shadow:0 6px 18px rgba(9,30,66,0.04); min-height:120px }
.card h3{ margin:0 0 .5rem 0; color:var(--primary-dark) }
.card p{ margin:0; color:var(--muted); font-size:.875rem }

/* Info */
.info{ margin-top:36px; display:flex; gap:28px; align-items:stretch }
.info-left{ flex:1; background:linear-gradient(180deg, rgba(30,144,255,0.03), rgba(11,99,214,0.02)); padding:24px; border-radius:12px }
.info-right{ width:320px; background:var(--card); padding:20px; border-radius:12px; box-shadow:0 6px 18px rgba(9,30,66,0.04) }
.section-title{ margin-top:0; font-family:Merriweather,serif; color:var(--primary-dark); margin-bottom:.5rem }
.muted{ color:var(--muted) }

/* Footer */
.site-footer{ margin:40px auto 24px; text-align:center; color:var(--muted); font-size:.8125rem }

/* Utility: visually-hidden for accessible labels */
.visually-hidden {
  position: absolute !important;
  height: 1px; width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  border: 0; padding: 0; margin: -1px;
}

/* Dropdown in nav */
.nav-item { position: relative; display: inline-block; }
.dropdown-menu {
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--card);
  border-radius: 8px;
  min-width: 220px;
  box-shadow: 0 8px 20px rgba(9,30,66,0.08);
}

/* Links inside dropdown */
.dropdown-menu a {
  display: block;
  padding: 10px 14px;
  color: var(--text);
  text-decoration: none;
  font-size: 0.95rem;
}
.dropdown-menu a:hover,
.dropdown-menu a:focus {
  background: rgba(11,99,214,0.06);
  color: var(--primary-dark);
  outline: none;
}

/* Progressive enhancement: hide by default when JS available */
.js .dropdown-menu { display: none; }

/* Show when aria-expanded=true */
.nav-item[aria-expanded="true"] .dropdown-menu {
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 100;
}

/* Small screens: full width dropdown */
@media (max-width: 600px) {
  .nav-item[aria-expanded="true"] .dropdown-menu { left: 0; right: 0; min-width: auto; }
}

@media (max-width:880px){
  .features{ grid-template-columns:1fr }
  .hero{ flex-direction:column; align-items:flex-start }
  .info{ flex-direction:column }
  .info-right{ width:auto }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important }
}
