:root{--navy:#10263f;--green:#183c35;--cream:#f5efe4;--cream-2:#fbf8f2;--gold:#c59b53;--gold-2:#e6d2a3;--text:#1f2933;--muted:#667085;--border:#e7dfd2;--white:#fff;--shadow:0 18px 45px rgba(16,38,63,.12);--radius-lg:24px;--radius-md:16px;--container:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--cream-2);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}body.nav-open{overflow:hidden}h1,h2,h3{margin:0 0 16px;color:var(--navy);line-height:1.1;font-family:Georgia,"Times New Roman",serif;font-weight:700}h1{max-width:850px;font-size:clamp(2.6rem,7vw,5.8rem);letter-spacing:-.05em;color:var(--white)}h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.04em}h3{font-size:1.35rem}p{margin:0 0 18px}a{color:inherit;text-decoration:none}.container{width:min(var(--container),calc(100% - 40px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:100;background:rgba(251,248,242,.92);border-bottom:1px solid rgba(16,38,63,.08);backdrop-filter:blur(14px)}.nav-wrapper{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;align-items:center;gap:12px;color:var(--navy);min-width:max-content}.brand-mark{width:42px;height:42px;display:grid;place-items:center;color:var(--cream-2);background:linear-gradient(135deg,var(--navy),var(--green));border-radius:50%}.brand strong,.brand small{display:block}.brand strong{font-size:1.05rem;letter-spacing:.08em}.brand small{margin-top:-4px;color:var(--muted);font-size:.78rem}.main-nav{display:flex;align-items:center;gap:18px;color:var(--navy);font-size:.95rem;font-weight:650}.main-nav a:not(.nav-cta){opacity:.82}.main-nav a:hover{opacity:1;color:var(--gold)}.nav-cta{padding:10px 18px;color:var(--white);background:var(--navy);border-radius:999px}.menu-toggle{display:none;width:44px;height:44px;padding:0;background:transparent;border:0;cursor:pointer}.menu-toggle span{display:block;width:26px;height:2px;margin:6px auto;background:var(--navy)}.hero{position:relative;min-height:calc(100vh - 78px);display:flex;align-items:center;overflow:hidden;background:linear-gradient(rgba(16,38,63,.64),rgba(16,38,63,.68)),url("assets/hero-templo-ibsc-pro.jpg") center/cover}.hero:after{content:"";position:absolute;inset:auto 0 0;height:160px;background:linear-gradient(transparent,var(--cream-2))}.hero-content{position:relative;z-index:1;padding:88px 0 128px}.eyebrow,.section-kicker{margin-bottom:14px;color:var(--gold-2);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem}.section-kicker{color:var(--gold)}.hero-lead{max-width:710px;color:rgba(255,255,255,.88);font-size:clamp(1.18rem,2vw,1.55rem)}.hero-times{max-width:960px;display:flex;flex-wrap:wrap;gap:12px;margin:34px 0}.hero-times span{display:inline-flex;gap:8px;padding:12px 16px;color:var(--white);background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);border-radius:999px;backdrop-filter:blur(10px)}.hero-actions,.card-actions,.center-actions,.ebdv-actions{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:12px 20px;border-radius:999px;border:1px solid transparent;font-weight:800;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn-primary{color:var(--white);background:var(--navy)}.hero .btn-primary{color:var(--navy);background:var(--gold-2)}.btn-secondary{color:var(--white);border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.08)}.btn-outline{color:var(--navy);border-color:var(--navy);background:transparent}.btn-full{width:100%}.section{padding:96px 0}.section-light{background:var(--cream)}.section-accent{background:linear-gradient(135deg,var(--cream),#efe1c3)}.section-heading{max-width:780px;margin:0 auto 46px;text-align:center}.section-heading p{color:var(--muted);font-size:1.06rem}.split{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:58px}.split.reverse{grid-template-columns:.95fr 1.05fr}.pastoral-note{padding-left:18px;border-left:4px solid var(--gold);color:var(--navy);font-weight:650}.info-card,.bank-card,.belief-box,.schedule-card,.ministry-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.info-card,.bank-card,.belief-box{padding:34px}.info-card dl{display:grid;gap:20px;margin:0 0 28px}.info-card dt{color:var(--gold);font-weight:850;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.info-card dd{margin:4px 0 0}.schedule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.schedule-card{padding:26px}.schedule-card.featured{grid-column:span 2;background:var(--navy)}.schedule-card.featured h3,.schedule-card.featured li{color:var(--white)}.schedule-card ul{list-style:none;padding:0;margin:0}.schedule-card li{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid rgba(102,112,133,.18)}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.ministry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.ministry-card{padding:28px}.card-icon{display:inline-flex;margin-bottom:16px;color:var(--gold);font-weight:900;letter-spacing:.12em}.belief-box{display:grid;gap:12px;background:var(--navy)}.belief-box h3{color:var(--gold-2);margin-bottom:2px}.belief-box p{color:rgba(255,255,255,.82);margin-bottom:12px}blockquote{margin:28px 0 0;padding:24px;color:var(--navy);background:rgba(255,255,255,.55);border-left:5px solid var(--gold);border-radius:0 var(--radius-md) var(--radius-md) 0;font-family:Georgia,"Times New Roman",serif;font-size:1.12rem}blockquote cite{display:block;margin-top:10px;color:var(--muted);font-family:Inter,system-ui,sans-serif;font-size:.92rem;font-style:normal}.bank-card small{display:block;margin-top:14px;color:var(--muted)}.site-footer{padding:72px 0 24px;color:rgba(255,255,255,.78);background:var(--navy)}.site-footer h2,.site-footer h3{color:var(--white)}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:34px}.footer-grid a{display:block;margin-bottom:10px;color:rgba(255,255,255,.78)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:44px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14)}

/* EBDV 2026 */
.ebdv-section{position:relative;overflow:hidden;background:radial-gradient(circle at 12% 20%,rgba(230,210,163,.55),transparent 26%),radial-gradient(circle at 88% 12%,rgba(197,155,83,.35),transparent 24%),linear-gradient(135deg,#10263f 0%,#183c35 62%,#7b5b24 100%);color:rgba(255,255,255,.86)}.ebdv-section:before{content:"";position:absolute;inset:0;background-image:linear-gradient(120deg,rgba(255,255,255,.08) 0 1px,transparent 1px),linear-gradient(30deg,rgba(255,255,255,.06) 0 1px,transparent 1px);background-size:72px 72px;opacity:.38}.ebdv-wrapper{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:54px}.ebdv-section h2,.ebdv-section h3{color:var(--white)}.ebdv-section h2{font-size:clamp(2.4rem,5vw,4.5rem)}.ebdv-kicker{color:var(--gold-2)}.ebdv-lead{max-width:720px;font-size:1.16rem;color:rgba(255,255,255,.86)}.ebdv-date-card{width:min(100%,520px);display:grid;gap:4px;margin:28px 0;padding:24px;color:var(--navy);background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.38);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.ebdv-date-card .date-label{color:var(--gold);font-size:.76rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.ebdv-date-card strong{font-size:clamp(1.7rem,3vw,2.5rem);font-family:Georgia,"Times New Roman",serif;line-height:1.1}.ebdv-actions .btn-primary{color:var(--navy);background:var(--gold-2)}.ebdv-actions .btn-outline{color:var(--white);border-color:rgba(255,255,255,.55)}.ebdv-panel{position:relative;padding:34px;color:var(--navy);background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.45);border-radius:32px;box-shadow:0 28px 70px rgba(0,0,0,.22)}.ebdv-panel:before{content:"";position:absolute;width:132px;height:132px;right:-24px;top:-24px;background:radial-gradient(circle,var(--gold-2),rgba(230,210,163,0) 70%);border-radius:50%}.ebdv-badge{display:inline-flex;margin-bottom:20px;padding:8px 14px;color:var(--navy);background:var(--gold-2);border-radius:999px;font-weight:900;letter-spacing:.08em;font-size:.76rem}.ebdv-panel h3{color:var(--navy)}.ebdv-list{display:grid;gap:12px;padding:0;margin:24px 0;list-style:none}.ebdv-list li{position:relative;padding-left:28px;color:var(--text)}.ebdv-list li:before{content:"✦";position:absolute;left:0;top:0;color:var(--gold)}.ebdv-mini-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.ebdv-mini-info div{padding:16px;background:var(--cream);border:1px solid var(--border);border-radius:18px}.ebdv-mini-info span,.ebdv-mini-info strong{display:block}.ebdv-mini-info span{color:var(--muted);font-size:.82rem;font-weight:800}.ebdv-mini-info strong{margin-top:3px;color:var(--navy)}

@media(max-width:980px){.menu-toggle{display:block;z-index:102}.main-nav{position:fixed;inset:78px 0 auto;display:none;flex-direction:column;align-items:stretch;gap:0;padding:18px 20px 26px;background:var(--cream-2);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.main-nav a{padding:14px 0}.main-nav.is-open{display:flex}.nav-cta{text-align:center;margin-top:10px}.split,.split.reverse,.ebdv-wrapper{grid-template-columns:1fr}.schedule-grid,.ministry-grid,.cards-3,.footer-grid{grid-template-columns:1fr 1fr}.schedule-card.featured{grid-column:span 2}}@media(max-width:640px){.container{width:min(100% - 28px,var(--container))}.section{padding:70px 0}.hero{min-height:760px}.hero-content{padding:70px 0 100px}.hero-times span{width:100%;border-radius:16px}.btn{width:100%}.schedule-grid,.ministry-grid,.cards-3,.footer-grid,.ebdv-mini-info{grid-template-columns:1fr}.schedule-card.featured{grid-column:auto}.footer-bottom{flex-direction:column}}


/* Página: Qué creemos */
.belief-hero {
  position: relative;
  overflow: hidden;
  padding: 118px 0 92px;
  background:
    radial-gradient(circle at 12% 20%, rgba(230, 210, 163, .34), transparent 30%),
    linear-gradient(135deg, #10263f 0%, #183c35 72%);
  color: rgba(255,255,255,.88);
}

.belief-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 90px;
  background: linear-gradient(transparent, var(--cream-2));
}

.belief-hero h1 {
  color: var(--white);
}

.belief-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: 54px;
}

.belief-summary-card {
  padding: 34px;
  color: var(--navy);
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 32px;
  box-shadow: 0 28px 70px rgba(0,0,0,.20);
}

.belief-summary-card h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.summary-label {
  display: inline-flex;
  margin-bottom: 18px;
  padding: 8px 14px;
  color: var(--navy);
  background: var(--gold-2);
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .74rem;
}

.belief-summary-card ul {
  display: grid;
  gap: 12px;
  padding: 0;
  margin: 22px 0 0;
  list-style: none;
}

.belief-summary-card li {
  position: relative;
  padding-left: 28px;
}

.belief-summary-card li::before {
  content: "✦";
  position: absolute;
  left: 0;
  color: var(--gold);
}

.belief-tabs-section {
  padding: 70px 0 100px;
}

.belief-page-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  align-items: start;
  gap: 34px;
}

.belief-sidebar {
  position: sticky;
  top: 98px;
  padding: 18px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 24px;
  box-shadow: var(--shadow);
}

.belief-sidebar nav {
  display: grid;
  gap: 6px;
}

.belief-sidebar a {
  padding: 11px 14px;
  color: var(--navy);
  border-radius: 14px;
  font-weight: 760;
}

.belief-sidebar a:hover {
  color: var(--navy);
  background: var(--cream);
}

.belief-content {
  display: grid;
  gap: 26px;
}

.belief-section-card {
  padding: clamp(28px, 5vw, 48px);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 30px;
  box-shadow: var(--shadow);
}

.doctrine-highlights,
.solas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 30px;
}

.doctrine-highlights article,
.solas-grid article {
  padding: 24px;
  background: var(--cream-2);
  border: 1px solid var(--border);
  border-radius: 22px;
}

.doctrine-highlights h3,
.solas-grid h3 {
  margin-bottom: 8px;
}

.solas-grid article:last-child {
  grid-column: 2 / span 1;
}

.solas-grid span {
  display: inline-flex;
  margin-bottom: 12px;
  color: var(--gold);
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .75rem;
}

.scripture-feature {
  margin-top: 28px;
  padding: 28px;
  color: rgba(255,255,255,.88);
  background: linear-gradient(135deg, var(--navy), var(--green));
  border-radius: 26px;
}

.scripture-feature span {
  color: var(--gold-2);
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: .75rem;
}

.scripture-feature h3 {
  color: var(--white);
  margin-top: 10px;
}

.chapters-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 26px;
}

