/* Stereo Vida - estilo cine: fondo oscuro, rojo vivo, titulares condensados, filas deslizables */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-size:17px;line-height:1.7;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:'Outfit','Plus Jakarta Sans',sans-serif;font-weight:400;line-height:1;letter-spacing:.02em}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(1180px,100% - 44px);margin-inline:auto}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
[hidden]{display:none!important}

/* Encabezado */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--primary) 88%,transparent);color:var(--on-primary);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--on-primary) 10%,transparent)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand{text-decoration:none;font-family:'Outfit',sans-serif;font-size:2.1rem;letter-spacing:.04em;line-height:1;color:var(--accent)}
.brand img{height:46px;width:auto}
.menu{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.menu a{text-decoration:none;font-weight:600;font-size:.95rem;padding:9px 14px;border-radius:6px;color:color-mix(in srgb,var(--on-primary) 78%,transparent);transition:background .2s,color .2s}
.menu a:hover{color:var(--on-primary);background:color-mix(in srgb,var(--on-primary) 10%,transparent)}
.menu a.current{color:var(--on-primary);box-shadow:inset 0 -3px 0 var(--accent);border-radius:6px 6px 0 0}
.menu a.live-btn{background:var(--accent);color:var(--on-accent);margin-left:10px;padding:10px 20px;border-radius:6px;box-shadow:none}
.menu a.live-btn:hover{filter:brightness(1.12)}
.menu-toggle{display:none;background:transparent;color:inherit;border:1.5px solid color-mix(in srgb,var(--on-primary) 45%,transparent);border-radius:6px;padding:8px 20px;font:600 .95rem 'Plus Jakarta Sans',sans-serif;cursor:pointer}

/* Portada */
.hero{position:relative;overflow:hidden;color:var(--on-primary);padding:96px 0 150px;isolation:isolate;
  background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 70%,#000) 0%,var(--primary) 50%,color-mix(in srgb,var(--accent) 26%,var(--primary)) 100%)}
.sun{position:absolute;left:50%;bottom:-330px;width:760px;height:760px;transform:translateX(-50%);border-radius:50%;z-index:-1;
  background:radial-gradient(circle,var(--accent) 0 34%,color-mix(in srgb,var(--accent) 55%,transparent) 36%,transparent 68%);opacity:.92}
.rings{position:absolute;inset:0;z-index:-1}
.rings i{position:absolute;left:50%;bottom:50px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--accent) 40%,transparent);transform:translate(-50%,50%)}
.rings i:nth-child(1){width:900px;height:900px}
.rings i:nth-child(2){width:1200px;height:1200px;opacity:.7}
.rings i:nth-child(3){width:1500px;height:1500px;opacity:.45}
.rings i:nth-child(4){width:1800px;height:1800px;opacity:.25}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;background:var(--bg);border-radius:50% 50% 0 0/100% 100% 0 0;z-index:1}

.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(4.6rem,14vw,10rem);line-height:.88;letter-spacing:.015em;color:var(--accent);text-shadow:0 6px 40px rgba(0,0,0,.45)}
.slogan{font-family:'Outfit',Georgia,serif;font-size:clamp(1.3rem,2.8vw,1.85rem);margin-top:24px;max-width:24ch;line-height:1.3;font-weight:400;opacity:.95}
.hero-note{margin-top:16px;opacity:.72}

.player{position:relative;border-radius:14px;padding:30px 28px 26px;text-align:center;color:var(--on-primary);
  background:color-mix(in srgb,#000 55%,transparent);border:1px solid color-mix(in srgb,var(--on-primary) 16%,transparent);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 30px 70px rgba(0,0,0,.5)}
.player-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.onair{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:.92rem;opacity:.85}
.onair::before{content:"";width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--on-primary) 45%,transparent)}
.player.playing .onair{opacity:1}
.player.playing .onair::before{background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 30%,transparent)}
.waves{display:flex;align-items:flex-end;gap:4px;height:30px}
.waves i{display:block;width:4px;height:5px;border-radius:2px;background:var(--accent)}
.player.playing .waves i{animation:wave 1s ease-in-out infinite}
.waves i:nth-child(2){animation-delay:.15s!important}.waves i:nth-child(3){animation-delay:.3s!important}
.waves i:nth-child(4){animation-delay:.1s!important}.waves i:nth-child(5){animation-delay:.4s!important}
.waves i:nth-child(6){animation-delay:.25s!important}.waves i:nth-child(7){animation-delay:.05s!important}
@keyframes wave{0%,100%{height:5px}50%{height:28px}}

.play-wrap{position:relative;width:112px;height:112px;margin:34px auto 22px}
.play-wrap::before,.play-wrap::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0}
.player.playing .play-wrap::before{animation:ripple 2.4s ease-out infinite}
.player.playing .play-wrap::after{animation:ripple 2.4s ease-out 1.2s infinite}
@keyframes ripple{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.1);opacity:0}}
.play-btn{position:relative;z-index:1;width:112px;height:112px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  background:var(--accent);color:var(--on-accent);
  box-shadow:0 0 0 12px color-mix(in srgb,var(--accent) 22%,transparent),0 0 0 28px color-mix(in srgb,var(--accent) 10%,transparent),0 14px 34px rgba(0,0,0,.5);transition:transform .2s}
.play-btn:hover:not(:disabled){transform:scale(1.06)}
.play-btn:disabled{background:color-mix(in srgb,var(--on-primary) 22%,transparent);color:color-mix(in srgb,var(--on-primary) 55%,transparent);cursor:not-allowed;box-shadow:none}
.play-btn .ic-pause{display:none}
.player.playing .play-btn .ic-play{display:none}
.player.playing .play-btn .ic-pause{display:block}
.player-status{font-weight:600;min-height:1.7em;margin-top:6px}
.volume{display:flex;align-items:center;gap:12px;margin-top:18px;font-size:.9rem;font-weight:600;opacity:.85}
.volume input{flex:1;accent-color:var(--accent)}

/* Botones */
.btn{display:inline-block;text-decoration:none;border:0;cursor:pointer;font:700 1rem 'Plus Jakarta Sans',sans-serif;padding:14px 28px;border-radius:6px;background:var(--accent);color:var(--on-accent);justify-self:start;transition:filter .2s,background .2s,color .2s}
.btn:hover{filter:brightness(1.12)}
.btn.ghost{background:color-mix(in srgb,var(--text) 14%,transparent);color:var(--text);border:0}
.btn.ghost:hover{background:color-mix(in srgb,var(--text) 24%,transparent);filter:none}
.hero .btn.ghost{background:color-mix(in srgb,var(--on-primary) 18%,transparent);color:var(--on-primary)}
.hero .btn.ghost:hover{background:color-mix(in srgb,var(--on-primary) 30%,transparent)}
.app-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.install-btn{margin-top:30px}
.ios-hint{margin-top:26px;max-width:42ch;padding:14px 18px;border-radius:10px;font-size:.95rem;background:color-mix(in srgb,var(--on-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--on-primary) 20%,transparent)}
.app-btns+.install-btn,.app-btns+.ios-hint{margin-top:16px}

