/* =====================================================================
   Gnosis México · hoja de estilos única
   Las reglas compartidas no llevan prefijo. Las que cambian de una vista a
   otra se acotan con la clase del <body> (sin subir la especificidad):
     body.page-<nombre>   una vista concreta (p. ej. page-index)
     body.tpl-public      vistas públicas internas (blog, repositorio, escuelas...)
     body.tpl-home        inicio y páginas institucionales
     body.tpl-admin       panel de administración
   ===================================================================== */

/* ===== Variables ===== */
:root {
  --bg-page:#FFFFFF;
  --bg-alt:#F4F6F8;
  --bg-escuela:#F4F6F8;
  --bg-mision:#F4F6F8;
  --stone:#DDE2E8;
  --green-accent:#3D6B99;
  --green-accent-hover:#2F5680;
  --green-dark:#1F3A57;
  --green-dark-hover:#172C43;
  --text:#1F2933;
  --text-muted:rgba(31,41,51,0.70);
  --border:rgba(31,41,51,0.12);
  --white:#FFFFFF;
  --footer-bg:#FFFFFF;
  --footer-heading:#1F2933;
  --footer-link:rgba(31,41,51,0.70);
  --radius-lg:4px;
  --radius-md:3px;
  --radius-sm:2px;
  --red:#9C4A44;
  --red-bg:#F6ECE9;
  --gold:#3D6B99;
  --cream:#FFFFFF;
}

/* ===== Estilos ===== */
body.tpl-admin,
:where(body.tpl-admin) *,
body.tpl-home,
:where(body.tpl-home) *,
body.tpl-public,
:where(body.tpl-public) * {
  box-sizing:border-box;
}
html:has(body.tpl-home),
html:has(body.tpl-public) {
  scroll-behavior:smooth;
}
body.tpl-home,
body.tpl-public {
  margin:0;
  font-family:'Work Sans', sans-serif;
  background:var(--bg-page);
  color:var(--text);
  line-height:1.55;
}
h1, h2, h3, .serif {
  font-family:'Lora', serif;
  font-weight:500;
  margin:0;
  color:var(--text);
}
:where(body.tpl-home) a,
:where(body.tpl-public) a {
  color:inherit;
  text-decoration:none;
}
:where(body.tpl-home) img,
:where(body.tpl-public) img {
  max-width:100%;
  display:block;
}
:where(body.tpl-home) .container,
:where(body.tpl-public) .container {
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
}
.eyebrow {
  font-size:13px;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--green-accent);
}
:where(body.tpl-public) .section {
  padding:56px 0;
}
.section.alt {
  background:var(--bg-alt);
}
:where(body.tpl-home) .btn:hover,
:where(body.tpl-public) .btn:hover {
  transform:translateY(-1px);
}
:where(body.tpl-home) .btn:focus-visible,
:where(body.tpl-public) .btn:focus-visible {
  outline:3px solid var(--footer-heading);
  outline-offset:2px;
}
:where(body.tpl-home) .btn-primary,
:where(body.tpl-public) .btn-primary {
  background:var(--green-accent);
  color:var(--white);
}
:where(body.tpl-home) .btn-primary:hover,
:where(body.tpl-public) .btn-primary:hover {
  background:var(--green-accent-hover);
}
.btn-solid-dark {
  background:var(--green-dark);
  color:var(--white);
}
.btn-solid-dark:hover {
  background:var(--green-dark-hover);
}
.link-arrow:hover svg {
  transform:translateX(3px);
}
:where(body.tpl-public) .brand img {
  height:40px;
  width:auto;
}
:where(body.tpl-public) .breadcrumb .sep {
  margin:0 6px;
  opacity:0.6;
}
:where(body.page-blog) .search-bar-row input:focus-visible,
:where(body.page-conferencias) .search-bar-row input:focus-visible,
:where(body.page-escuelas_buscador) .search-bar-row input:focus-visible,
:where(body.page-repositorio) .search-bar-row input:focus-visible {
  outline:2px solid var(--green-accent);
  outline-offset:1px;
}
:where(body.page-escuela_perfil) .modal-box textarea {
  resize:vertical;
  min-height:80px;
}
:where(body.page-escuela_registrar) .field input:focus-visible,
:where(body.page-escuela_registrar) .field textarea:focus-visible,
:where(body.page-escuela_registrar) .field select:focus-visible {
  outline:2px solid var(--green-accent);
  outline-offset:1px;
}
:where(body.page-escuela_registrar) .field textarea {
  resize:vertical;
  min-height:80px;
}
.escuela-card:hover {
  box-shadow:0 10px 26px rgba(31,41,51,0.09);
  transform:translateY(-2px);
}
.escuela-card.is-highlighted {
  outline:2px solid var(--green-accent);
  outline-offset:2px;
}
.map-box-lg .pin:hover circle, .map-box-lg .pin.is-active circle {
  fill:#1F3A57;
}
:where(body.page-admin_login) .field input:focus-visible,
:where(body.page-misionero_login) .field input:focus-visible {
  outline:2px solid var(--green-accent);
  outline-offset:1px;
}
.resource-card:hover {
  box-shadow:0 10px 26px rgba(31,41,51,0.09);
  transform:translateY(-2px);
}
:where(body.page-solicitud_misionero) .field input:focus-visible,
:where(body.page-solicitud_misionero) .field textarea:focus-visible {
  outline:2px solid var(--green-accent);
  outline-offset:1px;
}
:where(body.tpl-home) .section {
  padding:72px 0;
}
:where(body.tpl-home) .btn,
:where(body.tpl-public) .btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:15px;
  padding:13px 24px;
  border-radius:var(--radius-sm);
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.btn-sm {
  padding:9px 16px;
  font-size:13.5px;
}
.link-arrow svg {
  transition:transform 0.15s ease;
}
.btn-outline-light {
  background:transparent;
  color:var(--white);
  border-color:rgba(255,255,255,0.7);
}
.btn-outline-light:hover {
  background:rgba(255,255,255,0.12);
}
.btn-outline-dark {
  background:transparent;
  color:var(--text);
  border-color:var(--border);
}
.btn-outline-dark:hover {
  background:rgba(31,41,51,0.05);
}
.link-arrow {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:600;
  font-size:14.5px;
  color:var(--green-accent);
}
.link-arrow:hover {
  color:var(--green-accent-hover);
}
.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:var(--bg-page);
  border-bottom:1px solid var(--border);
}
.site-header .container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-top:14px;
  padding-bottom:14px;
}
:where(body.tpl-home) .brand,
:where(body.tpl-public) .brand {
  display:flex;
  align-items:center;
  gap:10px;
}
:where(body.tpl-public) .brand span {
  font-family:'Lora', serif;
  font-size:18px;
}
.main-nav {
  display:flex;
  gap:30px;
}
.nav-toggle {
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  padding:6px;
}
:where(body.tpl-home) .brand img {
  height:44px;
  width:auto;
}
.nav-toggle svg {
  width:26px;
  height:26px;
}
:where(body.tpl-home) .brand span {
  font-family:'Lora', serif;
  font-size:19px;
}
.main-nav a {
  font-size:15px;
  color:var(--text);
  font-weight:500;
}
.main-nav a.is-active, .main-nav a:hover {
  color:var(--green-accent);
}
:where(body.tpl-public) .breadcrumb {
  font-size:13.5px;
  color:var(--text-muted);
  padding:18px 0 0;
}
:where(body.tpl-public) .breadcrumb a {
  color:var(--text-muted);
}
:where(body.tpl-public) .breadcrumb a:hover {
  color:var(--green-accent);
}
:where(body.tpl-public) .badge-solid {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--green-dark);
  color:var(--white);
  padding:5px 13px;
  border-radius:20px;
  font-size:12.5px;
  font-weight:600;
}
.badge-pending {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#EDEFF2;
  color:#52606D;
  padding:5px 13px;
  border-radius:20px;
  font-size:12.5px;
  font-weight:600;
}
:where(body.tpl-public) footer.site-footer {
  background:var(--footer-bg);
  color:var(--footer-link);
  padding:48px 0 0;
  margin-top:64px;
}
:where(body.tpl-public) .footer-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
  padding-bottom:32px;
}
:where(body.tpl-public) .footer-grid h4 {
  font-family:'Lora', serif;
  font-style:italic;
  color:var(--footer-heading);
  font-size:15px;
  margin-bottom:12px;
  font-weight:500;
}
:where(body.tpl-public) .footer-grid a,
:where(body.tpl-public) .footer-grid p {
  display:block;
  font-size:14px;
  margin-bottom:9px;
  color:var(--footer-link);
}
:where(body.tpl-public) .footer-grid a:hover {
  color:var(--white);
}
:where(body.tpl-public) .footer-bottom {
  border-top:1px solid rgba(255,255,255,0.08);
  padding:16px 0 20px;
  font-size:13px;
  color:rgba(199,203,184,0.7);
}
@media (max-width: 900px) {
  :where(body.tpl-public) .footer-grid {
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width: 720px) {
  :where(body.tpl-public) .main-nav {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--bg-page);
    border-bottom:1px solid var(--border);
    flex-direction:column;
    padding:16px 32px;
    gap:16px;
    display:none;
  }
  :where(body.tpl-public) .main-nav.is-open {
    display:flex;
  }
  :where(body.tpl-public) .nav-toggle {
    display:block;
  }
  :where(body.tpl-public) .container {
    padding:0 20px;
  }
}
.area-hero {
  padding:36px 0 8px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}
