/* Base */
:root {
  --bg: #0d0f12;
  --bg-elev: #141821;
  --text: #e9ecf1;
  --muted: #b9c0cc;
  --primary: #2aa8ff;
  --primary-600: #198fe0;
  --accent: #7bd389;
  --border: #2a3342;
  --shadow: 0 10px 30px rgba(0,0,0,.25);
}

html, body { height: 100%; }
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.6;
}

.container { width: min(1200px, 92%); margin-inline: auto; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(8px);
  background: color-mix(in oklab, var(--bg) 85%, transparent);
  border-bottom: 1px solid var(--border);
}
.header-inner { display:flex; align-items:center; justify-content:center; padding:1.25rem 0; }
.brand-text { text-align:center; }
.brand-text span { 
  font-family: Merriweather, Georgia, "Times New Roman", serif;
  color: var(--muted);
  font-size: clamp(0.95rem, 1.8vw, 1.15rem);
  font-weight: 300;
  line-height: 1.6;
  letter-spacing: 0.02em;
  max-width: 900px;
  text-transform: none;
}

/* Hero slider */
.hero { position:relative; min-height: 70vh; }
.slides { position:absolute; inset:0; overflow:hidden; }
.slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transform: scale(1.02); transition: opacity 900ms ease, transform 1200ms ease; filter: saturate(1.05) contrast(1.05) brightness(.95); }
.slide.active { opacity:1; transform: scale(1); }
.hero-overlay { position:relative; inset:0; display:grid; grid-template-rows: 1fr auto; min-height:inherit; background: linear-gradient(180deg, color-mix(in oklab, #000 30%, transparent), color-mix(in oklab, #000 60%, transparent)); }
.hero-content { padding-block: clamp(2rem, 6vw, 5rem); max-width: 880px; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hero-logo { width: clamp(180px, 25vw, 280px); height: auto; object-fit:contain; filter: drop-shadow(0 0 8px rgba(255,255,255,0.9)) drop-shadow(0 0 16px rgba(255,255,255,0.7)) drop-shadow(0 0 24px rgba(255,255,255,0.5)) drop-shadow(0 4px 12px rgba(0,0,0,.5)); margin-bottom: 1.5rem; }
.hero h1 { font-family: Merriweather, Georgia, serif; font-size: clamp(1.8rem, 3.6vw, 3rem); line-height:1.2; margin:0 0 .75rem; text-wrap: balance; }
.hero p { font-size: clamp(1rem, 1.4vw, 1.15rem); color: var(--muted); margin:0 0 1.5rem; max-width:600px; margin-inline:auto; }
.construction-badge { display:inline-flex; align-items:center; gap:.5rem; background: color-mix(in oklab, var(--bg-elev) 90%, transparent); border:1px solid var(--border); border-radius:2rem; padding:.75rem 1.5rem; font-weight:500; }
.badge-icon { font-size:1.5rem; }

.hero-controls { display:flex; align-items:center; justify-content:center; gap:1rem; padding:1rem 0 1.5rem; }
.ctrl { background: color-mix(in oklab, var(--bg-elev), #000 10%); color:var(--text); border:1px solid var(--border); border-radius:.6rem; padding:.5rem .75rem; cursor:pointer; transition: background .2s; }
.ctrl:hover { background: color-mix(in oklab, var(--bg-elev), #000 20%); }
.dots { display:flex; gap:.5rem; }
.dots button { width:10px; height:10px; border-radius:50%; border:1px solid var(--border); background:#ffffff22; cursor:pointer; transition: transform .2s, background .2s; }
.dots button[aria-selected="true"] { background: var(--primary); transform: scale(1.1); border-color: transparent; }

/* Buttons */
.btn { display:inline-flex; align-items:center; gap:.5rem; border-radius:.75rem; padding:.7rem 1.5rem; text-decoration:none; font-weight:600; border:1px solid transparent; cursor:pointer; transition: background .2s, transform .2s; }
.btn-primary { background: var(--primary); color:#001018; }
.btn-primary:hover { background: var(--primary-600); transform: translateY(-1px); }
.btn span { font-size:1.1em; }

/* Venezuela Case Section - Diario/Blog Style */
.venezuela-case-section { 
  padding: clamp(3rem, 7vw, 5rem) 0; 
  background: var(--bg); 
  border-top: 1px solid var(--border);
}
.case-header { 
  margin-bottom: 3rem; 
  text-align: center; 
  max-width: 800px; 
  margin-inline: auto; 
}
.case-header h2 { 
  font-family: Merriweather, Georgia, serif; 
  font-size: clamp(2rem, 4vw, 2.75rem); 
  margin: 0 0 1rem; 
  color: var(--text); 
}
.case-intro { 
  font-size: clamp(1rem, 1.3vw, 1.15rem); 
  color: var(--muted); 
  line-height: 1.7; 
  margin: 0; 
}

/* Layout en columnas tipo diario */
.documents-layout { 
  display: grid; 
  grid-template-columns: 1fr 1fr; 
  gap: 2.5rem; 
  margin-top: 3rem; 
  align-items: stretch; 
}

@media (min-width: 1200px) {
  .documents-layout { 
    gap: 3rem; 
  }
}

/* Artículos tipo diario */
.document-article { 
  background: var(--bg-elev); 
  border: 1px solid var(--border); 
  border-radius: .75rem; 
  padding: 2rem; 
  display: flex; 
  flex-direction: column; 
  gap: 1.5rem; 
  transition: box-shadow .2s, border-color .2s; 
  position: relative; 
  height: 100%; 
  box-sizing: border-box; 
}

.document-article:hover { 
  box-shadow: var(--shadow); 
  border-color: color-mix(in oklab, var(--primary) 40%, transparent); 
}

.document-article--primary { 
  background: linear-gradient(135deg, color-mix(in oklab, var(--bg-elev) 97%, var(--primary) 3%), var(--bg-elev)); 
  border-color: color-mix(in oklab, var(--primary) 30%, transparent); 
  padding: 2.5rem; 
}

.document-article--primary::before { 
  content: ''; 
  position: absolute; 
  top: 0; 
  left: 0; 
  right: 0; 
  height: 4px; 
  background: linear-gradient(90deg, var(--primary), var(--accent)); 
  border-radius: .75rem .75rem 0 0; 
}

.document-article--multilang {
  transition: opacity .2s ease;
}

.article-header { 
  display: flex; 
  flex-direction: column; 
  gap: .75rem; 
}

.article-header h3 { 
  font-family: Merriweather, Georgia, serif; 
  font-size: clamp(1.5rem, 2.5vw, 1.9rem); 
  margin: 0; 
  color: var(--text); 
  font-weight: 600; 
  line-height: 1.3; 
}

.article-header h4 { 
  font-family: Merriweather, Georgia, serif; 
  font-size: clamp(1.15rem, 1.8vw, 1.3rem); 
  margin: 0; 
  color: var(--text); 
  font-weight: 600; 
  line-height: 1.4; 
}

/* Language selector */
.language-selector {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: 1.25rem;
  background: color-mix(in oklab, var(--bg) 60%, transparent);
  border: 1px solid var(--border);
  border-radius: .6rem;
  margin: 1rem 0;
}

.language-label {
  font-size: .85rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.language-flags {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

.flag-btn {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .85rem;
  background: color-mix(in oklab, var(--bg-elev) 90%, transparent);
  border: 1px solid var(--border);
  border-radius: .5rem;
  cursor: pointer;
  transition: all .2s;
  font-family: inherit;
  color: var(--text);
  font-size: .9rem;
  font-weight: 500;
}

.flag-btn:hover {
  background: color-mix(in oklab, var(--bg-elev), var(--primary) 10%);
  border-color: color-mix(in oklab, var(--primary) 40%, transparent);
  transform: translateY(-1px);
}

.flag-btn.active {
  background: color-mix(in oklab, var(--primary) 20%, transparent);
  border-color: var(--primary);
  color: var(--primary);
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--primary) 20%, transparent);
}

.flag-label {
  font-weight: 600;
}

.document-badge { 
  display: inline-block; 
  padding: .4rem .85rem; 
  border-radius: .5rem; 
  font-size: .8rem; 
  font-weight: 600; 
  white-space: nowrap; 
  background: color-mix(in oklab, var(--border) 50%, transparent); 
  color: var(--muted); 
  border: 1px solid var(--border); 
  width: fit-content; 
}

.document-badge--primary { 
  background: color-mix(in oklab, var(--primary) 20%, transparent); 
  color: var(--primary); 
  border-color: color-mix(in oklab, var(--primary) 40%, transparent); 
}

.article-content { 
  display: flex; 
  flex-direction: column; 
  gap: 1rem; 
}

.article-lead { 
  font-size: clamp(1.05rem, 1.4vw, 1.15rem); 
  line-height: 1.7; 
  color: var(--text); 
  font-weight: 500; 
  margin: 0; 
}

.article-content p { 
  font-size: clamp(.95rem, 1.2vw, 1rem); 
  line-height: 1.75; 
  color: var(--muted); 
  margin: 0; 
  text-align: justify; 
}

.article-footer { 
  display: flex; 
  flex-direction: column; 
  gap: 1rem; 
  padding-top: 1.5rem; 
  border-top: 1px solid var(--border); 
  margin-top: auto; 
}

.article-meta { 
  display: flex; 
  flex-wrap: wrap; 
  gap: 1rem; 
  font-size: .9rem; 
}

.meta-item { 
  color: var(--muted); 
  display: inline-flex; 
  align-items: center; 
  gap: .4rem; 
}

.meta-item strong { 
  color: var(--text); 
  font-weight: 600; 
}

.document-article .btn { 
  width: 100%; 
  justify-content: center; 
}

/* Contact Section */
.contact-section { padding: clamp(2.5rem, 6vw, 4rem) 0; background: var(--bg-elev); }
.contact-section h2 { font-family: Merriweather, Georgia, serif; font-size: clamp(1.75rem, 3vw, 2.25rem); margin:0 0 .5rem; }
.contact-section > .container > p { color: var(--muted); margin:0 0 2rem; }

form { margin-top:2rem; }
.form-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:1.25rem; }
.form-field { display:flex; flex-direction:column; gap:.4rem; }
.form-field--full { grid-column: 1 / -1; }
label { font-weight:600; font-size:.95rem; }
.required { color: var(--primary); }
input, select, textarea {
  background: color-mix(in oklab, var(--bg) 95%, var(--bg-elev));
  color: var(--text);
  border:1px solid var(--border);
  border-radius:.6rem;
  padding:.7rem .8rem;
  outline: none;
  font-family: inherit;
  font-size: .95rem;
  transition: border-color .2s, box-shadow .2s;
}
input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in oklab, var(--primary) 30%, transparent); }
textarea { resize: vertical; min-height:120px; }

.form-actions { display:flex; align-items:center; gap:1rem; margin-top:1rem; flex-wrap:wrap; }
.form-legal { color: var(--muted); font-size:.85rem; margin:0; }
.form-legal a { color: var(--primary); text-decoration:none; }
.form-legal a:hover { text-decoration:underline; }
.form-output { margin-top:.75rem; display:block; padding:.75rem 1rem; background: color-mix(in oklab, var(--accent) 20%, transparent); border:1px solid var(--accent); border-radius:.6rem; color:var(--text); }

/* Footer */
.site-footer { border-top:1px solid var(--border); background: color-mix(in oklab, var(--bg), #000 8%); }
.footer-grid { display:grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap:2rem; padding:2.5rem 0; }
.footer-brand p { color: var(--muted); margin:.5rem 0 0; font-size:.9rem; line-height:1.5; }
.footer-col h4 { font-size:1rem; margin:0 0 .75rem; font-weight:600; }
.footer-col ul { list-style:none; padding:0; margin:0; }
.footer-col li { margin:.4rem 0; color: var(--muted); font-size:.9rem; line-height:1.5; }
.footer-col a { color: var(--muted); text-decoration:none; transition: color .2s; }
.footer-col a:hover { color: var(--primary); }
.footer-bottom { border-top:1px solid var(--border); background: color-mix(in oklab, var(--bg), #000 16%); }
.footer-bottom p { margin:0; padding:1.25rem 0; color: var(--muted); font-size:.85rem; line-height:1.6; }

/* View Transitions */
@supports (view-transition-name: none) {
  @media (prefers-reduced-motion: no-preference) {
    ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .35s; }
  }
}

/* Responsive */
@media (max-width: 1000px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .documents-layout { 
    grid-template-columns: 1fr; 
    gap: 2.5rem; 
  }
  .language-flags {
    justify-content: center;
  }
}
@media (max-width: 720px) {
  .header-inner { flex-direction:column; gap:.5rem; }
  .brand-text { padding: 0 1rem; }
  .footer-grid { grid-template-columns: 1fr; gap:1.5rem; }
  .hero { min-height: 60vh; }
  .documents-layout { gap: 2rem; }
  .document-article { padding: 1.5rem; }
  .document-article--primary { padding: 1.75rem; }
  .case-header { margin-bottom: 2rem; }
  .article-content p { text-align: left; }
}