/* Secciones */
.section{padding:104px 0}
.section.alt{background:color-mix(in srgb,var(--text) 4%,var(--bg))}
.section h2{font-size:clamp(2.8rem,6.4vw,4.6rem);margin-bottom:34px;color:var(--text)}
.section h2::after{content:"";display:block;width:64px;height:5px;background:var(--accent);margin-top:14px}
.section p+p{margin-top:16px}

.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.split h2{margin-bottom:0;position:sticky;top:110px}
.prose{font-size:1.12rem;max-width:62ch;color:color-mix(in srgb,var(--text) 86%,transparent)}

.schedule{list-style:none;max-width:860px}
.schedule li{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:baseline;padding:22px 16px;border-bottom:1px solid color-mix(in srgb,var(--text) 14%,transparent);transition:background .2s}
.schedule li:first-child{border-top:1px solid color-mix(in srgb,var(--text) 14%,transparent)}
.schedule li:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}
.schedule .time{font-family:'Outfit',sans-serif;font-size:1.9rem;letter-spacing:.04em;color:var(--accent);line-height:1}
.schedule .prog{font-size:1.2rem;font-weight:700}

/* Versiculo */
.verse{position:relative;background:var(--primary);color:var(--on-primary);padding:120px 0;text-align:center;overflow:hidden}
.verse::before{content:"";position:absolute;left:50%;top:-260px;width:620px;height:620px;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 34%,transparent),transparent 65%)}
.verse blockquote{position:relative;max-width:880px;margin-inline:auto}
.verse p{font-family:'Outfit',Georgia,serif;font-weight:500;font-size:clamp(1.9rem,4.8vw,3.3rem);line-height:1.22;letter-spacing:-.01em}
.verse footer{margin-top:28px;font-weight:700;font-size:1.05rem;color:var(--accent)}

/* Devocionales y videos */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.dev{background:color-mix(in srgb,var(--text) 7%,var(--bg));border-radius:8px;overflow:hidden;display:flex;flex-direction:column;
  transition:transform .25s ease,box-shadow .25s ease}
.dev:hover{transform:scale(1.03);box-shadow:0 18px 40px rgba(0,0,0,.45);position:relative;z-index:2}
.dev-body{padding:20px 22px 24px;display:grid;gap:10px;align-content:start}
.dev-body time{font-size:.9rem;color:color-mix(in srgb,var(--text) 62%,transparent);font-weight:600}
.dev-body h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.3rem;line-height:1.2;letter-spacing:-.01em;color:var(--text)}
.dev details{margin-top:4px}
.dev summary{cursor:pointer;font-weight:700;color:var(--accent);padding:6px 0}
.dev-text{margin-top:10px;font-size:1.03rem;color:color-mix(in srgb,var(--text) 86%,transparent)}
.dev-text p+p{margin-top:14px}
.cards.feature .dev:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;align-items:stretch}
.cards.feature .dev:first-child:hover{transform:scale(1.01)}
.cards.feature .dev:first-child .dev-body{padding:36px 40px;align-content:center}
.cards.feature .dev:first-child h3{font-family:'Outfit',sans-serif;font-weight:400;letter-spacing:.02em;font-size:clamp(2.4rem,4.4vw,3.6rem);line-height:1}
.cards.feature .dev:first-child:not(:has(.yt)){grid-template-columns:1fr}
.cards.row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:14px 4px 22px;margin:-14px -4px 0;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
.cards.row .dev{flex:0 0 min(330px,78vw);scroll-snap-align:start}
.yt{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;background:#000;cursor:pointer;overflow:hidden}
.yt img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .3s}
.yt:hover img{opacity:1}
.yt-play{position:absolute;inset:0;margin:auto;width:62px;height:62px;border-radius:50%;background:color-mix(in srgb,#000 55%,transparent);color:#fff;border:2px solid #fff;display:grid;place-items:center;transition:background .2s,border-color .2s}
.yt:hover .yt-play{background:var(--accent);border-color:var(--accent)}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Formulario */
.form{display:grid;gap:20px;margin-top:8px;max-width:640px}
.form label{display:grid;gap:7px;font-weight:700}
.form input,.form textarea{font:inherit;font-weight:400;padding:14px 16px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);border-radius:6px;background:color-mix(in srgb,var(--text) 7%,var(--bg));color:var(--text)}
.form input:focus,.form textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 28%,transparent)}
.hp{position:absolute;left:-9999px}
.notice{padding:14px 18px;border-radius:6px;margin:18px 0 6px;font-weight:600;max-width:640px;color:var(--text)}
.notice.ok{background:color-mix(in srgb,#2ea05a 18%,var(--bg));border-left:4px solid #2ea05a}
.notice.bad{background:color-mix(in srgb,#e5484d 18%,var(--bg));border-left:4px solid #e5484d}
.lead{font-size:1.12rem;max-width:56ch;color:color-mix(in srgb,var(--text) 86%,transparent)}

.contact{list-style:none;display:grid;gap:12px;font-size:1.12rem}
.contact a{font-weight:700;color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:5px}
.socials{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}

.site-footer{background:color-mix(in srgb,var(--primary) 70%,#000);color:color-mix(in srgb,var(--on-primary) 75%,transparent);padding:44px 0;text-align:center;font-size:.95rem}
.site-footer strong{display:block;font-family:'Outfit',sans-serif;font-weight:400;font-size:2.2rem;letter-spacing:.05em;color:var(--accent);margin-bottom:4px}
.wa-float{position:fixed;right:18px;bottom:18px;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 8px 22px rgba(0,0,0,.4);z-index:60}

/* ===== Todo centrado + animaciones ===== */
@keyframes rise{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
@keyframes drop{from{opacity:0;transform:translateY(-70%) rotate(-10deg) scale(.5)}to{opacity:1;transform:none}}
@keyframes float{50%{transform:translateY(-10px)}}
@keyframes glow{0%,100%{text-shadow:0 6px 40px rgba(0,0,0,.45)}50%{text-shadow:0 0 54px color-mix(in srgb,var(--accent) 70%,transparent),0 6px 30px rgba(0,0,0,.4)}}
@keyframes eqbar{0%,100%{transform:scaleY(.16)}50%{transform:scaleY(1)}}
@keyframes marq{to{transform:translateX(-50%)}}
@keyframes drift{to{transform:translate(120px,90px)}}
@keyframes breathe{0%,100%{opacity:.85;filter:saturate(1)}50%{opacity:1;filter:saturate(1.3)}}
@keyframes ringpulse{0%{transform:translate(-50%,50%) scale(.9);opacity:0}30%{opacity:.9}100%{transform:translate(-50%,50%) scale(1.14);opacity:0}}

html{scroll-padding-top:132px}

/* Encabezado centrado: nombre arriba, menú debajo */
.bar{flex-direction:column;justify-content:center;gap:2px;min-height:0;padding:12px 0 8px}
.brand{display:block;text-align:center;max-height:64px;overflow:hidden;transition:max-height .35s ease,opacity .3s}
.brand img{margin-inline:auto}
.site-header.scrolled .brand{max-height:0;opacity:0}
.menu{justify-content:center}
.more-menu{right:auto;left:50%;transform:translateX(-50%)}

/* Portada centrada */
.hero{padding:84px 0 180px;text-align:center}
.hero-grid{display:flex;flex-direction:column;align-items:center;gap:0}
.hero-copy{display:contents}
.hero h1{order:1;animation:glow 4s ease-in-out infinite}
.slogan{order:2;margin-inline:auto;max-width:28ch;animation:rise .9s .75s backwards}
.hero-note{order:3;animation:rise .9s .9s backwards}
.player{order:4;width:min(540px,100%);margin-top:44px;animation:rise 1s 1s backwards,float 7s 2.2s ease-in-out infinite}
.app-btns{order:5;justify-content:center;margin-top:36px}
.hero .install-btn{order:6;margin-top:16px}
.ios-hint{order:7;margin-inline:auto}
.word{display:inline-block;white-space:nowrap}
.ch{display:inline-block;animation:drop .85s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i,0)*60ms + .1s)}
.sun{transform:translate(-50%,var(--py,0px));animation:breathe 5s ease-in-out infinite}
.rings i{animation:ringpulse 7s ease-out infinite}
.rings i:nth-child(2){animation-delay:1.7s}.rings i:nth-child(3){animation-delay:3.4s}.rings i:nth-child(4){animation-delay:5.1s}

/* Ecualizador de fondo (se mueve más rápido cuando suena la radio) */
.eq{position:absolute;left:0;right:0;bottom:34px;height:150px;display:flex;align-items:flex-end;justify-content:center;gap:7px;z-index:-1;opacity:.3;pointer-events:none;transition:opacity .6s}
.eq i{display:block;width:8px;height:var(--h,60%);border-radius:4px 4px 0 0;background:linear-gradient(to top,var(--accent),transparent);transform-origin:bottom;animation:eqbar var(--t,1.4s) ease-in-out var(--d,0s) infinite}
.hero.live .eq{opacity:.75}
.hero.live .eq i{animation-duration:calc(var(--t,1.4s) * .5)}

/* Cinta en movimiento */
.marquee{overflow:hidden;background:var(--accent);color:var(--on-accent);padding:14px 0;font-family:'Outfit',sans-serif;font-size:1.7rem;letter-spacing:.07em;white-space:nowrap;position:relative;z-index:2}
.marquee .track{display:flex;width:max-content;animation:marq 45s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee .group{display:flex;align-items:center;gap:30px;padding-right:30px}
.marquee .dot{font-size:.8rem;opacity:.7}

/* Secciones centradas */
.section h2{text-align:center}
.section h2::after{margin-inline:auto}
.section.alt{position:relative;overflow:hidden}
.section.alt::before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;left:-200px;top:-160px;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 20%,transparent),transparent 65%);animation:drift 15s ease-in-out infinite alternate}
.section .wrap{position:relative}
.split{display:block;text-align:center}
.split h2{position:static;margin-bottom:34px}
.prose,.lead{margin-inline:auto;text-align:center}
.day-tabs{justify-content:center}
.schedule{margin-inline:auto}
.schedule li{grid-template-columns:1fr;gap:4px;justify-items:center;text-align:center;border-radius:8px}
.schedule li.on{box-shadow:inset 0 0 0 2px var(--accent)}
.schedule:not([hidden]) li{animation:rise .5s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*55ms)}
.cards{justify-content:center}
.cards.row{justify-content:safe center}
.btn{justify-self:center}
.form{margin-inline:auto}
.notice{margin-inline:auto;text-align:center}
.contact{justify-items:center;text-align:center}
.socials{justify-content:center}
.donate-box{margin-inline:auto;max-width:520px;text-align:center}
.greet{text-align:center}
.dev-body{justify-items:center;text-align:center}
.dev details{width:100%}
.dev-text{text-align:left}

/* Aparición al hacer scroll */
.reveal{opacity:0}
.reveal.in{opacity:1;animation:rise .85s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*90ms)}
.section h2.reveal::after{width:0}
.section h2.reveal.in::after{width:64px;transition:width .9s .4s ease}

/* Versículo palabra por palabra */
.verse blockquote.split .w{display:inline-block;opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--i,0)*60ms)}
.verse blockquote.split.in .w{opacity:1;transform:none}
.verse blockquote.split footer{opacity:0;transition:opacity .9s 1.1s}
.verse blockquote.split.in footer{opacity:1}

