:root {
  --ink: #f4f5f7;
  --muted: #aab2bb;
  --surface: #20252b;
  --surface-soft: #252c33;
  --line: rgba(255,255,255,.11);
  --orange: #e87524;
  --orange-soft: #f29a52;
  --bg: #14171b;
  --ease-out: cubic-bezier(.23,1,.32,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
.shell { min-height: 100vh; max-width: 1440px; margin: 0 auto; padding: 0 42px; }
.topbar { height: 92px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand-mark { display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:.04em; }
.brand-dot { width:12px; height:12px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 6px rgba(232,117,36,.12); }
nav { display:flex; align-items:center; gap:28px; color:var(--muted); font-size:.92rem; }
nav a { transition:color 180ms ease, transform 180ms ease; }
nav a:hover { color:var(--orange-soft); transform:translateY(-1px); }
.nav-cta { color:#15171a; background:var(--orange); padding:12px 18px; border-radius:9px; font-weight:750; }
.nav-cta:hover { color:#15171a; filter:brightness(1.08); }
.hero { min-height: 640px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); gap:72px; align-items:center; padding:78px 0 84px; }
.hero-copy { max-width:680px; }
.eyebrow { margin:0 0 17px; color:var(--orange-soft); font-size:.75rem; font-weight:800; letter-spacing:.17em; }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:720px; margin-bottom:24px; font-size:clamp(3rem,5.8vw,5.6rem); line-height:.98; letter-spacing:-.065em; }
h2 { margin-bottom:18px; font-size:clamp(2rem,3.2vw,3.4rem); line-height:1.03; letter-spacing:-.045em; }
h3 { margin-bottom:8px; font-size:1.25rem; }
.lead { max-width:580px; color:var(--muted); font-size:1.18rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin:34px 0 24px; }
.button { display:inline-flex; gap:12px; align-items:center; justify-content:center; min-height:50px; padding:0 20px; border-radius:9px; font-weight:750; transition:transform 160ms var(--ease-out), filter 160ms ease, background 160ms ease; }
.button:hover { transform:translateY(-2px); }
.button:active { transform:scale(.98); }
.button-primary { color:#17191d; background:var(--orange); }
.button-primary:hover { filter:brightness(1.08); }
.button-quiet { color:var(--ink); border:1px solid var(--line); background:transparent; }
.button-quiet:hover { border-color:var(--orange); color:var(--orange-soft); }
.status-line { color:var(--muted); font-size:.84rem; display:flex; gap:9px; align-items:center; }
.status-light { width:8px; height:8px; border-radius:50%; background:#5bd391; box-shadow:0 0 0 5px rgba(91,211,145,.11); }
.logo-panel { min-height:390px; display:flex; flex-direction:column; justify-content:center; padding:32px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(145deg,var(--surface),var(--surface-soft)); box-shadow:0 20px 50px rgba(0,0,0,.2); }
.logo-frame { min-height:250px; display:flex; align-items:center; justify-content:center; padding:38px; border-radius:13px; background:#f5f6f8; }
.logo-frame img { width:100%; max-width:540px; height:auto; display:block; }
.logo-caption { margin:18px 0 0; color:var(--muted); text-align:center; font-size:.9rem; }
.feature-grid { padding:44px 0 110px; border-top:1px solid var(--line); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:30px; }
.section-heading h2 { max-width:560px; margin-bottom:0; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.card { min-height:220px; padding:26px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.card-number { color:var(--orange-soft); font-size:.76rem; font-weight:800; letter-spacing:.12em; }
.card p,.doc-item p { color:var(--muted); margin-bottom:0; }
.documentation { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; padding:74px 0 92px; border-top:1px solid var(--line); }
.doc-list { border-top:1px solid var(--line); }
.doc-item { display:grid; grid-template-columns:48px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid var(--line); }
.doc-item span { color:var(--orange-soft); font-weight:800; }
.footer { display:flex; justify-content:space-between; gap:20px; padding:24px 0 35px; border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; }
.footer a { color:var(--orange-soft); }
@media (max-width: 850px) {
  .shell { padding:0 22px; }
  .topbar { height:auto; padding:22px 0; align-items:flex-start; gap:18px; }
  nav { gap:14px; flex-wrap:wrap; justify-content:flex-end; }
  /* La navegación institucional conserva Inicio y Contacto en móvil. */
  .hero { grid-template-columns:1fr; gap:40px; padding:60px 0 70px; }
  .hero-copy { max-width:none; }
  h1 { font-size:clamp(2.8rem,12vw,4.5rem); }
  .cards,.documentation { grid-template-columns:1fr; }
  .documentation { gap:34px; }
  .section-heading { display:block; }
  .footer { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.language-picker select { min-height:38px; padding:0 9px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:var(--surface); font:inherit; font-size:.78rem; font-weight:800; letter-spacing:.04em; cursor:pointer; }
.language-picker select:focus-visible { outline:2px solid var(--orange-soft); outline-offset:3px; }
@media (max-width:850px) { .language-picker select { min-height:34px; } }

/* Adaptador de la navegación institucional compartida para la página DiploFile. */
.site-header{border-bottom:1px solid var(--line);background:rgba(15,19,22,.92);backdrop-filter:blur(14px);position:relative;z-index:100}
.site-header .header-inner{width:min(100% - 48px,1360px);margin:0 auto;min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-header .brand{display:inline-flex;align-items:center;gap:9px;color:var(--text);font-weight:800;letter-spacing:.04em;white-space:nowrap}
.site-header .brand-dot{width:13px;height:13px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px rgba(242,143,42,.12)}
.site-header .header-actions{margin-left:auto;min-width:0}
.site-header .language-control{display:inline-flex;align-items:center}
.site-header .language-select{min-height:36px;padding:7px 10px;border:1px solid #34546b;border-radius:999px;background:#102b42;color:#dcecf6;font-weight:800}
@media(max-width:1120px){.site-header .header-inner{align-items:flex-start;padding:18px 0;flex-wrap:wrap}.site-header .header-actions{width:100%}}
@media(max-width:820px){.site-header .header-inner{width:min(100% - 32px,1360px)}.site-header nav.institutional-nav{flex-wrap:wrap}.site-header .nav-menu-panel{position:fixed;left:16px;right:16px;top:96px}}
