/* MEDHUB INDEX 2.12: presentación blanca, sin nombres duplicados */
body.index-locked{overflow:hidden}
body.index-locked>.app,body.index-locked>.note{visibility:hidden}
.index-entry{position:fixed;inset:0;z-index:99999;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:auto;isolation:isolate;color:#242121;font-family:inherit;transition:opacity .55s ease,visibility .55s ease}
.index-entry[hidden]{display:none!important}
.index-entry.entry-leaving{opacity:0;visibility:hidden;pointer-events:none}
.entry-light{display:none}
.entry-center{width:min(94%,1000px);text-align:center;margin:auto auto 12px;padding:42px 0 0}
.entry-logo{display:block;width:min(90vw,870px);height:auto;max-height:230px;object-fit:contain;margin:0 auto;animation:entry-reveal 1.2s ease both}
.entry-caption{font-size:13px;letter-spacing:.29em;color:#555052;margin:30px 0 0;animation:entry-reveal 1.4s .2s ease both}
.entry-access{margin:38px auto 0;padding:25px 32px 27px;width:min(100%,550px);box-sizing:border-box;border:1px solid #e5dfdc;border-radius:18px;background:#fff;box-shadow:0 14px 35px rgba(80,60,50,.065);opacity:0;transform:translateY(10px);transition:opacity .75s ease,transform .75s ease}
.index-entry.entry-ready .entry-access{opacity:1;transform:translateY(0)}
.entry-eyebrow{font-size:12px;letter-spacing:.23em;color:#78594e;font-weight:650}
.entry-lock{font-size:36px;line-height:1.1;color:#85132f;margin:10px 0 3px}
.entry-access h1{font-size:27px;letter-spacing:-.03em;font-weight:650;margin:5px 0 7px;color:#242021}
.entry-access p{font-size:15px;line-height:1.5;color:#777174;margin:0 0 19px}
.entry-access button{border:0;background:#850b2b;color:white;border-radius:9px;padding:15px 26px;font:inherit;font-weight:650;font-size:16px;cursor:pointer;min-height:49px;min-width:260px;transition:background .2s,transform .2s}
.entry-access button:hover{background:#6d0822;transform:translateY(-1px)}
.entry-access button:focus-visible{outline:3px solid #caa5af;outline-offset:3px}
.entry-access button span{margin-left:20px}
.entry-access small{display:block;font-size:12px;color:#888184;margin-top:18px}
.entry-footer{width:min(94%,1160px);margin:24px auto clamp(22px,5vh,55px);padding:18px 12px 0;border-top:1px solid #dedbd9;text-align:center;flex-shrink:0;box-sizing:border-box}
.entry-footer img{display:block;width:min(100%,1020px);height:auto;max-height:140px;object-fit:contain;margin:auto;opacity:.78;filter:grayscale(1)}
@keyframes entry-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.entry-center{padding-top:24px}.entry-logo{width:94vw}.entry-caption{font-size:9px;letter-spacing:.13em;margin-top:24px}.entry-access{margin-top:26px;padding:24px 15px}.entry-access h1{font-size:23px}.entry-access p{font-size:13px}.entry-access button{min-width:0;width:100%}.entry-footer{margin-top:20px}.entry-footer img{max-height:90px}}
@media(max-height:650px){.entry-center{padding-top:10px}.entry-logo{max-height:120px}.entry-caption{margin-top:12px}.entry-access{margin-top:14px;padding:14px}.entry-footer{margin-bottom:8px;margin-top:8px}.entry-footer img{max-height:70px}}
@media(prefers-reduced-motion:reduce){.entry-logo,.entry-caption{animation:none}.entry-access,.index-entry{transition:none}}

/* v2.13: zócalo discreto y movimiento orbital delicado */
.entry-footer{width:min(90%,970px);margin-top:20px;padding-top:13px}
.entry-footer img{width:min(100%,610px);max-height:90px;opacity:.68}
.entry-access{position:relative;isolation:isolate}
.entry-access::before,.entry-access::after{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:calc(100% + 100px);height:calc(100% + 75px);border:1px solid rgba(135,20,52,.10);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.entry-access::after{width:calc(100% + 145px);height:calc(100% + 112px);border-color:rgba(135,20,52,.055);animation:index-orbit 13s linear infinite}
.entry-access::before{animation:index-orbit 18s linear infinite reverse}
@keyframes index-orbit{0%{transform:translate(-50%,-50%) rotate(0deg) scaleX(.98)}50%{transform:translate(-50%,-50%) rotate(180deg) scaleX(1.03)}100%{transform:translate(-50%,-50%) rotate(360deg) scaleX(.98)}}
.entry-access button{animation:index-breathe 3.8s ease-in-out infinite}
@keyframes index-breathe{0%,100%{box-shadow:0 3px 12px rgba(133,11,43,.10)}50%{box-shadow:0 6px 22px rgba(133,11,43,.23)}}
@media(max-width:600px){.entry-footer img{width:min(100%,440px);max-height:72px}.entry-access::before,.entry-access::after{width:calc(100% + 18px);height:calc(100% + 30px)}}
@media(prefers-reduced-motion:reduce){.entry-access::before,.entry-access::after,.entry-access button{animation:none}}

/* v2.14: reducción proporcional de ambos logos; conservar animaciones v2.13 */
.entry-logo{width:min(76vw,680px);max-height:190px}
.entry-footer img{width:min(100%,410px);max-height:64px}
@media(max-width:600px){.entry-logo{width:min(88vw,500px);max-height:145px}.entry-footer img{width:min(78vw,330px);max-height:54px}}
@media(max-height:650px){.entry-logo{max-height:115px}.entry-footer img{max-height:48px}}

/* v2.15: dos órbitas laterales independientes, sin rodear ni cubrir el acceso */
.entry-access::before,.entry-access::after{
  top:50%;width:165px;height:270px;border-radius:50%;
  border:1px solid rgba(135,20,52,.17);
  background:radial-gradient(circle at 50% 0%,rgba(135,20,52,.72) 0 3px,rgba(135,20,52,.17) 5px,transparent 11px);
  box-shadow:none;pointer-events:none;z-index:-1;
}
.entry-access::before{left:-112px;animation:index-side-orbit 19s linear infinite}
.entry-access::after{left:auto;right:-112px;animation:index-side-orbit 23s linear infinite reverse}
@keyframes index-side-orbit{from{transform:translateY(-50%) rotate(0deg)}to{transform:translateY(-50%) rotate(360deg)}}
@media(max-width:850px){.entry-access::before,.entry-access::after{width:75px;height:200px;opacity:.45}.entry-access::before{left:-35px}.entry-access::after{right:-35px}}
@media(max-width:600px){.entry-access::before,.entry-access::after{width:35px;height:135px;opacity:.24}.entry-access::before{left:-13px}.entry-access::after{right:-13px}}
@media(prefers-reduced-motion:reduce){.entry-access::before,.entry-access::after{animation:none}}

/* v2.16 — semilunas amplias y tenues a ambos lados, sin círculos ni puntos */
.entry-access::before,.entry-access::after{
  content:"";position:absolute;top:50%;z-index:-1;pointer-events:none;
  width:clamp(170px,23vw,340px);height:clamp(390px,57vh,590px);
  border:0;background:none;box-shadow:none;opacity:.68;
  border-radius:50%;
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,#000 24%,#000 75%,transparent 99%);
  mask-image:linear-gradient(to bottom,transparent 1%,#000 24%,#000 75%,transparent 99%);
}
.entry-access::before{
  left:auto;right:calc(100% + 44px);
  border-left:2px solid rgba(130,35,62,.14);
  box-shadow:inset 8px 0 18px -16px rgba(130,35,62,.12);
  animation:index-crescent-left 17s ease-in-out infinite alternate;
}
.entry-access::after{
  right:auto;left:calc(100% + 44px);
  border-right:2px solid rgba(130,35,62,.14);
  animation:index-crescent-right 19s ease-in-out infinite alternate;
}
@keyframes index-crescent-left{
  0%{transform:translateY(-50%) translateX(0) rotate(-5deg);opacity:.37}
  50%{opacity:.70}
  100%{transform:translateY(-50%) translateX(16px) rotate(5deg);opacity:.42}
}
@keyframes index-crescent-right{
  0%{transform:translateY(-50%) translateX(0) rotate(5deg);opacity:.38}
  50%{opacity:.67}
  100%{transform:translateY(-50%) translateX(-16px) rotate(-5deg);opacity:.44}
}
@media(max-width:1100px){
  .entry-access::before{right:calc(100% + 5px)}
  .entry-access::after{left:calc(100% + 5px)}
}
@media(max-width:700px){
  .entry-access::before,.entry-access::after{width:105px;height:290px;border-width:1px;opacity:.35}
  .entry-access::before{right:calc(100% - 28px)}
  .entry-access::after{left:calc(100% - 28px)}
}
@media(prefers-reduced-motion:reduce){.entry-access::before,.entry-access::after{animation:none;transform:translateY(-50%)}}

/* v2.17 — cuadro de acceso ligeramente más compacto; semilunas intactas */
.entry-access{width:min(100%,490px);padding:20px 27px 22px;margin-top:32px;border-radius:16px}
.entry-access h1{font-size:24px;margin:4px 0 6px}
.entry-access p{font-size:14px;margin-bottom:15px}
.entry-lock{font-size:31px;margin:8px 0 2px}
.entry-access button{min-height:45px;padding:12px 24px;font-size:15px}
.entry-access small{margin-top:13px}
@media(max-width:600px){.entry-access{width:min(100%,440px);padding:19px 16px 20px;margin-top:24px}.entry-access h1{font-size:22px}}

/* v2.18 — acceso más pequeño y botón gris tenue; resto sin cambios */
.entry-access{width:min(100%,410px);padding:16px 22px 18px;margin-top:26px;border-radius:15px}
.entry-access h1{font-size:22px;margin:3px 0 5px}
.entry-access p{font-size:13px;margin-bottom:12px}
.entry-lock{font-size:27px;margin:5px 0 1px}
.entry-access button{background:#a5a3a5;color:#fff;min-width:205px;min-height:41px;padding:10px 20px;font-size:14px;font-weight:550}
.entry-access button:hover{background:#89878a}
.entry-access button:focus-visible{outline-color:#b9b6b9}
.entry-access small{font-size:11px;margin-top:11px}
@media(max-width:600px){.entry-access{width:min(100%,365px);padding:16px 14px 17px;margin-top:21px}.entry-access h1{font-size:21px}.entry-access button{min-width:0;width:100%}}

/* v3.7 — presentación: botón CONTINUAR aislado, pequeño y sin recuadro */
.entry-access{
  width: min(100%, 410px);
  padding: 0;
  margin: 28px auto 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.entry-access #entry-open{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 142px;
  min-height: 36px;
  padding: 9px 19px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .11em;
}
@media(max-width:600px){
  .entry-access{width:min(100%, 320px);padding:0;margin-top:22px}
  .entry-access #entry-open{width:auto;min-width:136px;min-height:36px}
}

/* v3.8 — elevar juntos logo, leyenda y botón; pie institucional intacto */
@media (min-width: 701px) and (min-height: 751px) {
  .index-entry .entry-center { position: relative; top: -105px; }
}
@media (min-width: 701px) and (max-height: 750px) {
  .index-entry .entry-center { position: relative; top: -45px; }
}
@media (max-width: 700px) {
  .index-entry .entry-center { position: relative; top: -24px; }
}
@media (max-height: 530px) {
  .index-entry .entry-center { top: 0; }
}
