/* =========================================================
   Infodelito: sistema visual común
   Cabeceras, buscador, filtros, pestañas, tarjetas, entradas
   ========================================================= */
:root{
  --idl-navy: #0D203F;
  --idl-gold: #E19F41;
  --idl-gold-soft: #FBEFD9;
  --idl-text: #3F4A5C;
  --idl-muted: rgba(13, 32, 63, .7);
  --idl-line: rgba(13, 32, 63, .15);
  --idl-soft: #F5F5F5;
  --idl-serif: "Noto Serif Display", Georgia, "Times New Roman", serif;
  --idl-sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --idl-r-input: 10px;
  --idl-r-card: 14px;
  --idl-r-pill: 9999px;
  --idl-wide: 1180px;
}

/* ---------- Contenedores (anula los anchos de Hello Elementor) ---------- */
body .idl-single.site-main,
body .idl-archive.site-main{
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0 20px 80px;
}
.idl-single, .idl-archive, .idl-listing{
  font-family: var(--idl-sans);
  color: var(--idl-text);
}
.idl-listing{ padding: 0 20px 80px; }
.idl-single *, .idl-archive *, .idl-listing *{ box-sizing: border-box; }

.idl-sr-only{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

/* ---------- Cabecera de página (Artículos, Noticias, Multimedia, archivos) ---------- */
.idl-hero{
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
  padding: 64px 0 40px;
}
.idl-hero__title{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: clamp(2.25rem, 6vw, 2.75rem);
  line-height: 1.15;
  color: var(--idl-navy);
  margin: 0 0 16px;
}
.idl-hero__intro{
  font-size: 18px;
  line-height: 1.55;
  color: var(--idl-muted);
  max-width: 600px;
  margin: 0 auto 32px;
}
.idl-hero__intro p{ margin: 0; }
.idl-hero > :last-child{ margin-bottom: 0; }

/* ---------- Buscador ---------- */
.idl-search{
  position: relative;
  max-width: 500px;
  margin: 0 auto 24px;
}
.idl-search__icon{
  position: absolute;
  left: 14px;
  top: 50%;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
  color: var(--idl-muted);
  pointer-events: none;
}
.idl-search input[type="search"]{
  width: 100%;
  padding: 12px 16px 12px 44px;
  border: 1px solid var(--idl-line);
  border-radius: var(--idl-r-input);
  background: #fff;
  font-family: var(--idl-sans);
  font-size: 15px;
  color: var(--idl-navy);
  -webkit-appearance: none;
  appearance: none;
}
.idl-search input[type="search"]::placeholder{ color: var(--idl-muted); }
.idl-search input[type="search"]:focus{
  outline: 2px solid var(--idl-navy);
  outline-offset: 2px;
  border-color: var(--idl-navy);
}

/* ---------- Píldoras: filtros, etiquetas, paginación ---------- */
.idl-filters{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.idl-pill,
.idl-pill:link,
.idl-pill:visited,
.idl-tags a,
.idl-pagination .page-numbers{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 18px;
  border: 1px solid var(--idl-navy);
  border-radius: var(--idl-r-pill);
  background: #fff;
  font-family: var(--idl-sans);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--idl-navy) !important;
  text-decoration: none !important;
  transition: background .15s, color .15s;
}
.idl-pill:hover,
.idl-pill.is-active,
.idl-tags a:hover,
.idl-pagination a.page-numbers:hover,
.idl-pagination .page-numbers.current{
  background: var(--idl-navy);
  color: #fff !important;
}
.idl-pill:focus-visible,
.idl-tags a:focus-visible,
.idl-pagination a.page-numbers:focus-visible{
  outline: 2px solid var(--idl-navy);
  outline-offset: 3px;
}
.idl-pagination .page-numbers.dots{ border-color: transparent; }

/* ---------- Pestañas (Multimedia) ---------- */
.idl-tabs{
  display: flex;
  background: var(--idl-soft);
  border-radius: var(--idl-r-pill);
  padding: 4px;
  max-width: 480px;
  margin: 0 auto;
}
.idl-tab{
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 14px;
  border: 0;
  background: transparent;
  border-radius: var(--idl-r-pill);
  font-family: var(--idl-sans);
  font-size: 14px;
  font-weight: 600;
  color: var(--idl-navy);
  cursor: pointer;
  transition: background .2s, color .2s;
}
.idl-tab svg{ width: 16px; height: 16px; flex-shrink: 0; }
.idl-tab:hover:not(.is-active){ background: rgba(13, 32, 63, .06); }
.idl-tab.is-active{ background: var(--idl-navy); color: #fff; }
.idl-tab:focus-visible{ outline: 2px solid var(--idl-navy); outline-offset: 2px; }

/* ---------- Etiqueta de categoría ---------- */
.idl-chip{
  display: inline-block;
  font-family: var(--idl-sans);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--idl-navy);
  background: var(--idl-gold-soft);
  border-radius: var(--idl-r-pill);
  padding: 6px 14px;
  text-decoration: none;
}
a.idl-chip:hover{ background: var(--idl-gold); color: var(--idl-navy); }
.idl-chip--small{ font-size: 12px; padding: 4px 12px; }

/* ---------- Grid y tarjetas ---------- */
.idl-grid{
  max-width: var(--idl-wide);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
  gap: 28px;
}
.idl-card{
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--idl-line);
  border-radius: var(--idl-r-card);
  overflow: hidden;
  transition: border-color .15s;
}
.idl-card:hover{ border-color: var(--idl-navy); }
.idl-card:focus-within{ outline: 2px solid var(--idl-navy); outline-offset: 3px; }
.idl-card__media img,
.idl-card__placeholder{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.idl-card__placeholder{ background: var(--idl-soft); }
.idl-card__body{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 20px 22px 22px;
  flex: 1;
}
.idl-card__title{
  font-family: var(--idl-serif);
  font-size: 21px;
  line-height: 1.3;
  font-weight: 500;
  margin: 0;
}
.idl-card__link,
.idl-card__link:visited{ color: var(--idl-navy) !important; text-decoration: none !important; }
.idl-card__link::after{ content: ""; position: absolute; inset: 0; }
.idl-card__link:focus-visible{ outline: none; }
.idl-card:hover .idl-card__link{ text-decoration: underline !important; text-underline-offset: 3px; }
.idl-card__excerpt{
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--idl-text);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.idl-card__date{ margin-top: auto; font-size: 14px; color: var(--idl-muted); }

.idl-empty{
  max-width: var(--idl-wide);
  margin: 0 auto;
  padding: 48px 20px;
  text-align: center;
  font-size: 16px;
  color: var(--idl-muted);
  border: 1px dashed var(--idl-line);
  border-radius: var(--idl-r-card);
}

/* ---------- Paginación ---------- */
.idl-pagination{ max-width: var(--idl-wide); margin: 48px auto 0; }
.idl-pagination .nav-links{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.idl-pagination .page-numbers{ min-width: 40px; padding: 8px 14px; }

/* ---------- Entrada individual ---------- */
.idl-article__header{
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
  padding: 64px 0 40px;
}
.idl-article__title{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: clamp(2rem, 5.5vw, 2.75rem);
  line-height: 1.2;
  color: var(--idl-navy);
  margin: 20px 0 16px;
}
.idl-article__meta{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 20px;
  margin: 0;
  font-size: 15px;
  color: var(--idl-muted);
}
.idl-article__meta > * + *{ padding-left: 20px; border-left: 1px solid var(--idl-line); }
.idl-article__media{ max-width: 900px; margin: 0 auto 48px; }
.idl-article__media img{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--idl-r-card);
}
.idl-article__content{
  max-width: 720px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.8;
}
.idl-article__content > *{ margin-top: 0; margin-bottom: 1.4em; }
.idl-article__content h2,
.idl-article__content h3{
  font-family: var(--idl-serif);
  font-weight: 500;
  line-height: 1.25;
  color: var(--idl-navy);
  margin-top: 1.8em;
}
.idl-article__content h2{ font-size: clamp(1.5rem, 3.6vw, 1.875rem); }
.idl-article__content h3{ font-size: clamp(1.25rem, 3vw, 1.5rem); }
.idl-article__content a{ color: var(--idl-navy); text-decoration: underline; text-underline-offset: 3px; }
.idl-article__content a:hover{ text-decoration-color: var(--idl-gold); text-decoration-thickness: 2px; }
.idl-article__content img{ max-width: 100%; height: auto; border-radius: var(--idl-r-card); }
.idl-article__content figcaption{ font-size: 15px; color: var(--idl-muted); margin-top: 8px; }
.idl-article__content blockquote{
  margin-left: 0; margin-right: 0;
  padding: 4px 0 4px 24px;
  border-left: 3px solid var(--idl-gold);
  font-family: var(--idl-serif);
  font-size: 22px;
  line-height: 1.5;
  color: var(--idl-navy);
}
.idl-article__content ul,
.idl-article__content ol{ padding-left: 20px; }
.idl-article__content li::marker{ color: var(--idl-gold); }

.idl-article__footer{
  max-width: 720px;
  margin: 48px auto 0;
  padding-top: 32px;
  border-top: 1px solid var(--idl-line);
}
.idl-article__label{
  font-family: var(--idl-sans);
  font-size: 15px;
  font-weight: 700;
  color: var(--idl-navy);
  margin: 0 0 12px;
}
.idl-tags{ list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }

.idl-related{
  max-width: var(--idl-wide);
  margin: 80px auto 0;
  padding-top: 48px;
  border-top: 1px solid var(--idl-line);
}
.idl-related__title{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  color: var(--idl-navy);
  text-align: center;
  margin: 0 0 32px;
}

/* ---------- Móvil ---------- */
@media (max-width: 600px){
  .idl-hero, .idl-article__header{ padding: 40px 0 28px; }
  .idl-hero__intro{ font-size: 17px; }
  .idl-article__content{ font-size: 17px; }
  .idl-article__meta > * + *{ padding-left: 0; border-left: 0; }
  .idl-tab{ padding: 10px 8px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce){
  .idl-card, .idl-pill, .idl-tab, .idl-tags a, .idl-pagination .page-numbers{ transition: none; }
}

/* ---------- Contacto (Nosotros) ---------- */
.idl-contact{
  font-family: var(--idl-sans);
  color: var(--idl-navy);
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 20px;
}
.idl-contact *{ box-sizing: border-box; }
.idl-contact__head{ text-align: center; max-width: 600px; margin: 0 auto 48px; }
.idl-contact__title{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: 36px;
  color: var(--idl-navy);
  margin: 0 0 16px;
}
.idl-contact__intro{ color: var(--idl-muted); margin: 0; }
.idl-contact__grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.idl-contact__subtitle{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: 24px;
  color: var(--idl-navy);
  margin: 0 0 24px;
}
.idl-contact__item{ display: flex; gap: 16px; margin-bottom: 24px; }
.idl-contact__icon{
  width: 48px; height: 48px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(225, 159, 65, .12);
  border-radius: var(--idl-r-input);
  color: var(--idl-navy);
}
.idl-contact__icon svg{ width: 20px; height: 20px; }
.idl-contact__item h4,
.idl-contact__box h4{ font-family: var(--idl-sans); font-weight: 600; font-size: 15px; color: var(--idl-navy); margin: 0 0 4px; }
.idl-contact__item p{ margin: 0; font-size: 15px; color: var(--idl-muted); }
.idl-contact__item a{ color: var(--idl-navy); text-decoration: underline; text-underline-offset: 3px; }
.idl-contact__note{ font-size: 13px !important; }
.idl-contact__box{
  margin-top: 32px;
  padding: 24px;
  background: rgba(225, 159, 65, .12);
  border-radius: var(--idl-r-input);
}
.idl-contact__box p{ margin: 0; font-size: 14px; line-height: 1.6; color: var(--idl-text); }

.idl-contact__form-wrap{ background: var(--idl-soft); padding: 32px; border-radius: var(--idl-r-card); }
.idl-form{ display: flex; flex-direction: column; gap: 16px; }
.idl-form__field label{ display: block; font-size: 13px; font-weight: 600; color: var(--idl-navy); margin-bottom: 6px; }
.idl-form__field input,
.idl-form__field textarea{
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--idl-line);
  border-radius: var(--idl-r-input);
  background: #fff;
  font-family: var(--idl-sans);
  font-size: 15px;
  color: var(--idl-navy);
}
.idl-form__field textarea{ resize: vertical; min-height: 130px; }
.idl-form__field input::placeholder,
.idl-form__field textarea::placeholder{ color: var(--idl-muted); }
.idl-form__field input:focus,
.idl-form__field textarea:focus,
.idl-form__check input:focus-visible{
  outline: 2px solid var(--idl-navy);
  outline-offset: 2px;
  border-color: var(--idl-navy);
}
.idl-form__req{ color: #B4231F; }
.idl-form__check{ display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; }
.idl-form__check input{ width: 18px; height: 18px; margin: 2px 0 0; flex-shrink: 0; accent-color: var(--idl-navy); }
.idl-form__check a{ color: var(--idl-navy); text-decoration: underline; text-underline-offset: 3px; }
.idl-form__legal{ margin: 0; font-size: 12px; line-height: 1.55; color: var(--idl-muted); }
.idl-form__submit{
  width: 100%;
  padding: 14px;
  border: 2px solid var(--idl-navy);
  border-radius: var(--idl-r-input);
  background: var(--idl-navy);
  color: #fff;
  font-family: var(--idl-sans);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.idl-form__submit:hover{ background: #fff; color: var(--idl-navy); }
.idl-form__submit:focus-visible{ outline: 2px solid var(--idl-navy); outline-offset: 3px; }
.idl-form__hint{ margin: 0; font-size: 12px; color: var(--idl-muted); }
.idl-form__trap{ position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.idl-alert{ padding: 14px 16px; border-radius: var(--idl-r-input); font-size: 14px; line-height: 1.5; margin-bottom: 16px; }
.idl-alert--ok{ background: #E7F4EC; color: #14532D; border: 1px solid #A7D7B8; }
.idl-alert--error{ background: #FDECEC; color: #7F1D1D; border: 1px solid #F3B4B4; }

@media (max-width: 900px){
  .idl-contact__grid{ grid-template-columns: 1fr; }
  .idl-contact__form-wrap{ padding: 24px; }
}

/* ---------- Artículos destacados (portada) ---------- */
.idl-featured{ font-family: var(--idl-sans); padding: 80px 20px; background: #fff; }
.idl-featured *{ box-sizing: border-box; }
.idl-featured__head{ text-align: center; max-width: 600px; margin: 0 auto 48px; }
.idl-featured__title{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: clamp(1.875rem, 4.5vw, 2.25rem);
  color: var(--idl-navy);
  margin: 0 0 16px;
}
.idl-featured__intro{ margin: 0; color: var(--idl-muted); }
.idl-featured__more{ text-align: center; margin-top: 40px; }
.idl-btn-outline,
.idl-btn-outline:link,
.idl-btn-outline:visited{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border: 1px solid var(--idl-navy);
  border-radius: var(--idl-r-input);
  background: transparent;
  color: var(--idl-navy) !important;
  font-family: var(--idl-sans);
  font-weight: 600;
  text-decoration: none !important;
  transition: background .15s, color .15s;
}
.idl-btn-outline:hover{ background: var(--idl-navy); color: #fff !important; }
.idl-btn-outline:focus-visible{ outline: 2px solid var(--idl-navy); outline-offset: 3px; }

/* ---------- Banner de cookies ---------- */
.idl-consent{
  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 2147483000;
  width: min(460px, calc(100vw - 24px));
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  box-sizing: border-box;
  padding: 22px;
  background: #fff;
  color: var(--idl-navy);
  border: 1px solid var(--idl-line);
  border-radius: var(--idl-r-card);
  box-shadow: 0 12px 40px rgba(13, 32, 63, .18);
  font-family: var(--idl-sans);
  font-size: 14px;
  line-height: 1.55;
}
.idl-consent[hidden]{ display: none; }
.idl-consent *{ box-sizing: border-box; }
.idl-consent__title{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.2;
  color: var(--idl-navy);
  margin: 0 0 8px;
}
.idl-consent__text{ margin: 0 0 16px; color: var(--idl-text); }
.idl-consent__text a{ color: var(--idl-navy); text-decoration: underline; text-underline-offset: 3px; }
.idl-consent__prefs{ margin: 0 0 16px; border-top: 1px solid var(--idl-line); }
.idl-consent__prefs[hidden]{ display: none; }
.idl-consent__cat{ padding: 12px 0; border-bottom: 1px solid var(--idl-line); }
.idl-consent__cat p{ margin: 4px 0 0; font-size: 13px; color: var(--idl-muted); }
.idl-consent__cat-head{ display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.idl-consent__cat-name{ font-weight: 700; color: var(--idl-navy); }
.idl-consent__always{ font-size: 12px; font-weight: 600; color: #14532D; }
.idl-consent__switch{
  -webkit-appearance: none;
  appearance: none;
  position: relative;
  flex-shrink: 0;
  width: 44px;
  height: 24px;
  margin: 0;
  border-radius: 9999px;
  background: #C7CCD6;
  cursor: pointer;
  transition: background .15s;
}
.idl-consent__switch::after{
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  transition: transform .15s;
}
.idl-consent__switch:checked{ background: var(--idl-navy); }
.idl-consent__switch:checked::after{ transform: translateX(20px); }
.idl-consent__switch:focus-visible{ outline: 2px solid var(--idl-navy); outline-offset: 2px; }
.idl-consent__actions{ display: flex; flex-wrap: wrap; gap: 8px; }
.idl-consent__btn{
  flex: 1 1 auto;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--idl-navy);
  border-radius: var(--idl-r-input);
  font-family: var(--idl-sans);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.idl-consent__btn[hidden]{ display: none; }
.idl-consent__btn--solid{ background: var(--idl-navy); color: #fff; }
.idl-consent__btn--solid:hover{ background: #1B3560; }
.idl-consent__btn--outline{ background: #fff; color: var(--idl-navy); }
.idl-consent__btn--outline:hover{ background: var(--idl-soft); }
.idl-consent__btn:focus-visible{ outline: 2px solid var(--idl-navy); outline-offset: 2px; }
@media (max-width: 600px){
  .idl-consent{ left: 12px; right: 12px; bottom: 84px; width: auto; max-height: calc(100vh - 100px); padding: 18px; } /* deja libre el botón de accesibilidad */
  .idl-consent__btn{ flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce){
  .idl-consent__switch, .idl-consent__switch::after, .idl-consent__btn{ transition: none; }
}

/* ---------- Newsletter ---------- */
.idl-nl{ font-family: var(--idl-sans); background: var(--idl-soft); padding: 80px 20px; color: var(--idl-navy); }
.idl-nl *{ box-sizing: border-box; }
.idl-nl__inner{ max-width: 640px; margin: 0 auto; text-align: center; }
.idl-nl__title{
  font-family: var(--idl-serif);
  font-weight: 500;
  font-size: clamp(1.875rem, 4.5vw, 2.25rem);
  color: var(--idl-navy);
  margin: 0 0 16px;
}
.idl-nl__intro{ color: var(--idl-muted); margin: 0 0 28px; }
.idl-nl__form{
  background: #fff;
  border: 1px solid var(--idl-line);
  border-radius: var(--idl-r-card);
  padding: 28px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.idl-nl__row{ display: flex; gap: 10px; }
.idl-nl__email{
  flex: 1;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--idl-line);
  border-radius: var(--idl-r-input);
  font-family: var(--idl-sans);
  font-size: 15px;
  color: var(--idl-navy);
  background: #fff;
}
.idl-nl__email:focus{ outline: 2px solid var(--idl-navy); outline-offset: 2px; border-color: var(--idl-navy); }
.idl-nl__submit{
  padding: 12px 22px;
  border: 2px solid var(--idl-navy);
  border-radius: var(--idl-r-input);
  background: var(--idl-navy);
  color: #fff;
  font-family: var(--idl-sans);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, color .15s;
}
.idl-nl__submit:hover{ background: #fff; color: var(--idl-navy); }
.idl-nl__submit:focus-visible{ outline: 2px solid var(--idl-navy); outline-offset: 3px; }
.idl-nl .idl-alert{ text-align: left; }
@media (max-width: 560px){
  .idl-nl__row{ flex-direction: column; }
  .idl-nl__form{ padding: 20px; }
}