/* Tarjetas con efecto 3D y brillo que sigue el cursor */
.dev,.greet{position:relative;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .2s ease-out,box-shadow .25s}
.dev:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.03)}
.cards.feature .dev:first-child:hover{transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.01)}
.dev::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;
  background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.14),transparent 60%)}
.dev:hover::after{opacity:1}
.greet:hover{border-left-width:8px}

/* Botones con brillo */
.btn,.menu a.live-btn{position:relative;overflow:hidden}
.btn::after,.menu a.live-btn::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg);transition:left .65s}
.btn:hover::after,.menu a.live-btn:hover::after{left:140%}

/* Flechas de las filas deslizables */
.row-wrap{position:relative}
.row-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;
  background:color-mix(in srgb,#000 72%,transparent);color:#fff;font-size:1.9rem;line-height:1;display:grid;place-items:center;opacity:0;transition:opacity .25s,background .2s}
.row-arrow.prev{left:-6px}.row-arrow.next{right:-6px}
.row-wrap:hover .row-arrow{opacity:1}
.row-arrow:hover{background:var(--accent)}

/* Barra de progreso y botón de subir */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:100;box-shadow:0 0 12px var(--accent)}
.to-top{position:fixed;left:18px;bottom:18px;width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;z-index:60;font-size:1.5rem;
  background:var(--accent);color:var(--on-accent);box-shadow:0 8px 22px rgba(0,0,0,.4);opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s,transform .3s}
.to-top.show{opacity:1;pointer-events:auto;transform:none}