.chapter-pill {
  width: 100%;
  padding: 13px 16px;
  color: var(--navy);
  text-align: left;
  background: var(--cream-2);
  border: 1px solid var(--border);
  border-radius: 16px;
  font: inherit;
  font-weight: 740;
}

.chapter-pill:hover {
  background: var(--cream);
  border-color: var(--gold-2);
}

.grace-list {
  display: grid;
  gap: 16px;
  margin-top: 28px;
}

.grace-list article {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 18px;
  padding: 24px;
  background: var(--cream-2);
  border: 1px solid var(--border);
  border-radius: 22px;
}

.grace-list strong {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  color: var(--navy);
  background: var(--gold-2);
  border-radius: 50%;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
}

.courses-card {
  background: linear-gradient(135deg, var(--cream), #efe1c3);
}

.course-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

@media (max-width: 980px) {
  .belief-hero-grid,
  .belief-page-layout,
  .doctrine-highlights,
  .solas-grid {
    grid-template-columns: 1fr;
  }

  .belief-sidebar {
    position: static;
  }

  .solas-grid article:last-child {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .belief-hero {
    padding: 82px 0 70px;
  }

  .chapters-grid {
    grid-template-columns: 1fr;
  }

  .grace-list article {
    grid-template-columns: 1fr;
  }
}


/* Assets reales IBSC */
.brand-logo {
  width: 54px;
  height: 54px;
  object-fit: contain;
  flex: 0 0 auto;
}

.hero {
  background:
    linear-gradient(90deg, rgba(8, 23, 42, .88) 0%, rgba(16, 38, 63, .72) 43%, rgba(16, 38, 63, .38) 100%),
    url("assets/hero-templo-ibsc-pro.jpg") center/cover;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 30%, rgba(230, 210, 163, .18), transparent 28%),
    linear-gradient(0deg, rgba(16, 38, 63, .12), rgba(16, 38, 63, .12));
  pointer-events: none;
}

.hero-seal {
  width: 108px;
  height: 108px;
  object-fit: contain;
  margin-bottom: 22px;
  padding: 8px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  box-shadow: 0 18px 45px rgba(0,0,0,.18);
}

.hero-content {
  max-width: 980px;
}

@media (max-width: 640px) {
  .brand-logo {
    width: 46px;
    height: 46px;
  }

  .hero {
    background:
      linear-gradient(rgba(8, 23, 42, .82), rgba(8, 23, 42, .72)),
      url("assets/hero-templo-ibsc-pro.jpg") center/cover;
  }

  .hero-seal {
    width: 86px;
    height: 86px;
  }
}


/* V5 Mobile-first refinements */
:root{--blue:#0b2d4d;--cream:#f7f1e8;--cream-2:#fcfaf6;--gold:#c9a45c;--gold-2:#ead7a8;}
.hero{background:linear-gradient(90deg,rgba(5,23,40,.86) 0%,rgba(11,45,77,.68) 45%,rgba(11,45,77,.30) 100%),url("assets/hero-templo-ibsc-pro.jpg") center/cover!important;}
.quick-actions{position:relative;z-index:5;margin-top:-42px;}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.quick-grid a{padding:20px;background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);}
.quick-grid span{display:block;margin-bottom:4px;color:var(--gold);font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;}
.quick-grid strong{display:block;color:var(--blue);line-height:1.2;}
.mobile-menu-note{display:none;}
.two-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.action-card{padding:32px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);}
.gold-card{background:linear-gradient(135deg,var(--cream),#efe1c3);}

.compact-section{padding:70px 0 92px;}
.belief-hero,.belief-hero-friendly{background:radial-gradient(circle at 12% 20%,rgba(234,215,168,.28),transparent 30%),linear-gradient(135deg,var(--navy, #10263f) 0%,var(--green) 76%)!important;}
.belief-sidebar nav{gap:8px;}
.doctrine-accordion summary{cursor:pointer;padding:18px 20px;color:var(--navy,#10263f);background:var(--cream);border:1px solid var(--border);border-radius:18px;font-weight:850;}
@media(max-width:980px){.quick-grid,.two-cards{grid-template-columns:1fr 1fr}.mobile-menu-note{display:grid;gap:4px;margin-top:18px;padding:18px;color:var(--navy,#10263f);background:var(--cream);border-radius:18px}.mobile-menu-note a{display:inline-flex;width:max-content;margin-top:8px;padding:8px 14px!important;color:#fff!important;background:var(--navy,#10263f);border-radius:999px;border:0!important}.belief-sidebar{position:static!important}.belief-sidebar nav{display:flex!important;flex-wrap:wrap}.belief-sidebar a{background:var(--cream)}}
@media(max-width:640px){body{padding-bottom:0}.site-header .brand-logo{width:46px;height:46px}.brand small{display:none}.hero{min-height:auto!important;display:block!important;background:var(--cream-2)!important}.hero::before,.hero::after{display:none!important}.hero:before{content:"";display:block!important;height:245px;background:linear-gradient(0deg,rgba(11,45,77,.10),rgba(11,45,77,.10)),url("assets/hero-templo-ibsc-pro.jpg") center/cover!important}.hero-content{width:min(100% - 28px,var(--container))!important;margin:-34px auto 0!important;padding:28px 22px 30px!important;background:#fff;border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);color:var(--text);}.hero h1{color:var(--navy,#10263f)!important;font-size:clamp(2.25rem,11vw,3.35rem)!important}.hero .eyebrow{color:var(--gold)!important}.hero-lead{color:var(--text)!important;font-size:1.08rem!important}.hero-seal{width:78px!important;height:78px!important;margin-bottom:14px!important}.hero-times{display:grid!important;gap:10px!important;margin:24px 0!important}.hero-times span{display:grid!important;gap:2px;color:var(--navy,#10263f)!important;background:var(--cream)!important;border-color:var(--border)!important;border-radius:16px!important}.hero .btn-primary{color:#fff!important;background:var(--navy,#10263f)!important}.btn{width:100%;min-height:52px}.quick-actions{margin-top:20px}.quick-grid,.two-cards,.ebdv-mini-info{grid-template-columns:1fr}.quick-grid{gap:10px}.quick-grid a{padding:16px 18px}.section{padding:66px 0}.compact-section{padding:56px 0 70px}.schedule-card li{display:grid}.chapters-grid{grid-template-columns:1fr!important}.belief-hero{padding:76px 0 60px!important}}


/* Footer social */
.footer-social p {
  margin-bottom: 14px;
}

.social-links {
  display: grid;
  gap: 10px;
}

.social-links a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  margin-bottom: 0;
  color: rgba(255,255,255,.84);
  font-weight: 760;
}

.social-links a:hover {
  color: var(--gold-2);
}

.social-links span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: var(--blue);
  background: var(--gold-2);
  border-radius: 50%;
  font-weight: 900;
  line-height: 1;
}

@media (max-width: 980px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .social-links a {
    width: 100%;
    padding: 10px 0;
  }
}


/* Ajuste V5.2: nuevo logo */
.brand-logo {
  width: 58px;
  height: 58px;
  object-fit: contain;
}

.hero-seal {
  width: 116px;
  height: 116px;
  object-fit: contain;
  padding: 10px;
}

@media (max-width: 980px) {
  .brand-logo {
    width: 50px;
    height: 50px;
  }
}

@media (max-width: 640px) {
  .brand-logo {
    width: 46px;
    height: 46px;
  }

  .hero-seal {
    width: 86px;
    height: 86px;
    padding: 7px;
  }
}


/* Ajuste V5.3: menú interactivo */
html {
  scroll-padding-top: 92px;
}

.main-nav a.is-active:not(.nav-cta) {
  color: var(--blue);
  opacity: 1;
  position: relative;
}

.main-nav a.is-active:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 3px;
  background: var(--gold);
  border-radius: 999px;
}

.hero-copy-inner {
  padding-top: 0;
}

@media (max-width: 980px) {
  .main-nav a.is-active:not(.nav-cta)::after {
    display: none;
  }

  .main-nav a.is-active:not(.nav-cta) {
    color: var(--gold);
  }
}

@media (max-width: 640px) {
  .hero-copy-inner {
    padding-top: 28px;
  }
}


/* Ajuste V5.4: Hero con imagen editorial */
.hero-photo {
  background:
    linear-gradient(90deg, rgba(5, 23, 40, .52) 0%, rgba(11, 45, 77, .26) 48%, rgba(11, 45, 77, .08) 100%),
    url("assets/hero-templo-ibsc-pro.jpg") center/cover;
}

@media (max-width: 640px) {
  .hero-photo {
    background:
      linear-gradient(0deg, rgba(11,45,77,.10), rgba(11,45,77,.02)),
      url("assets/hero-templo-ibsc-mobile.jpg") center/cover;
  }
}


/* Ajuste V5.5: sin accesos rápidos */
.quick-actions,
.quick-grid {
  display: none !important;
}


/* Ajuste V5.6: enlaces reales */
.btn-whatsapp {
  color: var(--white);
  background: #1f7a4d;
}

.btn-whatsapp:hover {
  box-shadow: 0 18px 45px rgba(31, 122, 77, .18);
}

.social-links {
  gap: 9px;
}

.social-links a {
  line-height: 1.2;
}


/* Ajuste V6: componentes reutilizables */
.nav-cta.is-active::after {
  display: none !important;
}

.nav-cta.is-active {
  color: var(--white) !important;
}


/* Ajuste V6.1: sección transmisión en vivo */
.live-section {
  background: var(--cream);
}

.live-layout {
  display: grid;
  grid-template-columns: 1.45fr .75fr;
  gap: 26px;
  align-items: stretch;
}

.live-player-card,
.live-info-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.live-player-card {
  overflow: hidden;
  padding: 14px;
}

.responsive-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--blue);
  border-radius: 18px;
}

.responsive-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.live-info-card {
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.live-actions {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}

@media (max-width: 980px) {
  .live-layout {
    grid-template-columns: 1fr;
  }

  .live-info-card {
    padding: 26px;
  }
}

@media (max-width: 640px) {
  .live-player-card {
    padding: 8px;
    border-radius: 20px;
  }

  .responsive-video {
    border-radius: 14px;
  }
}


/* Ajuste V6.2: fallback de YouTube */
.video-fallback {
  margin: 12px 4px 0;
  color: var(--muted);
  font-size: .95rem;
  text-align: center;
}

.video-fallback a {
  color: var(--blue);
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* Ajuste V6.3: menú general refinado */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(252, 250, 246, .82);
  border-bottom: 1px solid rgba(11, 45, 77, .07);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  transition:
    background .25s ease,
    box-shadow .25s ease,
    border-color .25s ease,
    transform .25s ease;
}

.site-header.is-scrolled {
  background: rgba(252, 250, 246, .96);
  border-bottom-color: rgba(11, 45, 77, .10);
  box-shadow: 0 12px 34px rgba(11, 45, 77, .10);
}

.nav-wrapper {
  min-height: 78px;
  transition: min-height .25s ease;
}

.site-header.is-scrolled .nav-wrapper {
  min-height: 68px;
}

.brand-logo {
  width: 58px;
  height: 58px;
  transition: width .25s ease, height .25s ease;
}

.site-header.is-scrolled .brand-logo {
  width: 48px;
  height: 48px;
}

.brand strong {
  font-size: 1.04rem;
}

.brand small {
  color: #667085;
  font-weight: 600;
}

.main-nav {
  gap: 8px;
  padding: 6px;
  background: rgba(255,255,255,.38);
  border: 1px solid rgba(11,45,77,.06);
  border-radius: 999px;
}

.main-nav > a:not(.nav-cta) {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 12px;
  color: #354154;
  opacity: 1;
  border-radius: 999px;
  font-size: .95rem;
  line-height: 1;
  transition:
    color .2s ease,
    background .2s ease,
    transform .2s ease;
}

.main-nav > a:not(.nav-cta):hover {
  color: var(--blue);
  background: rgba(11, 45, 77, .06);
}

.main-nav > a.is-active:not(.nav-cta) {
  color: var(--blue);
  background: rgba(201, 164, 92, .14);
}

.main-nav > a.is-active:not(.nav-cta)::after {
  left: 14px;
  right: 14px;
  bottom: 5px;
  height: 3px;
  background: var(--gold);
  border-radius: 999px;
}

/* Ofrendar queda como botón de acción, no como pestaña activa */
.nav-cta,
.nav-cta.is-active {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  color: var(--white) !important;
  background: var(--blue);
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(11, 45, 77, .16);
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}

.nav-cta:hover {
  color: var(--white) !important;
  background: #08243e;
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(11, 45, 77, .22);
}

.nav-cta::after,
.nav-cta.is-active::after {
  display: none !important;
}

@media (max-width: 1120px) {
  .main-nav {
    gap: 4px;
  }

  .main-nav > a:not(.nav-cta) {
    padding: 0 9px;
    font-size: .9rem;
  }

  .nav-cta {
    padding: 0 17px;
  }
}

@media (max-width: 980px) {
  .site-header,
  .site-header.is-scrolled {
    background: rgba(252, 250, 246, .96);
    box-shadow: 0 8px 24px rgba(11,45,77,.08);
  }

  .nav-wrapper,
  .site-header.is-scrolled .nav-wrapper {
    min-height: 72px;
  }

  .main-nav {
    inset: 72px 12px auto;
    width: auto;
    padding: 12px;
    background: rgba(252,250,246,.98);
    border: 1px solid var(--border);
    border-radius: 24px;
    box-shadow: 0 20px 50px rgba(11,45,77,.18);
  }

  .main-nav > a:not(.nav-cta) {
    min-height: 46px;
    padding: 0 14px;
    border-bottom: 0;
    border-radius: 14px;
  }

  .main-nav > a.is-active:not(.nav-cta) {
    color: var(--blue);
    background: var(--cream);
  }

  .main-nav > a.is-active:not(.nav-cta)::after {
    display: none;
  }

  .nav-cta,
  .nav-cta.is-active {
    min-height: 48px;
    margin-top: 10px;
    padding: 0 18px;
    border-bottom: 0 !important;
    box-shadow: none;
  }

  .brand-logo,
  .site-header.is-scrolled .brand-logo {
    width: 48px;
    height: 48px;
  }
}

@media (max-width: 640px) {
  .brand {
    gap: 10px;
  }

  .brand strong {
    font-size: .98rem;
  }

  .main-nav {
    inset: 72px 10px auto;
  }
}


/* Ajuste V6.4: menú flotante al hacer scroll down */
.site-header {
  left: 0;
  right: 0;
  padding: 0;
  background: transparent;
  border-bottom: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.site-header .nav-wrapper {
  margin-top: 0;
  padding: 0;
  border-radius: 0;
  transition:
    margin-top .25s ease,
    padding .25s ease,
    background .25s ease,
    box-shadow .25s ease,
    border-color .25s ease,
    border-radius .25s ease,
    min-height .25s ease;
}

.site-header.is-scrolled .nav-wrapper {
  width: min(var(--container), calc(100% - 32px));
  min-height: 66px;
  margin-top: 12px;
  margin-inline: auto;
  padding: 0 14px;
  background: rgba(252, 250, 246, .94);
  border: 1px solid rgba(11, 45, 77, .10);
  border-radius: 999px;
  box-shadow: 0 18px 45px rgba(11, 45, 77, .16);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.site-header.is-scrolled {
  background: transparent;
  border-bottom: 0;
  box-shadow: none;
}

.site-header.is-scrolled .main-nav {
  background: transparent;
  border-color: transparent;
}

.site-header.is-scrolled .brand-logo {
  width: 44px;
  height: 44px;
}

.site-header.is-scrolled .brand small {
  display: none;
}

.site-header.is-scrolled .brand strong {
  font-size: .98rem;
}

.site-header.is-scrolled .nav-cta {
  min-height: 44px;
  padding: 0 18px;
}

/* Evita que el contenido quede demasiado pegado al header flotante al navegar por anclas */
html {
  scroll-padding-top: 96px;
}

@media (max-width: 980px) {
  .site-header.is-scrolled .nav-wrapper {
    width: min(100% - 20px, var(--container));
    min-height: 64px;
    margin-top: 8px;
    padding: 0 12px;
    border-radius: 24px;
  }

  .site-header.is-scrolled .main-nav {
    inset: 74px 10px auto;
  }
}

@media (max-width: 640px) {
  .site-header.is-scrolled .nav-wrapper {
    border-radius: 22px;
  }
}


/* Ajuste V6.5: menú fijo permanente en top */
/* Este bloque anula el efecto flotante tipo cápsula de V6.4 */
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 0 !important;
  background: rgba(252, 250, 246, .96) !important;
  border-bottom: 1px solid rgba(11, 45, 77, .10) !important;
  box-shadow: 0 8px 24px rgba(11, 45, 77, .08) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
}

.site-header .nav-wrapper,
.site-header.is-scrolled .nav-wrapper {
  width: min(var(--container), calc(100% - 40px)) !important;
  min-height: 76px !important;
  margin-top: 0 !important;
  margin-inline: auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.site-header.is-scrolled {
  background: rgba(252, 250, 246, .98) !important;
  border-bottom: 1px solid rgba(11, 45, 77, .12) !important;
  box-shadow: 0 10px 28px rgba(11, 45, 77, .10) !important;
}

.site-header.is-scrolled .brand-logo,
.site-header .brand-logo {
  width: 54px !important;
  height: 54px !important;
}

.site-header.is-scrolled .brand small {
  display: block !important;
}

.site-header.is-scrolled .brand strong {
  font-size: 1.04rem !important;
}

.site-header.is-scrolled .main-nav,
.site-header .main-nav {
  background: rgba(255,255,255,.38) !important;
  border: 1px solid rgba(11,45,77,.06) !important;
}

.site-header.is-scrolled .nav-cta,
.site-header .nav-cta {
  min-height: 48px !important;
  padding: 0 22px !important;
}

/* Compensa la altura del header fijo */
body {
  padding-top: 76px;
}

html {
  scroll-padding-top: 96px;
}

/* El hero debe iniciar debajo del header fijo */
.hero-mobile-first {
  margin-top: 0;
}

@media (max-width: 980px) {
  .site-header .nav-wrapper,
  .site-header.is-scrolled .nav-wrapper {
    width: min(100% - 28px, var(--container)) !important;
    min-height: 72px !important;
  }

  .site-header .brand-logo,
  .site-header.is-scrolled .brand-logo {
    width: 48px !important;
    height: 48px !important;
  }

  body {
    padding-top: 72px;
  }

  .main-nav,
  .site-header.is-scrolled .main-nav {
    inset: 72px 10px auto !important;
    background: rgba(252,250,246,.98) !important;
    border: 1px solid var(--border) !important;
    border-radius: 24px !important;
    box-shadow: 0 20px 50px rgba(11,45,77,.18) !important;
  }
}

@media (max-width: 640px) {
  body {
    padding-top: 72px;
    padding-bottom: 68px;
  }

  .site-header .nav-wrapper,
  .site-header.is-scrolled .nav-wrapper {
    width: min(100% - 24px, var(--container)) !important;
  }
}


/* Ajuste V6.6: menú sin bisel y Ofrendar sin estado activo */
/* Quita el marco/cápsula alrededor de todo el menú */
.main-nav,
.site-header .main-nav,
.site-header.is-scrolled .main-nav {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Mantiene los links limpios sin contenedor general */
.main-nav > a:not(.nav-cta) {
  background: transparent;
}

/* Estado activo solo para secciones normales */
.main-nav > a.is-active:not(.nav-cta) {
  color: var(--blue);
  background: rgba(201, 164, 92, .16);
}

/* Ofrendar es CTA, no pestaña activa */
.main-nav > a.nav-cta,
.main-nav > a.nav-cta.is-active,
.site-header .main-nav > a.nav-cta.is-active,
.site-header.is-scrolled .main-nav > a.nav-cta.is-active {
  color: var(--white) !important;
  background: var(--blue) !important;
  box-shadow: 0 10px 24px rgba(11, 45, 77, .16) !important;
}

.main-nav > a.nav-cta::after,
.main-nav > a.nav-cta.is-active::after,
.site-header .main-nav > a.nav-cta.is-active::after {
  display: none !important;
  content: none !important;
}

@media (max-width: 980px) {
  .main-nav,
  .site-header .main-nav,
  .site-header.is-scrolled .main-nav {
    background: rgba(252,250,246,.98) !important;
    border: 1px solid var(--border) !important;
    border-radius: 24px !important;
    box-shadow: 0 20px 50px rgba(11,45,77,.18) !important;
    padding: 12px !important;
  }
}


/* Ajuste V6.7: Horarios actualizados */
.schedule-section {
  background:
    radial-gradient(circle at 8% 10%, rgba(201, 164, 92, .10), transparent 28%),
    var(--cream-2);
}
.schedule-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 26px;
  align-items: start;
}
.schedule-main-card,
.weekday-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.schedule-main-card { overflow: hidden; }
.schedule-day-header {
  padding: 30px 32px;
  color: var(--white);
  background: linear-gradient(135deg, var(--blue), var(--green));
}
.schedule-day-header span {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--gold-2);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.schedule-day-header h3 {
  margin-bottom: 0;
  color: var(--white);
  font-size: clamp(1.9rem, 3vw, 2.7rem);
}
.schedule-list { display: grid; }
.schedule-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 20px 32px;
  border-bottom: 1px solid var(--border);
}
.schedule-item:last-child { border-bottom: 0; }
.schedule-item strong,
.schedule-item small { display: block; }
.schedule-item strong {
  color: var(--blue);
  font-size: 1.02rem;
}
.schedule-item small {
  margin-top: 4px;
  color: var(--muted);
}
.schedule-item time {
  min-width: 128px;
  padding: 8px 12px;
  color: var(--blue);
  text-align: center;
  background: var(--cream);
  border-radius: 999px;
  font-weight: 850;
}
.schedule-item.muted { background: rgba(247, 241, 232, .42); }
.schedule-item.muted strong,
.schedule-item.muted time { color: var(--muted); }
.weekday-schedule-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.weekday-card { padding: 24px; }
.weekday-card h3 {
  margin-bottom: 8px;
  color: var(--blue);
}
.weekday-card p {
  margin-bottom: 8px;
  color: var(--text);
  font-weight: 800;
}
.weekday-label {
  display: inline-flex;
  margin-bottom: 14px;
  padding: 7px 12px;
  color: var(--blue);
  background: var(--gold-2);
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
}
.zoom-badge {
  display: inline-flex;
  width: max-content;
  margin-top: 4px;
  padding: 6px 10px;
  color: var(--blue);
  background: rgba(11, 45, 77, .07);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
}
.weekday-card hr {
  margin: 20px 0;
  border: 0;
  border-top: 1px solid var(--border);
}
.schedule-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 22px;
  padding: 18px 22px;
  color: var(--muted);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 18px;
}
.schedule-notes p { margin: 0; }
.schedule-notes strong { color: var(--blue); }
@media (max-width: 980px) {
  .schedule-layout { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .schedule-item {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 18px 22px;
  }
  .schedule-item time {
    width: max-content;
    min-width: 0;
  }
  .weekday-schedule-grid { grid-template-columns: 1fr; }
  .schedule-day-header { padding: 26px 24px; }
  .schedule-notes { display: grid; }
}


/* Ajuste V6.8: iconos para Zoom e Instagram */
.zoom-badge {
  align-items: center;
  gap: 7px;
}

.zoom-icon {
  width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--white);
  background: #2d5bff;
  border-radius: 5px;
  font-size: 10px;
  line-height: 1;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.18);
}

/* Reemplaza visualmente el carácter por un símbolo tipo cámara/video */
.zoom-icon::before {
  content: "";
  width: 9px;
  height: 6px;
  display: block;
  background: currentColor;
  border-radius: 1px;
}

.zoom-icon {
  font-size: 0;
}

.social-links .social-icon,
.social-links span.social-icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--blue);
  background: var(--gold-2);
  border-radius: 50%;
  font-weight: 900;
  line-height: 1;
}

.social-links .instagram-icon {
  background:
    radial-gradient(circle at 30% 110%, #feda75 0%, #fa7e1e 28%, #d62976 56%, #962fbf 78%, #4f5bd5 100%);
  color: #fff;
}

.social-links .instagram-icon svg {
  width: 18px;
  height: 18px;
  display: block;
}

.social-links .instagram-icon rect,
.social-links .instagram-icon circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.social-links .instagram-icon circle:last-child {
  fill: currentColor;
  stroke: none;
}


/* Ajuste V6.9: Qué creemos completo */
.full-confession-hero {
  background:
    radial-gradient(circle at 12% 20%, rgba(234, 215, 168, .28), transparent 30%),
    linear-gradient(135deg, var(--blue) 0%, var(--green) 76%);
}

.confession-sidebar {
  max-height: calc(100vh - 120px);
  overflow: auto;
}

.chapter-nav {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.chapter-nav h3 {
  margin-bottom: 12px;
  font-size: 1rem;
}

.chapter-nav a {
  display: grid;
  grid-template-columns: 26px 1fr;
  align-items: start;
  gap: 8px;
  padding: 9px 10px;
  color: var(--blue);
  border-radius: 12px;
  font-size: .86rem;
  line-height: 1.25;
}

.chapter-nav a:hover {
  background: var(--cream);
}

.chapter-nav a span {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  color: var(--white);
  background: var(--blue);
  border-radius: 50%;
  font-size: .72rem;
  font-weight: 850;
}

.confession-intro .reference-help {
  padding: 14px 16px;
  color: var(--blue);
  background: var(--cream);
  border-left: 4px solid var(--gold);
  border-radius: 0 14px 14px 0;
  font-weight: 700;
}

.confession-full-card {
  padding: clamp(22px, 4vw, 42px);
}

.confession-full {
  color: var(--text);
}

.confession-full > p:first-child {
  display: none;
}

.confession-full .anchor-target {
  scroll-margin-top: 110px;
}

.confession-heading {
  margin-top: 28px;
  margin-bottom: 18px;
  color: var(--blue);
  font-size: clamp(1.8rem, 3vw, 2.55rem);
}

.confession-detail {
  margin: 16px 0;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 10px 28px rgba(11,45,77,.07);
  overflow: hidden;
}

.confession-detail summary {
  cursor: pointer;
  padding: 18px 22px;
  color: var(--blue);
  background: linear-gradient(135deg, rgba(247,241,232,.92), rgba(255,255,255,.95));
  list-style: none;
  font-size: 1.02rem;
}

.confession-detail summary::-webkit-details-marker {
  display: none;
}

.confession-detail summary::before {
  content: "+";
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  margin-right: 10px;
  color: var(--white);
  background: var(--blue);
  border-radius: 50%;
  font-weight: 900;
}

.confession-detail[open] summary::before {
  content: "–";
}

.confession-detail summary strong {
  color: var(--blue);
}

.confession-detail summary em {
  color: var(--muted);
}

.confession-detail > ol,
.confession-detail > p,
.confession-detail > table,
.confession-detail > div {
  margin-left: 22px;
  margin-right: 22px;
}

.confession-detail ol {
  padding-left: 24px;
}

.confession-detail li {
  margin-bottom: 8px;
}

.confession-detail p {
  margin-bottom: 12px;
}

.confession-detail > ol:last-child {
  margin-bottom: 24px;
}

.confession-books-table {
  width: calc(100% - 44px);
  margin: 18px 22px 24px;
  border-collapse: collapse;
  overflow: hidden;
  border-radius: 14px;
  font-size: .95rem;
}

.confession-books-table th,
.confession-books-table td {
  vertical-align: top;
  padding: 14px;
  border: 1px solid var(--border);
}

.confession-books-table th {
  color: var(--blue);
  background: var(--cream);
}

.confession-books-table td {
  background: var(--white);
}

.scripture-ref {
  cursor: help;
  display: inline-grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  margin-left: 2px;
  color: var(--white);
  background: var(--gold);
  border-radius: 50%;
  font-size: .68rem;
  font-weight: 900;
  line-height: 1;
}

.scripture-ref:focus {
  outline: 3px solid rgba(201, 164, 92, .34);
  outline-offset: 2px;
}

.scripture-tooltip {
  position: absolute;
  z-index: 9999;
  padding: 12px 14px;
  color: var(--white);
  background: rgba(11, 45, 77, .98);
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(11,45,77,.28);
  font-size: .92rem;
  line-height: 1.4;
}

.scripture-tooltip[hidden] {
  display: none;
}

@media (max-width: 980px) {
  .confession-sidebar {
    max-height: none;
  }

  .chapter-nav {
    display: none;
  }
}

@media (max-width: 640px) {
  .confession-detail summary {
    padding: 16px;
  }

  .confession-detail > ol,
  .confession-detail > p,
  .confession-detail > table,
  .confession-detail > div {
    margin-left: 16px;
    margin-right: 16px;
  }

  .confession-detail ol {
    padding-left: 20px;
  }

  .confession-books-table {
    display: block;
    width: calc(100% - 32px);
    overflow-x: auto;
    white-space: nowrap;
  }
}


/* Ajuste V6.10: compatibilidad visual con Logos RefTagger */
.confession-full sup {
  color: var(--gold);
  font-weight: 900;
}

.rtTooltip,
.rtTooltip * {
  box-sizing: border-box;
}


/* =========================================================
   V6.15 — Refinamiento visual móvil
   Objetivo: menos sensación de contenedores, lectura más fluida
   ========================================================= */

@media (max-width: 760px) {
  :root {
    --mobile-section-y: 52px;
    --mobile-card-radius: 18px;
    --mobile-soft-border: rgba(11, 45, 77, .08);
  }

  body {
    background: var(--cream-2);
  }

  .container {
    width: min(100% - 28px, var(--container));
  }

  .section {
    padding: var(--mobile-section-y) 0;
  }

  .section-light,
  .section-accent,
  .schedule-section,
  .live-section,
  .boletin-viewer-section {
    background: var(--cream-2);
  }

  .section-heading {
    margin-bottom: 28px;
    text-align: left;
  }

  .section-heading p {
    font-size: 1rem;
  }

  .section-kicker,
  .eyebrow {
    margin-bottom: 10px;
    font-size: .72rem;
    letter-spacing: .12em;
  }

  h1 {
    font-size: clamp(2.15rem, 10vw, 3.05rem);
  }

  h2 {
    font-size: clamp(1.75rem, 8vw, 2.35rem);
  }

  h3 {
    font-size: 1.16rem;
  }

  p {
    margin-bottom: 14px;
  }

  .btn {
    min-height: 50px;
    border-radius: 14px;
  }

  /* Header móvil más ligero */
  .site-header {
    box-shadow: 0 6px 18px rgba(11,45,77,.07) !important;
  }

  .site-header .nav-wrapper,
  .site-header.is-scrolled .nav-wrapper {
    width: min(100% - 20px, var(--container)) !important;
  }

  .brand-logo,
  .site-header .brand-logo,
  .site-header.is-scrolled .brand-logo {
    width: 44px !important;
    height: 44px !important;
  }

  .brand strong {
    font-size: .95rem !important;
  }

  /* Hero móvil: menos bloqueado, más limpio */
  .hero,
  .hero-mobile-first {
    min-height: auto;
    padding: 72px 0 56px;
  }

  .hero-content,
  .hero-copy-inner {
    padding: 0;
  }

  .hero-lead {
    font-size: 1.05rem;
    line-height: 1.55;
  }

  .hero-times {
    display: grid;
    gap: 8px;
    margin: 22px 0;
  }

  .hero-times span {
    display: block;
    padding: 12px 14px;
    border-radius: 14px;
    line-height: 1.35;
  }

  .hero-actions {
    display: grid;
    gap: 10px;
  }

  /* Quitar apariencia pesada de tarjetas principales en móvil */
  .info-card,
  .bank-card,
  .belief-box,
  .action-card,
  .ministry-card,
  .schedule-main-card,
  .weekday-card,
  .live-player-card,
  .live-info-card,
  .belief-summary-card,
  .belief-section-card,
  .pdf-fallback-card {
    border-radius: var(--mobile-card-radius);
    border-color: var(--mobile-soft-border);
    box-shadow: none;
  }

  .info-card,
  .bank-card,
  .belief-box,
  .action-card,
  .ministry-card,
  .live-info-card,
  .belief-summary-card,
  .belief-section-card {
    padding: 22px;
  }

  .split,
  .split.reverse,
  .media-block,
  .live-layout,
  .boletin-hero-grid,
  .belief-hero-grid {
    gap: 24px;
  }

  /* Primera visita: info más compacta */
  .pastoral-note {
    padding: 14px 16px;
    border-left: 0;
    border-radius: 14px;
    background: var(--cream);
  }

  .info-card dl {
    gap: 12px;
  }

  .info-card dd {
    line-height: 1.45;
  }

  /* EBDV: mantener especial, pero menos denso */
  .ebdv-section {
    padding: 58px 0;
  }

  .ebdv-wrapper {
    gap: 24px;
  }

  .ebdv-date-card,
  .ebdv-panel {
    border-radius: 18px;
    box-shadow: none;
  }

  .ebdv-date-card {
    padding: 18px;
    margin: 20px 0;
  }

  .ebdv-panel {
    padding: 22px;
  }

  .ebdv-list {
    gap: 9px;
    margin: 18px 0;
  }

  .ebdv-mini-info {
    grid-template-columns: 1fr;
  }

  /* Horarios: convertir en lectura tipo agenda, menos tarjeta dentro de tarjeta */
  .schedule-layout {
    gap: 18px;
  }

  .schedule-day-header {
    padding: 22px;
  }

  .schedule-list {
    background: var(--white);
  }

  .schedule-item {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px 18px;
  }

  .schedule-item time {
    width: max-content;
    min-width: 0;
    padding: 7px 11px;
    font-size: .9rem;
  }

  .weekday-schedule-grid {
    gap: 12px;
  }

  .weekday-card {
    padding: 18px;
  }

  .weekday-label {
    margin-bottom: 10px;
  }

  .zoom-badge {
    margin-top: 2px;
  }

  /* Escuela dominical: tarjetas más planas */
  .cards-3,
  .ministry-grid,
  .two-cards {
    gap: 12px;
  }

  .card-icon {
    margin-bottom: 8px;
  }

  /* Qué creemos en portada */
  .belief-box {
    gap: 8px;
  }

  .belief-box h3 {
    margin-bottom: 0;
  }

  /* En vivo */
  .live-player-card {
    padding: 8px;
  }

  .responsive-video {
    border-radius: 14px;
  }

  .live-actions {
    gap: 10px;
  }

  /* Ofrendas */
  blockquote {
    margin: 18px 0;
    padding: 16px;
    border-radius: 16px;
    background: rgba(255,255,255,.58);
  }

  /* Boletín cards finales: menos duplicación visual */
  .compact-section {
    padding: 44px 0 58px;
  }

  /* Footer más navegable */
  .site-footer {
    padding: 50px 0 88px;
  }

  .footer-grid {
    gap: 22px;
  }

  .footer-grid > div {
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,.10);
  }

  .footer-grid > div:last-child {
    border-bottom: 0;
  }

  .footer-bottom {
    gap: 8px;
    margin-top: 24px;
  }

  /* Barra inferior móvil menos invasiva */
  

  
}

/* Ajuste extra para pantallas muy pequeñas */
@media (max-width: 390px) {
  .container {
    width: min(100% - 22px, var(--container));
  }

  .info-card,
  .bank-card,
  .belief-box,
  .action-card,
  .ministry-card,
  .live-info-card,
  .belief-section-card {
    padding: 18px;
  }

  .hero-times span {
    font-size: .92rem;
  }
}


.admin-body {
  background: var(--cream-2);
}
.admin-shell {
  min-height: 100vh;
  padding: 110px 0 70px;
}
.admin-card, .admin-table-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  padding: 28px;
}
.admin-grid {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  align-items: start;
}
.admin-sidebar {
  position: sticky;
  top: 96px;
}
.admin-sidebar nav {
  display: grid;
  gap: 8px;
}
.admin-sidebar a {
  padding: 12px 14px;
  border-radius: 14px;
  color: var(--blue);
  font-weight: 800;
}
.admin-sidebar a:hover, .admin-sidebar a.is-active {
  background: var(--cream);
}
.admin-form {
  display: grid;
  gap: 16px;
}
.admin-form label {
  display: grid;
  gap: 7px;
  color: var(--blue);
  font-weight: 850;
}
.admin-form input, .admin-form textarea {
  width: 100%;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid var(--border);
  border-radius: 14px;
  font: inherit;
}
.admin-form textarea {
  min-height: 110px;
  resize: vertical;
}
.admin-alert {
  padding: 12px 14px;
  border-radius: 14px;
  margin-bottom: 16px;
  font-weight: 750;
}
.admin-alert.ok {
  color: #14532d;
  background: #dcfce7;
}
.admin-alert.error {
  color: #7f1d1d;
  background: #fee2e2;
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
}
.admin-table th, .admin-table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}
.admin-table th {
  color: var(--blue);
  font-size: .88rem;
}
.badge-active {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 999px;
  color: #14532d;
  background: #dcfce7;
  font-weight: 850;
  font-size: .8rem;
}
.badge-inactive {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 999px;
  color: var(--muted);
  background: var(--cream);
  font-weight: 850;
  font-size: .8rem;
}
.admin-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.admin-login {
  max-width: 460px;
  margin: 0 auto;
}
@media (max-width: 820px) {
  .admin-grid {
    grid-template-columns: 1fr;
  }
  .admin-sidebar {
    position: static;
  }
  .admin-table {
    display: block;
    overflow-x: auto;
  }
}

/* Admin dinámico */
.admin-body{background:var(--cream-2)}.admin-shell{min-height:100vh;padding:110px 0 70px}.admin-card,.admin-table-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:28px}.admin-grid{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}.admin-sidebar{position:sticky;top:96px}.admin-sidebar nav{display:grid;gap:8px}.admin-sidebar a{padding:12px 14px;border-radius:14px;color:var(--blue);font-weight:800}.admin-sidebar a:hover,.admin-sidebar a.is-active{background:var(--cream)}.admin-form{display:grid;gap:16px}.admin-form label{display:grid;gap:7px;color:var(--blue);font-weight:850}.admin-form input,.admin-form textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--border);border-radius:14px;font:inherit}.admin-form textarea{min-height:110px;resize:vertical}.admin-alert{padding:12px 14px;border-radius:14px;margin-bottom:16px;font-weight:750}.admin-alert.ok{color:#14532d;background:#dcfce7}.admin-alert.error{color:#7f1d1d;background:#fee2e2}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.admin-table th{color:var(--blue);font-size:.88rem}.badge-active{display:inline-flex;padding:5px 9px;border-radius:999px;color:#14532d;background:#dcfce7;font-weight:850;font-size:.8rem}.badge-inactive{display:inline-flex;padding:5px 9px;border-radius:999px;color:var(--muted);background:var(--cream);font-weight:850;font-size:.8rem}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-login{max-width:460px;margin:0 auto}@media(max-width:820px){.admin-grid{grid-template-columns:1fr}.admin-sidebar{position:static}.admin-table{display:block;overflow-x:auto}}

.admin-pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.admin-pagination a{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 12px;color:var(--blue);background:var(--cream);border:1px solid var(--border);border-radius:999px;font-weight:850}.admin-pagination a.is-active{color:var(--white);background:var(--blue);border-color:var(--blue)}


.admin-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 20px 0 0;
}

.admin-filter-bar label {
  display: grid;
  gap: 7px;
  color: var(--blue);
  font-weight: 850;
}

.admin-filter-bar select {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--white);
  font: inherit;
}