.area-hero h1 {
  font-size:28px;
  margin-bottom:8px;
}
.area-hero p {
  color:var(--text-muted);
  max-width:60ch;
}
.user-pill {
  display:flex;
  align-items:center;
  gap:10px;
}
.user-pill span {
  font-size:13.5px;
  color:var(--text-muted);
}
:where(body.page-area_misioneros) .btn-logout {
  background:none;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:8px 14px;
  font-family:'Work Sans', sans-serif;
  font-size:13px;
  cursor:pointer;
  color:var(--text);
}
.webinar-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  padding:24px 0 64px;
}
.webinar-body {
  padding:18px 20px 22px;
}
.webinar-body h3 {
  font-size:16.5px;
  margin-bottom:6px;
}
.webinar-meta {
  font-size:13px;
  color:var(--text-muted);
  margin-bottom:8px;
}
.webinar-desc {
  font-size:13.5px;
  color:var(--text-muted);
  margin-bottom:12px;
}
.page-hero {
  padding:40px 0 8px;
}
.page-hero h1 {
  font-size:30px;
  margin-bottom:10px;
}
:where(body.page-blog) .page-hero p,
:where(body.page-conferencias) .page-hero p,
:where(body.page-repositorio) .page-hero p {
  color:var(--text-muted);
  max-width:62ch;
  margin-bottom:24px;
}
:where(body.page-blog) .chip-row {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:18px;
}
:where(body.page-blog) .chip {
  border:1px solid var(--border);
  background:var(--white);
  color:var(--text);
  font-family:'Work Sans', sans-serif;
  font-weight:500;
  font-size:13.5px;
  padding:8px 16px;
  border-radius:20px;
  cursor:pointer;
}
:where(body.page-blog) .search-bar-row,
:where(body.page-conferencias) .search-bar-row {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:8px 0 6px;
}
.article-wrap {
  max-width:760px;
  margin:0 auto;
  padding:36px 32px 0;
}
.article-tag {
  font-size:13px;
  font-weight:600;
  color:var(--green-accent);
  text-transform:uppercase;
  letter-spacing:0.03em;
}
.article-title {
  font-size:32px;
  margin:10px 0 14px;
  line-height:1.25;
}
.article-meta {
  font-size:13.5px;
  color:var(--text-muted);
  margin-bottom:32px;
}
.article-hero-thumb {
  aspect-ratio:16/8;
  border-radius:var(--radius-md);
  margin-bottom:32px;
}
.article-body {
  font-size:16.5px;
  line-height:1.8;
  color:var(--text);
}
.article-body p {
  margin:0 0 22px;
}
.article-body h2 {
  font-size:22px;
  margin:36px 0 14px;
}
.article-body h3 {
  font-size:19px;
  margin:28px 0 12px;
}
.article-body ul, .article-body ol {
  margin:0 0 22px;
  padding-left:22px;
}
.article-body li {
  margin-bottom:8px;
}
.article-body blockquote {
  border-left:3px solid var(--green-accent);
  margin:0 0 22px;
  padding:4px 0 4px 18px;
  font-style:italic;
  color:var(--text-muted);
}
.article-cta {
  max-width:760px;
  margin:48px auto 0;
  background:var(--bg-escuela);
  border-radius:var(--radius-lg);
  padding:36px 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.article-cta h3 {
  font-size:20px;
  margin-bottom:8px;
}
.article-cta p {
  color:var(--text-muted);
  font-size:14px;
  max-width:42ch;
  margin:0;
}
.back-link {
  max-width:760px;
  margin:40px auto 0;
  padding:0 32px;
}
.loading-state {
  text-align:center;
  color:var(--text-muted);
  padding:80px 0;
}
@media (max-width: 700px) {
  .article-wrap, .back-link {
    padding-left:20px;
    padding-right:20px;
  }
  .article-title {
    font-size:26px;
  }
  .article-cta {
    padding:28px;
    flex-direction:column;
    align-items:flex-start;
  }
}
:where(body.page-conferencias) .two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  align-items:center;
}
.perfil-header {
  padding:32px 0 0;
}
.perfil-title-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  margin:14px 0 6px;
}
.perfil-title-row h1 {
  font-size:30px;
}
.perfil-sub {
  color:var(--text-muted);
  font-size:15px;
  margin-bottom:22px;
}
.gallery {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:12px;
  margin-bottom:36px;
}
.gallery .gallery-photo {
  border-radius:var(--radius-md);
  aspect-ratio:4/3;
  background-size:cover;
  background-position:center;
  background-color:var(--bg-alt);
  background-image:linear-gradient(140deg,#F4F6F8,#A9BBD0 80%);
}
.gallery.is-empty {
  display:none;
}
.perfil-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:40px;
  align-items:start;
}
.perfil-grid h2 {
  font-size:20px;
  margin-bottom:12px;
}
.perfil-grid p.body-text {
  color:var(--text-muted);
  max-width:62ch;
  margin-bottom:26px;
}
.info-card {
  background:var(--bg-alt);
  border-radius:var(--radius-md);
  padding:26px;
  position:sticky;
  top:90px;
}
.info-row {
  display:flex;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--border);
}
.info-row:last-of-type {
  border-bottom:none;
}
.info-row .ic {
  width:20px;
  flex-shrink:0;
  opacity:0.75;
}
.info-row .label {
  font-size:12.5px;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:0.03em;
  margin-bottom:2px;
}
.info-row .value {
  font-size:14.5px;
  font-weight:500;
}
.info-card .btn {
  width:100%;
  justify-content:center;
  margin-top:18px;
}
.privacy-note {
  display:flex;
  gap:8px;
  align-items:flex-start;
  font-size:13px;
  color:var(--text-muted);
  background:var(--white);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  margin-top:14px;
}
.privacy-note svg {
  flex-shrink:0;
  margin-top:1px;
  opacity:0.7;
}
.zone-map {
  border-radius:var(--radius-md);
  border:1px solid var(--border);
  background:linear-gradient(var(--border) 1px, transparent 1px) 0 0/28px 28px, linear-gradient(90deg, var(--border) 1px, transparent 1px) 0 0/28px 28px, #F4F6F8;
  aspect-ratio:16/8;
  margin-bottom:32px;
  position:relative;
  overflow:hidden;
}
:where(body.page-escuela_perfil) .modal-overlay {
  position:fixed;
  inset:0;
  background:rgba(31,41,51,0.5);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:2000;
  padding:20px;
}
:where(body.page-escuela_perfil) .modal-box {
  background:var(--white);
  border-radius:var(--radius-md);
  padding:32px;
  max-width:440px;
  width:100%;
}
:where(body.page-escuela_perfil) .modal-box {
  position:relative;
}
@media (max-width: 860px) {
  .perfil-grid {
    grid-template-columns:1fr;
  }
}
.form-hero {
  padding:36px 0 8px;
  max-width:720px;
}
.form-hero h1 {
  font-size:28px;
  margin-bottom:10px;
}
.form-hero p {
  color:var(--text-muted);
}
:where(body.page-escuelas_buscador) .page-hero p {
  color:var(--text-muted);
  max-width:60ch;
  margin-bottom:24px;
}
:where(body.page-escuelas_buscador) .search-bar-row {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.login-wrap {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:64px 20px;
}
:where(body.page-misionero_login) .login-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:40px;
  max-width:400px;
  width:100%;
  text-align:center;
}
:where(body.page-misionero_login) .login-card h1 {
  font-size:22px;
  margin:0 0 6px;
}
.page-hero-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  flex-wrap:wrap;
}
.filters-block {
  margin-bottom:6px;
}
.filter-group {
  margin-bottom:18px;
}
.filter-label {
  font-size:12.5px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--text-muted);
  margin-bottom:10px;
}
:where(body.page-repositorio) .chip-row {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
:where(body.page-repositorio) .chip {
  border:1px solid var(--border);
  background:var(--white);
  color:var(--text);
  font-family:'Work Sans', sans-serif;
  font-weight:500;
  font-size:13.5px;
  padding:8px 16px;
  border-radius:20px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:6px;
  transition:background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
:where(body.page-blog) .chip:hover,
:where(body.page-repositorio) .chip:hover {
  border-color:var(--green-accent);
}
.chip.is-active {
  background:var(--green-dark);
  color:var(--white);
  border-color:var(--green-dark);
}
:where(body.page-repositorio) .search-bar-row {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:18px 0 6px;
}
:where(body.page-blog) .search-bar-row input,
:where(body.page-conferencias) .search-bar-row input,
:where(body.page-escuelas_buscador) .search-bar-row input,
:where(body.page-repositorio) .search-bar-row input {
  flex:1;
  min-width:220px;
  padding:13px 16px 13px 42px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:15px;
  background:var(--white) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%233D6B99" stroke-width="2"><circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>') no-repeat 14px center;
  background-size:17px;
}
:where(body.page-blog) .result-count,
:where(body.page-conferencias) .result-count,
:where(body.page-repositorio) .result-count {
  font-size:14px;
  color:var(--text-muted);
  margin:6px 0 24px;
}
.blog-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
  padding-bottom:64px;
}
:where(body.page-blog) .blog-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  overflow:hidden;
  transition:transform 0.18s ease, box-shadow 0.18s ease;
}
:where(body.page-blog) .blog-card .card-body {
  padding:18px 20px 22px;
}
:where(body.page-blog) .blog-card .tag {
  font-size:12px;
  font-weight:600;
  color:var(--green-accent);
  text-transform:uppercase;
  letter-spacing:0.03em;
}
:where(body.page-blog) .blog-card h3 {
  font-size:17.5px;
  margin:8px 0 8px;
  line-height:1.35;
}
:where(body.page-blog) .blog-card p.excerpt {
  font-size:13.5px;
  color:var(--text-muted);
  margin:0 0 12px;
}
:where(body.page-blog) .blog-card .card-meta {
  font-size:12.5px;
  color:var(--text-muted);
}
.featured-conf {
  background:var(--bg-alt);
  border-radius:var(--radius-lg);
  padding:32px;
  margin-bottom:40px;
}
:where(body.page-escuelas_buscador) .result-count {
  font-size:14px;
  color:var(--text-muted);
  margin:14px 0 4px;
}
.view-toggle {
  display:inline-flex;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  overflow:hidden;
  margin:18px 0 28px;
}
.view-toggle button {
  border:none;
  background:var(--white);
  color:var(--text-muted);
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:14px;
  padding:10px 20px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.view-toggle button.is-active {
  background:var(--green-dark);
  color:var(--white);
}
.escuelas-grid {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:22px;
}
.escuela-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex;
  gap:18px;
  padding:18px;
  transition:box-shadow 0.18s ease, transform 0.18s ease, outline 0.15s ease;
  scroll-margin-top:100px;
}
.escuela-card .photo {
  width:108px;
  height:108px;
  border-radius:var(--radius-sm);
  flex-shrink:0;
}
.escuela-card .info {
  flex:1;
  min-width:0;
}
.escuela-card .info-top {
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.escuela-card h3 {
  font-size:17px;
  line-height:1.3;
}
.escuela-card .city {
  font-size:13.5px;
  color:var(--text-muted);
  margin:4px 0 8px;
}
.escuela-card .meta-line {
  font-size:13px;
  color:var(--text-muted);
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:4px;
}
.escuela-card .card-actions {
  margin-top:10px;
}
:where(body.page-escuelas_buscador) .empty-state {
  text-align:center;
  padding:56px 24px;
  background:var(--bg-alt);
  border-radius:var(--radius-md);
  display:none;
}
.map-box-lg .pin {
  cursor:pointer;
}
.map-box-lg .pin circle {
  transition:r 0.15s ease, fill 0.15s ease;
}
@media (max-width: 820px) {
  .escuelas-grid {
    grid-template-columns:1fr;
  }
  .escuela-card {
    flex-direction:column;
  }
  .escuela-card .photo {
    width:100%;
    height:140px;
  }
}
.resource-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.resource-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:20px;
  transition:box-shadow 0.18s ease, transform 0.18s ease;
}
.resource-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}
.format-icon {
  width:40px;
  height:40px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg-alt);
  color:var(--green-dark);
  flex-shrink:0;
}
.level-tag {
  font-size:11.5px;
  font-weight:600;
  padding:4px 10px;
  border-radius:12px;
  text-transform:uppercase;
  letter-spacing:0.02em;
}
.level-introductorio {
  background:#F4F6F8;
  color:#52606D;
}
.level-intermedio {
  background:#E3EDF6;
  color:#1F3A57;
}
.level-avanzado {
  background:#EDEFF2;
  color:#52606D;
}
.resource-card h3 {
  font-size:16.5px;
  line-height:1.35;
  margin-bottom:8px;
}
.resource-meta {
  font-size:13px;
  color:var(--text-muted);
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:4px;
}
.resource-format-label {
  font-size:12.5px;
  color:var(--green-accent);
  font-weight:600;
  margin-top:10px;
  display:block;
}
:where(body.page-blog) .empty-state,
:where(body.page-repositorio) .empty-state {
  text-align:center;
  padding:56px 24px;
  background:var(--bg-alt);
  border-radius:var(--radius-md);
  display:none;
  grid-column:1 / -1;
}
.empty-state.is-visible {
  display:block;
}
@media (max-width: 900px) {
  .blog-grid {
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width: 620px) {
  .blog-grid {
    grid-template-columns:1fr;
  }
}
.map-view {
  display:none;
}
.map-view.is-active {
  display:block;
}
.list-view.is-hidden {
  display:none;
}
:where(body.page-repositorio) .modal-overlay {
  position:fixed;
  inset:0;
  background:rgba(31,41,51,0.5);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:100;
  padding:20px;
}
.modal-overlay.is-open {
  display:flex;
}
:where(body.page-repositorio) .modal-box textarea {
  resize:vertical;
  min-height:70px;
}
@media (max-width: 900px) {
  .resource-grid {
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width: 620px) {
  .resource-grid {
    grid-template-columns:1fr;
  }
}
.badge-gratuito {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--bg-mision);
  color:var(--green-dark);
  font-size:12.5px;
  font-weight:700;
  padding:5px 13px;
  border-radius:20px;
  margin-bottom:14px;
}
.form-layout {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:44px;
  align-items:start;
  padding-bottom:64px;
}
.form-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:8px 0;
}
.form-section {
  padding:28px 32px;
  border-bottom:1px solid var(--border);
}
.form-section:last-child {
  border-bottom:none;
}
.form-section-head {
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.form-section-num {
  width:26px;
  height:26px;
  border-radius:50%;
  background:var(--bg-alt);
  color:var(--green-dark);
  font-size:13px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.form-section-head h2 {
  font-size:17px;
}
.main-nav a:hover {
  color:var(--green-accent);
}
:where(body.page-autenticidad_linaje) .hero,
:where(body.page-contacto) .hero,
:where(body.page-que_es_la_gnosis) .hero,
:where(body.page-sobre_nosotros) .hero {
  position:relative;
  min-height:480px;
  display:flex;
  align-items:center;
  padding:60px 0;
  background:linear-gradient(100deg, rgba(10,8,4,0.72) 0%, rgba(30,20,8,0.5) 38%, rgba(90,60,20,0.28) 62%, rgba(140,95,40,0.18) 100%), radial-gradient(ellipse at 75% 30%, #a8783f 0%, #7a5730 32%, #4a3420 58%, #241a10 100%);
  overflow:hidden;
}
:where(body.page-autenticidad_linaje) .hero::after,
:where(body.page-contacto) .hero::after,
:where(body.page-que_es_la_gnosis) .hero::after,
:where(body.page-sobre_nosotros) .hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(115deg, rgba(0,0,0,0.05) 0 2px, transparent 2px 60px);
  pointer-events:none;
}
:where(body.page-autenticidad_linaje) .hero-content,
:where(body.page-contacto) .hero-content,
:where(body.page-que_es_la_gnosis) .hero-content,
:where(body.page-sobre_nosotros) .hero-content {
  position:relative;
  max-width:620px;
}
:where(body.tpl-home) .hero h1 {
  font-style:italic;
  font-size:clamp(30px, 4.2vw, 44px);
  line-height:1.28;
  color:#FFFFFF;
  margin-bottom:20px;
}
.search-form input:focus-visible {
  outline:2px solid var(--green-accent);
  outline-offset:1px;
}
@media (prefers-reduced-motion: reduce) {
  html:has(body.tpl-home) {
    scroll-behavior:auto;
  }
}
:where(body.page-index) .hero {
  position:relative;
  min-height:480px;
  display:flex;
  align-items:center;
  padding:60px 0;
  background:#241a10;
  overflow:hidden;
}
.hero-buttons {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
:where(body.tpl-home) .two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.hero-carousel {
  position:absolute;
  inset:0;
  z-index:0;
}
.hero-slide {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.6s ease;
}
.hero-slide.is-active {
  opacity:1;
}
:where(body.page-index) .hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(100deg, rgba(10,8,4,0.72) 0%, rgba(30,20,8,0.5) 38%, rgba(90,60,20,0.28) 62%, rgba(140,95,40,0.18) 100%);
}
:where(body.page-index) .hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:repeating-linear-gradient(115deg, rgba(0,0,0,0.05) 0 2px, transparent 2px 60px);
  pointer-events:none;
}
:where(body.page-index) .hero-content {
  position:relative;
  z-index:2;
  max-width:620px;
}
.video-frame {
  position:relative;
  border-radius:var(--radius-md);
  overflow:hidden;
  aspect-ratio:16/10;
  background:linear-gradient(135deg, #DDE2E8, #C3CBD4);
  display:flex;
  align-items:center;
  justify-content:center;
}
:where(body.tpl-home) .blog-card .thumb,
:where(body.page-blog) .blog-card .thumb {
  aspect-ratio:4/3;
}
:where(body.page-conferencias) .video-frame .play-btn {
  width:60px;
  height:60px;
  border-radius:50%;
  background:rgba(255,255,255,0.94);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
}
:where(body.tpl-home) .hero p {
  color:rgba(251,246,233,0.88);
  font-size:16.5px;
  max-width:480px;
  margin-bottom:30px;
}
.video-frame .video-thumb {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
}
.video-frame .video-thumb::after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(31,41,51,0.28);
}
:where(body.tpl-home) .video-frame .play-btn {
  position:relative;
  z-index:1;
  width:68px;
  height:68px;
  border-radius:50%;
  background:rgba(255,255,255,0.94);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
}
:where(body.tpl-home) .blog-card:hover,
:where(body.page-blog) .blog-card:hover {
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(31,41,51,0.1);
}
:where(body.tpl-home) .video-frame .play-btn svg {
  width:26px;
  height:26px;
  margin-left:3px;
}
.video-frame .video-caption {
  position:absolute;
  bottom:14px;
  left:14px;
  background:rgba(31,41,51,0.55);
  color:#fff;
  font-size:13px;
  font-weight:500;
  padding:6px 12px;
  border-radius:20px;
}
.conf-meta {
  display:flex;
  align-items:center;
  gap:16px;
  font-size:14px;
  color:var(--text-muted);
  margin:10px 0 16px;
}
.conf-meta span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.conf-grid {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:20px;
  padding-bottom:64px;
}
.conf-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex;
  gap:16px;
  padding:16px;
}
.conf-card .thumb {
  width:140px;
  height:100px;
  flex-shrink:0;
  border-radius:8px;
  background:linear-gradient(135deg, #DDE2E8, #C3CBD4);
  display:flex;
  align-items:center;
  justify-content:center;
}
.conf-card .thumb svg {
  width:34px;
  height:34px;
}
.conf-card h3 {
  font-size:16px;
  margin-bottom:6px;
}
.conf-card .card-meta {
  font-size:12.5px;
  color:var(--text-muted);
  margin-bottom:8px;
}
.conf-card p.excerpt {
  font-size:13.5px;
  color:var(--text-muted);
  margin:0 0 10px;
}
:where(body.page-blog) .empty-state h3,
:where(body.page-conferencias) .empty-state h3,
:where(body.page-escuelas_buscador) .empty-state h3,
:where(body.page-repositorio) .empty-state h3 {
  font-size:19px;
  margin-bottom:8px;
}
:where(body.page-blog) .empty-state p,
:where(body.page-conferencias) .empty-state p,
:where(body.page-repositorio) .empty-state p {
  color:var(--text-muted);
  max-width:46ch;
  margin:0 auto;
}
:where(body.page-conferencias) .empty-state {
  text-align:center;
  padding:56px 24px;
  background:var(--bg-alt);
  border-radius:var(--radius-md);
  grid-column:1 / -1;
}
:where(body.page-escuela_perfil) .modal-box h3,
:where(body.page-repositorio) .modal-box h3 {
  font-size:20px;
  margin-bottom:10px;
}
:where(body.page-escuela_perfil) .modal-box p {
  color:var(--text-muted);
  font-size:14.5px;
  margin-bottom:20px;
}
:where(body.page-escuelas_buscador) .empty-state p {
  color:var(--text-muted);
  max-width:46ch;
  margin:0 auto 18px;
}
.map-box-lg {
  position:relative;
  border-radius:var(--radius-md);
  border:1px solid var(--border);
  background:linear-gradient(var(--border) 1px, transparent 1px) 0 0/32px 32px, linear-gradient(90deg, var(--border) 1px, transparent 1px) 0 0/32px 32px, #F4F6F8;
  aspect-ratio:16/9;
  overflow:hidden;
  margin-bottom:24px;
}
:where(body.page-repositorio) .modal-box {
  background:var(--white);
  border-radius:var(--radius-md);
  padding:32px;
  max-width:460px;
  width:100%;
  position:relative;
}
:where(body.page-repositorio) .modal-box p {
  color:var(--text-muted);
  font-size:14.5px;
  margin-bottom:18px;
}
:where(body.page-escuela_perfil) .modal-box label,
:where(body.page-repositorio) .modal-box label {
  font-size:13.5px;
  font-weight:600;
  display:block;
  margin-bottom:6px;
}
:where(body.page-escuela_perfil) .modal-box input,
:where(body.page-escuela_perfil) .modal-box textarea {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  margin-bottom:16px;
}
.modal-actions {
  display:flex;
  gap:10px;
  justify-content:flex-end;
}
:where(body.page-repositorio) .modal-box input,
:where(body.page-repositorio) .modal-box select,
:where(body.page-repositorio) .modal-box textarea {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  margin-bottom:16px;
  background:var(--white);
}
:where(body.page-repositorio) .upload-box {
  border:1.5px dashed var(--border);
  border-radius:var(--radius-sm);
  padding:22px 16px;
  text-align:center;
  background:var(--bg-page);
  cursor:pointer;
  margin-top:6px;
  transition:border-color 0.15s ease, background 0.15s ease;
}
.conference h2 {
  font-size:24px;
  margin-bottom:6px;
}
.conference p.body-text {
  color:var(--text-muted);
  margin-bottom:18px;
  max-width:46ch;
}
.section-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:32px;
  flex-wrap:wrap;
  gap:12px;
}
.section-head h2 {
  font-size:26px;
}
.card-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
:where(body.tpl-home) .blog-card {
  background:var(--white);
  border-radius:var(--radius-md);
  overflow:hidden;
  border:1px solid var(--border);
  transition:transform 0.18s ease, box-shadow 0.18s ease;
}
:where(body.tpl-home) .blog-card .thumb-a {
  background:linear-gradient(140deg,#EEF2F6,#C9D3DE 70%);
}
:where(body.tpl-home) .blog-card .thumb-b {
  background:linear-gradient(140deg,#E3E7EC,#9AA8B8 75%);
}
:where(body.tpl-home) .blog-card .thumb-c {
  background:linear-gradient(140deg,#DCE8F5,#7F9FC4 80%);
}
:where(body.tpl-home) .blog-card .card-body {
  padding:20px 22px 24px;
}
:where(body.tpl-home) .blog-card .tag {
  font-size:12.5px;
  font-weight:600;
  color:var(--green-accent);
  text-transform:uppercase;
  letter-spacing:0.03em;
}
:where(body.tpl-home) .blog-card h3 {
  font-size:18.5px;
  margin:8px 0 10px;
  line-height:1.35;
}
:where(body.tpl-home) .blog-card p {
  font-size:14.5px;
  color:var(--text-muted);
  margin:0;
}
.escuela-banner {
  background:var(--bg-escuela);
  border-radius:var(--radius-lg);
  padding:48px;
}
.badge-pill {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--white);
  padding:7px 16px;
  border-radius:20px;
  font-size:13.5px;
  font-weight:600;
  color:var(--green-accent);
  margin-bottom:18px;
}
.escuela-banner h2 {
  font-size:28px;
  margin-bottom:14px;
}
.escuela-banner p.body-text {
  color:var(--text-muted);
  max-width:46ch;
  margin-bottom:24px;
}
.search-form {
  display:flex;
  gap:10px;
  max-width:460px;
  flex-wrap:wrap;
}
.map-box svg {
  width:100%;
  height:100%;
}
.niveles-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.social-icons svg {
  width:19px;
  height:19px;
}
.reveal {
  opacity:0;
  transform:translateY(14px);
  transition:opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity:1;
    transform:none;
    transition:none;
  }
}
.registrar-escuela-note {
  margin-top:14px;
  font-size:14px;
  color:var(--text-muted);
}
.registrar-escuela-note a {
  color:var(--green-accent);
  font-weight:600;
}
.search-form input {
  flex:1;
  min-width:180px;
  padding:13px 16px 13px 42px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:15px;
  background:var(--white) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%233D6B99" stroke-width="2"><circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>') no-repeat 14px center;
  background-size:17px;
}
.map-box {
  position:relative;
  border-radius:var(--radius-md);
  border:1px solid var(--border);
  background:linear-gradient(var(--border) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, var(--border) 1px, transparent 1px) 0 0 / 32px 32px, #F4F6F8;
  aspect-ratio:4/3;
  overflow:hidden;
}
.map-note {
  position:absolute;
  bottom:12px;
  right:12px;
  background:var(--white);
  font-size:12.5px;
  font-weight:500;
  padding:6px 12px;
  border-radius:16px;
  box-shadow:0 2px 8px rgba(31,41,51,0.12);
}
.nivel-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:28px;
}
.nivel-card h3 {
  font-size:19px;
  margin-bottom:10px;
}
.nivel-card p {
  font-size:14.5px;
  color:var(--text-muted);
  margin-bottom:16px;
}
.mision-banner {
  background:var(--bg-mision);
  border-radius:var(--radius-lg);
  padding:44px 48px;
}
:where(body.tpl-home) .badge-solid {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--green-dark);
  color:var(--white);
  padding:6px 14px;
  border-radius:20px;
  font-size:13px;
  font-weight:600;
  margin-bottom:16px;
}
.mision-banner h2 {
  font-size:25px;
  margin-bottom:12px;
  max-width:26ch;
}
.mision-banner p.body-text {
  color:var(--text-muted);
  max-width:60ch;
  margin-bottom:22px;
}
:where(body.tpl-home) footer.site-footer {
  background:var(--footer-bg);
  color:var(--footer-link);
  padding:56px 0 0;
}
:where(body.tpl-home) .footer-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
  padding-bottom:40px;
}
@media (max-width: 900px) {
  :where(body.tpl-home) .two-col,
  :where(body.page-conferencias) .two-col {
    grid-template-columns:1fr;
  }
  .conf-grid {
    grid-template-columns:1fr;
  }
}
:where(body.tpl-home) .footer-grid h4 {
  font-family:'Lora', serif;
  font-style:italic;
  color:var(--footer-heading);
  font-size:15.5px;
  margin-bottom:14px;
  font-weight:500;
}
:where(body.tpl-home) .footer-grid a,
:where(body.tpl-home) .footer-grid p {
  display:block;
  font-size:14.5px;
  margin-bottom:10px;
  color:var(--footer-link);
}
:where(body.tpl-home) .footer-grid a:hover {
  color:var(--white);
}
.social-icons {
  display:flex;
  gap:14px;
  margin-top:4px;
}
.social-icons a {
  display:flex;
}
:where(body.tpl-home) .footer-bottom {
  border-top:1px solid rgba(255,255,255,0.08);
  padding:18px 0 22px;
  font-size:13px;
  color:rgba(199,203,184,0.7);
}
@media (max-width: 900px) {
  .card-grid, .niveles-grid {
    grid-template-columns:1fr;
  }
  :where(body.tpl-home) .footer-grid {
    grid-template-columns:1fr 1fr;
  }
  .escuela-banner, .mision-banner {
    padding:32px 24px;
  }
}
@media (max-width: 720px) {
  :where(body.tpl-home) .main-nav {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--bg-page);
    border-bottom:1px solid var(--border);
    flex-direction:column;
    padding:16px 32px;
    gap:16px;
    display:none;
  }
  :where(body.tpl-home) .main-nav.is-open {
    display:flex;
  }
  :where(body.tpl-home) .nav-toggle {
    display:block;
  }
  :where(body.tpl-home) .section {
    padding:52px 0;
  }
  :where(body.tpl-home) .container {
    padding:0 20px;
  }
}
:where(body.page-autenticidad_linaje) .breadcrumb,
:where(body.page-contacto) .breadcrumb,
:where(body.page-que_es_la_gnosis) .breadcrumb,
:where(body.page-sobre_nosotros) .breadcrumb {
  font-size:13.5px;
  color:var(--text-muted);
  padding:18px 0 0;
}
:where(body.page-autenticidad_linaje) .breadcrumb a,
:where(body.page-contacto) .breadcrumb a,
:where(body.page-que_es_la_gnosis) .breadcrumb a,
:where(body.page-sobre_nosotros) .breadcrumb a {
  color:var(--text-muted);
}
:where(body.page-autenticidad_linaje) .breadcrumb a:hover,
:where(body.page-contacto) .breadcrumb a:hover,
:where(body.page-que_es_la_gnosis) .breadcrumb a:hover,
:where(body.page-sobre_nosotros) .breadcrumb a:hover {
  color:var(--green-accent);
}
:where(body.page-autenticidad_linaje) .breadcrumb .sep,
:where(body.page-contacto) .breadcrumb .sep,
:where(body.page-que_es_la_gnosis) .breadcrumb .sep,
:where(body.page-sobre_nosotros) .breadcrumb .sep {
  margin:0 6px;
  opacity:0.6;
}
.content-wrap {
  max-width:760px;
  margin:0 auto;
  padding:40px 32px 0;
}
.content-wrap h1 {
  font-size:32px;
  margin:0 0 8px;
  line-height:1.25;
}
.content-wrap .subtitle {
  color:var(--text-muted);
  font-size:16px;
  margin:0 0 36px;
}
.content-body {
  font-size:16.5px;
  line-height:1.8;
  color:var(--text);
}
.content-body p {
  margin:0 0 22px;
}
.content-body h2 {
  font-size:22px;
  margin:36px 0 14px;
}
.content-body h3 {
  font-size:19px;
  margin:28px 0 12px;
}
.content-body ul, .content-body ol {
  margin:0 0 22px;
  padding-left:22px;
}
.content-body li {
  margin-bottom:8px;
}
.content-body blockquote {
  border-left:3px solid var(--green-accent);
  margin:0 0 22px;
  padding:4px 0 4px 18px;
  font-style:italic;
  color:var(--text-muted);
}
.content-cta {
  max-width:760px;
  margin:20px auto 56px;
  background:var(--bg-escuela);
  border-radius:var(--radius-lg);
  padding:32px 36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.content-cta h3 {
  font-size:19px;
  margin-bottom:6px;
}
.content-cta p {
  color:var(--text-muted);
  font-size:14px;
  max-width:42ch;
  margin:0;
}
.content-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:28px 0 8px;
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
  margin-top:8px;
}
.contact-field {
  margin-bottom:18px;
}
.contact-field label {
  font-size:13.5px;
  font-weight:600;
  display:block;
  margin-bottom:6px;
}
.contact-field input, .contact-field textarea {
  width:100%;
  padding:12px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  background:var(--white);
}
.contact-field textarea {
  min-height:120px;
  resize:vertical;
}
.contact-info {
  background:var(--bg-alt);
  border-radius:var(--radius-md);
  padding:26px;
}
.contact-info h3 {
  font-size:16px;
  margin-bottom:14px;
}
.contact-info .row {
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-bottom:16px;
  font-size:14.5px;
}
.contact-info .row:last-child {
  margin-bottom:0;
}
.contact-info .row a {
  color:var(--green-accent);
  font-weight:600;
}
@media (max-width: 700px) {
  .content-wrap {
    padding-left:20px;
    padding-right:20px;
  }
  .content-wrap h1 {
    font-size:26px;
  }
  .content-cta {
    padding:26px;
    flex-direction:column;
    align-items:flex-start;
  }
  .contact-grid {
    grid-template-columns:1fr;
  }
}
.registrar-escuela-note a:hover {
  text-decoration:underline;
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide {
    transition:none;
  }
}
body.page-admin_blog,
body.page-admin_conferencias,
body.page-admin_panel {
  margin:0;
  font-family:'Work Sans', sans-serif;
  background:var(--bg-page);
  color:var(--text);
  line-height:1.5;
}
:where(body.page-admin_blog) h1,
:where(body.page-admin_conferencias) h1,
:where(body.page-admin_panel) h1,
:where(body.page-admin_blog) h2,
:where(body.page-admin_conferencias) h2,
:where(body.page-admin_panel) h2,
:where(body.page-admin_blog) h3,
:where(body.page-admin_conferencias) h3,
:where(body.page-admin_panel) h3 {
  font-family:'Lora', serif;
  font-weight:500;
  margin:0;
}
:where(body.page-admin_blog) .container,
:where(body.page-admin_conferencias) .container,
:where(body.page-admin_panel) .container {
  max-width:1000px;
  margin:0 auto;
  padding:0 28px;
}
.top-bar {
  background:var(--white);
  border-bottom:1px solid var(--border);
  padding:14px 0;
}
.top-bar .container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
:where(body.page-admin_blog) .brand,
:where(body.page-admin_conferencias) .brand,
:where(body.page-admin_panel) .brand {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  white-space:nowrap;
}
:where(body.page-admin_blog) .brand img,
:where(body.page-admin_conferencias) .brand img,
:where(body.page-admin_panel) .brand img {
  height:36px;
}
:where(body.page-admin_blog) .brand span,
:where(body.page-admin_conferencias) .brand span,
:where(body.page-admin_panel) .brand span {
  font-family:'Lora', serif;
  font-size:16px;
}
:where(body.page-admin_conferencias) .field textarea {
  min-height:90px;
  resize:vertical;
}
body.page-admin_login {
  margin:0;
  font-family:'Work Sans', sans-serif;
  background:var(--bg-page);
  color:var(--text);
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
:where(body.page-admin_login) .login-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:40px;
  max-width:380px;
  width:100%;
  text-align:center;
}
:where(body.page-admin_login) .login-card img {
  height:56px;
  margin-bottom:14px;
}
:where(body.page-admin_login) .login-card h1 {
  font-family:'Lora', serif;
  font-size:22px;
  margin:0 0 6px;
  font-weight:500;
}
:where(body.page-admin_login) .login-card p.sub,
:where(body.page-misionero_login) .login-card p.sub {
  color:var(--text-muted);
  font-size:13.5px;
  margin:0 0 26px;
}
:where(body.page-admin_login) .field,
:where(body.page-misionero_login) .field {
  text-align:left;
  margin-bottom:16px;
}
:where(body.page-misionero_login) .field label {
  font-size:13px;
  font-weight:600;
  display:block;
  margin-bottom:6px;
}
:where(body.page-admin_login) .field label {
  font-size:13px;
  font-weight:600;
  display:block;
  margin-bottom:6px;
}
:where(body.page-admin_login) .field input,
:where(body.page-misionero_login) .field input {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
}
.btn-login {
  width:100%;
  background:var(--green-dark);
  color:var(--white);
  border:none;
  padding:12px;
  border-radius:var(--radius-sm);
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:14.5px;
  cursor:pointer;
  margin-top:6px;
}
.btn-login:hover {
  background:var(--green-dark-hover);
}
:where(body.page-misionero_login) .error-box {
  background:#FBEAEA;
  color:#8A2E2E;
  border:1px solid #E5B8B8;
  border-radius:8px;
  padding:10px 14px;
  margin-bottom:16px;
  font-size:13.5px;
  display:none;
  text-align:left;
}
.login-footer-note {
  font-size:13px;
  color:var(--text-muted);
  margin-top:20px;
}
.login-footer-note a {
  color:var(--green-accent);
  font-weight:600;
}
:where(body.page-admin_login) .error-box {
  background:#FBEAEA;
  color:#8A2E2E;
  border:1px solid #E5B8B8;
  border-radius:8px;
  padding:10px 14px;
  margin-bottom:16px;
  font-size:13.5px;
  display:none;
}
:where(body.page-admin_panel) .user-box {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  color:var(--text-muted);
  flex-shrink:0;
  white-space:nowrap;
}
.top-nav {
  display:flex;
  gap:14px;
  align-items:center;
  flex-shrink:0;
}
.top-nav a {
  font-size:13px;
  color:var(--text-muted);
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}
.top-nav a.is-active {
  color:var(--green-dark);
}
:where(body.page-admin_blog) .user-box {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  color:var(--text-muted);
  flex-shrink:0;
  white-space:nowrap;
}
:where(body.page-admin_conferencias) .user-box {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  color:var(--text-muted);
  flex-shrink:0;
  white-space:nowrap;
}
:where(body.page-admin_blog) .btn-logout,
:where(body.page-admin_conferencias) .btn-logout,
:where(body.page-admin_panel) .btn-logout {
  background:none;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:6px 10px;
  font-family:'Work Sans', sans-serif;
  font-size:12px;
  cursor:pointer;
  color:var(--text);
  white-space:nowrap;
}
:where(body.page-admin_blog) .btn-logout:hover,
:where(body.page-admin_conferencias) .btn-logout:hover,
:where(body.page-admin_panel) .btn-logout:hover,
:where(body.page-area_misioneros) .btn-logout:hover {
  background:var(--bg-alt);
}
.webinar-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  overflow:hidden;
}
.webinar-thumb {
  aspect-ratio:16/9;
  background:linear-gradient(135deg, #DDE2E8, #C3CBD4);
  display:flex;
  align-items:center;
  justify-content:center;
}
.webinar-thumb .play-btn {
  width:52px;
  height:52px;
  border-radius:50%;
  background:rgba(255,255,255,0.94);
  display:flex;
  align-items:center;
  justify-content:center;
}
.gate-card {
  max-width:520px;
  margin:60px auto;
  text-align:center;
  background:var(--bg-alt);
  border-radius:var(--radius-md);
  padding:40px 32px;
}
.gate-card h2 {
  font-size:20px;
  margin-bottom:10px;
}
.gate-card p {
  color:var(--text-muted);
  margin-bottom:20px;
}
.loading-msg {
  text-align:center;
  color:var(--text-muted);
  padding:60px 0;
}
:where(body.page-admin_blog) .page-head,
:where(body.page-admin_conferencias) .page-head {
  padding:32px 0 8px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
:where(body.page-admin_blog) .page-head h1,
:where(body.page-admin_conferencias) .page-head h1,
:where(body.page-admin_panel) .page-head h1 {
  font-size:26px;
  margin-bottom:6px;
}
:where(body.page-admin_blog) .page-head p,
:where(body.page-admin_conferencias) .page-head p,
:where(body.page-admin_panel) .page-head p {
  color:var(--text-muted);
  font-size:14px;
}
:where(body.page-admin_blog) .btn,
:where(body.page-admin_conferencias) .btn {
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:13.5px;
  padding:10px 18px;
  border-radius:var(--radius-sm);
  border:1.5px solid transparent;
  cursor:pointer;
}
:where(body.page-admin_blog) .btn-primary,
:where(body.page-admin_conferencias) .btn-primary {
  background:var(--green-dark);
  color:var(--white);
}
:where(body.page-admin_blog) .btn-primary:hover,
:where(body.page-admin_conferencias) .btn-primary:hover {
  background:var(--green-dark-hover);
}
.btn-outline {
  background:transparent;
  color:var(--text);
  border-color:var(--border);
}
.btn-outline:hover {
  background:var(--bg-alt);
}
.btn-danger {
  background:var(--red-bg);
  color:var(--red);
  border-color:#E5B8B8;
}
.btn-danger:hover {
  background:#F6DADA;
}
.post-row {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:16px 20px;
  margin-bottom:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.post-row-main h3 {
  font-size:16px;
  margin-bottom:4px;
}
:where(body.page-admin_blog) .post-row-meta {
  font-size:12.5px;
  color:var(--text-muted);
}
:where(body.page-admin_blog) .status-badge {
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:3px 9px;
  border-radius:10px;
  margin-left:8px;
}
.post-row-actions {
  display:flex;
  gap:8px;
  flex-shrink:0;
}
:where(body.page-admin_conferencias) .post-row-meta {
  font-size:13px;
  color:var(--text-muted);
}
.status-publicado {
  background:#E3EDF6;
  color:#1F3A57;
}
.status-borrador {
  background:#EDEFF2;
  color:#52606D;
}
:where(body.page-admin_conferencias) .status-badge {
  font-size:10.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:3px 9px;
  border-radius:10px;
  margin-left:8px;
}
:where(body.page-admin_panel) .page-head {
  padding:32px 0 8px;
}
.tabs {
  display:flex;
  gap:8px;
  margin:24px 0;
  border-bottom:1px solid var(--border);
}
.tab-btn {
  background:none;
  border:none;
  padding:10px 18px;
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:14.5px;
  color:var(--text-muted);
  cursor:pointer;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
}
.tab-btn.is-active {
  color:var(--green-dark);
  border-bottom-color:var(--green-dark);
}
.tab-panel {
  display:none;
  padding-bottom:60px;
}
.empty-msg {
  color:var(--text-muted);
  font-size:14px;
  padding:30px 0;
  text-align:center;
}
.editor-overlay {
  position:fixed;
  inset:0;
  background:rgba(31,41,51,0.5);
  display:none;
  align-items:flex-start;
  justify-content:center;
  z-index:100;
  padding:40px 20px;
  overflow-y:auto;
}
.editor-overlay.is-open {
  display:flex;
}
:where(body.page-admin_blog) .editor-box {
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:32px;
  max-width:780px;
  width:100%;
  margin-bottom:40px;
  position:relative;
}
:where(body.page-admin_conferencias) .editor-box {
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:32px;
  max-width:620px;
  width:100%;
  margin-bottom:40px;
  position:relative;
}
:where(body.page-admin_blog) .editor-box h2,
:where(body.page-admin_conferencias) .editor-box h2 {
  font-size:20px;
  margin-bottom:20px;
}
:where(body.page-admin_conferencias) .field,
:where(body.page-escuela_registrar) .field,
:where(body.page-solicitud_misionero) .field {
  margin-bottom:16px;
}
:where(body.page-admin_blog) .field {
  margin-bottom:18px;
}
:where(body.page-admin_blog) .field label,
:where(body.page-admin_conferencias) .field label {
  font-size:13.5px;
  font-weight:600;
  display:block;
  margin-bottom:6px;
}
:where(body.page-admin_conferencias) .field-row,
:where(body.page-escuela_registrar) .field-row,
:where(body.page-solicitud_misionero) .field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.field.full {
  grid-column:1 / -1;
}
:where(body.page-escuela_registrar) .field label,
:where(body.page-solicitud_misionero) .field label {
  font-size:13.5px;
  font-weight:600;
  display:block;
  margin-bottom:6px;
}
:where(body.page-escuela_registrar) .field .hint,
:where(body.page-solicitud_misionero) .field .hint {
  font-size:12.5px;
  color:var(--text-muted);
  font-weight:400;
  margin-top:4px;
}
:where(body.page-escuela_registrar) .field input,
:where(body.page-escuela_registrar) .field textarea,
:where(body.page-escuela_registrar) .field select {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  background:var(--white);
}
:where(body.page-escuela_registrar) .upload-box svg,
:where(body.page-solicitud_misionero) .upload-box svg {
  opacity:0.55;
  margin-bottom:8px;
  pointer-events:none;
}
@media (max-width: 900px) {
  .form-layout {
    grid-template-columns:1fr;
  }
  :where(body.page-escuela_registrar) .field-row,
  :where(body.page-solicitud_misionero) .field-row {
    grid-template-columns:1fr;
  }
}
:where(body.page-solicitud_misionero) .field input,
:where(body.page-solicitud_misionero) .field textarea {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  background:var(--white);
}
:where(body.page-escuela_registrar) .upload-box,
:where(body.page-solicitud_misionero) .upload-box {
  border:1.5px dashed var(--border);
  border-radius:var(--radius-sm);
  padding:28px 20px;
  text-align:center;
  background:var(--bg-page);
  cursor:pointer;
  transition:border-color 0.15s ease, background 0.15s ease;
}
:where(body.page-escuela_registrar) .upload-box:hover,
:where(body.page-repositorio) .upload-box:hover,
:where(body.page-solicitud_misionero) .upload-box:hover {
  border-color:var(--green-accent);
  background:var(--bg-alt);
}
.upload-box.is-dragover {
  border-color:var(--green-accent);
  background:var(--bg-alt);
}
:where(body.page-escuela_registrar) .upload-box p,
:where(body.page-solicitud_misionero) .upload-box p {
  font-size:13.5px;
  color:var(--text-muted);
  margin:0;
  pointer-events:none;
}
:where(body.page-escuela_registrar) .preview-item,
:where(body.page-solicitud_misionero) .preview-item {
  position:relative;
  width:84px;
  height:84px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-alt);
}
:where(body.page-repositorio) .preview-item {
  position:relative;
  width:76px;
  height:76px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-alt);
}
:where(body.page-admin_blog) .field-row {
  display:grid;
  grid-template-columns:1fr 200px;
  gap:16px;
}
.tab-panel.is-active {
  display:block;
}
.item-card {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:22px;
  margin-bottom:16px;
}
.item-card h3 {
  font-size:17px;
  margin-bottom:4px;
}
.item-meta {
  font-size:13px;
  color:var(--text-muted);
  margin-bottom:12px;
}
.item-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px 20px;
  font-size:13.5px;
  margin-bottom:14px;
}
.item-grid .k {
  color:var(--text-muted);
}
.item-grid .k::after {
  content:':';
}
.private-tag {
  display:inline-block;
  font-size:10.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#52606D;
  background:#EDEFF2;
  padding:2px 7px;
  border-radius:4px;
  margin-left:6px;
}
.evidencia-row {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.evidencia-row img, .evidencia-row video {
  width:110px;
  height:110px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid var(--border);
  background:var(--bg-alt);
  cursor:pointer;
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.evidencia-row img:hover, .evidencia-row video:hover {
  transform:scale(1.04);
  box-shadow:0 6px 16px rgba(31,41,51,0.18);
}
.item-actions {
  display:flex;
  gap:10px;
}
:where(body.page-admin_panel) .btn {
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:13.5px;
  padding:9px 18px;
  border-radius:var(--radius-sm);
  border:1.5px solid transparent;
  cursor:pointer;
}
.btn[disabled] {
  opacity:0.5;
  cursor:not-allowed;
}
.editor-close {
  position:absolute;
  top:24px;
  right:24px;
  background:none;
  border:none;
  cursor:pointer;
  opacity:0.6;
}
:where(body.page-admin_blog) .field input,
:where(body.page-admin_blog) .field select {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  background:var(--white);
}
#editorContenido {
  height:320px;
  background:var(--white);
  margin-bottom:40px;
}
.ql-toolbar.ql-snow {
  border-radius:8px 8px 0 0;
  border-color:var(--border);
}
.ql-container.ql-snow {
  border-radius:0 0 8px 8px;
  border-color:var(--border);
  font-size:15px;
}
.editor-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:10px;
}
:where(body.page-admin_blog) .upload-box input[type="file"],
:where(body.page-escuela_registrar) .upload-box input[type="file"],
:where(body.page-repositorio) .upload-box input[type="file"],
:where(body.page-solicitud_misionero) .upload-box input[type="file"] {
  display:none;
}
:where(body.page-admin_blog) .upload-box svg,
:where(body.page-repositorio) .upload-box svg {
  opacity:0.55;
  margin-bottom:6px;
  pointer-events:none;
}
:where(body.page-admin_blog) .upload-box p,
:where(body.page-repositorio) .upload-box p {
  font-size:13px;
  color:var(--text-muted);
  margin:0;
  pointer-events:none;
}
:where(body.page-admin_blog) .upload-box p.upload-link,
:where(body.page-escuela_registrar) .upload-box p.upload-link,
:where(body.page-repositorio) .upload-box p.upload-link,
:where(body.page-solicitud_misionero) .upload-box p.upload-link {
  color:var(--green-accent);
  font-weight:600;
}
.upload-counter {
  font-size:12.5px;
  font-weight:600;
  margin-top:8px;
  color:var(--text-muted);
}
.upload-counter.is-complete {
  color:var(--green-dark);
}
:where(body.page-escuela_registrar) .preview-grid,
:where(body.page-solicitud_misionero) .preview-grid {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
:where(body.page-repositorio) .preview-grid {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}
:where(body.page-admin_blog) .upload-box {
  border:1.5px dashed var(--border);
  border-radius:var(--radius-sm);
  padding:20px;
  text-align:center;
  background:var(--bg-page);
  cursor:pointer;
  transition:border-color 0.15s ease, background 0.15s ease;
}
:where(body.page-admin_blog) .upload-box:hover,
:where(body.page-admin_blog) .upload-box.is-dragover {
  border-color:var(--green-accent);
  background:var(--bg-alt);
}
:where(body.page-admin_blog) .preview-grid {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}
:where(body.page-admin_blog) .preview-item {
  position:relative;
  width:140px;
  height:90px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-alt);
}
:where(body.page-admin_blog) .preview-item img,
:where(body.page-escuela_registrar) .preview-item img,
:where(body.page-repositorio) .preview-item img,
:where(body.page-solicitud_misionero) .preview-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
:where(body.page-escuela_registrar) .preview-item .file-label,
:where(body.page-solicitud_misionero) .preview-item .file-label {
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  font-size:10px;
  color:var(--text-muted);
  text-align:center;
  padding:4px;
}
:where(body.page-escuela_registrar) .preview-item .remove-btn,
:where(body.page-solicitud_misionero) .preview-item .remove-btn {
  position:absolute;
  top:3px;
  right:3px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:rgba(31,41,51,0.72);
  color:#fff;
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
:where(body.page-repositorio) .preview-item .file-label {
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  font-size:9.5px;
  color:var(--text-muted);
  text-align:center;
  padding:4px;
}
:where(body.page-repositorio) .preview-item .remove-btn {
  position:absolute;
  top:3px;
  right:3px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:rgba(31,41,51,0.72);
  color:#fff;
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
:where(body.page-admin_blog) .preview-item .remove-btn {
  position:absolute;
  top:4px;
  right:4px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:rgba(31,41,51,0.72);
  color:#fff;
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
:where(body.page-admin_blog) .preview-item .remove-btn:hover,
:where(body.page-escuela_registrar) .preview-item .remove-btn:hover,
:where(body.page-repositorio) .preview-item .remove-btn:hover,
:where(body.page-solicitud_misionero) .preview-item .remove-btn:hover {
  background:rgba(31,41,51,0.9);
}
.modal-close {
  position:absolute;
  top:16px;
  right:16px;
  background:none;
  border:none;
  cursor:pointer;
  opacity:0.6;
}
@media (max-width: 860px) {
  .info-card {
    position:static;
  }
}
.note-box {
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  color:var(--text-muted);
  background:var(--bg-alt);
  border-radius:var(--radius-sm);
  padding:13px 15px;
  margin-bottom:4px;
}
.note-box svg {
  flex-shrink:0;
  margin-top:1px;
  opacity:0.75;
}
.form-submit-row {
  padding:26px 32px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.form-submit-row .btn {
  min-width:200px;
  justify-content:center;
}
.sidebar-card {
  background:var(--bg-alt);
  border-radius:var(--radius-md);
  padding:24px;
  position:sticky;
  top:90px;
}
.sidebar-card h3 {
  font-size:16px;
  margin-bottom:12px;
}
.sidebar-step {
  display:flex;
  gap:12px;
  margin-bottom:16px;
}
.sidebar-step:last-child {
  margin-bottom:0;
}
.sidebar-step .dot {
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--white);
  border:1.5px solid var(--green-accent);
  color:var(--green-dark);
  font-size:12px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.sidebar-step p {
  font-size:13.5px;
  margin:0;
}
.sidebar-step .step-title {
  font-weight:600;
  margin-bottom:2px;
}
.sidebar-step .step-desc {
  color:var(--text-muted);
}
.confirm-card {
  display:none;
  text-align:center;
  padding:64px 32px;
}
.confirm-card.is-visible {
  display:block;
}
.confirm-icon {
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--bg-mision);
  color:var(--green-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 20px;
}
.confirm-card h2 {
  font-size:24px;
  margin-bottom:12px;
}
.confirm-card p {
  color:var(--text-muted);
  max-width:46ch;
  margin:0 auto 26px;
}
.confirm-status {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#EDEFF2;
  color:#52606D;
  font-size:13px;
  font-weight:600;
  padding:6px 14px;
  border-radius:20px;
  margin-bottom:22px;
}
@media (max-width: 900px) {
  .sidebar-card {
    position:static;
  }
}
.pending-note {
  display:flex;
  gap:8px;
  align-items:flex-start;
  font-size:13px;
  color:var(--text-muted);
  background:var(--bg-alt);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  margin-bottom:18px;
}
.pending-note svg {
  flex-shrink:0;
  margin-top:1px;
  opacity:0.7;
}
:where(body.page-admin_conferencias) .field input,
:where(body.page-admin_conferencias) .field select,
:where(body.page-admin_conferencias) .field textarea {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  background:var(--white);
}
:where(body.page-admin_blog) .error-box,
:where(body.page-admin_conferencias) .error-box {
  background:var(--red-bg);
  color:#8A2E2E;
  border:1px solid #E5B8B8;
  border-radius:8px;
  padding:10px 14px;
  margin-bottom:16px;
  font-size:13.5px;
  display:none;
}
.error-box.is-visible {
  display:block;
}
.btn-aprobar {
  background:var(--green-dark);
  color:var(--white);
}
.btn-aprobar:hover {
  background:var(--green-dark-hover);
}
.btn-rechazar {
  background:var(--red-bg);
  color:var(--red);
  border-color:#E5B8B8;
}
.btn-rechazar:hover {
  background:#F6DADA;
}
.count-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  background:var(--green-accent);
  color:var(--white);
  font-size:11px;
  font-weight:700;
  border-radius:10px;
  padding:0 6px;
  margin-left:6px;
}
/* ===== Admin · Escuelas (admin_escuelas.html) =====
   Mismas medidas que conferencias/blog, acotadas a body.page-admin_escuelas. */
body.page-admin_escuelas {
  margin:0;
  font-family:'Work Sans', sans-serif;
  background:var(--bg-page);
  color:var(--text);
  line-height:1.5;
}
:where(body.page-admin_escuelas) h1,
:where(body.page-admin_escuelas) h2,
:where(body.page-admin_escuelas) h3 {
  font-family:'Lora', serif;
  font-weight:500;
  margin:0;
}
:where(body.page-admin_escuelas) .container {
  max-width:1000px;
  margin:0 auto;
  padding:0 28px;
}
:where(body.page-admin_escuelas) .brand {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  white-space:nowrap;
}
:where(body.page-admin_escuelas) .brand img {
  height:36px;
}
:where(body.page-admin_escuelas) .brand span {
  font-family:'Lora', serif;
  font-size:16px;
}
:where(body.page-admin_escuelas) .user-box {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  color:var(--text-muted);
  flex-shrink:0;
  white-space:nowrap;
}
:where(body.page-admin_escuelas) .btn-logout {
  background:none;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:6px 10px;
  font-family:'Work Sans', sans-serif;
  font-size:12px;
  cursor:pointer;
  color:var(--text);
  white-space:nowrap;
}
:where(body.page-admin_escuelas) .btn-logout:hover {
  background:var(--bg-alt);
}
:where(body.page-admin_escuelas) .page-head {
  padding:32px 0 8px;
}
:where(body.page-admin_escuelas) .page-head h1 {
  font-size:26px;
  margin-bottom:6px;
}
:where(body.page-admin_escuelas) .page-head p {
  color:var(--text-muted);
  font-size:14px;
}
:where(body.page-admin_escuelas) .btn {
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:13.5px;
  padding:10px 18px;
  border-radius:var(--radius-sm);
  border:1.5px solid transparent;
  cursor:pointer;
}
:where(body.page-admin_escuelas) .list-toolbar {
  display:grid;
  grid-template-columns:1fr 200px;
  gap:16px;
  margin:20px 0 4px;
}
:where(body.page-admin_escuelas) .list-count {
  font-size:12.5px;
  color:var(--text-muted);
  margin:0 0 14px;
}
:where(body.page-admin_escuelas) .post-row-main {
  flex:1;
  min-width:0;
}
:where(body.page-admin_escuelas) .post-row-thumb {
  width:64px;
  height:64px;
  flex-shrink:0;
  border-radius:var(--radius-sm);
  background:var(--bg-alt);
  overflow:hidden;
}
:where(body.page-admin_escuelas) .post-row-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
:where(body.page-admin_escuelas) .post-row-meta {
  font-size:13px;
  color:var(--text-muted);
  margin:0;
}
:where(body.page-admin_escuelas) .status-badge {
  font-size:10.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:3px 9px;
  border-radius:10px;
  margin-left:8px;
  font-family:'Work Sans', sans-serif;
  vertical-align:middle;
}
.status-verificada {
  background:#E3EDF6;
  color:#1F3A57;
}
.status-pendiente {
  background:#EDEFF2;
  color:#52606D;
}
.status-rechazada {
  background:var(--red-bg);
  color:var(--red);
}
:where(body.page-admin_escuelas) .editor-box {
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:32px;
  max-width:680px;
  width:100%;
  margin-bottom:40px;
  position:relative;
}
:where(body.page-admin_escuelas) .editor-box h2 {
  font-size:20px;
  margin-bottom:20px;
}
:where(body.page-admin_escuelas) .field {
  margin-bottom:16px;
}
:where(body.page-admin_escuelas) .field label {
  font-size:13.5px;
  font-weight:600;
  display:block;
  margin-bottom:6px;
}
:where(body.page-admin_escuelas) .field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
:where(body.page-admin_escuelas) .field input,
:where(body.page-admin_escuelas) .field select,
:where(body.page-admin_escuelas) .field textarea {
  width:100%;
  padding:11px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  background:var(--white);
}
:where(body.page-admin_escuelas) .field textarea {
  min-height:90px;
  resize:vertical;
}
:where(body.page-admin_escuelas) .hint {
  font-size:12.5px;
  color:var(--text-muted);
  font-weight:400;
  margin:4px 0 0;
}
:where(body.page-admin_escuelas) p.hint#mapaLink {
  margin:-8px 0 16px;
}
:where(body.page-admin_escuelas) .hint a {
  color:var(--green-accent);
}
:where(body.page-admin_escuelas) .error-box {
  background:var(--red-bg);
  color:#8A2E2E;
  border:1px solid #E5B8B8;
  border-radius:8px;
  padding:10px 14px;
  margin-bottom:16px;
  font-size:13.5px;
  display:none;
}
:where(body.page-admin_escuelas) .upload-box {
  border:1.5px dashed var(--border);
  border-radius:var(--radius-sm);
  padding:20px;
  text-align:center;
  background:var(--bg-page);
  cursor:pointer;
  transition:border-color 0.15s ease, background 0.15s ease;
  margin-top:12px;
}
:where(body.page-admin_escuelas) .upload-box:hover,
:where(body.page-admin_escuelas) .upload-box.is-dragover {
  border-color:var(--green-accent);
  background:var(--bg-alt);
}
:where(body.page-admin_escuelas) .upload-box.is-uploading {
  opacity:0.5;
  pointer-events:none;
}
:where(body.page-admin_escuelas) .upload-box input[type="file"] {
  display:none;
}
:where(body.page-admin_escuelas) .upload-box svg {
  opacity:0.55;
  margin-bottom:6px;
  pointer-events:none;
}
:where(body.page-admin_escuelas) .upload-box p {
  font-size:13px;
  color:var(--text-muted);
  margin:0;
  pointer-events:none;
}
:where(body.page-admin_escuelas) .upload-link {
  color:var(--green-accent);
  font-weight:600;
}
:where(body.page-admin_escuelas) .preview-grid {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
:where(body.page-admin_escuelas) .preview-item {
  position:relative;
  width:110px;
  height:84px;
  border-radius:var(--radius-sm);
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-alt);
}
:where(body.page-admin_escuelas) .preview-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  cursor:zoom-in;
}
:where(body.page-admin_escuelas) .preview-item .remove-btn {
  position:absolute;
  top:4px;
  right:4px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:rgba(31,41,51,0.72);
  color:#fff;
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
:where(body.page-admin_escuelas) .preview-item .remove-btn:hover {
  background:rgba(31,41,51,0.9);
}
@media (max-width: 700px) {
  :where(body.page-admin_escuelas) .list-toolbar,
  :where(body.page-admin_escuelas) .field-row {
    grid-template-columns:1fr;
  }
  :where(body.page-admin_escuelas) .post-row {
    flex-wrap:wrap;
  }
}
body.page-en_remodelacion,
:where(body.page-en_remodelacion) * {
  box-sizing:border-box;
}
html:has(body.page-en_remodelacion),
body.page-en_remodelacion {
  height:100%;
}
body.page-en_remodelacion {
  margin:0;
  font-family:'Work Sans', sans-serif;
  color:var(--cream);
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100vh;
  padding:24px;
  background:linear-gradient(100deg, rgba(10,8,4,0.75) 0%, rgba(30,20,8,0.55) 38%, rgba(90,60,20,0.32) 62%, rgba(140,95,40,0.2) 100%), radial-gradient(ellipse at 75% 30%, #a8783f 0%, #7a5730 32%, #4a3420 58%, #241a10 100%);
  background-attachment:fixed;
  overflow-x:hidden;
  position:relative;
}
body.page-en_remodelacion::after {
  content:"";
  position:fixed;
  inset:0;
  background:repeating-linear-gradient(115deg, rgba(0,0,0,0.05) 0 2px, transparent 2px 60px);
  pointer-events:none;
}
:where(body.page-en_remodelacion) .wrap {
  position:relative;
  z-index:1;
  max-width:560px;
  width:100%;
  text-align:center;
}
:where(body.page-en_remodelacion) .logo-glow {
  position:relative;
  width:140px;
  height:140px;
  margin:0 auto 8px;
  display:flex;
  align-items:center;
  justify-content:center;
}
:where(body.page-en_remodelacion) .logo-glow::before {
  content:"";
  position:absolute;
  inset:-30px;
  background:radial-gradient(circle, rgba(217,184,107,0.35) 0%, rgba(217,184,107,0) 70%);
  border-radius:50%;
  animation:pulse 3.5s ease-in-out infinite;
}
:where(body.page-en_remodelacion) .logo-glow img {
  position:relative;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,0.4));
}
@keyframes pulse {  0%, 100% { opacity: 0.5; transform: scale(0.94); } 50% { opacity: 1; transform: scale(1.04); }  }
:where(body.page-en_remodelacion) .eyebrow {
  font-size:13px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin:18px 0 14px;
}
:where(body.page-en_remodelacion) h1 {
  font-family:'Lora', serif;
  font-style:italic;
  font-weight:500;
  font-size:clamp(28px, 5vw, 40px);
  line-height:1.3;
  margin:0 0 18px;
  color:var(--cream);
}
:where(body.page-en_remodelacion) p.lead {
  font-size:16.5px;
  line-height:1.7;
  color:rgba(251,246,233,0.85);
  max-width:46ch;
  margin:0 auto 34px;
}
:where(body.page-en_remodelacion) .divider {
  display:flex;
  align-items:center;
  gap:14px;
  justify-content:center;
  margin:0 0 30px;
}
:where(body.page-en_remodelacion) .divider span {
  height:1px;
  width:56px;
  background:rgba(217,184,107,0.4);
}
:where(body.page-en_remodelacion) .divider .dot {
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--gold);
}
:where(body.page-en_remodelacion) .contact-note {
  font-size:13.5px;
  color:rgba(251,246,233,0.7);
  line-height:1.7;
}
:where(body.page-en_remodelacion) .contact-note a {
  color:var(--gold);
  text-decoration:none;
  font-weight:600;
  border-bottom:1px solid rgba(217,184,107,0.4);
}
:where(body.page-en_remodelacion) .contact-note a:hover {
  border-bottom-color:var(--gold);
}
:where(body.page-en_remodelacion) .brand-name {
  font-family:'Lora', serif;
  font-size:15px;
  color:rgba(251,246,233,0.55);
  margin-top:44px;
  letter-spacing:0.03em;
}
@media (prefers-reduced-motion: reduce) {
  :where(body.page-en_remodelacion) .logo-glow::before {
    animation:none;
  }
}

