:root{ --brand:#ff5a00;--dark:#111;--mid:#555;--light:#f7f7f7;--white:#fff; --radius:18px;--shadow:0 12px 28px rgba(0,0,0,.08);--link:#ff5a00; } *,*::before,*::after{box-sizing:border-box} html,body{height:100%} body{ margin:0; font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif; color:var(--dark);background:var(--white); } a{color:var(--link);text-decoration:none} a:hover{opacity:.85} .container{max-width:1180px;margin:0 auto;padding:0 20px} header{ position:sticky;top:0; backdrop-filter:saturate(140%) blur(8px); background:rgba(255,255,255,.95); border-bottom:1px solid rgba(0,0,0,.06); z-index:50; } .nav{height:64px;display:flex;align-items:center;justify-content:space-between} .brand{display:flex;align-items:center;gap:.75rem} .brand img{height:30px;width:auto} .brand-tagline{color:var(--mid)} nav a{margin-left:14px} .btn{ display:inline-flex;align-items:center;gap:.5rem; padding:.9rem 1.2rem;border-radius:999px; font-weight:700;transition:.2s ease;border:1px solid transparent; cursor:pointer; } .btn-primary{background:var(--brand);color:#fff} .btn-primary:hover{transform:translateY(-1px);opacity:.95} .btn-ghost{background:rgba(0,0,0,.05);color:var(--dark);border:1px solid rgba(0,0,0,.06)} .menu-toggle{ display:none;cursor:pointer;font-size:26px; background:none;border:none;color:var(--dark); } @media(max-width:900px){ nav{ display:none;flex-direction:column;align-items:flex-start; position:absolute;top:64px;right:0;width:100%; background:var(--white);box-shadow:0 8px 20px rgba(0,0,0,.08); padding:20px; } nav.open{display:flex} nav a{margin:10px 0} .menu-toggle{display:block} } .hero{ position:relative;isolation:isolate;overflow:hidden; background: radial-gradient(1200px 600px at 80% -10%,rgba(255,90,0,.10),transparent 60%), radial-gradient(1200px 600px at 0% -20%,rgba(0,0,0,.05),transparent 60%); padding:72px 0 36px; } h1{font-size:clamp(32px,5.2vw,52px);line-height:1.1;margin:0} h2{font-size:clamp(22px,3.2vw,30px);margin:0 0 10px} h3{font-size:18px;margin:0 0 6px} p.lead{color:var(--mid);font-size:18px} .hero-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap} .hero-badges{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap} .badge{ display:inline-flex;align-items:center; padding:.35rem .7rem;border-radius:999px; background:rgba(0,0,0,.05);color:var(--mid);font-size:.9rem; } .grid{display:grid;gap:28px} @media(min-width:900px){ .grid-2{grid-template-columns:1.15fr .85fr} .grid-3{grid-template-columns:repeat(3,1fr)} .grid-4{grid-template-columns:repeat(4,1fr)} } .card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px} .card-title{margin-bottom:8px} .soft{background:var(--light);border-radius:var(--radius)} .section{padding:56px 0} .section-title{margin-bottom:16px} .kpi-grid{margin-bottom:12px} .kpi{border-radius:16px;background:rgba(0,0,0,.05);padding:16px;text-align:center} .kpi .label{color:var(--mid);font-size:13px} .kpi .value{font-weight:900;font-size:28px} .kpi-footnote{margin-top:8px} .service{transition:.2s ease;border:1px solid rgba(0,0,0,.06)} .service:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.10)} .illus{ width:100%;height:160px;border-radius:14px; background:linear-gradient(135deg,rgba(255,90,0,.12),rgba(0,0,0,.02)); display:flex;align-items:center;justify-content:center; color:#ff7d3a;font-weight:800;letter-spacing:.5px; } .list{margin:0;padding-left:18px} input,textarea,select{ padding:12px 14px;border:1px solid rgba(0,0,0,.12);border-radius:12px; font:inherit; } input:focus,textarea:focus,select:focus{ outline:2px solid rgba(255,90,0,.3);border-color:var(--brand); } form{display:grid;gap:12px} .row{display:grid;gap:12px} @media(min-width:720px){.row-2{grid-template-columns:1fr 1fr}} .hint{color:var(--mid);font-size:13px} .form-msg{margin-top:10px;font-size:14px} .success,.error{padding:10px 12px;border-radius:10px;font-size:14px} .success{background:rgba(0,200,0,.08);color:#196c19} .error{background:rgba(255,0,0,.08);color:#9f1d1d} .honeypot{position:absolute;left:-5000px;opacity:0;pointer-events:none} .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease} .reveal.visible{opacity:1;transform:none} .calendario-section{background:#fff8f2} .calendario-wrapper{border-radius:12px} .calendario-wrapper h2{margin-top:0} .calendario-filtros{margin-bottom:20px;display:flex;gap:16px;flex-wrap:wrap} .hidden-select{display:none} .obligaciones-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px;margin-top:20px; } .obligacion-card{ padding:16px;background:#fff;border-radius:14px; border-left:6px solid #ff5a00; box-shadow:0 4px 14px rgba(0,0,0,.06);font-size:.95rem; } .obligacion-card strong{font-size:16px;line-height:1.3} .obligacion-card small{color:#666} .boletin-header{ display:flex;align-items:center;justify-content:space-between; gap:12px;flex-wrap:wrap; } footer{ border-top:1px solid rgba(0,0,0,.06); padding:36px 0;color:var(--mid);font-size:14px; } .footer-inner{ display:flex;align-items:center;justify-content:space-between; gap:12px;flex-wrap:wrap; } .footer-links{display:flex;gap:16px} .boletin-modal-overlay{ position:fixed !important; inset:0; z-index:999999 !important; } .modal { position: fixed; inset: 0; background: rgba(0,0,0,0.45); display: flex; justify-content: center; align-items: center; z-index: 9999; } .modal.oculto { display: none; } .modal-contenido { background: white; padding: 25px; width: min(600px, 90%); max-height: 85vh; overflow-y: auto; border-radius: 18px; box-shadow: 0 10px 40px rgba(0,0,0,0.25); font-family: system-ui, sans-serif; } .modal-cerrar { background: transparent; border: none; font-size: 28px; float: right; cursor: pointer; } .modal-titulo { font-size: 22px; font-weight: 700; margin-bottom: 10px; } .modal-fecha, .modal-fuente { font-size: 14px; color: #666; margin-bottom: 4px; } .modal-html p { margin-top: 12px; line-height: 1.5; }


/* ==== GRID DE BOLETINES (COLUMNAS TIPO CALENDARIO) ==== */

#noticias-contenedor {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 24px;
  margin-top: 24px;
}