@media (max-width:900px){
  html{scroll-padding-top:84px}
  .marquee{display:none}
  .bar{flex-direction:row;min-height:64px;padding:0}
  .site-header.scrolled .brand{max-height:64px;opacity:1}
  .menu-toggle{position:absolute;right:22px;top:14px}
  .hero{padding:56px 0 140px}
  .player{margin-top:36px}
  .row-arrow{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero h1,.slogan,.hero-note,.player,.sun,.rings i,.eq i,.marquee .track,.section.alt::before,.ch,.schedule li{animation:none!important}
  .eq i{transform:scaleY(.5)}
}

/* Aviso destacado */
.banner{background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 18px;font-weight:600;text-align:center;position:relative}
.banner p{line-height:1.4}
.banner a{margin-left:10px;color:inherit;font-weight:800;text-underline-offset:3px}
.banner button{background:transparent;border:0;color:inherit;font-size:1.6rem;line-height:1;cursor:pointer;padding:2px 8px}

/* Menú Más */
.more{position:relative}
.more-btn{background:transparent;border:0;cursor:pointer;font:600 .95rem 'Plus Jakarta Sans',sans-serif;padding:9px 14px;border-radius:6px;color:color-mix(in srgb,var(--on-primary) 78%,transparent)}
.more-btn::after{content:" ▾";font-size:.8em}
.more-btn:hover{background:color-mix(in srgb,var(--on-primary) 10%,transparent);color:var(--on-primary)}
.more-menu{display:none;position:absolute;right:0;top:calc(100% + 10px);min-width:190px;flex-direction:column;gap:2px;padding:6px;background:var(--primary);border:1px solid color-mix(in srgb,var(--on-primary) 16%,transparent);border-radius:10px;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.more.open .more-menu{display:flex}
.more-menu a{white-space:nowrap}

/* Programación por día */
.day-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.day-tabs button{font:700 .95rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;border:0;border-radius:6px;padding:10px 18px;background:color-mix(in srgb,var(--text) 12%,transparent);color:var(--text)}
.day-tabs button:hover{background:color-mix(in srgb,var(--text) 20%,transparent)}
.day-tabs button.on{background:var(--accent);color:var(--on-accent)}
.schedule li.on{background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:inset 4px 0 0 var(--accent)}
.badge{font-style:normal;font-size:.75rem;font-weight:800;letter-spacing:.04em;background:var(--accent);color:var(--on-accent);padding:3px 9px;border-radius:4px;margin-left:8px;vertical-align:middle}
.now-song,.now-prog{margin-top:8px;font-size:.95rem;font-weight:600}
.now-song{color:var(--accent)}
.now-prog{opacity:.85}

/* Eventos */
.event-img{width:100%;aspect-ratio:16/9;object-fit:cover}
.event-date{aspect-ratio:16/9;display:grid;place-content:center;text-align:center;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 45%,#000));color:var(--on-accent)}
.event-date .d{font-family:'Outfit',sans-serif;font-size:5rem;line-height:.9}
.event-date .m{font-weight:800;text-transform:lowercase;font-size:1.2rem;letter-spacing:.06em}
.event-place{font-weight:600}
.btn.small{padding:9px 18px;font-size:.92rem}

/* Saludos */
.greetings{columns:3 280px;column-gap:18px;margin-bottom:46px}
.greet{break-inside:avoid;margin-bottom:18px;padding:22px;border-radius:8px;background:color-mix(in srgb,var(--text) 7%,var(--bg));border-left:4px solid var(--accent)}
.greet blockquote{font-family:'Outfit',Georgia,serif;font-size:1.12rem;line-height:1.5}
.greet figcaption{margin-top:12px;font-weight:700;font-size:.92rem}
.greet figcaption span{margin-left:6px;font-weight:600;color:var(--accent)}
.form select{font:inherit;font-weight:400;padding:14px 16px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);border-radius:6px;background:color-mix(in srgb,var(--text) 7%,var(--bg));color:var(--text)}
.form select:focus{border-color:var(--accent);outline:none}

/* Ofrendas */
.donate-box{margin-top:26px;padding:22px;border-radius:8px;background:color-mix(in srgb,var(--text) 7%,var(--bg));border:1px dashed color-mix(in srgb,var(--text) 30%,transparent)}
.donate-box pre{white-space:pre-wrap;font:600 1rem 'Plus Jakarta Sans',sans-serif;margin-bottom:16px;color:var(--text)}

@media (max-width:900px){
  .more,.more-menu{display:contents}
  .more-btn{display:none}
  .banner{padding:10px 12px;font-size:.92rem}
  .hero{padding:56px 0 120px}
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .sun{width:560px;height:560px;bottom:-250px}
  .rings i{bottom:30px}
  .menu-toggle{display:block}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;background:color-mix(in srgb,var(--primary) 98%,transparent);flex-direction:column;align-items:stretch;padding:14px 22px 22px;gap:6px}
  .menu.open{display:flex}
  .menu a{text-align:center;padding:13px;background:color-mix(in srgb,var(--on-primary) 7%,transparent)}
  .menu a.current{box-shadow:inset 4px 0 0 var(--accent);border-radius:6px}
  .menu a.live-btn{margin:8px 0 0}
  .section{padding:72px 0}
  .split{grid-template-columns:1fr;gap:22px}
  .split h2{position:static;margin-bottom:6px}
  .schedule li{grid-template-columns:1fr;gap:2px;padding:18px 6px}
  .cards.feature .dev:first-child{grid-template-columns:1fr}
  .cards.feature .dev:first-child .dev-body{padding:24px}
  .verse{padding:84px 0}
}
@media (hover:none){.dev:hover{transform:none;box-shadow:none}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .player.playing .waves i{animation:none;height:16px}
  .player.playing .play-wrap::before,.player.playing .play-wrap::after{animation:none}
  *{transition:none!important}
  .dev:hover{transform:none}
}


/* ===== Acabado profesional ===== */
.skip{position:fixed;left:12px;top:-60px;z-index:300;background:var(--accent);color:var(--on-accent);padding:10px 18px;border-radius:6px;font-weight:700;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}

/* Pantalla de bienvenida */
@keyframes splashOut{to{opacity:0;visibility:hidden}}
.splash{position:fixed;inset:0;z-index:250;background:var(--primary);display:grid;place-items:center;animation:splashOut .55s ease .95s forwards}
.no-splash .splash{display:none}
.splash-in{text-align:center}
.splash-name{display:block;font-family:'Outfit',sans-serif;font-size:clamp(3.4rem,13vw,6.5rem);line-height:1;color:var(--accent);letter-spacing:.04em;animation:rise .7s ease backwards}
.splash-bars{display:flex;justify-content:center;align-items:flex-end;gap:6px;height:44px;margin-top:18px}
.splash-bars i{display:block;width:7px;height:100%;border-radius:3px;background:var(--accent);transform-origin:bottom;animation:eqbar .8s ease-in-out infinite}
.splash-bars i:nth-child(2){animation-delay:.12s}.splash-bars i:nth-child(3){animation-delay:.24s}.splash-bars i:nth-child(4){animation-delay:.08s}.splash-bars i:nth-child(5){animation-delay:.2s}
html:not(.no-splash) .ch{animation-delay:calc(var(--i,0)*60ms + 1.05s)}
html:not(.no-splash) .slogan{animation-delay:1.7s}
html:not(.no-splash) .hero-note{animation-delay:1.85s}
html:not(.no-splash) .player{animation-delay:1.95s,3.2s}

/* Redes sociales con iconos */
.social-icons{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:30px}
.social-icons a{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;text-decoration:none;
  background:color-mix(in srgb,var(--text) 12%,transparent);color:var(--text);transition:transform .25s,background .25s,color .25s}
.social-icons a:hover{background:var(--accent);color:var(--on-accent);transform:translateY(-5px) scale(1.08)}

.site-footer .wrap{display:grid;justify-items:center;gap:14px}
.site-footer .btn.ghost{background:color-mix(in srgb,var(--on-primary) 14%,transparent);color:var(--on-primary)}
.site-footer .btn.ghost:hover{background:color-mix(in srgb,var(--on-primary) 26%,transparent)}

/* Mini reproductor fijo */
.mini{position:fixed;left:50%;bottom:14px;width:min(520px,calc(100% - 28px));z-index:70;display:flex;align-items:center;gap:14px;padding:10px 16px 10px 10px;
  border-radius:16px;background:color-mix(in srgb,var(--primary) 94%,transparent);color:var(--on-primary);border:1px solid color-mix(in srgb,var(--on-primary) 16%,transparent);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 44px rgba(0,0,0,.5);
  transform:translate(-50%,140%);visibility:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s .45s}
.mini.show{transform:translate(-50%,0);visibility:visible;transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s}
.mini-btn{flex:none;width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);transition:transform .2s}
.mini-btn:hover{transform:scale(1.08)}
.mini .ic-pause{display:none}
.mini.playing .ic-play{display:none}
.mini.playing .ic-pause{display:block}
.mini-info{flex:1;min-width:0;display:grid;line-height:1.3;text-align:left}
.mini-info strong{font-family:'Outfit',sans-serif;font-weight:400;font-size:1.3rem;letter-spacing:.04em;color:var(--accent)}
.mini-info span{font-size:.88rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini .waves{height:26px;flex:none}
.mini.playing .waves i{animation:wave 1s ease-in-out infinite}
.mini .waves i:nth-child(2){animation-delay:.15s}.mini .waves i:nth-child(3){animation-delay:.3s}.mini .waves i:nth-child(4){animation-delay:.1s}.mini .waves i:nth-child(5){animation-delay:.25s}
.wa-float,.to-top{transition:bottom .4s ease,opacity .3s,transform .3s}
.mini-on .wa-float,.mini-on .to-top{bottom:94px}

@media (prefers-reduced-motion:reduce){
  .splash{display:none}
  .mini{transition:none}
}


/* ===== Tipografía moderna ===== */
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-size:16.5px;line-height:1.7}
h1,h2,h3{font-family:'Outfit','Plus Jakarta Sans',sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.08}
.brand{font-family:'Outfit',sans-serif;font-weight:800;font-size:1.6rem;letter-spacing:-.02em}
.hero h1{font-weight:800;font-size:clamp(3.2rem,11vw,7.6rem);line-height:.95;letter-spacing:-.04em}
.slogan{font-family:'Plus Jakarta Sans',sans-serif;font-weight:500;font-size:clamp(1.1rem,2.4vw,1.5rem);line-height:1.45}
.section h2{font-size:clamp(2.1rem,5vw,3.3rem);font-weight:700;letter-spacing:-.03em}
.schedule .time{font-family:'Outfit',sans-serif;font-weight:600;font-size:1.25rem;letter-spacing:0}
.schedule .prog{font-weight:600}
.verse p{font-family:'Outfit',sans-serif;font-weight:600;font-size:clamp(1.6rem,4.2vw,2.8rem);line-height:1.25;letter-spacing:-.02em}
.greet blockquote{font-family:'Plus Jakarta Sans',sans-serif;font-weight:500;font-size:1.05rem}
.dev-body h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:1.3rem;letter-spacing:-.01em}
.cards.feature .dev:first-child h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(1.8rem,3.4vw,2.5rem);letter-spacing:-.02em;line-height:1.1}
.event-date .d{font-family:'Outfit',sans-serif;font-weight:800;font-size:4rem}
.mini-info strong{font-family:'Outfit',sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:0}
.splash-name{font-family:'Outfit',sans-serif;font-weight:800;font-size:clamp(2.6rem,11vw,5rem);letter-spacing:-.03em}
.site-footer strong{font-family:'Outfit',sans-serif;font-weight:800;font-size:1.7rem;letter-spacing:-.02em}
.marquee{font-family:'Outfit',sans-serif;font-weight:700;font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase}