.admin-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 22px;
}

.admin-stat-card {
  padding: 20px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 18px;
}

.admin-stat-card span {
  display: block;
  color: var(--muted);
  font-weight: 800;
  font-size: .9rem;
}

.admin-stat-card strong {
  display: block;
  margin-top: 8px;
  color: var(--blue);
  font-size: 2rem;
  line-height: 1;
}

.analytics-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

@media (max-width: 980px) {
  .admin-stats-grid,
  .analytics-columns {
    grid-template-columns: 1fr;
  }
}

.admin-form select{width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--border);border-radius:14px;font:inherit;background:var(--white)}


.admin-settings-form {
  gap: 22px;
}

.admin-settings-group {
  display: grid;
  gap: 14px;
  padding: 22px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 18px;
}

.admin-settings-group h2 {
  margin: 0;
  color: var(--blue);
  font-size: 1.25rem;
}

.admin-settings-group textarea {
  min-height: 120px;
}


.announcements-section {
  background:
    radial-gradient(circle at 88% 10%, rgba(201, 164, 92, .12), transparent 28%),
    var(--cream-2);
}

.announcements-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.announcement-card {
  padding: 24px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.announcement-card.is-featured {
  border-color: rgba(201, 164, 92, .45);
  background: linear-gradient(180deg, #fff, var(--cream));
}

.announcement-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 14px;
}

.announcement-meta span,
.announcement-meta time {
  display: inline-flex;
  padding: 6px 10px;
  color: var(--blue);
  background: var(--gold-2);
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.announcement-meta time {
  background: rgba(11,45,77,.07);
  color: var(--muted);
}

.announcement-card h3 {
  color: var(--blue);
  margin-bottom: 8px;
}

.announcement-card p {
  color: var(--muted);
}

.announcement-link {
  display: inline-flex;
  margin-top: 6px;
  color: var(--blue);
  font-weight: 900;
}

.admin-two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 900px) {
  .announcements-grid,
  .admin-two-cols {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .announcement-card {
    padding: 20px;
    box-shadow: none;
    border-radius: 18px;
  }
}


.announcements-rotator {
  display: grid;
  gap: 18px;
}

.announcements-track {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.announcements-track .announcement-card {
  display: none;
  opacity: 0;
  transform: translateY(8px);
}

.announcements-track .announcement-card.is-visible {
  display: block;
  animation: announcementFadeIn .28s ease forwards;
}

@keyframes announcementFadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.announcements-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.announcement-control {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--blue);
  background: var(--white);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(11,45,77,.08);
}

.announcement-control:hover {
  background: var(--cream);
}

.announcement-dots {
  display: flex;
  align-items: center;
  gap: 7px;
}

.announcement-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(11,45,77,.22);
  cursor: pointer;
}

.announcement-dot.is-active {
  width: 24px;
  background: var(--blue);
}

@media (max-width: 980px) {
  .announcements-track {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .announcements-track {
    grid-template-columns: 1fr;
  }

  .announcements-controls {
    margin-top: 2px;
  }
}


/* V6.38 — Admin profesional */
.admin-body {
  background:
    radial-gradient(circle at top right, rgba(201,164,92,.12), transparent 28%),
    linear-gradient(180deg, #f8f4ec 0%, #f4efe6 100%);
}

.admin-mobile-topbar {
  display: none;
}

.admin-shell {
  min-height: 100vh;
  padding: 30px 0 70px;
}

.admin-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 26px;
  align-items: start;
}

.admin-main {
  min-width: 0;
}

.admin-sidebar {
  position: sticky;
  top: 24px;
  display: grid;
  gap: 22px;
  padding: 22px;
  border-radius: 24px;
}

.admin-sidebar-head h2 {
  margin-bottom: 4px;
  color: var(--blue);
}

.admin-sidebar-head p {
  margin: 0 0 8px;
  color: var(--muted);
}

.admin-role-pill {
  display: inline-flex;
  padding: 6px 10px;
  color: var(--blue);
  background: var(--gold-2);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 900;
}

.admin-nav {
  display: grid;
  gap: 7px;
}

.admin-nav a {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 11px 13px;
  color: var(--blue);
  border-radius: 14px;
  font-weight: 850;
}

.admin-nav a:hover,
.admin-nav a.is-active {
  background: var(--cream);
}

.admin-nav a.is-active {
  box-shadow: inset 3px 0 0 var(--gold);
}

.admin-sidebar-footer {
  display: grid;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.admin-site-link,
.admin-logout-link {
  font-weight: 850;
}

.admin-logout-link {
  color: #8a1f1f;
}

.admin-hero-card,
.admin-panel-card,
.admin-card,
.admin-table-card {
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(11,45,77,.10);
  border-radius: 24px;
  box-shadow: 0 16px 36px rgba(11,45,77,.08);
}

.admin-hero-card {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  padding: 30px;
  margin-bottom: 22px;
}

.admin-hero-card h1 {
  color: var(--blue);
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 6px;
}

.admin-hero-card p {
  color: var(--muted);
}

.admin-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.admin-dashboard-stats {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
  margin-bottom: 22px;
}

.admin-stat-card {
  padding: 20px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(11,45,77,.10);
  border-radius: 20px;
  box-shadow: 0 12px 28px rgba(11,45,77,.07);
}

.admin-stat-card span {
  display: block;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 850;
}

.admin-stat-card strong {
  display: block;
  margin: 8px 0;
  color: var(--blue);
  font-size: 2.1rem;
  line-height: 1;
}

.admin-stat-card a {
  color: var(--blue);
  font-weight: 900;
  font-size: .9rem;
}

.admin-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 22px;
}

.admin-panel-card {
  padding: 24px;
}

.admin-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}

.admin-panel-head h2 {
  margin: 0;
  color: var(--blue);
}

.admin-panel-head > a {
  color: var(--blue);
  font-weight: 900;
}

.admin-list {
  display: grid;
  gap: 10px;
}

.admin-list-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 12px;
  background: var(--cream);
  border-radius: 14px;
}

