/* ═══════════════════════════════════════════════════════
   FormateRD — extra.css — Versión completa rediseñada
   ═══════════════════════════════════════════════════════ */

:root {
  --frd-blue:     #1e3a8a;
  --frd-blue-l:   #3b82f6;
  --frd-red:      #ef4444;
  --frd-dark:     #0a1628;
  --frd-off:      #f8faff;
  --frd-border:   #e8ecf4;
  --r-card:       20px;
  --shadow-card:  0 4px 24px rgba(0,0,0,0.07);
  --shadow-hover: 0 20px 48px rgba(30,58,138,0.15);
}

/* ══════════════════════════════════════════════════════
   DROPDOWN MENÚ — Desktop
   ══════════════════════════════════════════════════════ */
.header__menu li.menu-item-has-children { position: relative; }
.header__menu li.menu-item-has-children > a { padding-right: 28px !important; position: relative; }
.header__menu li.menu-item-has-children > a::after { content: '▾'; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 0.9rem; transition: transform 0.2s ease; }
.header__menu li.menu-item-has-children.is-open > a::after { transform: translateY(-50%) rotate(180deg); }
.header__menu li .sub-menu { display: none; position: absolute; top: calc(100% + 10px); left: 0; background: #0d1f3c; border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; min-width: 220px; padding: 8px; box-shadow: 0 16px 40px rgba(0,0,0,0.5); z-index: 9999; list-style: none; margin: 0; }
.header__menu li.menu-item-has-children.is-open > .sub-menu { display: block; animation: dropdownFade 0.18s ease; }
@keyframes dropdownFade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.header__menu li .sub-menu li { list-style: none; margin: 0; }
.header__menu li .sub-menu li a { display: block; padding: 12px 20px !important; color: rgba(255,255,255,0.8) !important; font-size: 0.95rem !important; font-weight: 500; border-radius: 8px; transition: background 0.2s, color 0.2s; text-decoration: none; }
.header__menu li .sub-menu li a:hover { background: rgba(255,255,255,0.08); color: #ffffff !important; }

/* ══════════════════════════════════════════════════════
   DROPDOWN MENÚ — Mobile
   ══════════════════════════════════════════════════════ */
.header__drawer .menu-item-has-children > a { display: flex !important; align-items: center !important; justify-content: space-between !important; width: 100% !important; padding-right: 1rem !important; cursor: pointer !important; }
.header__drawer .menu-item-has-children > a::after { content: '▾' !important; font-size: 1.3rem !important; opacity: 1 !important; margin-left: auto !important; flex-shrink: 0 !important; display: inline-block !important; transition: transform 0.25s ease !important; }
.header__drawer .menu-item-has-children.is-open > a::after { transform: rotate(180deg) !important; }
.header__drawer .sub-menu { display: none !important; list-style: none !important; padding: 6px 0 10px 1rem !important; margin: 4px 0 0 !important; border-left: 2px solid rgba(255,255,255,0.2) !important; }
.header__drawer .menu-item-has-children.is-open > .sub-menu { display: block !important; }
.header__drawer .sub-menu li { list-style: none !important; margin: 0 !important; }
.header__drawer .sub-menu li a { display: block !important; padding: 10px 0 !important; font-size: 1rem !important; font-weight: 500 !important; color: rgba(255,255,255,0.8) !important; text-decoration: none !important; transition: color 0.2s !important; }
.header__drawer .sub-menu li a:hover { color: #ffffff !important; }

/* ══════════════════════════════════════════════════════
   COMENTARIOS
   ══════════════════════════════════════════════════════ */
.comments-area { max-width: 800px; margin: 3rem auto 0; padding: 2rem 0; border-top: 2px solid var(--frd-border); }
.comments-title { font-size: 1.3rem !important; font-weight: 800 !important; color: #0a1628 !important; margin-bottom: 1.5rem !important; display: flex; align-items: center; gap: 8px; }
.comments-title::before { content: '💬'; font-size: 1.1rem; }
.comment-list { list-style: none !important; padding: 0 !important; margin: 0 0 2rem !important; display: flex; flex-direction: column; gap: 1.25rem; }
.comment-list .children { list-style: none !important; padding: 0 0 0 2rem !important; margin: 1rem 0 0 !important; border-left: 2px solid var(--frd-border); display: flex; flex-direction: column; gap: 1rem; }
.comment { background: #ffffff; border: 1px solid var(--frd-border); border-radius: 16px; padding: 1.25rem 1.5rem; box-shadow: 0 2px 8px rgba(0,0,0,0.04); }
.comment-author img.avatar { width: 42px !important; height: 42px !important; border-radius: 50% !important; }
.comment-author .fn { font-size: 0.9rem !important; font-weight: 700 !important; color: #0a1628 !important; }
.comment-content { font-size: 0.925rem !important; color: #374151 !important; line-height: 1.75 !important; }
.comment-reply-link { display: inline-flex !important; align-items: center !important; font-size: 0.78rem !important; font-weight: 700 !important; color: var(--frd-blue) !important; padding: 5px 12px !important; border-radius: 100px !important; border: 1px solid rgba(30,58,138,0.2) !important; text-decoration: none !important; }
.comment-reply-link:hover { background: var(--frd-blue) !important; color: #ffffff !important; }
#respond { background: #ffffff; border: 1px solid var(--frd-border); border-radius: 20px; padding: 2rem; box-shadow: var(--shadow-card); margin-top: 2rem; }
.form-submit .submit { display: inline-flex !important; align-items: center !important; padding: 12px 28px !important; background: var(--frd-blue) !important; color: #ffffff !important; border: none !important; border-radius: 10px !important; font-size: 0.95rem !important; font-weight: 700 !important; cursor: pointer !important; }
@media (max-width: 768px) { .comment-form .comment-form-author, .comment-form .comment-form-email { display: block; width: 100%; margin-right: 0; } }

/* ── Espaciado ── */
.section { padding-block: 5rem !important; }
.section-head__title { font-size: clamp(2rem,4vw,3.2rem) !important; line-height: 1.1 !important; letter-spacing: -0.025em !important; }
.section-head__desc { font-size: 1.05rem !important; line-height: 1.7 !important; }
.section-head { margin-bottom: 3rem !important; }
.section-head--split { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:2.5rem !important; }

/* ══════════════════════════════════════════════════════
   HERO — estilos varios
   ══════════════════════════════════════════════════════ */
.site-header, header.site-header, #masthead { padding-top:20px !important; padding-bottom:20px !important; margin-top:0 !important; }
.hero__vnl-fields { background:#ffffff; border-radius:12px; padding:5px; box-shadow:0 8px 32px rgba(0,0,0,0.25); border:none !important; display:flex; gap:6px; }
.hero__vnl-input { background:transparent; border:none; padding:10px 14px; font-size:0.875rem; color:#0d1117; outline:none; font-family:inherit; flex:1; }
.hero__vnl-btn { padding:10px 18px; background:#ef4444; color:#fff; border:none; border-radius:9px; font-size:0.82rem; font-weight:700; cursor:pointer; white-space:nowrap; flex-shrink:0; font-family:inherit; }
.hero__vnl-btn:hover { background:#dc2626; }

/* ── Newsletter overlay — fuera del loop del slider ── */
#frd-hero-nl {
  position: absolute !important;
  top: auto !important;
  bottom: 3rem !important;
  right: 18rem !important;
  width: 360px !important;
  z-index: 5 !important;
  pointer-events: none !important;
}

.frd-nl-spacer { min-height: 1px; }

@media (max-width: 900px) {
  #frd-hero-nl { display: none !important; visibility: hidden !important; }
  .frd-nl-spacer { display: none !important; }
}

/* ── Botón hamburguesa sin fondo blanco ── */
.header__toggle {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ── Móvil — texto del slider no se corta ── */
@media (max-width: 900px) {
  #frd-hero-slider { overflow-x: hidden !important; }
  .frd-slide { overflow: hidden !important; }
  .frd-slide-grid {
    display: block !important;
    width: 100% !important;
    grid-template-columns: 1fr !important;
  }
  .frd-slide-grid > div:last-child { display: none !important; }
  .frd-slide .container {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .frd-slide h1 {
    font-size: clamp(1.5rem, 5.5vw, 2.2rem) !important;
    word-break: break-word !important;
  }
  .frd-nl-spacer { display: none !important; }
}

/* ══════════════════════════════════════════════════════
   APPS SECTION — fondo degradado suave
   ══════════════════════════════════════════════════════ */
#aplicaciones.apps.section {
  background: linear-gradient(180deg, #f0f4fb 0%, #ffffff 100%) !important;
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

/* ══════════════════════════════════════════════════════
   APPS TABS — Tarjetas con color siempre visible
   ══════════════════════════════════════════════════════ */
.apps-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
  margin: 0 0 2rem;
}

.apps-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px 16px;
  border-radius: 16px;
  border: 2px solid transparent;
  font-family: inherit;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s, filter 0.2s;
  text-align: center;
  position: relative;
  min-height: 90px;
}

.apps-tab:hover { transform: translateY(-3px); filter: brightness(1.08); box-shadow: 0 10px 28px rgba(0,0,0,0.2); }
.apps-tab.is-active { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,0.22); filter: brightness(0.92); outline: 3px solid rgba(255,255,255,0.5); outline-offset: -4px; }

.apps-tab__dot { display: none; }

.apps-tab__label {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
  color: #ffffff;
  display: block;
  text-align: center;
}

.apps-tab__count {
  font-size: 0.72rem;
  font-weight: 800;
  background: rgba(0,0,0,0.18);
  padding: 3px 10px;
  border-radius: 100px;
  color: #ffffff;
  display: inline-block;
}

/* ─── Colores — paleta armónica ─── */
/* Todas */
.apps-tab:not([class*="apps-tab--"]) { background: #1e3a8a; box-shadow: 0 4px 14px rgba(30,58,138,0.35); }

/* Fila 1 — azul, cian, naranja, rojo, verde, gris azulado */
.apps-tab--colaboracion           { background: #0891b2; box-shadow: 0 4px 14px rgba(8,145,178,0.3); }
.apps-tab--comunicacion           { background: #0284c7; box-shadow: 0 4px 14px rgba(2,132,199,0.3); }
.apps-tab--diseno-creatividad     { background: #d97706; box-shadow: 0 4px 14px rgba(217,119,6,0.3); }
.apps-tab--evaluacion             { background: #dc2626; box-shadow: 0 4px 14px rgba(220,38,38,0.3); }
.apps-tab--gamificacion           { background: #16a34a; box-shadow: 0 4px 14px rgba(22,163,74,0.3); }
.apps-tab--gestion-educativa      { background: #475569; box-shadow: 0 4px 14px rgba(71,85,105,0.3); }

/* Fila 2 — variedad equilibrada */
.apps-tab--idiomas                { background: #0369a1; box-shadow: 0 4px 14px rgba(3,105,161,0.3); }
.apps-tab--inteligencia-artificial{ background: #7c3aed; box-shadow: 0 4px 14px rgba(124,58,237,0.3); }
.apps-tab--matematicas            { background: #c2410c; box-shadow: 0 4px 14px rgba(194,65,12,0.3); }
.apps-tab--naturales              { background: #65a30d; box-shadow: 0 4px 14px rgba(101,163,13,0.3); }
.apps-tab--productividad          { background: #0f766e; box-shadow: 0 4px 14px rgba(15,118,110,0.3); }
.apps-tab--programacion-tecnologia,
.apps-tab--programacion-y-tecnologia,
.apps-tab--programacion,
.apps-tab--tecnologia { background: #4f46e5; box-shadow: 0 4px 14px rgba(79,70,229,0.3); }
.apps-tab--sociales               { background: #be185d; box-shadow: 0 4px 14px rgba(190,24,93,0.3); }

/* Fila 3 */
.apps-tab--video-presentaciones   { background: #9333ea; box-shadow: 0 4px 14px rgba(147,51,234,0.3); }

/* Responsive tabs — móvil */
@media (max-width: 768px) {
  .apps-tabs { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .apps-tab { padding: 14px 10px; min-height: 76px; gap: 6px; }
  .apps-tab__label { font-size: 0.82rem; }
  .apps-tab__count { font-size: 0.65rem; }
}

@media (max-width: 400px) {
  .apps-tabs { grid-template-columns: repeat(2, 1fr); }
}

/* ══════════════════════════════════════════════════════
   BUSCADOR
   ══════════════════════════════════════════════════════ */
.apps__search-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  background: #ffffff !important;
  border: 1.5px solid #d8e0f0 !important;
  border-radius: 16px !important;
  padding: 14px 20px !important;
  box-shadow: 0 2px 8px rgba(30,58,138,0.07) !important;
  max-width: 640px !important;
  margin: 0 auto 2rem !important;
  width: 100% !important;
}
.apps__search-wrap:focus-within { border-color: #1e3a8a !important; box-shadow: 0 4px 16px rgba(30,58,138,0.12) !important; }
.apps__search-input { flex:1 !important; border:none !important; background:transparent !important; font-size:1rem !important; color:#0d1117 !important; outline:none !important; font-family:inherit !important; }

/* ══════════════════════════════════════════════════════
   APP STORE GRID — Cards más grandes con flecha
   ══════════════════════════════════════════════════════ */
.appstore-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-top: 1.5rem;
}

.appstore-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid #e2e8f4;
  border-radius: 16px;
  text-decoration: none;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(30,58,138,0.05);
  position: relative;
}

.appstore-card:hover {
  border-color: #1e3a8a;
  box-shadow: 0 8px 24px rgba(30,58,138,0.12);
  transform: translateY(-3px);
}

/* Flecha → al hacer hover */
.appstore-card::after {
  content: '→';
  position: absolute;
  right: 14px;
  bottom: 12px;
  font-size: 0.8rem;
  color: #1e3a8a;
  opacity: 0;
  transition: opacity 0.2s, transform 0.2s;
  transform: translateX(-4px);
}

.appstore-card:hover::after {
  opacity: 1;
  transform: translateX(0);
}

.appstore-card__icon { width: 44px; height: 44px; border-radius: 12px; overflow: hidden; flex-shrink: 0; background: #f4f6fb; display: flex; align-items: center; justify-content: center; }
.appstore-card__img { width: 44px; height: 44px; object-fit: cover; display: block; border-radius: 12px; }
.appstore-card__info { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.appstore-card__name { font-size: 0.875rem; font-weight: 700; color: #0d1117; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appstore-card__desc { font-size: 0.72rem; color: #94a3b8; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; }
.appstore-card__desc--empty { color: #cbd5e1; font-style: italic; }

@media (max-width: 1200px) { .appstore-grid { grid-template-columns: repeat(4,1fr); } }
@media (max-width: 768px) { .appstore-grid { grid-template-columns: repeat(2,1fr); gap: 8px; } }
@media (max-width: 480px) { .appstore-grid { grid-template-columns: repeat(2,1fr); } }

/* ══════════════════════════════════════════════════════
   PUBLICACIONES — Separación visual clara
   ══════════════════════════════════════════════════════ */
.editorial-section {
  background: #ffffff;
  position: relative;
}

.editorial-section::before {
  content: '';
  display: block;
  height: 4px;
  background: linear-gradient(90deg, #1e3a8a, #3b82f6, #ef4444);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.editorial-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:1.5rem; align-items:start; }
.editorial-card--hero { background:#ffffff; border-radius:var(--r-card); overflow:hidden; border:1px solid var(--frd-border); box-shadow:var(--shadow-card); transition:transform 0.3s,box-shadow 0.3s; }
.editorial-card--hero:hover { transform:translateY(-6px); box-shadow:var(--shadow-hover); }
.editorial-card__thumb { position:relative; aspect-ratio:16/9; overflow:hidden; background:linear-gradient(135deg,var(--frd-blue),var(--frd-blue-l)); }
.editorial-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.5s; }
.editorial-card--hero:hover .editorial-card__thumb img { transform:scale(1.04); }
.editorial-card__overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,0.35),transparent 60%); }
.editorial-card__cat { position:absolute; top:14px; left:14px; background:var(--frd-blue); color:#fff; font-size:0.68rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; padding:4px 12px; border-radius:100px; }
.editorial-card__cat--sm { font-size:0.62rem; padding:3px 10px; }
.editorial-card__no-thumb { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3rem; min-height:220px; }
.editorial-card__no-thumb--sm { min-height:120px; font-size:2rem; }
.editorial-card__body { padding:1.6rem; }
.editorial-card__body--sm { padding:1rem 1.25rem; }
.editorial-card__title { font-size:1.2rem; font-weight:800; letter-spacing:-0.025em; line-height:1.25; color:#050810; margin-bottom:0.6rem; }
.editorial-card__title--sm { font-size:0.95rem; margin-bottom:0.4rem; }
.editorial-card__title a { color:inherit; text-decoration:none; transition:color 0.2s; }
.editorial-card__title a:hover { color:var(--frd-blue); }
.editorial-card__excerpt { font-size:0.9rem; color:#718096; line-height:1.65; margin-bottom:1rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.editorial-card__meta { display:flex; align-items:center; gap:0.4rem; font-size:0.72rem; font-weight:600; color:#a0aec0; margin-bottom:1rem; }
.editorial-card__dot { opacity:0.4; }
.editorial-card__btn { display:inline-flex; align-items:center; gap:6px; font-size:0.85rem; font-weight:700; color:var(--frd-blue); text-decoration:none; transition:gap 0.2s; }
.editorial-card__btn:hover { gap:10px; }
.editorial-stack { display:flex; flex-direction:column; gap:1.25rem; }
.editorial-card--sm { background:#ffffff; border-radius:16px; overflow:hidden; border:1px solid var(--frd-border); display:grid; grid-template-columns:130px 1fr; box-shadow:var(--shadow-card); transition:transform 0.3s,box-shadow 0.3s; }
.editorial-card--sm:hover { transform:translateY(-4px); box-shadow:var(--shadow-hover); }
.editorial-card__thumb--sm { height:120px; width:130px; }
.editorial-card__thumb--sm img { height:100%; width:100%; object-fit:cover; }
.editorial-section__all { white-space:nowrap; }
.editorial-stack--5 { display:flex; flex-direction:column; gap:0.75rem; }
.editorial-stack--5 .editorial-card--sm { display:grid; grid-template-columns:100px 1fr; border-radius:12px; }
.editorial-stack--5 .editorial-card__thumb--sm { height:80px; width:100px; border-radius:12px 0 0 12px; overflow:hidden; }
.editorial-stack--5 .editorial-card__body--sm { padding:0.7rem 0.9rem; display:flex; flex-direction:column; justify-content:center; gap:0.2rem; }
.editorial-stack--5 .editorial-card__title--sm { font-size:0.82rem; margin:0; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.editorial-stack--5 .editorial-card__meta { font-size:0.68rem; color:#a0aec0; margin-top:2px; }

/* ══════════════════════════════════════════════════════
   ESTADÍSTICAS — Más impacto visual
   ══════════════════════════════════════════════════════ */
.stats-strip { position:relative; padding:5rem 0; overflow:hidden; }
.stats-strip__bg { position:absolute; inset:0; background:linear-gradient(135deg,#0a1628 0%,#1e3a8a 50%,#0f172a 100%); }
.stats-strip__bg::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 50% 50%, rgba(59,130,246,0.15), transparent 70%); }
.stats-strip__grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; }

.stats-strip__item {
  text-align:center;
  padding:2rem 1.5rem;
  border-right:1px solid rgba(255,255,255,0.08);
  position: relative;
}
.stats-strip__item:last-child { border-right:none; }

/* Línea decorativa superior */
.stats-strip__item::before {
  content: '';
  display: block;
  width: 40px;
  height: 3px;
  background: linear-gradient(90deg, #ef4444, #3b82f6);
  border-radius: 100px;
  margin: 0 auto 1.25rem;
}

.stats-strip__icon { font-size:2.2rem; margin-bottom:0.75rem; }
.stats-strip__number { font-size:clamp(2.5rem,4vw,3.5rem); font-weight:900; color:#ffffff; letter-spacing:-0.04em; line-height:1; margin-bottom:0.5rem; display:flex; align-items:baseline; justify-content:center; gap:2px; }
.stats-counter { display:inline-block; }
.stats-strip__label { font-size:0.825rem; font-weight:600; color:rgba(255,255,255,0.55); letter-spacing:0.04em; text-transform:uppercase; }

/* ══════════════════════════════════════════════════════
   DOCENTE — Fondo diferenciado
   ══════════════════════════════════════════════════════ */
.teacher.section {
  background: linear-gradient(135deg, #f8faff 0%, #eef2fb 100%) !important;
  position: relative;
  overflow: hidden;
}

.teacher.section::before {
  content: '';
  position: absolute;
  top: -200px;
  right: -200px;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(30,58,138,0.06), transparent 70%);
  pointer-events: none;
}

.teacher__timeline { display:flex; flex-direction:column; gap:0; margin:1.5rem 0 2rem; border-left:2px solid #d0d9f5; padding-left:0; }
.teacher__timeline-item { display:flex; align-items:flex-start; gap:14px; padding:0 0 1.25rem 1.5rem; position:relative; }
.teacher__timeline-item::before { content:''; position:absolute; left:-5px; top:10px; width:8px; height:8px; border-radius:50%; background:var(--frd-blue); border:2px solid #ffffff; box-shadow:0 0 0 2px var(--frd-blue); }
.teacher__timeline-dot { width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg,var(--frd-blue),var(--frd-blue-l)); display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; box-shadow:0 4px 12px rgba(30,58,138,0.25); }
.teacher__timeline-text { font-size:0.9rem; font-weight:600; color:#2d3748; line-height:1.5; padding-top:10px; margin:0; }

/* ══════════════════════════════════════════════════════
   CONTACTO — Fondo blanco con acento
   ══════════════════════════════════════════════════════ */
.contact-v2 {
  background: #ffffff !important;
  position: relative;
}

.contact-v2::before {
  content: '';
  display: block;
  height: 4px;
  background: linear-gradient(90deg, #ef4444, #1e3a8a);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.contact-v2__grid { display:grid; grid-template-columns:1fr 1.4fr; gap:3rem; align-items:start; padding-top: 1rem; }
.contact-v2__map { border-radius:20px; overflow:hidden; box-shadow:var(--shadow-card); border:1px solid var(--frd-border); margin-bottom:1.5rem; }
.contact-v2__rd-map { width:100%; display:block; }
.contact-v2__details { display:flex; flex-direction:column; gap:1rem; }
.contact-v2__detail { display:flex; align-items:center; gap:12px; padding:1rem 1.25rem; background:#f8faff; border:1px solid var(--frd-border); border-radius:14px; transition: transform 0.2s, box-shadow 0.2s; }
.contact-v2__detail:hover { transform: translateX(4px); box-shadow: 0 4px 16px rgba(30,58,138,0.08); }
.contact-v2__detail-icon { font-size:1.6rem; flex-shrink:0; }
.contact-v2__detail-label { font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:#a0aec0; margin-bottom:2px; }
.contact-v2__detail-val { font-size:0.9rem; font-weight:600; color:#0d1117; }
.contact-v2__form { background:#ffffff; border:1px solid var(--frd-border); border-radius:20px; padding:2rem; box-shadow:var(--shadow-card); }

/* ══════════════════════════════════════════════════════
   POST SIDEBAR
   ══════════════════════════════════════════════════════ */
.post-hero--clean { background:#0a1628; padding-top:calc(72px + 2rem)!important; padding-bottom:2.5rem!important; min-height:0!important; position:relative; overflow:hidden; }
.post-hero--clean::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 80% at 50% 0%,rgba(30,58,138,0.4),transparent 70%); pointer-events:none; }
.post-hero--clean .post-hero__title { color:#ffffff; font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-0.025em; line-height:1.1; max-width:20ch; margin-bottom:1.25rem; }
.post-hero--clean .post-hero__meta { color:rgba(255,255,255,0.6); display:flex; align-items:center; gap:0.6rem; flex-wrap:wrap; font-size:0.9rem; }
.post-sidebar { display:flex; flex-direction:column; gap:1.25rem; position:sticky; top:calc(72px + 1.5rem); }
.post-sidebar__widget { background:#ffffff; border:1px solid var(--frd-border); border-radius:16px; padding:1.25rem; box-shadow:0 2px 16px rgba(0,0,0,0.06); }
.post-sidebar__widget-header { display:flex; align-items:center; gap:8px; margin-bottom:1rem; padding-bottom:0.75rem; border-bottom:2px solid #f0f4ff; }
.post-sidebar__widget-title { font-size:0.72rem!important; font-weight:800!important; text-transform:uppercase!important; letter-spacing:0.1em!important; color:#0a1628!important; margin:0!important; }
.post-sidebar__search-wrap { display:flex; align-items:center; background:#f4f6fb; border:1.5px solid #e2e8f4; border-radius:100px; overflow:hidden; }
.post-sidebar__search-input { flex:1; border:none; background:transparent; padding:10px 16px; font-size:0.875rem; color:#0d1117; outline:none; font-family:inherit; }
.post-sidebar__search-btn { display:flex; align-items:center; justify-content:center; width:40px; height:40px; background:var(--frd-blue); color:#ffffff; border:none; cursor:pointer; flex-shrink:0; border-radius:0 100px 100px 0; }
.post-sidebar__app-item,.post-sidebar__cat-item,.post-sidebar__recent-item { display:flex; align-items:center; gap:0.75rem; padding:0.6rem 0.5rem; border-radius:10px; text-decoration:none; transition:background 0.2s,transform 0.15s; }
.post-sidebar__app-item:hover,.post-sidebar__cat-item:hover,.post-sidebar__recent-item:hover { background:#f0f4ff; transform:translateX(3px); }
.post-sidebar__app-icon { width:38px; height:38px; border-radius:10px; background:linear-gradient(135deg,var(--frd-blue),var(--frd-blue-l)); display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; }
.post-sidebar__app-name { font-size:0.85rem; font-weight:700; color:#0d1117; }
.post-sidebar__app-cta { font-size:0.7rem; font-weight:600; color:#1d4ed8; }
.post-sidebar__cat-name { font-size:0.875rem; font-weight:600; color:#2d3748; flex:1; }
.post-sidebar__cat-count { font-size:0.68rem; font-weight:800; background:#e8f0fe; color:var(--frd-blue); border-radius:100px; padding:2px 9px; }
.post-sidebar__recent-thumb { width:52px; height:52px; border-radius:10px; overflow:hidden; flex-shrink:0; }
.post-sidebar__recent-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.post-sidebar__recent-title { font-size:0.82rem; font-weight:700; color:#0d1117; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.post-sidebar__recent-date { font-size:0.7rem; color:#a0aec0; font-weight:500; }
.post-sidebar__cta-banner { background:linear-gradient(135deg,#0f1f40 0%,var(--frd-blue) 100%); border-radius:16px; padding:1.5rem 1.25rem; text-align:center; box-shadow:0 8px 24px rgba(30,58,138,0.25); }
.post-sidebar__cta-title { font-size:0.95rem!important; font-weight:800!important; color:#ffffff!important; margin:0 0 0.4rem!important; }
.post-sidebar__cta-desc { font-size:0.78rem; color:rgba(255,255,255,0.65); margin-bottom:1rem; }
.post-sidebar__cta-btn { display:inline-flex; align-items:center; gap:6px; background:var(--frd-red); color:#ffffff!important; text-decoration:none; padding:10px 20px; border-radius:100px; font-size:0.82rem; font-weight:700; }
.post-sidebar__cta-btn:hover { background:#dc2626; transform:translateY(-2px); }

/* ══════════════════════════════════════════════════════
   RESPONSIVE GENERAL
   ══════════════════════════════════════════════════════ */
@media (max-width:1100px) {
  .stats-strip__grid { grid-template-columns:repeat(2,1fr); }
  .stats-strip__item { border-right:none; border-bottom:1px solid rgba(255,255,255,0.08); }
  .stats-strip__item:nth-child(2n) { border-bottom:none; }
}
@media (max-width:900px) {
  .editorial-grid { grid-template-columns:1fr; }
  .editorial-stack { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .editorial-card--sm { grid-template-columns:1fr; }
  .editorial-card__thumb--sm { width:100%; height:160px; }
  .contact-v2__grid { grid-template-columns:1fr; }
  .editorial-stack--5 { max-height:unset; }
  .editorial-stack--5 .editorial-card--sm { grid-template-columns:80px 1fr; }
  .editorial-stack--5 .editorial-card__thumb--sm { width:80px; height:70px; }
  .header__menu li .sub-menu { left:auto; right:0; }
}
@media (max-width:768px) {
  .editorial-stack { grid-template-columns:1fr; }
  .post-sidebar { position:static; margin-top:2.5rem; }
  .stats-strip__grid { grid-template-columns:repeat(2,1fr); }
  .teacher.section::before { display:none; }
}
@media (max-width:480px) {
  .stats-strip__grid { grid-template-columns:1fr 1fr; }
  .stats-strip__item::before { display:none; }
}

/* ══════════════════════════════════════════════════════
   HERO SLIDER — Fix slides apilados
   ══════════════════════════════════════════════════════ */
.frd-slide {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

@media (max-width: 768px) {
  .frd-slide { background-position: right center !important; }
  .frd-slide .container > div { grid-template-columns: 1fr !important; gap: 1.5rem !important; }
  .frd-slide .container > div > div:last-child { display: none !important; }
  .frd-slide { min-height: 500px !important; }
}

/* ══════════════════════════════════════════════════════
   CHAT FLOTANTE
   ══════════════════════════════════════════════════════ */
@media (max-width: 480px) {
  #frd-chat { bottom: 1.25rem !important; right: 1.25rem !important; }
  #frd-chat-bubble { display: none !important; }
}