/* =====================================================================
   Capa zen: limpio, minimalista, sereno
   Papel cálido, tinta suave, un solo acento musgo. Sin sombras ni
   movimientos bruscos; las secciones se separan con aire y líneas finas.
   Va al final para imponerse a las reglas anteriores.
   ===================================================================== */

/* ----- Tipografía y ritmo ----- */
body.tpl-home,
body.tpl-public {
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1, h2, h3, .serif {
  font-weight:400;
  letter-spacing:-0.005em;
  line-height:1.3;
}
:where(body.tpl-home, body.tpl-public) .container {
  max-width:1080px;
}
.section,
:where(body.tpl-public) .section {
  padding:96px 0;
}
.section + .section {
  border-top:1px solid var(--border);
}
.section.alt {
  background:transparent;
}
/* Portada: franjas muy suaves que alternan con el blanco */
body.page-index .section + .section {
  border-top:none;
}
body.page-index #blog {
  background:#F3F5F8;
}
body.page-index #repositorio {
  background:#EAF0F7;
}
.section h2 {
  font-size:30px;
}
.eyebrow,
.article-tag,
.filter-label,
.info-row .label,
.resource-format-label,
.blog-card .tag {
  font-size:11.5px;
  font-weight:500;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--green-accent);
}
.filter-label,
.info-row .label {
  color:var(--text-muted);
}
.body-text,
.conference p.body-text,
.escuela-banner p.body-text,
.mision-banner p.body-text {
  margin-top:14px;
  margin-bottom:28px;
}