/* ==== TARJETA DE BOLETÍN TIPO CALENDARIO ==== */

.boletin-card {
  background: #fff;
  border-radius: 16px;
  padding: 18px 20px 24px;
  border-left: 6px solid var(--brand);
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
  transition: transform .15s ease, box-shadow .15s ease;
}

.boletin-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(0,0,0,.12);
}

/* ==== META ==== */

.boletin-meta {
  font-size: 14px;
  color: var(--mid);
  margin-bottom: 6px;
  display: flex;
  gap: 6px;
}

/* ==== TÍTULO ==== */

.boletin-titulo {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 10px;
  color: var(--dark);
  line-height: 1.3;
}

/* ==== LINK VER DETALLE ==== */

.boletin-link {
  display: block;
  margin-top: 14px;
  text-align: right;
  font-size: 15px;
  font-weight: 600;
  background: none;
  border: none;
  color: var(--brand);
  cursor: pointer;
  padding: 0;
}

.boletin-link:hover {
  opacity: .8;
}

/* ==== MODAL (YA INCLUIDO, SOLO AJUSTE DE TIPO SOPYME) ==== */

.modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.modal.oculto { display: none; }

.modal-contenido {
  background: #fff;
  padding: 32px;
  width: min(620px, 92%);
  max-height: 85vh;
  overflow-y: auto;
  border-radius: 18px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.25);
}

.modal-cerrar {
  background: transparent;
  border: none;
  font-size: 28px;
  float: right;
  cursor: pointer;
}

.modal-titulo {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 10px;
}

.modal-fecha,
.modal-fuente {
  font-size: 14px;
  color: #555;
  margin-bottom: 2px;
}

.modal-html p {
  margin-top: 12px;
  line-height: 1.55;
}

.boletin-filtros {
  display: flex;
  gap: 12px;
  margin: 20px 0 10px;
  flex-wrap: wrap;
}

.boletin-filtros button {
  padding: 8px 14px;
  background: #f2f2f2;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.08);
  cursor: pointer;
  font-size: 15px;
  transition: .15s ease;
}

.boletin-filtros button:hover {
  background: #e9e9e9;
}

.boletin-filtros button.activo {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}

