/* ==========================================================
   Welcome — Correct Bible / Biblia Correcta
========================================================== */

.ib-welcome{
  min-height:100dvh;
  width:100%;
  box-sizing:border-box;
  color:#17243a;
  padding:0;
  display:flex;
  align-items:stretch;
  justify-content:center;
  position:relative;
  overflow:auto !important;
  background:linear-gradient(180deg,#f8fbff 0%,#f3f6fb 100%);
}

.ib-welcome *,
.ib-welcome *::before,
.ib-welcome *::after{
  box-sizing:border-box;
}

.ib-welcome__shell{
  position:relative;
  width:100%;
  max-width:430px;
  min-height:100dvh;
  padding:0 28px 28px;
  overflow:visible;
}

/* Header azul corto */
.ib-welcome__shell::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:122px;
  background:
    radial-gradient(circle at 88% 20%, rgba(255,255,255,.16), transparent 36%),
    linear-gradient(135deg,#0f2442 0%,#1f3f73 48%,#3B5998 100%);
  border-bottom-left-radius:34px;
  border-bottom-right-radius:34px;
  z-index:0;
}

.ib-welcome__shell::after{
  display:none;
}

.ib-welcome__topbar{
  position:relative;
  z-index:1000;
}

.ib-welcome__inner{
  position:relative;
  z-index:2;
}

/* TOP BAR */

.ib-welcome__topbar{
  width:100%;
  min-height:122px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 42px;
  overflow:visible !important;
}

.ib-welcome__brand{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
}

.ib-welcome__logo{
  width:auto;
  max-width:108px;
  max-height:58px;
  object-fit:contain;
  display:block;
  filter:none !important;
}

.ib-welcome__brand span{
  color:#fff;
  font-family:"Philosopher", Georgia, serif;
  font-size:1.25rem;
  font-weight:700;
  line-height:1;
}

.ib-welcome__language{
  width:min(245px, 64vw);
  max-width:245px;
  position:relative;
  z-index:10000;
}

.ib-welcome__language .ib-lang-dd{
  width:100%;
  min-width:0;
  position:relative;
}

.ib-welcome__language .ib-lang-btn{
  width:100% !important;
  min-width:0 !important;
  min-height:50px !important;
  border-radius:15px !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(255,255,255,.78) !important;
  box-shadow:0 10px 22px rgba(0,0,0,.12) !important;
  opacity:1 !important;
}

.ib-welcome__language .ib-lang-panel{
  position:absolute !important;
  z-index:999999 !important;
  top:calc(100% + 8px) !important;
  left:0 !important;
  right:0 !important;
  background:#fff !important;
}

/* CONTENIDO */

.ib-welcome__inner{
  width:100%;
  max-width:380px;
  margin:0 auto;
  text-align:center;
}

.ib-welcome__title{
  margin:0 0 12px;
  color:#12305b;
  font-family:"Philosopher", Georgia, "Times New Roman", serif;
  font-size:2.12rem;
  font-weight:700;
  line-height:1.05;
  letter-spacing:-.025em;
}

.ib-welcome__title span,
.ib-welcome__title strong{
  display:block;
  font-weight:700;
}

.ib-welcome__slogan{
  max-width:340px;
  margin:0 auto 16px;
  color:#3B5998;
  font-family:"Philosopher", Georgia, "Times New Roman", serif;
  font-size:1.16rem;
  font-weight:700;
  line-height:1.22;
}

.ib-welcome__subtitle{
  max-width:340px;
  margin:0 auto 26px;
  color:#5b6b84;
  font-family:"Albert Sans","Roboto",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:.98rem;
  font-weight:500;
  line-height:1.5;
}

/* BOTONES */

.ib-welcome__actions{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ib-welcome__btn{
  width:100%;
  min-height:54px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none !important;
  font-family:"Albert Sans","Roboto",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:1.02rem;
  font-weight:800;
  padding:13px 22px;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}

.ib-welcome__btn--primary{
  background:#3B5998;
  color:#fff !important;
  border:1px solid #3B5998;
  box-shadow:0 14px 28px rgba(59,89,152,.24);
}

.ib-welcome__btn--primary:hover{
  background:#334d84 !important;
  border-color:#334d84 !important;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 18px 34px rgba(59,89,152,.28);
}

.ib-welcome__btn--secondary{
  background:#fff;
  border:1px solid #dce5f2;
  color:#1d2b42 !important;
  box-shadow:0 10px 22px rgba(15,35,70,.035);
}

.ib-welcome__btn--secondary:hover{
  background:#f4f8ff !important;
  border-color:#c9d9ef !important;
  color:#1d2b42 !important;
  transform:translateY(-1px);
}

.ib-welcome__btn--google{
  background:#fff;
  border:1px solid #dce5f2;
  color:#1d2b42 !important;
  box-shadow:0 10px 22px rgba(15,35,70,.04);
}

.ib-welcome__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  margin:8px auto 0;
  padding:7px 10px;
  color:#5b6b84 !important;
  font-family:"Albert Sans","Roboto",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:.95rem;
  font-weight:800;
  line-height:1.2;
  text-decoration:none !important;
}

.ib-welcome__link:hover{
  color:#3B5998 !important;
  text-decoration:underline !important;
}

/* Google Sign-In official-style button */

.ib-welcome .gsi-material-button{
  width:100%;
  min-height:54px;
  height:54px;
  max-width:none;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background-color:#fff;
  border:1px solid #dce5f2;
  border-radius:999px;
  color:#1f1f1f !important;
  cursor:pointer;
  font-family:"Roboto", Arial, sans-serif;
  font-size:15px;
  font-weight:500;
  letter-spacing:.25px;
  outline:none;
  overflow:hidden;
  padding:0 18px;
  position:relative;
  text-align:center;
  text-decoration:none !important;
  transition:background-color .218s, border-color .218s, box-shadow .218s, transform .18s ease;
  white-space:nowrap;
  box-shadow:0 10px 22px rgba(15,35,70,.04);
}

.ib-welcome .gsi-material-button .gsi-material-button-content-wrapper{
  align-items:center;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  height:100%;
  justify-content:center;
  position:relative;
  width:100%;
}

.ib-welcome .gsi-material-button .gsi-material-button-icon{
  height:20px;
  margin-right:12px;
  min-width:20px;
  width:20px;
  display:flex;
  align-items:center;
  justify-content:center;
}

[dir="rtl"] .ib-welcome .gsi-material-button .gsi-material-button-icon{
  margin-right:0;
  margin-left:12px;
}

.ib-welcome .gsi-material-button .gsi-material-button-icon svg{
  display:block;
  width:20px;
  height:20px;
}

.ib-welcome .gsi-material-button .gsi-material-button-contents{
  flex-grow:0;
  font-family:"Roboto", Arial, sans-serif;
  font-weight:500;
  overflow:hidden;
  text-overflow:ellipsis;
}

.ib-welcome .gsi-material-button .gsi-material-button-state{
  transition:opacity .218s;
  bottom:0;
  left:0;
  opacity:0;
  position:absolute;
  right:0;
  top:0;
}

.ib-welcome .gsi-material-button:hover{
  background-color:#fff !important;
  border-color:#c9d9ef !important;
  box-shadow:
    0 1px 2px 0 rgba(60,64,67,.30),
    0 1px 3px 1px rgba(60,64,67,.15);
  transform:translateY(-1px);
}

.ib-welcome .gsi-material-button:hover .gsi-material-button-state{
  background-color:#303030;
  opacity:8%;
}

.ib-welcome .gsi-material-button:active .gsi-material-button-state,
.ib-welcome .gsi-material-button:focus .gsi-material-button-state{
  background-color:#303030;
  opacity:12%;
}

.ib-welcome .gsi-material-button:active{
  transform:scale(.985) !important;
}

/* PRIVACIDAD */

.ib-welcome__privacy{
  max-width:340px;
  margin:28px auto 0;
  color:#7a889e;
  font-family:"Albert Sans","Roboto",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:.86rem;
  font-weight:500;
  line-height:1.45;
}

.ib-welcome__privacy a{
  color:#3B5998 !important;
  font-weight:800;
  text-decoration:none;
}

.ib-welcome__privacy a:hover{
  text-decoration:underline;
}

/* TAP / FOCUS */

.ib-welcome,
.ib-welcome *{
  -webkit-tap-highlight-color:rgba(0,0,0,0) !important;
}

.ib-welcome a,
.ib-welcome button,
.ib-welcome [role="button"]{
  -webkit-tap-highlight-color:transparent !important;
  -webkit-touch-callout:none !important;
  text-decoration:none;
  user-select:none;
  -webkit-user-select:none;
  touch-action:manipulation;
}

.ib-welcome a:focus-visible{
  outline:3px solid rgba(59,89,152,.24) !important;
  outline-offset:3px;
}

.ib-welcome__btn:active{
  transform:scale(.985) !important;
}

/* ==========================================================
   ESCRITORIO
========================================================== */

.ib-welcome__desktop-panel{
  display:none;
}

@media(min-width:900px){
  .ib-welcome{
    min-height:100dvh;
    padding:0;
    align-items:stretch;
    justify-content:stretch;
    background:#fff;
    overflow:hidden !important;
  }

  .ib-welcome__shell{
    width:100%;
    max-width:none;
    min-height:100dvh;
    height:100dvh;
    padding:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto 1fr;
    align-items:stretch;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:#fff;
    box-shadow:none;
    backdrop-filter:none;
  }

  .ib-welcome__shell::before{
    display:none;
  }

  .ib-welcome__desktop-panel{
    grid-column:1;
    grid-row:1 / 3;
    display:flex;
    position:relative;
    min-height:100dvh;
    padding:56px 72px;
    overflow:hidden;
    border-radius:0;
    background:
      radial-gradient(circle at 88% 18%, rgba(255,255,255,.16), transparent 34%),
      radial-gradient(circle at 12% 86%, rgba(255,255,255,.10), transparent 32%),
      linear-gradient(135deg,#0f2442 0%,#1f3f73 48%,#3B5998 100%);
    color:#fff;
  }

  .ib-welcome__desktop-panel::after{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    right:-160px;
    bottom:-150px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
  }

  .ib-welcome__desktop-panel-inner{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  max-width:620px;
  width:100%;
  padding-top:0px;
}

  .ib-welcome__desktop-logo-wrap{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  margin:0 0 64px;
}

  .ib-welcome__desktop-logo{
    width:auto;
    max-width:170px;
    max-height:74px;
    display:block;
    object-fit:contain;
}

  .ib-welcome__desktop-logo-text{
    display:inline-flex;
    color:#fff;
    font-family:"Philosopher", Georgia, serif;
    font-size:1.8rem;
    font-weight:700;
    line-height:1;
  }

  .ib-welcome__desktop-kicker{
    display:none;
  }

  .ib-welcome__desktop-title{
    margin:0 0 18px;
    color:#fff;
    font-family:"Philosopher", Georgia, "Times New Roman", serif;
    font-size:3.15rem;
    font-weight:700;
    line-height:1.04;
    letter-spacing:-.035em;
  }

  .ib-welcome__desktop-text{
    max-width:540px;
    margin:0 0 28px;
    color:rgba(255,255,255,.88);
    font-family:"Albert Sans","Roboto",system-ui,sans-serif;
    font-size:1.08rem;
    font-weight:500;
    line-height:1.6;
  }

  .ib-welcome__desktop-card{
    width:min(430px, 100%);
    padding:20px 24px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:24px;
    background:rgba(255,255,255,.12);
    backdrop-filter:blur(8px);
    box-shadow:0 20px 44px rgba(0,0,0,.10);
  }

  .ib-welcome__desktop-card span{
    display:block;
    margin:0 0 8px;
    color:rgba(255,255,255,.72);
    font-family:"Albert Sans","Roboto",system-ui,sans-serif;
    font-size:.82rem;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
  }

  .ib-welcome__desktop-card strong{
    display:block;
    color:#fff;
    font-family:"Philosopher", Georgia, "Times New Roman", serif;
    font-size:1.42rem;
    font-weight:700;
    line-height:1.25;
  }

  .ib-welcome__topbar{
    grid-column:2;
    grid-row:1;
    width:100%;
    min-height:auto;
    padding:44px 72px 0;
    margin:0;
    justify-content:flex-end;
  }

  .ib-welcome__topbar .ib-welcome__brand{
    display:none;
  }

  .ib-welcome__language{
    width:240px;
    max-width:240px;
  }

  .ib-welcome__inner{
    grid-column:2;
    grid-row:2;
    align-self:center;
    width:100%;
    max-width:480px;
    padding:0 72px 44px;
    margin:0 auto;
  }

  .ib-welcome__title{
    font-size:2.35rem;
  }

  .ib-welcome__slogan{
    font-size:1.15rem;
    margin-bottom:14px;
  }

  .ib-welcome__subtitle{
    margin-bottom:24px;
  }

  .ib-welcome__privacy{
    margin-top:22px;
  }
}

@media(min-width:768px) and (max-width:899px){
  .ib-welcome{
    padding:18px;
    align-items:center;
  }

  .ib-welcome__shell{
    max-width:430px;
    min-height:min(690px, calc(100dvh - 36px));
    border:1px solid rgba(207,222,244,.95);
    border-radius:34px;
    background:rgba(255,255,255,.82);
    box-shadow:0 28px 80px rgba(15,35,70,.14), 0 2px 12px rgba(15,35,70,.04);
    backdrop-filter:blur(12px);
  }
}

/* MÓVIL */

@media(max-width:767px){
  .ib-welcome{
    min-height:100svh;
  }

  .ib-welcome__shell{
    min-height:100svh;
  }

  .ib-welcome__shell::before{
    height:124px;
    border-bottom-left-radius:32px;
    border-bottom-right-radius:32px;
  }

  .ib-welcome__topbar{
    min-height:124px;
    margin-bottom:42px;
  }

  .ib-welcome__logo{
    max-width:102px;
    max-height:56px;
  }

  .ib-welcome__title{
    font-size:2.08rem;
  }

  .ib-welcome__slogan{
    font-size:1.15rem;
  }

  .ib-welcome__subtitle{
    font-size:.96rem;
    line-height:1.46;
  }

  .ib-welcome__btn{
    min-height:52px;
    font-size:1rem;
  }
}

@media(max-width:380px){
  .ib-welcome__shell{
    padding-left:22px;
    padding-right:22px;
  }

  .ib-welcome__title{
    font-size:1.88rem;
  }

  .ib-welcome__slogan{
    font-size:1.05rem;
  }

  .ib-welcome__subtitle{
    font-size:.92rem;
  }

  .ib-welcome__btn{
    min-height:50px;
    font-size:.96rem;
  }
}

/* PWA: deja espacio para barra superior del sistema */
@media(max-width:767px){
  body.ib-mode .ib--welcome__shell::before{
    height:142px;
  }

  body.ib-mode .ib-welcome__topbar{
    min-height:142px;
    margin-bottom:38px;
  }
}