.admin-list-item strong,
.admin-list-item span {
  display: block;
}

.admin-list-item span {
  color: var(--muted);
  font-size: .88rem;
}

.admin-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.admin-quick-actions a {
  display: inline-flex;
  padding: 12px 14px;
  color: var(--blue);
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-weight: 900;
}

.admin-inline-search {
  display: flex;
  gap: 8px;
  align-items: center;
}

.admin-inline-search input {
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  font: inherit;
}

@media (max-width: 1180px) {
  .admin-dashboard-stats {
    grid-template-columns: repeat(3, 1fr);
  }

  .admin-dashboard-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .admin-mobile-topbar {
    position: sticky;
    top: 0;
    z-index: 80;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 18px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(12px);
  }

  .admin-mobile-brand {
    color: var(--blue);
    font-weight: 950;
  }

  .admin-sidebar-toggle {
    width: 42px;
    height: 42px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--white);
    color: var(--blue);
    font-size: 1.3rem;
  }

  .admin-shell {
    padding-top: 18px;
  }

  .admin-grid {
    grid-template-columns: 1fr;
  }

  .admin-sidebar {
    position: fixed;
    z-index: 90;
    top: 66px;
    left: 14px;
    right: 14px;
    max-height: calc(100vh - 86px);
    overflow: auto;
    transform: translateY(-12px);
    opacity: 0;
    pointer-events: none;
    transition: .2s ease;
  }

  .admin-sidebar.is-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .admin-hero-card {
    align-items: flex-start;
    flex-direction: column;
    padding: 22px;
  }

  .admin-dashboard-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-panel-head {
    flex-direction: column;
  }

  .admin-inline-search {
    width: 100%;
  }

  .admin-inline-search input {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .admin-dashboard-stats {
    grid-template-columns: 1fr;
  }

  .admin-list-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-quick-actions a {
    width: 100%;
    justify-content: center;
  }
}


