/* paginas.css — estilos de páginas internas (convenios, etc.) */
:root{
  --pg-blue:#1d4ed8; --pg-blue2:#2563eb; --pg-ink:#0f172a;
  --pg-muted:#475569; --pg-bg:#f8fafc; --pg-line:#e2e8f0;
  --pg-radius:18px; --pg-shadow:0 10px 30px rgba(15,23,42,.08);
}

.pg-main{ background:var(--pg-bg); }
.pg-wrap{ max-width:1100px; margin:0 auto; padding-left:20px; padding-right:20px; }
.pg-section{ padding:56px 20px; }

/* ---------- Cabecera de página ---------- */
.pg-hero{
  position:relative;
  background:linear-gradient(120deg,#1d4ed8,#2563eb 55%,#1e40af);
  color:#fff; overflow:hidden;
}
.pg-hero::after{
  content:""; position:absolute; right:-120px; top:-120px;
  width:380px; height:380px; border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);
}
.pg-hero-inner{ max-width:1100px; margin:0 auto; padding:54px 20px 60px; position:relative; z-index:1; }
.pg-breadcrumb{ font-size:13px; font-weight:600; color:#dbeafe; margin-bottom:18px; }
.pg-breadcrumb a{ color:#dbeafe; text-decoration:none; }
.pg-breadcrumb a:hover{ color:#fff; text-decoration:underline; }
.pg-breadcrumb span{ margin:0 6px; opacity:.6; }
.pg-breadcrumb b{ color:#fff; }
.pg-kicker{
  display:inline-block; font-size:12px; font-weight:800; letter-spacing:.1em;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25);
  padding:6px 14px; border-radius:999px; margin-bottom:18px;
}
.pg-title{ font-size:clamp(28px,5vw,46px); line-height:1.08; margin:0 0 16px; max-width:18ch; }
.pg-subtitle{ font-size:clamp(15px,2vw,18px); line-height:1.6; color:#eaf1ff; max-width:62ch; margin:0 0 28px; }
.pg-hero-actions{ display:flex; flex-wrap:wrap; gap:12px; }

/* ---------- Botones ---------- */
.pg-btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:12px 22px; border-radius:999px; font-weight:800; font-size:14.5px;
  text-decoration:none; transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.pg-btn svg{ width:18px; height:18px; flex-shrink:0; }
.pg-btn--wa{ background:#22c55e; color:#fff; box-shadow:0 10px 24px rgba(34,197,94,.35); }
.pg-btn--wa:hover{ transform:translateY(-2px); box-shadow:0 16px 32px rgba(34,197,94,.45); }
.pg-btn--ghost{ background:rgba(255,255,255,.12); color:#fff; border:1.5px solid rgba(255,255,255,.4); }
.pg-btn--ghost:hover{ background:rgba(255,255,255,.2); }
.pg-btn--lg{ padding:15px 30px; font-size:16px; }

/* ---------- Títulos de sección ---------- */
.pg-h2{ font-size:clamp(22px,3.5vw,32px); color:var(--pg-ink); margin:0 0 28px; text-align:center; }
.pg-lead{ font-size:clamp(16px,2vw,19px); line-height:1.65; color:var(--pg-muted); max-width:70ch; margin:0 auto 36px; text-align:center; }

/* ---------- Grids de tarjetas ---------- */
.pg-grid{ display:grid; gap:20px; }
.pg-grid--2{ grid-template-columns:repeat(2,1fr); }
.pg-grid--3{ grid-template-columns:repeat(3,1fr); }
.pg-card{
  background:#fff; border:1px solid var(--pg-line); border-radius:var(--pg-radius);
  padding:26px 24px; box-shadow:var(--pg-shadow);
}
.pg-card h3{ font-size:18px; color:var(--pg-ink); margin:14px 0 8px; }
.pg-card p{ font-size:14.5px; line-height:1.6; color:var(--pg-muted); margin:0; }
.pg-card-ic{
  width:54px; height:54px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  font-size:26px; background:linear-gradient(135deg,#eff6ff,#dbeafe);
}
.pg-card--link{ display:block; color:inherit; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.pg-card--link:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(29,78,216,.16); border-color:#bfdbfe; }
.pg-card-go{ display:inline-block; margin-top:14px; color:var(--pg-blue); font-weight:800; font-size:14px; }

/* ---------- Pasos ---------- */
.pg-steps{ list-style:none; margin:0; padding:0; display:grid; gap:16px; max-width:780px; margin:0 auto; }
.pg-step{ display:flex; gap:18px; align-items:flex-start; background:#fff; border:1px solid var(--pg-line); border-radius:16px; padding:20px 22px; box-shadow:var(--pg-shadow); }
.pg-step-n{
  flex-shrink:0; width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  font-family:'Nunito Sans',sans-serif; font-weight:900; font-size:18px; color:#fff;
  background:linear-gradient(135deg,var(--pg-blue),var(--pg-blue2));
}
.pg-step h3{ font-size:16.5px; color:var(--pg-ink); margin:2px 0 6px; }
.pg-step p{ font-size:14.5px; line-height:1.55; color:var(--pg-muted); margin:0; }

/* ---------- Nota ---------- */
.pg-note{
  background:#fff; border:1px dashed #93c5fd; border-left:4px solid var(--pg-blue);
  border-radius:14px; padding:18px 22px; color:var(--pg-muted); font-size:14.5px; line-height:1.6;
  max-width:820px; margin:0 auto;
}
.pg-note strong{ color:var(--pg-ink); }

/* ---------- Banda CTA final ---------- */
.pg-ctaband{ background:linear-gradient(120deg,#0f172a,#1e3a8a); color:#fff; }
.pg-ctaband-inner{ max-width:760px; margin:0 auto; padding:60px 20px; text-align:center; }
.pg-ctaband h2{ font-size:clamp(24px,4vw,34px); margin:0 0 12px; }
.pg-ctaband p{ font-size:16px; color:#cbd5e1; margin:0 0 28px; }
.pg-ctaband .pg-btn{ margin:0 auto; }

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .pg-grid--3{ grid-template-columns:1fr 1fr; }
}
@media (max-width:620px){
  .pg-grid--2, .pg-grid--3{ grid-template-columns:1fr; }
  .pg-section{ padding:40px 18px; }
  .pg-hero-inner{ padding:40px 18px 46px; }
}


/* ---------- Formularios ---------- */
.pg-narrow{ max-width:760px; }
.pg-formcard{ padding:30px 28px; }
.pg-form-title{ font-size:22px; color:var(--pg-ink); margin:0 0 6px; }
.pg-form-help{ font-size:14.5px; color:var(--pg-muted); margin:0 0 22px; }
.pg-form{ display:block; }
.pg-fieldset{ border:1px solid var(--pg-line); border-radius:14px; padding:18px 18px 6px; margin:0 0 20px; }
.pg-fieldset legend{ font-family:'Nunito Sans',sans-serif; font-weight:800; font-size:14px; color:var(--pg-blue); padding:0 8px; }
.pg-field{ margin-bottom:16px; }
.pg-field label{ display:block; font-size:13.5px; font-weight:700; color:var(--pg-ink); margin-bottom:6px; }
.pg-field input, .pg-field textarea, .pg-field select{
  width:100%; padding:12px 14px; border:1.5px solid var(--pg-line); border-radius:11px;
  font-family:inherit; font-size:15px; color:var(--pg-ink); background:#fff; transition:border-color .2s, box-shadow .2s;
}
.pg-field input:focus, .pg-field textarea:focus, .pg-field select:focus{
  outline:none; border-color:var(--pg-blue); box-shadow:0 0 0 3px rgba(37,99,235,.15);
}
.pg-field textarea{ resize:vertical; min-height:90px; }
.pg-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.pg-radios{ display:flex; flex-direction:column; gap:10px; margin-bottom:8px; }
.pg-radio, .pg-check{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--pg-muted); cursor:pointer; }
.pg-radio input, .pg-check input{ width:18px; height:18px; accent-color:var(--pg-blue); flex-shrink:0; }
.pg-radio span b{ color:var(--pg-ink); }
.pg-check{ margin-top:4px; }
.pg-btn--block{ width:100%; justify-content:center; margin-top:6px; }
.pg-form-foot{ font-size:12.5px; color:#94a3b8; line-height:1.55; margin:14px 0 0; }
@media (max-width:620px){ .pg-form-grid{ grid-template-columns:1fr; } }


/* ---------- Validador de certificados ---------- */
.cert-search{ display:flex; gap:10px; }
.cert-search input{ flex:1; padding:13px 15px; border:1.5px solid var(--pg-line); border-radius:11px; font-size:15.5px; font-family:inherit; color:var(--pg-ink); }
.cert-search input:focus{ outline:none; border-color:var(--pg-blue); box-shadow:0 0 0 3px rgba(37,99,235,.15); }
.cert-search .pg-btn{ padding:13px 26px; }
.cert-msg{ min-height:20px; font-size:14px; color:var(--pg-muted); margin-top:10px; }
.cert-msg.err{ color:#dc2626; font-weight:600; }
.pg-formcard code{ background:#eef2ff; color:#1d4ed8; padding:2px 7px; border-radius:6px; font-size:13px; }

.cert-modal{ position:fixed; inset:0; z-index:99999; display:none; align-items:flex-start; justify-content:center; padding:24px; }
.cert-modal.open{ display:flex; }
.cert-modal__backdrop{ position:absolute; inset:0; background:rgba(15,23,42,.6); backdrop-filter:blur(3px); }
.cert-modal__panel{ position:relative; background:#fff; border-radius:18px; max-width:860px; width:100%; max-height:90vh; overflow:auto; box-shadow:0 30px 80px rgba(0,0,0,.4); padding:26px 26px 30px; }
.cert-modal__close{ position:absolute; top:14px; right:14px; border:0; background:#f1f5f9; width:38px; height:38px; border-radius:50%; font-size:15px; cursor:pointer; color:#334155; }
.cert-modal__close:hover{ background:#e2e8f0; }
.cert-badge{ display:inline-block; background:#dcfce7; color:#16a34a; font-weight:800; padding:8px 16px; border-radius:999px; font-size:14px; margin-bottom:18px; }
.cert-data{ display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; margin-bottom:18px; }
.cert-row{ display:flex; flex-direction:column; border-bottom:1px solid #eef2f7; padding:6px 0; }
.cert-row span{ font-size:11.5px; color:#94a3b8; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.cert-row b{ font-size:15px; color:var(--pg-ink); }
.cert-pdf{ width:100%; height:480px; border:1px solid var(--pg-line); border-radius:12px; margin-bottom:14px; background:#f8fafc; }
.cert-actions{ display:flex; gap:10px; justify-content:center; }
.cert-doc + .cert-doc{ margin-top:26px; border-top:2px dashed var(--pg-line); padding-top:22px; }
@media (max-width:600px){ .cert-data{ grid-template-columns:1fr; } .cert-pdf{ height:360px; } .cert-search{ flex-direction:column; } }

/* ---------- Validar certificado: versión impactante ---------- */
.cert-hero-pills{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.cert-hero-pills span{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.30); color:#fff; font-size:13px; font-weight:700; padding:8px 15px; border-radius:999px; }

.cert-verify{ position:relative; background:#fff; border:1px solid var(--pg-line); border-radius:22px; padding:46px 34px 32px; box-shadow:0 26px 64px rgba(15,23,42,.14); text-align:center; overflow:hidden; margin-top:-66px; }
.cert-verify-glow{ position:absolute; top:-70px; left:50%; transform:translateX(-50%); width:340px; height:180px; background:radial-gradient(closest-side, rgba(37,99,235,.18), transparent); pointer-events:none; }
.cert-verify-icon{ position:relative; width:76px; height:76px; margin:0 auto 16px; border-radius:20px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,#1d4ed8,#2563eb); box-shadow:0 14px 30px rgba(37,99,235,.42); }
.cert-verify-icon svg{ width:40px; height:40px; }
.cert-verify-title{ font-family:'Nunito Sans',sans-serif; font-size:25px; color:var(--pg-ink); margin:0 0 8px; }
.cert-verify-sub{ font-size:14.5px; color:var(--pg-muted); margin:0 auto 24px; max-width:48ch; }
.cert-verify .cert-search{ max-width:540px; margin:0 auto; }
.cert-verify .cert-search input{ font-size:16px; padding:15px 18px; }
.cert-verify .cert-search .pg-btn{ padding:15px 28px; font-size:15px; white-space:nowrap; }
.cert-verify .cert-msg{ text-align:center; }
.cert-trust{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px 28px; margin-top:26px; padding-top:22px; border-top:1px solid var(--pg-line); }
.cert-trust-item{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--pg-muted); }
.cert-trust-item span{ font-size:19px; }

/* "." discreto -> panel de administración */
.cert-admin-dot{ position:absolute; right:14px; bottom:10px; width:22px; height:22px; display:flex; align-items:flex-end; justify-content:center; font-size:26px; font-weight:900; line-height:.5; color:#e2e8f0; text-decoration:none; transition:color .2s, transform .2s; }
.cert-admin-dot:hover{ color:#1d4ed8; transform:scale(1.3); }
@media (max-width:600px){ .cert-verify{ margin-top:-44px; padding:34px 20px 26px; } }