/* ===== Menú siempre horizontal e interactivo ===== */
@keyframes livedot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.6);opacity:.5}}
.menu-toggle{display:none!important}
.menu{position:relative;flex-wrap:nowrap;gap:2px}
.menu>a,.menu .more-btn{position:relative;z-index:1;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.92rem;padding:10px 16px;border-radius:999px;white-space:nowrap;
  background:transparent;box-shadow:none;transition:color .2s,transform .2s}
.menu a.current{box-shadow:none;border-radius:999px;background:color-mix(in srgb,var(--on-primary) 14%,transparent);color:var(--on-primary)}
.menu>a:hover,.menu .more-btn:hover{transform:translateY(-1px)}
.menu.menu-ready a:hover,.menu.menu-ready a.current,.menu.menu-ready .more-btn:hover{background:transparent}
.menu.menu-ready .more-btn.current{color:var(--on-primary)}
.menu-ind{position:absolute;left:0;top:50%;height:38px;margin-top:-19px;width:0;border-radius:999px;pointer-events:none;opacity:0;z-index:0;
  background:color-mix(in srgb,var(--accent) 24%,transparent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);
  transition:transform .4s cubic-bezier(.3,.9,.3,1),width .4s cubic-bezier(.3,.9,.3,1),opacity .25s}
.menu a.live-btn{margin-left:10px;padding:10px 20px;z-index:1}
.menu a.live-btn::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:9px;animation:livedot 1.6s ease-in-out infinite}

@media (min-width:901px){
  .more-menu{display:flex;visibility:hidden;opacity:0;transform:translate(-50%,-8px);transition:opacity .25s,transform .25s,visibility 0s .25s}
  .more.open .more-menu{visibility:visible;opacity:1;transform:translate(-50%,0);transition:opacity .25s,transform .25s}
  .more-menu a{padding:10px 16px;border-radius:8px;font-weight:600;font-size:.92rem}
  .more-menu a:hover{background:color-mix(in srgb,var(--on-primary) 12%,transparent)}
}
@media (max-width:1100px) and (min-width:901px){
  .menu>a,.menu .more-btn{padding:10px 11px;font-size:.88rem}
  .menu a.live-btn{padding:10px 14px;margin-left:6px}
}
@media (max-width:900px){
  html{scroll-padding-top:112px}
  .bar{flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:8px 0 0}
  .brand{align-self:center}
  .site-header.scrolled .brand{max-height:0;opacity:0}
  .menu{display:flex;position:relative;left:auto;right:auto;top:auto;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;
    overflow-x:auto;overflow-y:hidden;gap:4px;margin-inline:-22px;padding:6px 22px 10px;background:transparent;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%)}
  .menu::-webkit-scrollbar{display:none}
  .menu a{flex:none;text-align:center;padding:10px 16px;border:0;background:transparent}
  .menu a.current{box-shadow:none;border-radius:999px}
  .menu a.live-btn{order:-1;margin:0 8px 0 0}
  .more,.more-menu{display:contents}
  .more-btn{display:none!important}
}

.menu>a,.menu .more-btn{line-height:1.3}
.menu a.live-btn{border-radius:999px;padding:11px 22px}


/* ===== Barra superior fija y flotante: logo y menú en una sola fila ===== */
:root{--hh:78px}
html{scroll-padding-top:96px}
.site-header{position:sticky;top:0;height:var(--hh);margin-bottom:calc(var(--hh) * -1);z-index:60;
  background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}