/* V6.39 — Sprint 4: refinamiento móvil del sitio público */
:root {
  --tap-size: 44px;
}

/* Elementos táctiles más cómodos */
a,
button,
.btn {
  -webkit-tap-highlight-color: rgba(201, 164, 92, .22);
}

.btn {
  min-height: var(--tap-size);
}

/* Evitar saltos horizontales por elementos anchos */
html,
body {
  overflow-x: hidden;
}

img,
iframe,
video,
canvas {
  max-width: 100%;
}

/* Menú móvil refinado */
@media (max-width: 900px) {
  .site-header {
    top: 0;
  }

  .nav-wrapper {
    min-height: 68px;
  }

  .brand {
    min-width: 0;
  }

  .brand-logo {
    width: 48px;
    height: auto;
  }

  .brand-text strong {
    font-size: .98rem;
  }

  .brand-text small {
    font-size: .72rem;
  }

  .menu-toggle {
    width: 46px;
    height: 46px;
    border-radius: 14px;
  }

  .main-nav {
    top: calc(100% + 8px);
    left: 14px;
    right: 14px;
    width: auto;
    max-height: calc(100vh - 92px);
    overflow-y: auto;
    padding: 12px;
    border-radius: 20px;
    box-shadow: 0 20px 46px rgba(11, 45, 77, .18);
  }

  .main-nav a {
    min-height: 44px;
    padding: 11px 13px;
    border-radius: 14px;
    font-size: .96rem;
  }

  .main-nav .nav-cta {
    justify-content: center;
    margin-top: 4px;
  }

  .mobile-menu-note {
    margin-top: 8px;
    padding: 12px;
    border-radius: 16px;
  }
}

