/* ══════════════════════════════════════════
   Plataforma Funcionarios — Estilos globales
   ══════════════════════════════════════════ */

:root {
  --v: #1a1a2e;
  --v2: #16213e;
  --v3: #0f3460;
  --accent: #e94560;
  --accent2: #f5a623;
  --accent3: #00d4aa;
  --text: #1a1a2e;
  --text-muted: #6b7a99;
  --bg: #f7f8fc;
  --bg2: #eef0f8;
  --white: #ffffff;
  --border: #dde2f0;
  --shadow: 0 2px 20px rgba(26,26,46,0.08);
  --shadow-lg: 0 8px 40px rgba(26,26,46,0.14);
  --r: 12px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--v3);border-radius:3px}

/* ── NAV ── */
nav{background:var(--v);position:sticky;top:0;z-index:1000;box-shadow:0 2px 20px rgba(0,0,0,0.3)}
.nav-inner{max-width:1280px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:0}
.nav-logo{font-family:'DM Serif Display',serif;font-size:1.35rem;color:var(--white);text-decoration:none;padding:16px 28px 16px 0;margin-right:8px;border-right:1px solid rgba(255,255,255,0.12);cursor:pointer;white-space:nowrap;letter-spacing:-0.02em}
.nav-logo span{color:var(--accent)}
.nav-links{display:flex;align-items:center;list-style:none;gap:0;flex:1;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links li a,.nav-links li button{display:block;padding:18px 13px;color:rgba(255,255,255,0.65);font-size:0.82rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;border:none;background:none;cursor:pointer;transition:color .2s,background .2s;white-space:nowrap;font-family:'DM Sans',sans-serif;border-bottom:2px solid transparent;text-decoration:none}
.nav-links li a:hover,.nav-links li button:hover{color:var(--white);background:rgba(255,255,255,0.06)}
.nav-links li a.active,.nav-links li button.active{color:var(--white);border-bottom-color:var(--accent)}
.nav-cta{margin-left:auto;padding:8px 18px;background:var(--accent);color:white;border:none;border-radius:6px;font-size:0.82rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;white-space:nowrap;text-decoration:none}
.nav-cta:hover{background:#d63050;transform:translateY(-1px)}

/* ── HERO ── */
.hero{background:linear-gradient(135deg,var(--v) 0%,var(--v2) 40%,var(--v3) 100%);color:white;padding:80px 24px 72px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-120px;right:-80px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(233,69,96,0.18) 0%,transparent 70%);pointer-events:none}
.hero::after{content:'';position:absolute;bottom:-100px;left:-60px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(0,212,170,0.12) 0%,transparent 70%);pointer-events:none}
.hero-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(233,69,96,0.15);border:1px solid rgba(233,69,96,0.4);color:#ff8099;font-size:0.75rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:5px 14px;border-radius:20px;margin-bottom:22px}
.hero h1{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:400;line-height:1.15;margin-bottom:22px;letter-spacing:-0.02em}
.hero h1 em{color:var(--accent);font-style:italic}
.hero h1 .hl{color:#7ee8d0}
.hero-sub{font-size:1.05rem;line-height:1.75;color:rgba(255,255,255,0.78);max-width:620px;margin-bottom:36px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:8px;font-size:0.9rem;font-weight:700;cursor:pointer;border:none;text-decoration:none;transition:all .2s;font-family:'DM Sans',sans-serif;letter-spacing:0.01em}
.btn-hero{background:var(--accent);color:white}
.btn-hero:hover{background:#d63050;transform:translateY(-2px);box-shadow:0 6px 24px rgba(233,69,96,0.4)}
.btn-hero2{background:rgba(255,255,255,0.1);color:white;border:1.5px solid rgba(255,255,255,0.3)}
.btn-hero2:hover{background:rgba(255,255,255,0.18);border-color:white}
.hero-stats{display:flex;gap:32px;margin-top:48px;flex-wrap:wrap}
.hero-stat{text-align:center}
.hero-stat .num{font-family:'DM Serif Display',serif;font-size:2rem;color:var(--accent2);line-height:1}
.hero-stat .lbl{font-size:0.75rem;color:rgba(255,255,255,0.55);text-transform:uppercase;letter-spacing:0.07em;margin-top:4px}

/* ── INFO STRIP ── */
.info-strip{background:var(--v2);color:white;padding:16px 24px;border-top:1px solid rgba(255,255,255,0.08)}
.info-strip .strip-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:24px;flex-wrap:wrap;font-size:0.82rem}
.strip-item{display:flex;align-items:center;gap:8px;opacity:.8}
.strip-item strong{opacity:1}

/* ── CONTAINER ── */
.container{max-width:1280px;margin:0 auto;padding:56px 24px}
.section-head{margin-bottom:40px}
.section-tag{display:inline-block;background:var(--accent);color:white;font-size:0.68rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:3px 10px;border-radius:4px;margin-bottom:10px}
.section-title{font-family:'DM Serif Display',serif;font-size:1.9rem;color:var(--v);letter-spacing:-0.02em;margin-bottom:8px}
.section-sub{color:var(--text-muted);font-size:0.95rem;max-width:540px}

/* ══════════════════════════════
   PROCESOS SELECTIVOS ACTUALES
   ══════════════════════════════ */
.procesos-actuales{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:24px;
  margin-bottom:16px;
}

.proceso-card{
  background:var(--white);
  border-radius:var(--r);
  padding:28px;
  border:2px solid var(--border);
  box-shadow:var(--shadow);
  transition:transform .2s,box-shadow .2s;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
}
.proceso-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--v3);
}
.proceso-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.proceso-destacado{border-color:var(--v3)}
.proceso-destacado::before{background:linear-gradient(90deg,var(--v3),var(--accent))}