.site-header .wrap.bar{pointer-events:auto;position:relative;flex-direction:row;align-items:center;justify-content:space-between;gap:14px;
  width:min(1180px,100% - 24px);height:58px;min-height:0;margin:10px auto 0;padding:0 8px 0 20px;border-radius:999px;
  background:color-mix(in srgb,var(--primary) 76%,transparent);border:1px solid color-mix(in srgb,var(--on-primary) 14%,transparent);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:0 14px 40px rgba(0,0,0,.45);transition:background .3s,box-shadow .3s,margin .3s}
.site-header .bar::after{content:"";position:absolute;left:36px;right:36px;bottom:-1px;height:2px;border-radius:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.75}
.site-header.scrolled .bar{background:color-mix(in srgb,var(--primary) 92%,transparent);box-shadow:0 18px 50px rgba(0,0,0,.6)}
.brand,.site-header.scrolled .brand{display:flex;align-items:center;gap:10px;flex:none;max-height:none;opacity:1;overflow:visible;text-align:left;
  font-size:1.3rem;line-height:1;transition:transform .25s}
.brand:hover{transform:scale(1.03)}
.brand img.mark{height:36px;width:auto}
.brand img.logo{height:40px;width:auto;max-width:240px;object-fit:contain}
.menu{margin-left:auto;margin-right:0;justify-content:flex-end;flex:0 1 auto;min-width:0}
.more-menu{left:auto;right:0;transform:translateY(-8px)}
.more.open .more-menu{transform:none}
.hero{padding-top:calc(var(--hh) + 64px)}

@media (min-width:901px){
  .more-menu{top:calc(100% + 16px);transform:translateY(-8px)}
  .more.open .more-menu{transform:none}
}
@media (max-width:1100px) and (min-width:901px){
  .brand span{display:none}
}
@media (max-width:900px){
  :root{--hh:70px}
  html{scroll-padding-top:84px}
  .site-header .wrap.bar{flex-direction:row;align-items:center;height:54px;padding:0 6px 0 14px;gap:6px;border-radius:20px;margin-top:8px}
  .brand span{display:none}
  .brand img.mark{height:34px}
  .brand img.logo{height:30px;max-width:128px}
  .menu{flex:1 1 auto;justify-content:flex-start;margin:0;padding:0 14px 0 8px;background:transparent;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 20px),transparent 100%)}
  .hero{padding-top:calc(var(--hh) + 36px)}
}


/* ===== Versículo del día y noticias ===== */
.verse-title{font-size:clamp(1.1rem,2.4vw,1.4rem);font-weight:700;letter-spacing:.02em;color:var(--accent);margin-bottom:6px}
.verse-date{opacity:.75;font-weight:600;margin-bottom:34px}
.verse .btn{margin-top:36px}
.verse .btn.ghost{background:color-mix(in srgb,var(--on-primary) 16%,transparent);color:var(--on-primary)}
.verse .btn.ghost:hover{background:color-mix(in srgb,var(--on-primary) 28%,transparent)}
.news-card .dev-body{align-content:start;justify-items:start;text-align:left;height:100%;grid-template-rows:auto auto 1fr auto}
.news-src{display:inline-block;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);padding:4px 10px;border-radius:999px}
.news-card h3{font-size:1.15rem;line-height:1.3}
.news-card h3 a{text-decoration:none;color:var(--text)}
.news-card h3 a:hover{color:var(--accent)}
.news-card p{font-size:.95rem;color:color-mix(in srgb,var(--text) 78%,transparent)}
.news-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:6px;font-size:.88rem}
.news-foot time{color:color-mix(in srgb,var(--text) 60%,transparent);font-weight:600}
.news-more{font-weight:700;color:var(--accent);text-decoration:none}
.news-more::after{content:" →"}
.news-more:hover{text-decoration:underline}
.news-credit{margin-top:26px;text-align:center;font-size:.88rem;color:color-mix(in srgb,var(--text) 60%,transparent)}
.news-card.fresh{animation:rise .6s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*70ms)}
.verse p.verse-date{font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;font-weight:600;line-height:1.4;letter-spacing:0;margin-bottom:34px}


/* ===== Chat de la comunidad ===== */
@keyframes typing{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}
.chat{width:min(580px,100%);margin:34px auto 0;border-radius:22px;overflow:hidden;text-align:left;
  background:color-mix(in srgb,var(--text) 7%,var(--bg));border:1px solid color-mix(in srgb,var(--text) 14%,transparent);box-shadow:0 26px 70px rgba(0,0,0,.4)}
.chat[hidden]{display:none}
.chat-head{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--primary);color:var(--on-primary);border-bottom:2px solid var(--accent)}
.chat-avatar{width:46px;height:46px;border-radius:50%;background:color-mix(in srgb,var(--on-primary) 10%,transparent);padding:7px;object-fit:contain;flex:none}
.chat-head strong{display:block;font-family:'Outfit',sans-serif;font-size:1.1rem;line-height:1.2}
.chat-head span{display:block;font-size:.85rem;opacity:.8}
.chat-log{height:min(420px,56vh);overflow-y:auto;padding:20px 18px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.msg{max-width:84%;padding:11px 15px;border-radius:18px;line-height:1.5;font-size:.97rem;word-wrap:break-word;overflow-wrap:anywhere;animation:rise .35s cubic-bezier(.2,.7,.2,1)}
.msg.bot{align-self:flex-start;border-bottom-left-radius:6px;background:color-mix(in srgb,var(--text) 13%,transparent)}
.msg.me{align-self:flex-end;border-bottom-right-radius:6px;background:var(--accent);color:var(--on-accent)}
.msg.typing{display:flex;gap:5px;padding:14px 16px}
.msg.typing i{width:8px;height:8px;border-radius:50%;background:currentColor;animation:typing 1.1s ease-in-out infinite}
.msg.typing i:nth-child(2){animation-delay:.15s}.msg.typing i:nth-child(3){animation-delay:.3s}
.msg .wa-cta{display:inline-flex;align-items:center;gap:10px;margin-top:10px;padding:12px 18px;border-radius:999px;background:#25D366;color:#073b17;font-weight:800;text-decoration:none;transition:transform .2s,filter .2s}
.msg .wa-cta:hover{transform:translateY(-2px);filter:brightness(1.08)}
.chat-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 14px}
.chat-chips:empty{display:none}
.chat-chips button{font:700 .9rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;padding:9px 16px;border-radius:999px;background:transparent;color:var(--text);
  border:1.5px solid color-mix(in srgb,var(--accent) 70%,transparent);transition:background .2s,color .2s,transform .2s;animation:rise .4s backwards}
.chat-chips button:hover{background:var(--accent);color:var(--on-accent);transform:translateY(-2px)}
.chat-input{display:flex;gap:10px;padding:12px 14px;border-top:1px solid color-mix(in srgb,var(--text) 12%,transparent);background:color-mix(in srgb,var(--text) 4%,var(--bg))}
.chat-input .chat-text{flex:1;min-width:0;font:inherit;padding:12px 16px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--text) 20%,transparent);background:color-mix(in srgb,var(--text) 7%,var(--bg));color:var(--text)}
.chat-input .chat-text:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent)}
.chat-input .chat-text:disabled{opacity:.5}
.chat-input button{flex:none;width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);transition:transform .2s,opacity .2s}
.chat-input button:hover:not(:disabled){transform:scale(1.08)}
.chat-input button:disabled{opacity:.4;cursor:not-allowed}
@media (prefers-reduced-motion:reduce){.msg,.chat-chips button{animation:none}.msg.typing i{animation:none}}