/* Hero móvil más compacto */
@media (max-width: 760px) {
  .hero {
    min-height: auto;
    padding: 96px 0 46px;
  }

  .hero-grid,
  .hero-content,
  .hero-panel {
    min-width: 0;
  }

  .hero h1 {
    font-size: clamp(2rem, 11vw, 3.05rem);
    line-height: 1.02;
    letter-spacing: -.035em;
  }

  .hero-lead {
    font-size: 1rem;
    line-height: 1.58;
    max-width: 100%;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
  }

  .hero-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .hero-panel,
  .belief-summary-card,
  .boletin-summary-card {
    padding: 20px;
    border-radius: 20px;
  }

  .hero-panel {
    margin-top: 12px;
  }

  .eyebrow,
  .section-kicker {
    font-size: .72rem;
  }
}

/* Secciones más respirables en celular */
@media (max-width: 760px) {
  .section {
    padding: 52px 0;
  }

  .section-heading {
    margin-bottom: 24px;
  }

  .section-heading h2 {
    font-size: clamp(1.8rem, 8.6vw, 2.45rem);
    line-height: 1.08;
  }

  .section-heading p {
    font-size: .98rem;
  }

  .container {
    width: min(100% - 28px, var(--container));
  }
}

/* Tarjetas: menos pesadas en móvil */
@media (max-width: 760px) {
  .cards-3,
  .footer-grid,
  .belief-grid,
  .boletin-hero-grid,
  .ebdv-wrapper {
    grid-template-columns: 1fr !important;
  }

  .ministry-card,
  .announcement-card,
  .admin-card,
  .visit-card,
  .belief-card,
  .schedule-card {
    border-radius: 18px;
    box-shadow: none;
  }

  .ministry-card {
    padding: 20px;
  }

  .card-icon {
    width: 44px;
    height: 44px;
  }
}

/* Anuncios rotativos móvil */
@media (max-width: 760px) {
  .announcements-section {
    padding-top: 46px;
    padding-bottom: 46px;
  }

  .announcements-track {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .announcement-card {
    padding: 18px;
  }

  .announcement-card h3 {
    font-size: 1.12rem;
  }

  .announcement-card p {
    font-size: .95rem;
  }

  .announcement-meta {
    gap: 6px;
    margin-bottom: 10px;
  }

  .announcement-meta span,
  .announcement-meta time {
    padding: 5px 8px;
    font-size: .68rem;
  }

  .announcements-controls {
    gap: 10px;
  }

  .announcement-control {
    width: 40px;
    height: 40px;
  }
}

/* Horarios más legibles en móvil */
@media (max-width: 760px) {
  .schedule-grid,
  .schedule-table,
  .schedule-list {
    gap: 12px;
  }

  .schedule-card {
    padding: 18px;
  }

  .schedule-card h3 {
    font-size: 1.1rem;
  }

  .schedule-row,
  .schedule-item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 12px 0;
  }

  .zoom-badge,
  .badge,
  .mode-badge {
    width: fit-content;
  }
}

/* En vivo / videos */
@media (max-width: 760px) {
  .live-section iframe,
  .video-frame iframe,
  .live-frame iframe {
    min-height: 210px;
    border-radius: 18px;
  }

  .live-card,
  .live-copy {
    padding: 20px;
  }
}

/* EBDV y secciones informativas */
@media (max-width: 760px) {
  .ebdv-section {
    padding: 52px 0;
  }

  .ebdv-copy h2 {
    font-size: clamp(1.9rem, 8.6vw, 2.5rem);
  }

  .ebdv-date-card {
    padding: 16px;
    border-radius: 18px;
  }

  .ebdv-panel {
    padding: 20px;
    border-radius: 20px;
  }

  .ebdv-list {
    gap: 8px;
  }
}

/* Boletín y visor */
@media (max-width: 760px) {
  .boletin-hero {
    padding: 96px 0 46px;
  }

  .boletin-stage {
    padding: 14px;
    border-radius: 18px;
  }

  .boletin-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .boletin-actions .btn {
    width: 100%;
  }
}

/* Qué creemos */
@media (max-width: 760px) {
  .belief-hero {
    padding: 96px 0 48px;
  }

  .belief-section {
    padding: 48px 0;
  }

  .confession-chapter,
  .belief-card {
    padding: 20px;
    border-radius: 18px;
  }

  .confession-chapter h2 {
    font-size: 1.45rem;
  }
}

/* Footer compacto y claro */
@media (max-width: 760px) {
  .site-footer {
    padding: 44px 0 28px;
  }

  .footer-grid {
    gap: 24px;
  }

  .site-footer h2,
  .site-footer h3 {
    margin-bottom: 8px;
  }

  .site-footer p,
  .site-footer a {
    font-size: .95rem;
  }

  .social-links {
    display: grid;
    gap: 8px;
  }

  .social-links a {
    min-height: 40px;
    padding: 8px 0;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 6px;
    text-align: center;
  }
}

/* Ajustes extremos: teléfonos muy pequeños */
@media (max-width: 390px) {
  .container {
    width: min(100% - 22px, var(--container));
  }

  .brand-text small {
    display: none;
  }

  .hero h1 {
    font-size: 2rem;
  }

  .btn {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}


/* V6.40 — Mobile UX Pro: experiencia pública mobile-first */
@media (max-width: 860px) {
  :root {
    --mobile-page-pad: 18px;
    --mobile-radius: 18px;
    --mobile-shadow-soft: 0 10px 24px rgba(11,45,77,.08);
  }

  body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  .container {
    width: min(100% - calc(var(--mobile-page-pad) * 2), var(--container));
  }

  /* Header móvil tipo app */
  .site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(11,45,77,.08);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 8px 22px rgba(11,45,77,.05);
  }

  .nav-wrapper {
    min-height: 64px;
    padding-top: env(safe-area-inset-top);
  }

  .brand {
    gap: 10px;
    max-width: calc(100% - 58px);
  }

  .brand-logo {
    width: 42px;
    flex: 0 0 auto;
  }

  .brand-text {
    min-width: 0;
  }

  .brand-text strong,
  .brand-text small {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .brand-text strong {
    font-size: .98rem;
    letter-spacing: .02em;
  }

  .brand-text small {
    font-size: .72rem;
  }

  .menu-toggle {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(11,45,77,.12);
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 8px 18px rgba(11,45,77,.07);
  }

  /* Menú móvil como sheet compacto */
  .main-nav {
    position: fixed;
    top: calc(64px + env(safe-area-inset-top));
    left: var(--mobile-page-pad);
    right: var(--mobile-page-pad);
    width: auto;
    max-height: min(76vh, 620px);
    padding: 10px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(11,45,77,.10);
    border-radius: 22px;
    box-shadow: 0 24px 70px rgba(11,45,77,.22);
  }

  .main-nav a {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 11px 13px;
    border-radius: 15px;
    color: var(--blue);
    font-size: .96rem;
    font-weight: 850;
  }

  .main-nav a:hover,
  .main-nav a.is-active {
    background: var(--cream);
  }

  .main-nav a[href*="ofrendas"],
  .main-nav a[href*="ofrendar"] {
    color: var(--blue);
    background: transparent;
  }

  .main-nav .nav-cta {
    margin-top: 6px;
    justify-content: center;
    background: var(--blue);
    color: #fff;
  }

  .mobile-menu-note {
    margin-top: 8px;
    padding: 12px;
    border-radius: 16px;
    background: var(--cream);
  }

  body.nav-open {
    overflow: hidden;
  }

  /* Hero móvil editorial y compacto */
  .hero {
    min-height: auto;
    padding: 86px 0 38px;
  }

  .hero::before {
    opacity: .72;
  }

  .hero-grid {
    display: grid;
    gap: 22px;
  }

  .hero-content {
    max-width: 100%;
  }

  .eyebrow {
    margin-bottom: 12px;
    font-size: .7rem;
    letter-spacing: .12em;
  }

  .hero h1 {
    max-width: 12ch;
    font-size: clamp(2.18rem, 11.5vw, 3.35rem);
    line-height: .98;
    letter-spacing: -.045em;
    margin-bottom: 16px;
  }

  .hero-lead {
    max-width: 34rem;
    font-size: 1rem;
    line-height: 1.58;
    margin-bottom: 20px;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
  }

  .btn {
    min-height: 48px;
    justify-content: center;
    border-radius: 999px;
    font-size: .96rem;
  }

  .hero-panel {
    margin: 0;
    padding: 16px;
    border-radius: 20px;
    box-shadow: var(--mobile-shadow-soft);
  }

  .hero-panel .panel-row,
  .panel-row {
    gap: 10px;
    padding: 12px 0;
  }

  /* Secciones con ritmo móvil */
  .section {
    padding: 48px 0;
  }

  .section-heading {
    margin-bottom: 22px;
    text-align: left;
  }

  .section-heading h2 {
    font-size: clamp(1.75rem, 8.2vw, 2.45rem);
    line-height: 1.05;
    letter-spacing: -.03em;
  }

  .section-heading p {
    font-size: .98rem;
    line-height: 1.58;
  }

  .section-kicker {
    font-size: .7rem;
    letter-spacing: .12em;
  }

  /* Cards mobile: más compactas y consistentes */
  .cards-3,
  .announcements-track,
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }

  .ministry-card,
  .announcement-card,
  .visit-card,
  .schedule-card,
  .belief-card {
    padding: 18px;
    border-radius: var(--mobile-radius);
    box-shadow: none;
    border-color: rgba(11,45,77,.10);
  }

  .ministry-card h3,
  .announcement-card h3,
  .visit-card h3 {
    font-size: 1.1rem;
    line-height: 1.18;
  }

  .ministry-card p,
  .announcement-card p,
  .visit-card p {
    font-size: .95rem;
    line-height: 1.55;
  }

  .card-icon {
    width: 42px;
    height: 42px;
    margin-bottom: 12px;
  }

  /* Anuncios: más limpios en móvil */
  .announcements-section {
    padding: 44px 0;
  }

  .announcement-card {
    background: rgba(255,255,255,.92);
  }

  .announcement-card.is-featured {
    background: linear-gradient(180deg, #fff, #fbf6eb);
  }

  .announcement-meta {
    margin-bottom: 10px;
  }

  .announcement-meta span,
  .announcement-meta time {
    padding: 5px 8px;
    font-size: .66rem;
  }

  .announcements-controls {
    position: relative;
    margin-top: 2px;
  }

  .announcement-control {
    width: 40px;
    height: 40px;
    box-shadow: none;
  }

  .announcement-dot {
    width: 7px;
    height: 7px;
  }

  .announcement-dot.is-active {
    width: 20px;
  }

  /* Horarios: lectura escaneable */
  #horarios .section-heading {
    margin-bottom: 18px;
  }

  .schedule-card,
  .schedule-day-card {
    padding: 16px;
  }

  .schedule-card h3,
  .schedule-day-card h3 {
    font-size: 1.05rem;
    margin-bottom: 8px;
  }

  .schedule-row,
  .schedule-item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(11,45,77,.08);
  }

  .schedule-row:last-child,
  .schedule-item:last-child {
    border-bottom: 0;
  }

  /* Video en vivo */
  #en-vivo iframe,
  .live-section iframe,
  .video-frame iframe,
  .live-frame iframe {
    aspect-ratio: 16 / 9;
    width: 100%;
    min-height: auto;
    border-radius: 18px;
  }

  .live-card,
  .live-copy,
  .video-card {
    padding: 18px;
    border-radius: 20px;
  }

  /* EBDV */
  .ebdv-wrapper {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .ebdv-copy h2 {
    font-size: clamp(1.8rem, 8.5vw, 2.45rem);
    line-height: 1.04;
  }

  .ebdv-date-card,
  .ebdv-panel {
    padding: 18px;
    border-radius: 20px;
  }

  .ebdv-list li {
    padding: 10px 0;
  }

  /* Boletín */
  .boletin-hero,
  .belief-hero {
    padding: 86px 0 38px;
  }

  .boletin-hero-grid,
  .belief-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }

  .boletin-stage {
    padding: 12px;
    border-radius: 18px;
  }

  .boletin-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  /* Qué creemos */
  .confession-chapter {
    padding: 18px;
    border-radius: 18px;
  }

  .confession-chapter h2 {
    font-size: 1.35rem;
    line-height: 1.15;
  }

  .confession-chapter p,
  .confession-chapter li {
    font-size: .96rem;
    line-height: 1.6;
  }

  /* Footer tipo directorio compacto */
  .site-footer {
    padding: 42px 0 calc(24px + env(safe-area-inset-bottom));
  }

  .footer-grid {
    gap: 18px;
  }

  .footer-grid > div {
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,.12);
  }

  .footer-grid > div:last-child {
    border-bottom: 0;
  }

  .site-footer h2,
  .site-footer h3 {
    font-size: 1rem;
    margin-bottom: 8px;
  }

  .site-footer p,
  .site-footer a {
    font-size: .93rem;
    line-height: 1.5;
  }

  .social-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .social-links a {
    min-height: 42px;
    align-items: center;
    padding: 8px 0;
  }

  .footer-bottom {
    display: grid;
    gap: 4px;
    text-align: center;
  }
}