.proceso-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px;
}
.proceso-badge{
  font-size:0.72rem;
  font-weight:700;
  padding:4px 12px;
  border-radius:99px;
  letter-spacing:0.04em;
}
.proceso-badge-activo{background:#dcfce7;color:#16a34a}
.proceso-anio{font-size:0.8rem;color:var(--text-muted);font-weight:600}
.proceso-icon{font-size:2.4rem;margin-bottom:14px;line-height:1}
.proceso-card h3{
  font-family:'DM Serif Display',serif;
  font-size:1.15rem;
  font-weight:400;
  color:var(--v);
  margin-bottom:10px;
  line-height:1.3;
}
.proceso-card p{
  font-size:0.85rem;
  color:var(--text-muted);
  line-height:1.65;
  flex:1;
  margin-bottom:18px;
}
.proceso-card .opo-tags{margin-bottom:18px}

/* ── OPOSICIONES GRID ── */
.opo-categories{display:flex;flex-direction:column;gap:48px;margin-top:16px}
.opo-category-title{
  font-family:'DM Serif Display',serif;
  font-size:1.25rem;
  color:var(--v);
  letter-spacing:-0.01em;
  margin-bottom:16px;
  padding-bottom:10px;
  border-bottom:2px solid var(--border);
  display:flex;
  align-items:center;
  gap:10px;
}
.opo-category-title .cat-badge{
  font-size:0.68rem;
  font-family:'DM Sans',sans-serif;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:3px 10px;
  border-radius:20px;
  margin-left:4px;
}
.cat-badge-junta{background:#e8f5e8;color:#1a6a1a}
.cat-badge-ss{background:#fff0e0;color:#b05000}
.cat-badge-age{background:#e0e8ff;color:#1a3a9a}
.cat-badge-macro{background:#fde8ec;color:#9a1a2a}
.cat-badge-cyl{background:#f3e5f5;color:#6a1b9a}

.opo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.opo-card{
  background:var(--white);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  border:1.5px solid var(--border);
  padding:24px;
  transition:all .25s;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.opo-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--card-accent,var(--v3))}
.opo-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:transparent}
.opo-card-icon{
  width:44px;height:44px;
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;
  margin-bottom:14px;
  background:var(--card-icon-bg,#e8eeff);
}
.opo-card h3{font-size:0.95rem;font-weight:700;color:var(--v);margin-bottom:6px;line-height:1.3}
.opo-card .opo-desc{font-size:0.82rem;color:var(--text-muted);line-height:1.55;flex:1;margin-bottom:16px}
.opo-card .opo-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}

.opo-tag{font-size:0.68rem;font-weight:700;padding:2px 8px;border-radius:4px;letter-spacing:0.04em;text-transform:uppercase}
.tag-c1{background:#e0e8ff;color:#1a3a9a}
.tag-c2{background:#fff0e0;color:#b05000}
.tag-a1{background:#fde8ec;color:#9a1a2a}
.tag-a2{background:#e8f5e8;color:#1a6a1a}
.tag-libre{background:#f0f0f0;color:#555}
.tag-age{background:#eff6ff;color:#1d4ed8}

.opo-btn{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;
  border-radius:8px;
  background:var(--card-btn-bg,#f0f4ff);
  color:var(--card-btn-color,var(--v3));
  font-size:0.82rem;font-weight:700;
  border:none;cursor:pointer;
  font-family:'DM Sans',sans-serif;
  transition:all .2s;
  text-decoration:none;
}
.opo-btn:hover{background:var(--card-btn-hover,#dce6ff);transform:translateX(2px)}
.opo-btn .arr{font-size:1rem;transition:transform .2s}
.opo-btn:hover .arr{transform:translateX(3px)}

/* Botón destacado para proceso-card */
.opo-btn-destacado{
  background:var(--v3);
  color:#fff !important;
  margin-top:auto;
}
.opo-btn-destacado:hover{background:var(--v) !important;transform:translateX(0) translateY(-1px) !important}

/* Temas por categoría */
.cat-junta .opo-card{--card-accent:#2e7d32;--card-icon-bg:#e8f5e8;--card-btn-bg:#e8f5e8;--card-btn-color:#1a5e1a;--card-btn-hover:#c8ebc9}
.cat-ss .opo-card{--card-accent:#e65100;--card-icon-bg:#fff3e0;--card-btn-bg:#fff3e0;--card-btn-color:#b84700;--card-btn-hover:#ffe0b2}
.cat-age .opo-card{--card-accent:#1565c0;--card-icon-bg:#e3f2fd;--card-btn-bg:#e3f2fd;--card-btn-color:#0d47a1;--card-btn-hover:#bbdefb}
.cat-macro .opo-card{--card-accent:var(--accent);--card-icon-bg:#fde8ec;--card-btn-bg:#fde8ec;--card-btn-color:#9a1a2a;--card-btn-hover:#fbc4ce}
.cat-cyl .opo-card{--card-accent:#6a1b9a;--card-icon-bg:#f3e5f5;--card-btn-bg:#f3e5f5;--card-btn-color:#4a1a7a;--card-btn-hover:#e1bee7}

/* ── BANNER MACRO ── */
.macro-banner{
  background:linear-gradient(135deg,var(--v) 0%,#3a0020 100%);
  border-radius:var(--r);
  padding:32px 36px;
  color:white;
  display:flex;align-items:center;gap:28px;flex-wrap:wrap;
  margin-top:24px;
  position:relative;overflow:hidden;
}
.macro-banner::before{content:'';position:absolute;right:-40px;top:-40px;width:200px;height:200px;border-radius:50%;background:rgba(233,69,96,0.15)}
.macro-icon{font-size:3rem;flex-shrink:0}
.macro-content{flex:1}
.macro-content h3{font-family:'DM Serif Display',serif;font-size:1.5rem;margin-bottom:6px}
.macro-content p{font-size:0.88rem;color:rgba(255,255,255,0.72);line-height:1.6;max-width:560px}
.btn-macro{background:var(--accent);color:white;padding:12px 24px;border-radius:8px;font-weight:700;font-size:0.88rem;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.btn-macro:hover{background:#d63050;transform:translateY(-2px)}

/* ── CRONOGRAMA MOCK ── */
.crono-mock{background:white;border-radius:var(--r);padding:36px;box-shadow:var(--shadow);margin-top:32px;border:1.5px solid var(--border);text-align:center}
.crono-mock .crono-inner{background:linear-gradient(135deg,#eef0f8 0%,#e4e8f5 100%);border-radius:8px;padding:48px 24px;border:2px dashed var(--border);color:var(--text-muted)}
.crono-mock .crono-inner p{margin-top:8px;font-size:0.9rem}

/* ── CALCULADORA ── */
.calc-wrap{max-width:820px;margin:0 auto}
.calc-card{background:var(--white);border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden;border:1.5px solid var(--border)}
.calc-head{background:linear-gradient(135deg,var(--v) 0%,var(--v3) 100%);padding:32px;color:white;position:relative;overflow:hidden}
.calc-head::after{content:'';position:absolute;right:-30px;bottom:-30px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,0.05)}
.calc-head h2{font-family:'DM Serif Display',serif;font-size:1.6rem;margin-bottom:4px}
.calc-head p{font-size:0.88rem;opacity:.75}
.calc-body{padding:32px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}
.form-group{display:flex;flex-direction:column;gap:5px}
.form-group label{font-size:0.75rem;font-weight:700;color:var(--v);text-transform:uppercase;letter-spacing:0.07em}
.form-group select,.form-group input{padding:11px 14px;border:2px solid var(--border);border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.92rem;color:var(--text);background:var(--bg);transition:border-color .2s}
.form-group select:focus,.form-group input:focus{outline:none;border-color:var(--v3);background:white}
.calc-section{background:var(--bg);border-radius:8px;padding:20px;margin-bottom:16px;border-left:3px solid var(--v3)}
.calc-section h4{font-size:0.78rem;font-weight:700;color:var(--v);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:14px}
.three-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.corte-box{background:#fffbf0;border:1.5px solid #e8d090;border-radius:8px;padding:20px;margin-bottom:16px}
.corte-box h4{font-size:0.78rem;font-weight:700;color:#7a5800;text-transform:uppercase;letter-spacing:0.07em;margin-bottom:4px}
.corte-hint{font-size:0.8rem;color:#9a7010;margin-bottom:14px}
.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.calc-submit{width:100%;padding:16px;background:linear-gradient(135deg,var(--v3),var(--accent));color:white;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:700;cursor:pointer;letter-spacing:0.02em;transition:all .2s;margin-top:8px}
.calc-submit:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 6px 24px rgba(15,52,96,0.3)}
.result-box{margin-top:24px;padding:28px;background:linear-gradient(135deg,var(--v),var(--v3));border-radius:10px;color:white;text-align:center;display:none}
.result-box.show{display:block;animation:fadeUp .4s ease}
.result-lbl{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.1em;opacity:.65;margin-bottom:8px}
.result-nota{font-family:'DM Serif Display',serif;font-size:3.2rem;color:#7ee8d0;line-height:1}
.result-estado{margin-top:12px;font-size:1rem;font-weight:600}
.result-detalle{margin-top:14px;font-size:0.82rem;opacity:.7;line-height:1.6}
.apto{color:#7affc0}.no-apto{color:#ff8899}

/* ── CALCULADORA FECHAS ── */
.fechas-wrap{max-width:900px;margin:0 auto}
.fechas-card{background:white;border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden;border:1.5px solid var(--border)}
.fechas-head{background:linear-gradient(135deg,#0f3460,#533483);padding:28px 32px;color:white}
.fechas-head h2{font-family:'DM Serif Display',serif;font-size:1.5rem;margin-bottom:4px}
.fechas-head p{font-size:0.88rem;opacity:.75}
.fechas-body{padding:32px}
.fechas-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}
.fecha-group{display:flex;flex-direction:column;gap:6px}
.fecha-group label{font-size:0.75rem;font-weight:700;color:var(--v);text-transform:uppercase;letter-spacing:0.07em}
.fecha-group input{padding:12px 14px;border:2px solid var(--border);border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.95rem;color:var(--text);background:var(--bg);transition:border-color .2s}
.fecha-group input:focus{outline:none;border-color:#533483;background:white}
.fechas-submit{width:100%;padding:14px;background:linear-gradient(135deg,#0f3460,#533483);color:white;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.95rem;font-weight:700;cursor:pointer;transition:all .2s;margin-bottom:24px}
.fechas-submit:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 20px rgba(83,52,131,0.3)}
.fechas-result{display:none;background:var(--bg);border-radius:8px;padding:24px;border:1.5px solid var(--border)}
.fechas-result.show{display:block;animation:fadeUp .3s ease}
.fechas-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:20px}
.fstat{background:white;border-radius:8px;padding:16px;text-align:center;box-shadow:var(--shadow);border-top:3px solid var(--v3)}
.fstat .fval{font-family:'DM Serif Display',serif;font-size:1.8rem;color:var(--v);line-height:1}
.fstat .flbl{font-size:0.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.06em;margin-top:4px}
.countdown-bar{background:white;border-radius:8px;padding:16px 20px;box-shadow:var(--shadow)}
.countdown-bar h4{font-size:0.78rem;font-weight:700;color:var(--v);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px}
.progress-track{height:8px;background:var(--bg2);border-radius:4px;overflow:hidden;margin-bottom:8px}
.progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--v3),var(--accent3));transition:width .8s ease}
.progress-labels{display:flex;justify-content:space-between;font-size:0.72rem;color:var(--text-muted)}
.fechas-preconfigured{margin-bottom:24px}
.fechas-preconfigured h4{font-size:0.82rem;font-weight:700;color:var(--v);margin-bottom:12px}
.preconf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.preconf-btn{padding:10px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:600;color:var(--v);cursor:pointer;text-align:left;transition:all .2s;line-height:1.4}
.preconf-btn:hover{border-color:var(--v3);background:#e8eeff;color:var(--v3)}
.preconf-btn .pname{display:block;font-weight:700}
.preconf-btn .pdate{font-size:0.72rem;color:var(--text-muted);font-weight:400}

/* ── NORMATIVA ── */
.norm-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:28px}
.ntab{padding:12px 22px;font-weight:700;font-size:0.82rem;cursor:pointer;border:none;background:none;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;text-transform:uppercase;letter-spacing:0.05em;font-family:'DM Sans',sans-serif}
.ntab.active{color:var(--v);border-bottom-color:var(--accent)}
.ntab:hover{color:var(--v)}
.npanel{display:none}.npanel.active{display:block}
.norm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.norm-card{background:white;border-radius:var(--r);padding:22px;box-shadow:var(--shadow);border:1.5px solid var(--border);display:flex;gap:16px;align-items:flex-start;transition:all .2s}
.norm-card:hover{box-shadow:var(--shadow-lg);border-color:var(--v3)}
.norm-icon{width:40px;height:40px;background:var(--bg2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.norm-content h4{font-size:0.88rem;font-weight:700;color:var(--v);margin-bottom:4px;line-height:1.3}
.norm-content p{font-size:0.78rem;color:var(--text-muted);line-height:1.5;margin-bottom:10px}
.norm-link{display:inline-flex;align-items:center;gap:5px;font-size:0.75rem;font-weight:700;color:var(--v3);text-decoration:none;padding:4px 10px;background:var(--bg2);border-radius:5px;transition:all .2s}
.norm-link:hover{background:var(--v3);color:white}
.norm-badge{display:inline-block;font-size:0.65rem;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:6px}
.nb-ce{background:#e8eeff;color:#1a3a9a}
.nb-adm{background:#e8f5e8;color:#1a6a1a}
.nb-fun{background:#fff0e0;color:#b05000}
.nb-proc{background:#fde8ec;color:#9a1a2a}
.nb-ue{background:#e0f7fa;color:#00695c}
.nb-inf{background:#f3e5f5;color:#6a1b9a}

/* ── FAQ ── */
.faq-list{max-width:820px;display:flex;flex-direction:column;gap:10px}
.faq-item{background:white;border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;border:1.5px solid var(--border);transition:border-color .2s}
.faq-item.open{border-color:var(--v3)}
.faq-q{padding:18px 22px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600;color:var(--v);font-size:0.92rem;transition:background .2s}
.faq-q:hover{background:var(--bg)}
.faq-item.open .faq-q{background:var(--bg2)}
.faq-toggle{width:24px;height:24px;background:var(--bg2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.85rem;color:var(--v3);transition:all .3s;flex-shrink:0}
.faq-item.open .faq-toggle{background:var(--v3);color:white;transform:rotate(45deg)}
.faq-a{display:none;padding:0 22px 20px;font-size:0.88rem;color:var(--text-muted);line-height:1.75;border-top:1px solid var(--border);padding-top:16px}
.faq-item.open .faq-a{display:block;animation:fadeUp .25s ease}

/* ── CONTACTO ── */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;max-width:960px}
@media(max-width:700px){.contact-grid{grid-template-columns:1fr}}
.contact-card{background:white;border-radius:var(--r);padding:30px;box-shadow:var(--shadow);border:1.5px solid var(--border)}
.contact-card h3{font-family:'DM Serif Display',serif;font-size:1.2rem;color:var(--v);margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--border)}
.info-row{display:flex;gap:14px;padding:13px 0;border-bottom:1px dashed var(--border);align-items:flex-start;font-size:0.88rem}
.info-row:last-child{border-bottom:none}
.info-icon{width:36px;height:36px;background:var(--bg2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.info-content strong{display:block;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-muted);margin-bottom:3px}
.info-content a{color:var(--v3);text-decoration:none;font-weight:600}
.info-content a:hover{text-decoration:underline}
.contact-form{display:flex;flex-direction:column;gap:14px}
.contact-form input,.contact-form textarea{padding:11px 14px;border:2px solid var(--border);border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.92rem;color:var(--text);background:var(--bg);transition:border-color .2s}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--v3);background:white}
.contact-form textarea{height:130px;resize:vertical}
.btn-send{padding:13px;background:var(--v);color:white;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.95rem;font-weight:700;cursor:pointer;transition:all .2s}
.btn-send:hover{background:var(--v3)}
.rrss-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.rrss-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:8px;font-size:0.8rem;font-weight:700;text-decoration:none;transition:all .2s}
.rrss-tg{background:#e8f4fd;color:#0088cc}
.rrss-tg:hover{background:#0088cc;color:white}
.rrss-tw{background:#f0f0f0;color:#333}
.rrss-tw:hover{background:#333;color:white}

/* ── COOKIES (página) ── */
.cookies-wrap{max-width:860px}
.cookies-hero{background:linear-gradient(135deg,var(--v),#3a1060);color:white;border-radius:var(--r);padding:32px;margin-bottom:28px;position:relative;overflow:hidden}
.cookies-hero::after{content:'🍪';position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:5rem;opacity:.2}
.cookies-hero h2{font-family:'DM Serif Display',serif;font-size:1.6rem;margin-bottom:8px}
.cookies-hero p{font-size:0.9rem;opacity:.8;max-width:560px;line-height:1.6}
.cookies-section{background:white;border-radius:var(--r);padding:28px;box-shadow:var(--shadow);border:1.5px solid var(--border);margin-bottom:16px}
.cookies-section h3{font-family:'DM Serif Display',serif;font-size:1.1rem;color:var(--v);margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--border)}
.cookies-section p,.cookies-section li{font-size:0.88rem;color:var(--text-muted);line-height:1.75}
.cookies-section ul{padding-left:18px;margin-top:8px}
.cookies-section ul li{margin-bottom:6px}
.cookies-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:0.82rem}
.cookies-table th{background:var(--v);color:white;padding:10px 14px;text-align:left;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.06em}
.cookies-table td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.5}
.cookies-table tr:last-child td{border-bottom:none}
.cookies-table tr:nth-child(even) td{background:var(--bg)}
.cookie-type-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:0.72rem;font-weight:700;text-transform:uppercase}
.ct-esencial{background:#e8f5e8;color:#1a6a1a}
.ct-analitica{background:#e3f2fd;color:#0d47a1}
.gestionar-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;background:var(--v);color:white;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.88rem;font-weight:700;cursor:pointer;transition:all .2s;margin-top:16px}
.gestionar-btn:hover{background:var(--v3)}

/* ── AVISO LEGAL / PRIVACIDAD ── */
.legal-wrap{max-width:800px}
.legal-section{background:white;border-radius:var(--r);padding:28px;box-shadow:var(--shadow);border:1.5px solid var(--border);margin-bottom:16px}
.legal-section h3{font-family:'DM Serif Display',serif;font-size:1.1rem;color:var(--v);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.legal-section p,.legal-section li{font-size:0.88rem;color:var(--text-muted);line-height:1.75}
.legal-section ul{padding-left:18px;margin-top:8px}
.legal-section ul li{margin-bottom:5px}
.legal-section strong{color:var(--v)}
.legal-hero{background:linear-gradient(135deg,var(--v),var(--v3));color:white;border-radius:var(--r);padding:28px 32px;margin-bottom:28px}
.legal-hero h2{font-family:'DM Serif Display',serif;font-size:1.5rem;margin-bottom:6px}
.legal-hero p{font-size:0.88rem;opacity:.75}

/* ── FOOTER ── */
footer{background:var(--v);color:rgba(255,255,255,0.55);padding:36px 24px;margin-top:0}
.footer-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;margin-bottom:28px}
.footer-col h4{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:rgba(255,255,255,0.35);margin-bottom:14px}
.footer-col p{font-size:0.82rem;line-height:1.65}
.footer-col .logo-ft{font-family:'DM Serif Display',serif;font-size:1.2rem;color:white;margin-bottom:8px}
.footer-col .logo-ft span{color:var(--accent)}
.footer-links{display:flex;flex-direction:column;gap:7px}
.footer-links a,.footer-links button{font-size:0.82rem;color:rgba(255,255,255,0.55);text-decoration:none;background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;text-align:left;padding:0;transition:color .2s}
.footer-links a:hover,.footer-links button:hover{color:white}
.footer-bottom{max-width:1280px;margin:0 auto;padding-top:20px;border-top:1px solid rgba(255,255,255,0.1);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:0.78rem}
.footer-legal-links{display:flex;gap:16px;flex-wrap:wrap}
.footer-legal-links a,.footer-legal-links button{font-size:0.78rem;color:rgba(255,255,255,0.5);text-decoration:none;background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;transition:color .2s;padding:0}
.footer-legal-links a:hover,.footer-legal-links button:hover{color:white;text-decoration:underline}
@media(max-width:700px){.footer-inner{grid-template-columns:1fr}.footer-bottom{flex-direction:column;text-align:center}.footer-legal-links{justify-content:center}}

/* ── COOKIE BANNER ── */
#cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:var(--v);border-top:3px solid var(--accent);box-shadow:0 -4px 30px rgba(0,0,0,0.3);padding:20px 24px;display:none;align-items:center;gap:20px;flex-wrap:wrap;font-family:'DM Sans',sans-serif;animation:slideUp .4s ease}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.cb-text{flex:1 1 300px;font-size:0.86rem;color:rgba(255,255,255,0.82);line-height:1.5}
.cb-text strong{color:white}
.cb-text a{color:var(--accent3);text-decoration:underline}
.cb-btns{display:flex;gap:10px;flex-wrap:wrap;align-items:center;flex-shrink:0}
.cb-accept{background:var(--accent3);color:var(--v);border:none;border-radius:6px;padding:10px 20px;font-weight:700;font-size:0.84rem;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:all .2s}
.cb-accept:hover{background:#00bfa5;transform:translateY(-1px)}
.cb-reject{background:transparent;color:rgba(255,255,255,0.75);border:1.5px solid rgba(255,255,255,0.35);border-radius:6px;padding:8px 16px;font-weight:700;font-size:0.84rem;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:all .2s}
.cb-reject:hover{border-color:white;color:white}
.cb-config{background:transparent;color:rgba(255,255,255,0.5);border:none;padding:8px;font-size:0.8rem;cursor:pointer;text-decoration:underline;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:color .2s}
.cb-config:hover{color:white}

/* ── COOKIE PANEL ── */
#cookie-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:10000;backdrop-filter:blur(2px)}
#cookie-panel{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10001;background:white;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,0.3);width:min(560px,95vw);max-height:90vh;overflow-y:auto;font-family:'DM Sans',sans-serif}
.cp-head{background:linear-gradient(135deg,var(--v),var(--v3));color:white;padding:22px 28px;border-radius:14px 14px 0 0;display:flex;justify-content:space-between;align-items:center}
.cp-head h2{font-family:'DM Serif Display',serif;font-size:1.2rem}
.cp-close{background:none;border:none;color:rgba(255,255,255,.65);font-size:1.5rem;cursor:pointer;line-height:1;padding:0 4px;transition:color .2s}
.cp-close:hover{color:white}
.cp-body{padding:24px 28px;font-size:0.86rem;color:var(--text-muted);line-height:1.6}
.cp-body p{margin-bottom:16px}
.cp-cat{border:1.5px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden;transition:border-color .2s}
.cp-cat.open{border-color:var(--v3)}
.cp-cat-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:var(--bg);cursor:pointer;user-select:none;transition:background .2s}
.cp-cat-head:hover{background:var(--bg2)}
.cp-cat-name{font-weight:700;font-size:0.88rem;color:var(--v)}
.cp-cat-body{display:none;padding:12px 16px;font-size:0.82rem;border-top:1px solid var(--border)}
.cp-cat.open .cp-cat-body{display:block}
.toggle-wrap{position:relative;display:inline-block;width:42px;height:22px;flex-shrink:0}
.toggle-wrap input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:#ccc;border-radius:22px;cursor:pointer;transition:background .2s}
.toggle-slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:white;border-radius:50%;transition:transform .2s}
.toggle-wrap input:checked+.toggle-slider{background:var(--v3)}
.toggle-wrap input:checked+.toggle-slider::before{transform:translateX(20px)}
.toggle-wrap input:disabled+.toggle-slider{background:#7a9abf;cursor:not-allowed}
.cp-footer{padding:16px 28px 22px;border-top:1px solid var(--border);display:flex;gap:10px;flex-wrap:wrap}
.cp-save{background:var(--v);color:white;border:none;border-radius:8px;padding:11px 24px;font-weight:700;font-size:0.88rem;cursor:pointer;flex:1;font-family:'DM Sans',sans-serif;transition:background .2s}
.cp-save:hover{background:var(--v3)}
.cp-accept-all{background:var(--accent3);color:var(--v);border:none;border-radius:8px;padding:11px 20px;font-weight:700;font-size:0.88rem;cursor:pointer;flex:1;font-family:'DM Sans',sans-serif;transition:all .2s}
.cp-accept-all:hover{background:#00bfa5}

/* ── RESPONSIVE ── */
@media(max-width:640px){
  .form-row,.three-cols,.two-cols,.fechas-grid{grid-template-columns:1fr}
  .hero h1{font-size:1.8rem}
  .hero-stats{gap:20px}
  .opo-grid{grid-template-columns:1fr}
  .procesos-actuales{grid-template-columns:1fr}
  .nav-links li a,.nav-links li button{padding:14px 10px;font-size:0.74rem}
  .macro-banner{flex-direction:column;text-align:center}
  .macro-banner .btn-macro{width:100%;justify-content:center}
}