/* ===== Centro bíblico ===== */
body.modal-open{overflow:hidden}
.verse-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:36px}
.verse-actions .btn{margin-top:0}
.bib-tabs{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:4px 2px 12px;margin:0 -2px 22px;justify-content:safe center;scrollbar-width:none}
.bib-tabs::-webkit-scrollbar{display:none}
.bib-tabs button,.chips button,.seg button{flex:none;font:700 .92rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;padding:10px 18px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--text) 20%,transparent);
  background:transparent;color:var(--text);white-space:nowrap;transition:background .2s,color .2s,border-color .2s,transform .2s}
.bib-tabs button:hover,.chips button:hover{border-color:var(--accent);transform:translateY(-2px)}
.bib-tabs button.on,.chips button.on,.seg button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.bib-view{max-width:880px;margin-inline:auto;text-align:left;min-height:160px}
.bib-view[aria-busy=true]{opacity:.55}
.bib-intro{text-align:center;margin-bottom:22px;color:color-mix(in srgb,var(--text) 85%,transparent)}
.bib-note{text-align:center;margin-top:18px}
.bib-empty{text-align:center;padding:30px 10px}
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:22px}
.bib-view .actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}

.mood-panel{animation:rise .45s cubic-bezier(.2,.7,.2,1)}
.mood-intro{text-align:center;font-weight:600;font-size:1.1rem;margin-bottom:18px}
.mood-verse{margin:0 0 14px;padding:20px 22px;border-radius:14px;border-left:5px solid var(--accent);background:color-mix(in srgb,var(--text) 7%,var(--bg));text-align:left}
.mood-verse p{font-family:'Outfit',sans-serif;font-weight:500;font-size:1.15rem;line-height:1.5}
.mood-verse footer{margin:8px 0 12px;font-weight:800;color:var(--accent)}
.mood-prayer{margin-top:20px;padding:20px 22px;border-radius:14px;background:color-mix(in srgb,var(--accent) 14%,transparent);text-align:center}
.mood-prayer strong{display:block;margin-bottom:6px;color:var(--accent)}

.reader-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin-bottom:12px}
.reader-bar select,.reader-search input{font:inherit;padding:10px 14px;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);background:color-mix(in srgb,var(--text) 7%,var(--bg));color:var(--text)}
.reader-bar button{font:700 1rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;min-width:44px;height:44px;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);background:transparent;color:var(--text)}
.reader-bar button:hover{border-color:var(--accent);color:var(--accent)}
.reader-search{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:14px}
.reader-search input{flex:1 1 220px;min-width:0}
.r-results{margin-bottom:16px;padding:14px;border-radius:12px;background:color-mix(in srgb,var(--text) 6%,var(--bg));max-height:340px;overflow-y:auto}
.r-results h3{font-size:1.1rem;margin-bottom:8px}
.res{display:block;width:100%;text-align:left;font:inherit;cursor:pointer;padding:10px 12px;margin-bottom:6px;border-radius:10px;border:0;background:color-mix(in srgb,var(--text) 7%,transparent);color:var(--text)}
.res:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.res strong{display:block;color:var(--accent)}
.res.fav{display:flex;gap:8px;align-items:center;padding:0;background:transparent}
.res-open{flex:1;text-align:left;font:inherit;cursor:pointer;padding:10px 12px;border-radius:10px;border:0;background:color-mix(in srgb,var(--text) 7%,transparent);color:var(--text)}
.res-open strong{display:block;color:var(--accent)}
.res-del{font:700 .85rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;border:0;border-radius:8px;padding:8px 12px;background:transparent;color:var(--text);text-decoration:underline}
.r-text{padding:22px;border-radius:14px;background:color-mix(in srgb,var(--text) 6%,var(--bg));line-height:1.8}
.r-text h3{font-size:1.6rem;margin-bottom:14px;text-align:center}
.r-text .vs{margin:0 0 6px;padding:2px 6px;border-radius:6px;cursor:pointer;transition:background .2s}
.r-text .vs sup{color:var(--accent);font-weight:800;margin-right:2px}
.r-text .vs:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}
.r-text .vs.sel{background:color-mix(in srgb,var(--accent) 28%,transparent)}
.r-actions{position:sticky;bottom:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin-top:14px;padding:12px;border-radius:14px;
  background:var(--primary);color:var(--on-primary);border:1px solid color-mix(in srgb,var(--on-primary) 18%,transparent);box-shadow:0 14px 40px rgba(0,0,0,.45)}
.r-actions[hidden]{display:none}
.r-sel{font-weight:800;color:var(--accent);margin-right:6px}
.r-actions .btn.ghost{background:color-mix(in srgb,var(--on-primary) 16%,transparent);color:var(--on-primary)}

.plan-today{text-align:center;padding:26px 20px;border-radius:16px;background:color-mix(in srgb,var(--text) 7%,var(--bg));border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}
.plan-day{display:inline-block;font-weight:800;font-size:.85rem;color:var(--on-accent);background:var(--accent);padding:4px 12px;border-radius:999px}
.plan-today h3{font-size:clamp(1.6rem,4vw,2.2rem);margin:12px 0 6px}
.progress-bar{height:12px;border-radius:999px;background:color-mix(in srgb,var(--text) 14%,transparent);overflow:hidden;margin:22px 0 8px}
.progress-bar span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .5s}
.plan .muted.small{text-align:center}
.plan-all{margin-top:16px;border-radius:12px;background:color-mix(in srgb,var(--text) 5%,var(--bg));padding:6px 14px}
.plan-all summary{cursor:pointer;font-weight:700;padding:10px 0}
.plan-all ul{list-style:none;max-height:340px;overflow-y:auto;padding-bottom:8px}
.plan-all li{padding:6px 0;border-top:1px solid color-mix(in srgb,var(--text) 8%,transparent)}
.plan .btn.small{margin:16px auto 0;display:block}

.memo{text-align:center}
.memo-ref{font-family:'Outfit',sans-serif;font-weight:800;color:var(--accent);font-size:1.2rem;margin-bottom:8px}
.memo-text{font-family:'Outfit',sans-serif;font-weight:500;font-size:clamp(1.3rem,3.2vw,1.8rem);line-height:1.6;padding:22px;border-radius:14px;background:color-mix(in srgb,var(--text) 7%,var(--bg));margin-bottom:18px}
.blank{font:inherit;cursor:pointer;border:0;border-bottom:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);padding:0 6px;border-radius:6px 6px 0 0;letter-spacing:.06em}
.memo-level{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;font-weight:700}
.memo-level input{accent-color:var(--accent);width:min(260px,70%)}
.memo-check{margin-top:18px}
.memo-check textarea{width:100%;font:inherit;padding:14px;border-radius:12px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);background:color-mix(in srgb,var(--text) 7%,var(--bg));color:var(--text);margin-bottom:10px}
.memo-result{margin-top:10px;font-weight:700}