/* Bottom quick action bar solo móvil */
.mobile-quickbar {
  display: none;
}

@media (max-width: 760px) {
  body.has-mobile-quickbar {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  .mobile-quickbar {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    z-index: 95;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 8px;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(11,45,77,.10);
    border-radius: 22px;
    box-shadow: 0 18px 46px rgba(11,45,77,.18);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .mobile-quickbar a {
    display: grid;
    place-items: center;
    min-height: 44px;
    padding: 6px 8px;
    color: var(--blue);
    background: var(--cream);
    border-radius: 16px;
    font-size: .78rem;
    font-weight: 900;
    text-align: center;
  }

  .mobile-quickbar a.is-primary {
    color: #fff;
    background: var(--blue);
  }
}

/* Pantallas pequeñas */
@media (max-width: 390px) {
  :root {
    --mobile-page-pad: 14px;
  }

  .brand-logo {
    width: 38px;
  }

  .brand-text strong {
    font-size: .92rem;
  }

  .brand-text small {
    display: none;
  }

  .hero h1 {
    max-width: 11ch;
    font-size: 2.05rem;
  }

  .hero-lead {
    font-size: .96rem;
  }

  .social-links {
    grid-template-columns: 1fr;
  }
}


/* V6.41 — Correcciones visuales móviles puntuales */

/* 1) Recuperar margen interno en bloques dominicales / horarios */
@media (max-width: 860px) {
  #horarios,
  .schedule-section,
  .sunday-section,
  .lord-day-section {
    overflow: hidden;
  }

  #horarios .container,
  .schedule-section .container,
  .sunday-section .container,
  .lord-day-section .container {
    padding-left: max(0px, env(safe-area-inset-left));
    padding-right: max(0px, env(safe-area-inset-right));
  }

  #horarios .section-heading,
  #horarios .schedule-grid,
  #horarios .schedule-table,
  #horarios .schedule-list,
  #horarios .cards-3,
  .sunday-section .section-heading,
  .sunday-section .cards-3,
  .lord-day-section .section-heading,
  .lord-day-section .cards-3 {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  #horarios .schedule-card,
  #horarios .schedule-day-card,
  #horarios .ministry-card,
  .sunday-section .ministry-card,
  .lord-day-section .ministry-card {
    width: 100%;
    max-width: 100%;
    padding-left: 18px;
    padding-right: 18px;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  #horarios h2,
  #horarios h3,
  #horarios p,
  #horarios li,
  .sunday-section h2,
  .sunday-section h3,
  .sunday-section p,
  .lord-day-section h2,
  .lord-day-section h3,
  .lord-day-section p {
    overflow-wrap: anywhere;
  }
}

/* 2) Contraste en introducción de Qué creemos */
@media (max-width: 860px) {
  .belief-hero,
  .belief-hero * {
    color: inherit;
  }

  .belief-hero {
    position: relative;
  }

  .belief-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(7, 28, 48, .72), rgba(7, 28, 48, .62));
    pointer-events: none;
    z-index: 0;
  }

  .belief-hero > *,
  .belief-hero .container,
  .belief-hero-grid,
  .belief-hero .hero-content,
  .belief-hero .belief-summary-card {
    position: relative;
    z-index: 1;
  }

  .belief-hero h1,
  .belief-hero .hero-lead,
  .belief-hero p,
  .belief-hero .eyebrow {
    color: #fff !important;
    text-shadow: 0 2px 16px rgba(0,0,0,.35);
  }

  .belief-hero .belief-summary-card {
    background: rgba(255,255,255,.94);
    color: var(--blue);
  }

  .belief-hero .belief-summary-card,
  .belief-hero .belief-summary-card * {
    text-shadow: none;
  }

  .belief-hero .belief-summary-card p,
  .belief-hero .belief-summary-card li,
  .belief-hero .belief-summary-card span {
    color: var(--muted) !important;
  }

  .belief-hero .belief-summary-card h2,
  .belief-hero .belief-summary-card h3,
  .belief-hero .belief-summary-card strong {
    color: var(--blue) !important;
  }
}

/* 3) Evitar que capítulo 1 de la confesión se salga de pantalla */
@media (max-width: 860px) {
  .confession-content,
  .confession-chapter,
  .confession-accordion,
  .belief-content,
  .belief-card,
  .chapter-content,
  .chapter-body {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .confession-chapter {
    overflow: hidden;
  }

  .confession-chapter[open],
  details.confession-chapter[open],
  .confession-chapter.is-open {
    width: 100%;
    max-width: 100%;
  }

  .confession-chapter summary,
  .confession-chapter h2,
  .confession-chapter h3,
  .confession-chapter p,
  .confession-chapter li,
  .confession-chapter a,
  .confession-chapter span,
  .confession-chapter sup,
  .confession-chapter .bible-reference,
  .confession-chapter .references,
  .confession-chapter .scripture-refs {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .confession-chapter ol,
  .confession-chapter ul {
    padding-left: 1.15rem;
    margin-left: 0;
  }

  .confession-chapter li {
    padding-left: .05rem;
  }

  .confession-chapter table,
  .confession-chapter pre,
  .confession-chapter blockquote {
    max-width: 100%;
    overflow-x: auto;
  }

  .confession-chapter iframe,
  .confession-chapter img {
    max-width: 100%;
    height: auto;
  }

  /* Primer capítulo: suele tener referencias largas y párrafos extensos */
  .confession-chapter:first-of-type,
  details.confession-chapter:first-of-type,
  #capitulo-1,
  #capitulo1,
  #chapter-1 {
    contain: layout paint;
  }

  .confession-chapter:first-of-type p,
  .confession-chapter:first-of-type li,
  .confession-chapter:first-of-type a,
  #capitulo-1 p,
  #capitulo-1 li,
  #capitulo-1 a,
  #capitulo1 p,
  #capitulo1 li,
  #capitulo1 a,
  #chapter-1 p,
  #chapter-1 li,
  #chapter-1 a {
    overflow-wrap: anywhere;
  }

  /* Reftagger / Logos popups o enlaces no deben alterar ancho */
  .rtBibleRef,
  a.rtBibleRef,
  .lbsTooltip,
  .refTagger,
  .rtPopup {
    max-width: min(92vw, 360px) !important;
    overflow-wrap: anywhere !important;
  }
}

/* Ajuste extra en pantallas pequeñas */
@media (max-width: 420px) {
  .confession-chapter,
  .belief-card,
  .belief-summary-card {
    padding-left: 16px;
    padding-right: 16px;
  }

  .confession-chapter summary {
    gap: 8px;
  }

  .confession-chapter h2 {
    font-size: 1.25rem;
  }
}


/* V6.42 — Mobile overflow precision fix */

/* Regla base: ningún bloque público debe provocar scroll horizontal */
@media (max-width: 860px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  main,
  .site-main,
  .page-content,
  .section,
  .container {
    max-width: 100%;
  }

  .container {
    width: calc(100% - 28px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}

/* 1) Domingo / Día del Señor: tarjeta y contenido sin recorte lateral */
@media (max-width: 860px) {
  #horarios .container,
  #horarios .schedule-wrapper,
  #horarios .schedule-grid,
  #horarios .schedule-card,
  #horarios .schedule-day-card,
  #horarios .schedule-list,
  #horarios .schedule-table,
  #horarios .cards-3 {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  #horarios .schedule-card,
  #horarios .schedule-day-card,
  #horarios .day-card,
  #horarios .lord-day-card,
  #horarios .domingo-card {
    overflow: hidden;
    margin-left: 0;
    margin-right: 0;
    border-radius: 20px;
  }

  #horarios .schedule-card > *,
  #horarios .schedule-day-card > *,
  #horarios .day-card > *,
  #horarios .lord-day-card > *,
  #horarios .domingo-card > * {
    max-width: 100%;
    min-width: 0;
  }

  #horarios .schedule-card header,
  #horarios .schedule-day-card header,
  #horarios .day-card header,
  #horarios .lord-day-card header,
  #horarios .domingo-card header {
    padding-left: 20px;
    padding-right: 20px;
  }

  #horarios .schedule-card h2,
  #horarios .schedule-day-card h2,
  #horarios .day-card h2,
  #horarios .lord-day-card h2,
  #horarios .domingo-card h2 {
    max-width: 100%;
    font-size: clamp(2.05rem, 10vw, 3rem);
    line-height: 1.04;
    overflow-wrap: break-word;
  }

  #horarios .schedule-row,
  #horarios .schedule-item,
  #horarios .domingo-item,
  #horarios .day-item {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }

  #horarios .schedule-row h3,
  #horarios .schedule-item h3,
  #horarios .domingo-item h3,
  #horarios .day-item h3 {
    max-width: 100%;
    overflow-wrap: break-word;
    line-height: 1.18;
  }

  #horarios .time-pill,
  #horarios .schedule-time,
  #horarios .hour-pill,
  #horarios .badge-time {
    max-width: 100%;
    width: fit-content;
  }
}