/* ----- Botones y enlaces: cambian de tono, no de lugar ----- */
:where(body.tpl-home, body.tpl-public) .btn {
  font-weight:500;
  font-size:14px;
  letter-spacing:0.02em;
  padding:14px 28px;
  border-width:1px;
  transition:background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.btn:hover,
:where(body.tpl-home, body.tpl-public) .btn:hover {
  transform:none;
}
:where(body.tpl-home, body.tpl-public) .btn:focus-visible {
  outline:2px solid var(--green-accent);
  outline-offset:3px;
}
:where(body.tpl-home, body.tpl-public) .btn.btn-sm {
  padding:9px 18px;
  font-size:13px;
}
:where(body.tpl-home, body.tpl-public, body.tpl-admin) .btn-primary {
  background:var(--green-dark);
}
:where(body.tpl-home, body.tpl-public, body.tpl-admin) .btn-primary:hover {
  background:var(--green-dark-hover);
}
.btn-outline-dark:hover,
.btn-outline:hover {
  background:transparent;
  border-color:var(--text);
}
.btn-outline-light {
  border-color:rgba(255,255,255,0.55);
}
.btn-outline-light:hover {
  background:transparent;
  border-color:var(--white);
}
.link-arrow {
  font-weight:500;
  font-size:14px;
  transition:color 0.3s ease;
}
.link-arrow svg {
  transition:transform 0.4s ease;
}

/* ----- Encabezado ----- */
.site-header .container {
  padding-top:18px;
  padding-bottom:18px;
}
:where(body.tpl-home, body.tpl-public) .brand img {
  height:36px;
}
:where(body.tpl-home, body.tpl-public) .brand span {
  font-size:17px;
}
.main-nav {
  gap:36px;
}
.main-nav a {
  font-size:14px;
  font-weight:400;
  color:var(--text-muted);
  transition:color 0.3s ease;
}
.main-nav a.is-active,
.main-nav a:hover {
  color:var(--text);
}
.site-header .btn,
:where(body.tpl-home, body.tpl-public) .site-header .btn {
  background:transparent;
  color:var(--text);
  border-color:var(--border);
  padding:9px 18px;
  font-size:13px;
}
.site-header .btn:hover,
:where(body.tpl-home, body.tpl-public) .site-header .btn:hover {
  background:transparent;
  border-color:var(--text);
}
:where(body.tpl-public) .breadcrumb,
.breadcrumb {
  font-size:12.5px;
  padding-top:28px;
}

/* ----- Portada ----- */
:where(body.page-index) .hero {
  min-height:78vh;
  padding:96px 0;
  background:#1F2933;
}
:where(body.page-index) .hero::before {
  background:linear-gradient(90deg, rgba(20,30,42,0.66) 0%, rgba(20,30,42,0.46) 55%, rgba(20,30,42,0.32) 100%);
}
:where(body.page-index) .hero::after {
  display:none;
}
.hero > .container {
  width:100%;
}
.hero-slide {
  transition:opacity 2.4s ease;
}
.hero h1 {
  font-style:normal;
  font-size:clamp(32px, 4.4vw, 50px);
  line-height:1.25;
  color:var(--bg-page);
  margin-bottom:24px;
}
.hero p {
  color:rgba(255,255,255,0.88);
  font-size:17px;
  margin-bottom:40px;
}
.hero-buttons .btn-primary {
  background:var(--bg-page);
  color:var(--text);
}
.hero-buttons .btn-primary:hover {
  background:var(--bg-alt);
}

/* ----- Títulos de página ----- */
.page-hero,
.form-hero {
  padding:72px 32px 16px;
}
.form-hero {
  max-width:1080px;
}
.form-hero p {
  max-width:60ch;
}
.page-hero h1,
.area-hero h1,
.form-hero h1,
.perfil-title-row h1,
.article-title,
.content-wrap h1 {
  font-size:clamp(30px, 4vw, 40px);
  line-height:1.25;
}
.area-hero {
  padding:72px 0 16px;
}
.perfil-header {
  padding:56px 32px 0;
}
.content-wrap .subtitle {
  font-size:17px;
  margin-bottom:48px;
}
.content-wrap,
.article-wrap {
  padding-top:64px;
}

/* ----- Lectura ----- */
.article-body,
.content-body {
  font-size:17px;
  line-height:1.9;
}
.article-body p,
.content-body p {
  margin-bottom:26px;
}
.article-body h2,
.content-body h2 {
  font-size:24px;
  margin:56px 0 18px;
}
.article-body h3,
.content-body h3 {
  font-size:19px;
  margin:40px 0 14px;
}
.article-body blockquote,
.content-body blockquote {
  border-left:1px solid var(--green-accent);
  padding:2px 0 2px 24px;
  margin:36px 0;
  font-family:'Lora', serif;
}

/* ----- Tarjetas: sin caja, una línea fina arriba ----- */
:where(body.tpl-home, body.page-blog) .blog-card {
  background:transparent;
  border:none;
  border-radius:0;
  overflow:visible;
}
:where(body.tpl-home, body.page-blog) .blog-card:hover {
  transform:none;
  box-shadow:none;
}
:where(body.tpl-home, body.page-blog) .blog-card .thumb {
  aspect-ratio:3/2;
  border-radius:var(--radius-md);
}
:where(body.tpl-home) .blog-card .thumb-a { background:linear-gradient(140deg,#E3E9F0,#C9D3DE 70%); }
:where(body.tpl-home) .blog-card .thumb-b { background:linear-gradient(140deg,#E3E7EC,#9AA8B8 75%); }
:where(body.tpl-home) .blog-card .thumb-c { background:linear-gradient(140deg,#DCE8F5,#7F9FC4 80%); }
:where(body.tpl-home, body.page-blog) .blog-card .card-body {
  padding:20px 0 0;
}
:where(body.tpl-home, body.page-blog) .blog-card h3 {
  font-size:19px;
  margin:8px 0 10px;
  transition:color 0.3s ease;
}
:where(body.tpl-home, body.page-blog) .blog-card:hover h3 {
  color:var(--green-accent);
}
.card-grid,
.blog-grid {
  gap:48px 40px;
}
.nivel-card,
.resource-card,
.escuela-card,
.conf-card {
  background:transparent;
  border:none;
  border-top:1px solid var(--border);
  border-radius:0;
  padding:28px 0 8px;
}
.niveles-grid,
.resource-grid,
.escuelas-grid,
.conf-grid {
  gap:40px;
}
.resource-card:hover,
.escuela-card:hover {
  box-shadow:none;
  transform:none;
  border-top-color:var(--text);
}
.resource-card,
.escuela-card {
  transition:border-color 0.3s ease;
}
.conf-card .thumb,
.webinar-thumb,
.video-frame {
  background:var(--stone);
}
.conf-card .thumb {
  color:var(--green-dark);
}
.gallery .gallery-photo {
  background-image:linear-gradient(140deg,#F4F6F8,#A9BBD0 80%);
  background-color:var(--stone);
}
.play-btn {
  box-shadow:none;
}
:where(body.tpl-home, body.page-conferencias) .video-frame .play-btn {
  width:56px;
  height:56px;
  box-shadow:none;
}
.play-btn svg {
  fill:var(--green-dark);
}
.video-frame .video-thumb::after {
  background:rgba(31,41,51,0.16);
}
.video-frame .video-caption {
  background:var(--bg-page);
  color:var(--text);
  font-size:12px;
  font-weight:400;
  border-radius:var(--radius-sm);
  padding:3px 10px;
}
.conf-meta {
  gap:20px;
  font-size:13px;
}
.format-icon {
  background:transparent;
  width:auto;
  height:auto;
  color:var(--green-accent);
}
.webinar-card {
  border:none;
  background:transparent;
}
.webinar-body {
  padding:18px 0 8px;
}

/* ----- Etiquetas: solo texto ----- */
.badge-pill,
.badge-solid,
:where(body.tpl-home, body.tpl-public) .badge-solid,
.badge-gratuito,
.badge-pending,
.confirm-status,
.level-tag {
  background:transparent;
  padding:0;
  border-radius:0;
  font-size:11.5px;
  font-weight:500;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.badge-pill,
.badge-solid,
:where(body.tpl-home, body.tpl-public) .badge-solid,
.badge-gratuito {
  color:var(--green-accent);
}
.level-introductorio,
.level-intermedio,
.level-avanzado {
  background:transparent;
  color:var(--text-muted);
}

/* ----- Bloques destacados: se abren al papel ----- */
.escuela-banner,
.mision-banner,
.featured-conf {
  background:transparent;
  border-radius:0;
  padding:0;
}
.escuela-banner.two-col {
  gap:72px;
}
.mision-banner h2 {
  max-width:none;
}
.mision-banner {
  max-width:640px;
  margin:0 auto;
  text-align:center;
}
.mision-banner p.body-text {
  margin-left:auto;
  margin-right:auto;
}
.article-cta,
.content-cta {
  background:transparent;
  border-radius:0;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:40px 0;
  max-width:696px;
}
@media (max-width: 760px) {
  .article-cta,
  .content-cta {
    margin-left:32px;
    margin-right:32px;
  }
}
@media (max-width: 700px) {
  .article-cta,
  .content-cta {
    margin-left:20px;
    margin-right:20px;
  }
}
.info-card,
.sidebar-card,
.contact-info {
  background:transparent;
  border:1px solid var(--border);
  padding:28px;
}
.gate-card,
.note-box,
.pending-note,
.privacy-note {
  background:transparent;
  border:1px solid var(--border);
}
:where(body.page-blog, body.page-conferencias, body.page-escuelas_buscador, body.page-repositorio) .empty-state {
  background:transparent;
  border:1px solid var(--border);
}
.confirm-icon {
  background:transparent;
  border:1px solid var(--border);
}

/* ----- Filtros ----- */
:where(body.page-blog, body.page-repositorio) .chip-row {
  gap:6px 24px;
}
:where(body.page-blog, body.page-repositorio) .chip {
  background:transparent;
  border:none;
  border-bottom:1px solid transparent;
  border-radius:0;
  padding:6px 0;
  font-size:14px;
  font-weight:400;
  color:var(--text-muted);
  transition:color 0.3s ease, border-color 0.3s ease;
}
:where(body.page-blog, body.page-repositorio) .chip:hover {
  color:var(--text);
  border-color:var(--border);
}
.chip.is-active,
:where(body.page-blog, body.page-repositorio) .chip.is-active {
  background:transparent;
  color:var(--text);
  border-color:var(--text);
}
.view-toggle {
  border:none;
  gap:24px;
  overflow:visible;
}
.view-toggle button {
  background:transparent;
  font-weight:400;
  padding:6px 0;
  border-bottom:1px solid transparent;
}
.view-toggle button.is-active {
  background:transparent;
  color:var(--text);
  border-bottom-color:var(--text);
}

/* ----- Formularios ----- */
.form-card {
  background:transparent;
}
.form-section-num {
  background:transparent;
  border:1px solid var(--border);
  font-weight:500;
}
.sidebar-step .dot {
  background:transparent;
  border:1px solid var(--border);
  font-weight:500;
}
:where(body.page-admin_login, body.page-misionero_login) .login-card {
  background:transparent;
  border:none;
}
.search-form input:focus-visible,
:where(body.tpl-home, body.tpl-public, body.tpl-admin) input:focus-visible,
:where(body.tpl-home, body.tpl-public, body.tpl-admin) select:focus-visible,
:where(body.tpl-home, body.tpl-public, body.tpl-admin) textarea:focus-visible {
  outline:1px solid var(--green-accent);
  outline-offset:0;
}

/* ----- Mapas: tonos apagados ----- */
.leaflet-tile-pane {
  filter:saturate(0.35) brightness(1.03);
}
.map-box,
.map-box-lg,
.zone-map {
  background:var(--bg-alt);
}
.map-box .leaflet-container svg {
  width:auto;
  height:auto;
}
.map-note {
  z-index:500;
  left:12px;
  right:auto;
  bottom:28px;
  box-shadow:none;
  border-radius:var(--radius-sm);
  font-size:12px;
  font-weight:400;
  background:var(--bg-page);
}
.map-box-lg .pin:hover circle,
.map-box-lg .pin.is-active circle {
  fill:var(--green-dark);
}

/* ----- Ventanas ----- */
:where(body.page-escuela_perfil, body.page-repositorio) .modal-overlay,
.editor-overlay {
  background:rgba(31,41,51,0.35);
}
.evidencia-row img:hover,
.evidencia-row video:hover {
  transform:none;
  box-shadow:none;
}
div.swal2-popup {
  font-family:'Work Sans', sans-serif;
  border-radius:var(--radius-lg);
}
div.swal2-popup .swal2-title {
  font-family:'Lora', serif;
  font-weight:400;
}

/* ----- Pie de página: claro, sin peso ----- */
:where(body.tpl-home, body.tpl-public) footer.site-footer {
  border-top:1px solid var(--border);
  padding-top:72px;
}
:where(body.tpl-public) footer.site-footer {
  margin-top:96px;
}
:where(body.tpl-home, body.tpl-public) .footer-grid {
  gap:40px;
  padding-bottom:56px;
}
:where(body.tpl-home, body.tpl-public) .footer-grid > div {
  min-width:0;
  overflow-wrap:anywhere;
}
:where(body.tpl-home, body.tpl-public) .footer-grid h4 {
  font-family:'Work Sans', sans-serif;
  font-style:normal;
  font-size:11.5px;
  font-weight:500;
  letter-spacing:0.16em;
  text-transform:uppercase;
  margin:0 0 18px;
}
:where(body.tpl-home, body.tpl-public) .footer-grid a,
:where(body.tpl-home, body.tpl-public) .footer-grid p {
  font-size:14px;
  transition:color 0.3s ease;
}
:where(body.tpl-home, body.tpl-public) .footer-grid a:hover {
  color:var(--text);
}
:where(body.tpl-home, body.tpl-public) .footer-bottom {
  border-top:1px solid var(--border);
  padding:24px 0 32px;
  font-size:12.5px;
  color:var(--text-muted);
}

/* ----- Aparición suave ----- */
.reveal {
  transform:translateY(8px);
  transition:opacity 1s ease, transform 1s ease;
}

/* ----- Página en remodelación ----- */
body.page-en_remodelacion {
  background:var(--bg-page);
  color:var(--text);
}
body.page-en_remodelacion::after,
body.page-en_remodelacion .logo-glow::before {
  display:none;
}
body.page-en_remodelacion .logo-glow img {
  filter:none;
}
body.page-en_remodelacion .logo-glow {
  width:96px;
  height:96px;
}
body.page-en_remodelacion .eyebrow {
  font-size:11.5px;
  font-weight:500;
  letter-spacing:0.16em;
  color:var(--green-accent);
}
body.page-en_remodelacion h1 {
  font-style:normal;
  font-weight:400;
  color:var(--text);
}
body.page-en_remodelacion p.lead,
body.page-en_remodelacion .contact-note,
body.page-en_remodelacion .brand-name {
  color:var(--text-muted);
}
body.page-en_remodelacion .divider span {
  background:var(--border);
}
body.page-en_remodelacion .divider .dot {
  background:var(--green-accent);
}
body.page-en_remodelacion .contact-note a {
  color:var(--green-accent);
  font-weight:500;
  border-bottom-color:var(--border);
}
body.page-en_remodelacion .contact-note a:hover {
  border-bottom-color:var(--green-accent);
}

/* ----- Pantallas pequeñas ----- */
@media (max-width: 900px) {
  .escuela-banner.two-col {
    gap:48px;
  }
  .escuela-banner,
  .mision-banner {
    padding:0;
  }
}
@media (max-width: 720px) {
  .section,
  :where(body.tpl-public) .section {
    padding:64px 0;
  }
  .section h2 {
    font-size:26px;
  }
  .page-hero,
  .form-hero {
    padding:48px 20px 16px;
  }
  .area-hero {
    padding-top:48px;
  }
  .perfil-header {
    padding:40px 20px 0;
  }
  .content-wrap,
  .article-wrap {
    padding-top:48px;
  }
  :where(body.page-index) .hero {
    min-height:68vh;
    padding:64px 0;
  }
  .site-header .btn,
  :where(body.tpl-home, body.tpl-public) .site-header .btn {
    display:none;
  }
  .article-cta,
  .content-cta {
    padding:32px 0;
  }
  .form-section,
  .form-submit-row {
    padding-left:20px;
    padding-right:20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .reveal {
    transform:none;
    transition:none;
  }
  .hero-slide {
    transition:none;
  }
}

/* ----- Redes sociales en encabezado y pie ----- */
.header-social {
  display:flex;
  align-items:center;
  gap:2px;
  margin-left:auto;
}
.header-social a,
.social-icons a {
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--text-muted);
  transition:color 0.3s ease;
}
.header-social a {
  width:34px;
  height:34px;
}
.header-social svg {
  width:18px;
  height:18px;
}
.header-social a:hover,
.header-social a:focus-visible,
:where(body.tpl-home, body.tpl-public) .footer-grid .social-icons a:hover {
  color:var(--accent, var(--green-accent));
}
.header-social a:focus-visible,
.social-icons a:focus-visible {
  outline:2px solid var(--green-accent);
  outline-offset:2px;
}
.social-icons {
  gap:14px;
  margin-top:14px;
}
:where(body.tpl-home, body.tpl-public) .footer-grid .social-icons a {
  display:flex;
  margin:0;
}
.social-icons svg {
  width:20px;
  height:20px;
}
.site-header .main-nav {
  margin-left:auto;
}
@media (max-width: 1000px) {
  .main-nav {
    gap:24px;
  }
}
@media (max-width: 900px) and (min-width: 721px) {
  .site-header .btn,
  :where(body.tpl-home, body.tpl-public) .site-header .btn {
    display:none;
  }
}
@media (max-width: 720px) {
  .site-header .container {
    gap:8px;
  }
  .site-header .main-nav {
    margin-left:0;
  }
}
@media (max-width: 380px) {
  :where(body.tpl-home, body.tpl-public) .brand span {
    font-size:15px;
  }
  .header-social a {
    width:30px;
  }
}