.trivia-game{padding:22px;border-radius:16px;background:color-mix(in srgb,var(--text) 7%,var(--bg))}
.quiz-q{font-size:1.5rem;margin:6px 0 16px;line-height:1.25}
.quiz-opts{display:grid;gap:10px;margin-bottom:14px}
.quiz-opt{font:700 1rem 'Plus Jakarta Sans',sans-serif;text-align:left;cursor:pointer;padding:14px 18px;border-radius:12px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);background:transparent;color:var(--text);transition:background .2s,border-color .2s}
.quiz-opt:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.quiz-opt.right{background:color-mix(in srgb,#2ea05a 35%,transparent);border-color:#2ea05a}
.quiz-opt.wrong{background:color-mix(in srgb,#e5484d 35%,transparent);border-color:#e5484d}
.trivia-name{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.trivia-name input{flex:1 1 200px;font:inherit;padding:10px 14px;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);background:color-mix(in srgb,var(--text) 7%,var(--bg));color:var(--text)}
.trivia-game .btn{margin-top:10px}
.trivia-rank{margin-top:28px;padding:18px 22px;border-radius:14px;background:color-mix(in srgb,var(--text) 5%,var(--bg))}
.trivia-rank h3{font-size:1.2rem;margin-bottom:8px}
.rank-list{padding-left:24px}
.rank-list li{padding:3px 0;font-weight:600}

.kid{margin-bottom:10px;border-radius:14px;background:color-mix(in srgb,var(--text) 7%,var(--bg));overflow:hidden}
.kid>summary{cursor:pointer;display:flex;align-items:center;gap:14px;padding:14px 18px;font-family:'Outfit',sans-serif;font-weight:700;font-size:1.2rem}
.kid-e{font-size:2rem;line-height:1}
.kid-body{padding:4px 20px 18px}
.kid-q{margin-top:10px;padding:8px 14px;border-radius:10px;background:color-mix(in srgb,var(--text) 6%,transparent)}
.kid-q summary{cursor:pointer;font-weight:700;color:var(--accent)}

.people-q{display:block;width:min(420px,100%);margin:0 auto 20px;font:inherit;padding:12px 16px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--text) 22%,transparent);background:color-mix(in srgb,var(--text) 7%,var(--bg));color:var(--text)}
.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.person{padding:18px 20px;border-radius:14px;background:color-mix(in srgb,var(--text) 7%,var(--bg))}
.person[hidden]{display:none}
.person h3{font-size:1.25rem;margin:8px 0}
.person-tag{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}

.timeline{list-style:none;position:relative;padding-left:26px;margin-left:8px;border-left:3px solid color-mix(in srgb,var(--accent) 55%,transparent)}
.timeline li{position:relative;margin-bottom:22px}
.timeline li::before{content:"";position:absolute;left:-36px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 25%,transparent)}
.tl-date{display:inline-block;font-weight:800;font-size:.85rem;color:var(--accent)}
.timeline h3{font-size:1.25rem;margin:2px 0 4px}

.cal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.cal-card{padding:20px;border-radius:16px;background:color-mix(in srgb,var(--text) 7%,var(--bg));text-align:center}
.cal-days{display:flex;flex-direction:column;align-items:center;margin-bottom:8px}
.cal-days strong{font-family:'Outfit',sans-serif;font-size:3rem;line-height:1;color:var(--accent)}
.cal-days span{font-weight:700}
.cal-card h3{font-size:1.3rem}
.cal-card blockquote{margin:12px 0;font-size:.95rem}
.cal-card footer{font-weight:800;color:var(--accent);margin-top:4px}

/* Tarjeta del versículo */
.card-modal{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.78);display:grid;place-items:center;padding:14px;overflow-y:auto}
.card-modal[hidden]{display:none}
.card-box{position:relative;width:min(520px,100%);max-height:100%;overflow-y:auto;padding:16px;border-radius:18px;background:var(--bg);color:var(--text);border:1px solid color-mix(in srgb,var(--text) 16%,transparent)}
.card-close{position:absolute;top:8px;right:10px;z-index:2;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;font-size:1.6rem;line-height:1;background:rgba(0,0,0,.55);color:#fff}
.card-preview{display:grid;place-items:center;margin-bottom:12px}
.card-preview canvas{width:100%;max-height:56vh;object-fit:contain;border-radius:12px;background:#000}
.card-ctrl{display:grid;gap:10px;justify-items:center}
.seg{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.seg button{padding:8px 14px;font-size:.85rem}
.card-ctrl .actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

@media (max-width:900px){.bib-tabs{justify-content:flex-start}.r-text{padding:16px}}


/* ===== Ventana para instalar la app ===== */
.install-sheet{position:fixed;left:50%;bottom:0;width:min(540px,100%);z-index:130;padding:18px 18px 20px;border-radius:24px 24px 0 0;
  background:var(--primary);color:var(--on-primary);border:1px solid color-mix(in srgb,var(--on-primary) 16%,transparent);border-bottom:0;
  box-shadow:0 -24px 70px rgba(0,0,0,.6);transform:translate(-50%,110%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.install-sheet.show{transform:translate(-50%,0)}
.install-sheet::before{content:"";position:absolute;left:50%;top:8px;width:44px;height:4px;margin-left:-22px;border-radius:4px;background:color-mix(in srgb,var(--on-primary) 30%,transparent)}
.is-head{display:flex;align-items:center;gap:14px;margin-top:8px}
.is-icon{width:58px;height:58px;border-radius:14px;flex:none;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.is-head strong{display:block;font-family:'Outfit',sans-serif;font-size:1.15rem;line-height:1.2}
.is-head span{display:block;font-size:.9rem;opacity:.8;margin-top:2px}
.is-close{margin-left:auto;align-self:flex-start;width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;font-size:1.5rem;line-height:1;background:color-mix(in srgb,var(--on-primary) 12%,transparent);color:inherit}
.install-sheet .btn{display:block;width:100%;margin-top:16px;text-align:center}
.is-steps{margin:14px 0 0 22px;display:grid;gap:8px;font-size:.98rem}
.is-steps svg{vertical-align:-3px;margin:0 2px}
.is-note{margin-top:14px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--on-primary) 10%,transparent);font-size:.95rem}
.is-foot{display:flex;justify-content:space-between;gap:10px;margin-top:14px}
.is-foot button{background:transparent;border:0;color:inherit;opacity:.75;text-decoration:underline;cursor:pointer;font:600 .9rem 'Plus Jakarta Sans',sans-serif;padding:6px 2px}
@media (prefers-reduced-motion:reduce){.install-sheet{transition:none}}