/* 2) Qué creemos: evitar que el encabezado quede bajo el header fijo */
@media (max-width: 860px) {
  .belief-hero,
  .belief-page-hero,
  .creemos-hero {
    padding-top: calc(112px + env(safe-area-inset-top)) !important;
    padding-bottom: 42px;
  }

  .belief-hero h1,
  .belief-page-hero h1,
  .creemos-hero h1 {
    max-width: 100%;
    font-size: clamp(2rem, 10vw, 3rem);
    line-height: 1.02;
    overflow-wrap: break-word;
  }

  .belief-hero .hero-lead,
  .belief-page-hero .hero-lead,
  .creemos-hero .hero-lead,
  .belief-intro,
  .belief-intro p {
    color: #fff !important;
    max-width: 100%;
    overflow-wrap: break-word;
  }
}

/* 3) Confesión: eliminar overflow del capítulo 1 y referencias largas */
@media (max-width: 860px) {
  .belief-grid,
  .belief-content,
  .confession-list,
  .confession-content,
  .confession-wrapper,
  .confession-chapter,
  details.confession-chapter,
  .chapter-content,
  .chapter-body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .belief-content,
  .confession-content,
  .confession-wrapper {
    overflow-x: hidden;
  }

  .confession-chapter,
  details.confession-chapter {
    display: block;
    overflow: hidden;
    padding-left: 0;
    padding-right: 0;
  }

  .confession-chapter summary,
  details.confession-chapter summary {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 18px;
    padding-right: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .confession-chapter summary *,
  details.confession-chapter summary * {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .chapter-content,
  .chapter-body,
  .confession-chapter > div,
  details.confession-chapter > div {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 18px;
    padding-right: 18px;
    overflow-x: hidden;
  }

  .confession-chapter p,
  .confession-chapter li,
  .confession-chapter a,
  .confession-chapter span,
  .confession-chapter sup,
  .confession-chapter em,
  .confession-chapter strong,
  .confession-chapter .reference,
  .confession-chapter .references,
  .confession-chapter .scripture-refs,
  .confession-chapter .rtBibleRef {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
  }

  .confession-chapter p,
  .confession-chapter li {
    font-size: clamp(.98rem, 4.4vw, 1.08rem);
    line-height: 1.65;
  }

  .confession-chapter ol,
  .confession-chapter ul {
    max-width: 100%;
    padding-left: 1.15rem;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
  }

  .confession-chapter li::marker {
    font-size: .95em;
  }

  /* Capítulo 1: caso más problemático por notas y referencias */
  .confession-chapter:first-of-type,
  details.confession-chapter:first-of-type {
    contain: layout;
  }

  .confession-chapter:first-of-type .chapter-content,
  .confession-chapter:first-of-type .chapter-body,
  details.confession-chapter:first-of-type > div {
    overflow-x: hidden;
  }

  .confession-chapter:first-of-type p,
  .confession-chapter:first-of-type li,
  .confession-chapter:first-of-type a,
  .confession-chapter:first-of-type span,
  details.confession-chapter:first-of-type p,
  details.confession-chapter:first-of-type li,
  details.confession-chapter:first-of-type a,
  details.confession-chapter:first-of-type span {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  /* Popups/enlaces de RefTagger no deben expandir el layout */
  .rtBibleRef,
  a.rtBibleRef,
  .lbsTooltip,
  .rtPopup,
  .refTagger {
    max-width: min(92vw, 360px) !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
}

/* Barra inferior: que no tape contenido en páginas largas */
@media (max-width: 760px) {
  body.has-mobile-quickbar {
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }

  .mobile-quickbar {
    left: 20px;
    right: 20px;
    bottom: calc(14px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 420px) {
  .container {
    width: calc(100% - 24px);
  }

  #horarios .schedule-card header,
  #horarios .schedule-day-card header,
  #horarios .day-card header,
  #horarios .lord-day-card header,
  #horarios .domingo-card header,
  #horarios .schedule-row,
  #horarios .schedule-item,
  #horarios .domingo-item,
  #horarios .day-item,
  .confession-chapter summary,
  details.confession-chapter summary,
  .chapter-content,
  .chapter-body,
  .confession-chapter > div,
  details.confession-chapter > div {
    padding-left: 16px;
    padding-right: 16px;
  }

  .mobile-quickbar {
    left: 12px;
    right: 12px;
  }
}


/* V6.43 — Ajustes móviles Que creemos + quitar quickbar */

/* Quitar barra inferior flotante móvil */
.mobile-quickbar {
  display: none !important;
}

body.has-mobile-quickbar {
  padding-bottom: 0 !important;
}

/* Hero Que creemos: botones legibles sobre fondo oscuro */
@media (max-width: 860px) {
  .belief-hero .hero-actions,
  .belief-page-hero .hero-actions,
  .creemos-hero .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
    margin-top: 20px;
  }

  .belief-hero .btn,
  .belief-page-hero .btn,
  .creemos-hero .btn {
    width: 100%;
    min-height: 50px;
    justify-content: center;
    font-weight: 950;
    text-shadow: none !important;
  }

  .belief-hero .btn-primary,
  .belief-page-hero .btn-primary,
  .creemos-hero .btn-primary {
    color: #fff !important;
    background: var(--blue) !important;
    border-color: var(--blue) !important;
    box-shadow: 0 12px 28px rgba(0,0,0,.18);
  }

  .belief-hero .btn-secondary,
  .belief-hero .btn-outline,
  .belief-page-hero .btn-secondary,
  .belief-page-hero .btn-outline,
  .creemos-hero .btn-secondary,
  .creemos-hero .btn-outline {
    color: #fff !important;
    background: rgba(255,255,255,.10) !important;
    border-color: rgba(255,255,255,.72) !important;
    backdrop-filter: blur(8px);
  }

  .belief-hero .btn-primary *,
  .belief-page-hero .btn-primary *,
  .creemos-hero .btn-primary * {
    color: #fff !important;
  }
}

/* Hero Que creemos: evitar que el resumen quede tapado o debajo de elementos flotantes */
@media (max-width: 860px) {
  .belief-summary-card {
    max-height: none !important;
    overflow: visible !important;
  }

  .belief-hero,
  .belief-page-hero,
  .creemos-hero {
    padding-bottom: 54px !important;
  }
}

/* Capítulo 1: tablas responsive. La tabla no debe empujar el viewport */
@media (max-width: 860px) {
  .confession-chapter table,
  .belief-content table,
  .chapter-content table,
  .chapter-body table {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-collapse: collapse;
  }

  .confession-chapter thead,
  .confession-chapter tbody,
  .confession-chapter tr,
  .confession-chapter th,
  .confession-chapter td,
  .belief-content thead,
  .belief-content tbody,
  .belief-content tr,
  .belief-content th,
  .belief-content td {
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .confession-chapter th,
  .confession-chapter td,
  .belief-content th,
  .belief-content td {
    min-width: 120px;
    padding: 10px 12px;
    font-size: .92rem;
    line-height: 1.35;
  }

  /* Si una tabla es demasiado ancha, que se desplace internamente */
  .confession-chapter .table-wrap,
  .belief-content .table-wrap,
  .chapter-content .table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Capítulo 1: ajustar el contenido que aparece detrás de la tabla */
@media (max-width: 860px) {
  .confession-chapter:first-of-type {
    overflow-x: hidden !important;
  }

  .confession-chapter:first-of-type > *,
  details.confession-chapter:first-of-type > * {
    max-width: 100%;
  }

  .confession-chapter:first-of-type table {
    margin-left: 0;
    margin-right: 0;
  }
}

/* El navegador móvil ya tiene su propia barra: evitar reservas artificiales */
@media (max-width: 760px) {
  body,
  body.has-mobile-quickbar {
    padding-bottom: 0 !important;
  }

  main,
  .site-main {
    padding-bottom: 0;
  }
}


/* V6.44 — eliminar menú/CTA fijo inferior móvil */
.mobile-quickbar,
.mobile-bottom-nav,
.mobile-bottom-bar,
.mobile-cta-bar,
.mobile-sticky-cta,
.mobile-floating-cta,
.floating-mobile-actions,
.floating-quick-actions,
.bottom-quick-actions,
.sticky-mobile-actions,
.home-mobile-actions,
.visit-floating-actions,
.visit-sticky-actions,
[class*="mobile"][class*="bottom"],
[class*="mobile"][class*="quickbar"],
[class*="mobile"][class*="sticky"],
[class*="floating"][class*="actions"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 860px) {
  body,
  body.has-mobile-quickbar,
  body.has-mobile-bottom-nav,
  body.has-sticky-mobile-actions {
    padding-bottom: 0 !important;
  }

  main,
  .site-main,
  .page-content {
    padding-bottom: 0 !important;
  }
}

/* V6.45 — hard remove mobile bottom bar FINAL OVERRIDE */
.mobile-bottom-bar,
.mobile-quickbar,
.mobile-bottom-nav,
.mobile-cta-bar,
.mobile-sticky-cta,
.mobile-floating-cta,
.floating-mobile-actions,
.floating-quick-actions,
.bottom-quick-actions,
.sticky-mobile-actions,
.home-mobile-actions,
.visit-floating-actions,
.visit-sticky-actions,
nav.mobile-bottom-bar,
div.mobile-bottom-bar {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(120%) !important;
}

@media (max-width: 900px) {
  body,
  body.has-mobile-quickbar,
  body.has-mobile-bottom-nav,
  body.has-sticky-mobile-actions {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .site-main,
  main,
  .page-content {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
}






/* V6.47 — Qué creemos: hero homologado al remate inferior de Boletín */
.belief-hero,
.belief-page-hero,
.creemos-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* Mantener el overlay oscuro del hero detrás del contenido */
.belief-hero::after,
.belief-page-hero::after,
.creemos-hero::after {
  z-index: 0 !important;
}

/* El contenido queda por encima del overlay oscuro */
.belief-hero > *,
.belief-page-hero > *,
.creemos-hero > *,
.belief-hero .container,
.belief-page-hero .container,
.creemos-hero .container,
.belief-hero-grid,
.belief-page-hero-grid,
.creemos-hero-grid {
  position: relative;
  z-index: 2;
}

/*
  Remate inferior igual al concepto de Boletín:
  la parte baja del hero se desvanece hacia el fondo claro.
  La capa va ANCLADA AL FONDO, no sobre el centro del hero.
*/
.belief-hero .hero-bottom-fade,
.belief-page-hero .hero-bottom-fade,
.creemos-hero .hero-bottom-fade {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: clamp(120px, 18vw, 230px);
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      rgba(248,244,236,0) 0%,
      rgba(248,244,236,.18) 36%,
      rgba(248,244,236,.78) 72%,
      var(--cream, #f8f4ec) 100%
    );
}

/* Si no existe el nodo en HTML, fallback con ::before */
.belief-hero:not(:has(.hero-bottom-fade))::before,
.belief-page-hero:not(:has(.hero-bottom-fade))::before,
.creemos-hero:not(:has(.hero-bottom-fade))::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: clamp(120px, 18vw, 230px);
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      rgba(248,244,236,0) 0%,
      rgba(248,244,236,.18) 36%,
      rgba(248,244,236,.78) 72%,
      var(--cream, #f8f4ec) 100%
    );
}

/* Espaciado del hero para que la tarjeta doctrinal no quede dentro del fade */
@media (min-width: 861px) {
  .belief-hero,
  .belief-page-hero,
  .creemos-hero {
    min-height: 560px;
    padding-bottom: 165px;
  }
}

@media (max-width: 860px) {
  .belief-hero,
  .belief-page-hero,
  .creemos-hero {
    padding-bottom: 110px !important;
  }

  .belief-hero .hero-bottom-fade,
  .belief-page-hero .hero-bottom-fade,
  .creemos-hero .hero-bottom-fade,
  .belief-hero:not(:has(.hero-bottom-fade))::before,
  .belief-page-hero:not(:has(.hero-bottom-fade))::before,
  .creemos-hero:not(:has(.hero-bottom-fade))::before {
    height: 155px;
  }
}
