/* Reswardo P10.0 — Responsive visibility, navigation and final layout QA */
:root{
  --rw-header-height:72px;
  --rw-app-width:1040px;
}

html{scroll-padding-top:calc(var(--rw-header-height) + 18px)}
body{width:100%;max-width:100%;overflow-x:clip}
main,section,div{min-width:0}
section[id]{scroll-margin-top:calc(var(--rw-header-height) + 18px)}

/* Landing: stable scroll, balanced first viewport, no parallax drift */
.landing-page .hero-text,
.landing-page .hero-vault-img{transform:none!important}
.landing-page .hero{min-height:auto!important}
.landing-page .hero-inner{
  min-height:clamp(700px,88svh,820px);
  align-items:center;
  padding-top:clamp(7.5rem,10vh,9rem)!important;
  padding-bottom:clamp(3.5rem,7vh,5.25rem)!important;
}
.landing-page .hero-text{width:100%;max-width:720px}
.landing-page .hero-vault{width:100%}
.landing-page .hero-brand-stage{min-height:clamp(400px,42vw,510px)}
.landing-page .hero-cta-row{align-items:center}
.landing-page .hero-proof-grid{width:100%}
.landing-page .sec-head,
.landing-page .sec-head.center,
.landing-page .sec-head.centered{max-width:790px;margin-left:auto;margin-right:auto}
.landing-page .sec-body{max-width:760px}
.landing-page .reveal{will-change:auto}
.landing-page .scroll-ind{pointer-events:none}

/* Landing mobile menu */
.landing-page .mmenu{
  top:0;
  min-height:100dvh;
  padding:calc(var(--rw-header-height) + 2rem) 1.25rem 2rem;
  justify-content:flex-start;
  gap:.55rem;
  overflow-y:auto;
  box-sizing:border-box;
}
.landing-page .mmenu::before{
  content:'NAVEGACIÓN';
  color:#77736d;
  font-size:.65rem;
  letter-spacing:.16em;
  margin:1rem 0 .65rem;
}
.landing-page .mmenu a:not(.btn){
  width:min(100%,420px);
  padding:.92rem 1rem;
  border-bottom:1px solid rgba(255,255,255,.07);
  font-size:1.05rem;
  text-align:left;
}
.landing-page .mmenu .btn{width:min(100%,420px);justify-content:center;margin-top:1rem}
body.rw-menu-open{overflow:hidden!important}

/* Shell pages: readable and centered on every viewport */
.rw-shell-page .rw-page-main{width:100%;box-sizing:border-box}
.rw-shell-page .wrap{width:100%;margin-inline:auto}
.rw-shell-page .box,
.rw-shell-page .card,
.rw-shell-page .consumer-form,
.rw-shell-page .table{box-sizing:border-box}
.rw-shell-page .rw-site-header__inner,
.rw-shell-page .rw-site-footer__inner{width:100%;box-sizing:border-box}
.rw-shell-menu-button{display:none;background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--rw-text);width:42px;height:42px;border-radius:10px;align-items:center;justify-content:center;cursor:pointer}
.rw-shell-menu-button span,.rw-shell-menu-button::before,.rw-shell-menu-button::after{content:'';display:block;width:18px;height:1.5px;background:currentColor;transition:.2s}
.rw-shell-menu-button span{margin:4px 0}
.rw-shell-menu-button[aria-expanded="true"] span{opacity:0}
.rw-shell-menu-button[aria-expanded="true"]::before{transform:translateY(5.5px) rotate(45deg)}
.rw-shell-menu-button[aria-expanded="true"]::after{transform:translateY(-5.5px) rotate(-45deg)}

/* Vault: strict auth visibility gate */
.vault-page.auth-pending #authCard{visibility:hidden;opacity:0}
.vault-page:not(.is-authenticated) :is(
  #dashboardHero,#dashboardTabs,#upgradeCard,#securityCard,#launchTrustCard,
  #uploadCard,#historyCard,#disclaimerCard,#heirCard,#deadmansCard,#downloadCard
){display:none!important}
.vault-page.is-authenticated #authCard{display:none!important}
.vault-page:not(.is-authenticated) .app-container{
  display:flex!important;
  justify-content:center!important;
  align-items:flex-start!important;
  width:100%!important;
  max-width:100%!important;
  padding:clamp(1.25rem,4vw,2.5rem) 1rem 5rem!important;
}
.vault-page:not(.is-authenticated) #authCard{
  display:flex!important;
  width:min(100%,520px)!important;
  max-width:520px!important;
  margin:clamp(2rem,8vh,5rem) auto!important;
  justify-self:center!important;
}
.vault-page .app-container{margin-inline:auto!important;width:100%!important;box-sizing:border-box}
.vault-page .navbar{min-height:var(--rw-header-height);box-sizing:border-box}
.vault-page .navbar .brand{flex:none}
.vault-page .navbar .nav-status{margin-left:auto;text-align:right}

/* Authenticated app: content remains optically centered */
.vault-page.is-authenticated .app-container.dashboard-active{
  display:block!important;
  width:min(100%,var(--rw-app-width))!important;
  max-width:var(--rw-app-width)!important;
  margin-inline:auto!important;
  padding:1.25rem clamp(1rem,3vw,2rem) 5rem!important;
}
.vault-page.is-authenticated .app-container.dashboard-active>.card{
  width:100%!important;
  max-width:960px!important;
  margin:0 auto 1rem!important;
}
.vault-page.is-authenticated .dashboard-tabs.active{
  width:100%!important;
  max-width:960px!important;
  margin:0 auto 1rem!important;
}
.vault-page .dashboard-hero,
.vault-page #upgradeCard,
.vault-page #securityCard,
.vault-page #launchTrustCard,
.vault-page #uploadCard,
.vault-page #historyCard,
.vault-page #disclaimerCard,
.vault-page #heirCard,
.vault-page #deadmansCard,
.vault-page #downloadCard{box-sizing:border-box}
.vault-page #disclaimerCard,
.vault-page #deadmansCard,
.vault-page #downloadCard{max-width:960px!important}
.vault-page .card>div,
.vault-page .card>form{max-width:100%}
.vault-page .upgrade-header{width:100%}
.vault-page .capsule-item{width:100%;box-sizing:border-box}
.vault-page .capsule-inline-actions{justify-content:flex-end}
.vault-page footer{width:min(100%,960px);box-sizing:border-box}
.vault-page>a[href="feedback"]{right:14px!important;bottom:14px!important}

/* Wide desktop: side navigation without pushing the app off-center */
@media(min-width:1400px){
  .vault-page.is-authenticated .dashboard-tabs.active{
    position:fixed!important;
    top:calc(var(--rw-header-height) + 18px)!important;
    left:max(24px,calc(50vw - 700px))!important;
    width:204px!important;
    max-height:calc(100vh - 112px);
    overflow-y:auto!important;
    margin:0!important;
    z-index:45;
    flex-direction:column!important;
    white-space:normal!important;
  }
  .vault-page.is-authenticated .dashboard-tabs.active .dashboard-tab{width:100%;flex:none!important}
}

/* Tablet: centered content + compact horizontal navigation */
@media(min-width:641px) and (max-width:1399px){
  .vault-page.is-authenticated .dashboard-tabs.active{
    position:sticky!important;
    top:var(--rw-header-height)!important;
    z-index:44;
    display:flex!important;
    flex-direction:row!important;
    overflow-x:auto!important;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
    white-space:nowrap!important;
    padding:.55rem!important;
  }
  .vault-page.is-authenticated .dashboard-tabs.active::-webkit-scrollbar{display:none}
  .vault-page.is-authenticated .dashboard-tabs.active::before{display:none!important}
  .vault-page.is-authenticated .dashboard-tab{flex:0 0 auto!important}
}

@media(max-width:960px){
  .landing-page .hero-inner{min-height:auto;padding-top:7rem!important;padding-bottom:3.25rem!important}
  .landing-page .hero-text{text-align:center!important;margin-inline:auto}
  .landing-page .hero-h1,.landing-page .hero-sub{margin-left:auto;margin-right:auto}
  .landing-page .hero-cta-row{justify-content:center}
  .landing-page .hero-brand-stage{min-height:330px;max-width:650px}
  .landing-page .scroll-ind{display:none!important}
  .landing-page .sec-head{text-align:center}
  .landing-page .sec-body{margin-left:auto;margin-right:auto;text-align:center}
  .rw-shell-menu-button{display:flex}
  .rw-site-nav{
    display:none!important;
    position:absolute;
    top:calc(100% + 1px);
    left:0;right:0;
    padding:1rem;
    background:rgba(7,7,6,.98);
    border-bottom:1px solid rgba(255,255,255,.08);
    box-shadow:0 20px 45px rgba(0,0,0,.35);
    flex-direction:column;
    align-items:stretch;
    gap:.35rem;
  }
  .rw-site-nav.open{display:flex!important}
  .rw-site-nav a,.rw-site-nav a:not(.rw-shell-cta){display:block!important;padding:.8rem .9rem;border-radius:9px}
  .rw-site-nav .rw-shell-cta{text-align:center;margin-top:.3rem}
}

@media(max-width:640px){
  :root{--rw-header-height:64px}
  .landing-page nav{padding:.65rem 0!important}
  .landing-page .nav-in{min-height:46px}
  .landing-page .logo{font-size:1rem!important}
  .landing-page .logo::before{width:26px!important;height:26px!important}
  .landing-page .hero-inner{padding-top:5.85rem!important;padding-bottom:2.5rem!important;gap:1.1rem!important}
  .landing-page .launch-pill{margin-inline:auto}
  .landing-page .hero-overline{font-size:.64rem!important;letter-spacing:.12em!important}
  .landing-page .hero-h1-sans{font-size:clamp(1.85rem,8.5vw,2.25rem)!important;line-height:1.08!important}
  .landing-page .hero-h1-serif{font-size:clamp(2.55rem,12vw,3.15rem)!important;line-height:.98!important}
  .landing-page .hero-sub{font-size:.93rem!important;line-height:1.65!important;margin-top:1.1rem!important}
  .landing-page .hero-cta-row{margin-top:1.55rem!important;gap:.65rem!important}
  .landing-page .hero-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.55rem!important;margin-top:1.1rem!important}
  .landing-page .hero-proof{padding:.72rem!important;border-radius:12px!important}
  .landing-page .hero-proof strong{font-size:.72rem!important}
  .landing-page .hero-proof span{font-size:.66rem!important;line-height:1.35!important}
  .landing-page .hero-brand-stage{min-height:230px!important;padding:1rem!important;margin-top:.35rem!important}
  .landing-page .hero-vault-img{width:min(100%,330px)!important}
  .landing-page .hero-brand-caption{display:none!important}
  .landing-page .sec{padding:3.2rem 0!important}
  .landing-page .sec-lg{padding:3.8rem 0!important}
  .landing-page .sec-title{font-size:clamp(2rem,10vw,2.8rem)!important}
  .landing-page .fc,.landing-page .plan,.landing-page .sk,.landing-page .layer{padding:1.2rem!important}
  .landing-page .legal-floating{left:auto!important;right:10px!important;bottom:10px!important;width:auto!important;max-width:calc(100vw - 20px)!important;padding:.52rem .68rem!important;font-size:.65rem!important}
  .rw-site-header__inner{min-height:var(--rw-header-height);box-sizing:border-box}
  .rw-shell-page .rw-page-main{padding:calc(var(--rw-header-height) + 2.25rem) .85rem 3rem!important}
  .rw-shell-page .card,.rw-shell-page .box{padding:1.05rem!important}
  .rw-site-footer__links{grid-template-columns:1fr!important}
  .vault-page .navbar{padding:.6rem .8rem!important}
  .vault-page .navbar .brand{letter-spacing:.1em!important;font-size:1rem!important}
  .vault-page .navbar .brand::before{width:27px!important;height:27px!important}
  .vault-page .nav-status{font-size:.67rem!important;max-width:46vw!important}
  .vault-page:not(.is-authenticated) .app-container{padding:1rem .75rem 3rem!important}
  .vault-page:not(.is-authenticated) #authCard{margin:1.25rem auto!important;padding:1.2rem!important}
  .vault-page #authCard::before{width:62px!important;height:62px!important;margin-bottom:.8rem!important}
  .vault-page #authCard h2{font-size:2rem!important}
  .vault-page #authCard>p{font-size:.84rem!important;margin-bottom:1.15rem!important}
  .vault-page #authCard div[style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important;gap:.65rem!important}
  .vault-page.is-authenticated .app-container.dashboard-active{padding:.8rem .65rem 4rem!important}
  .vault-page.is-authenticated .dashboard-tabs.active{
    position:sticky!important;
    top:var(--rw-header-height)!important;
    display:flex!important;
    flex-direction:row!important;
    overflow-x:auto!important;
    white-space:nowrap!important;
    width:100%!important;
    padding:.45rem!important;
    margin:0 0 .75rem!important;
    border-radius:12px!important;
    scrollbar-width:none;
  }
  .vault-page.is-authenticated .dashboard-tabs.active::-webkit-scrollbar{display:none}
  .vault-page.is-authenticated .dashboard-tabs.active::before,.vault-page .rw-tabs-help{display:none!important}
  .vault-page .dashboard-tab{flex:0 0 auto!important;padding:.66rem .72rem!important;font-size:.72rem!important}
  .vault-page .card{padding:1.05rem!important;border-radius:14px!important}
  .vault-page .card h2{font-size:1.75rem!important}
  .vault-page .dashboard-hero h1{font-size:2.25rem!important}
  .vault-page .dashboard-kpis{grid-template-columns:1fr 1fr!important;gap:.55rem!important}
  .vault-page .dashboard-kpi{padding:.75rem!important}
  .vault-page .upgrade-header{display:block!important}
  .vault-page .upgrade-header .tier-pill{display:inline-flex;margin-top:.6rem}
  .vault-page .capsule-inline-actions{justify-content:flex-start!important}
  .vault-page .secret-key-display{font-size:.78rem!important}
  .vault-page>a[href="feedback"]{right:10px!important;bottom:10px!important;padding:.65rem .78rem!important;font-size:.72rem!important}
}

@media(max-width:370px){
  .landing-page .hero-proof-grid{grid-template-columns:1fr!important}
  .landing-page .hero-brand-stage{min-height:210px!important}
  .vault-page .dashboard-kpis{grid-template-columns:1fr!important}
}

/* Final visual safeguards: critical content never depends on animation completion. */
.landing-page :is(.hero-overline,.hero-h1-sans,.hero-h1-serif,.hero-sub,.hero-cta-row,.hero-proof-grid,.hero-vault-img,.scroll-ind){
  opacity:1!important;
  animation:none!important;
}
.landing-page .logo::before,
.vault-page .navbar .brand::before{display:none!important;content:none!important}
.landing-page .logo,
.vault-page .navbar .brand{gap:.58rem!important}
.vault-page footer a{color:#aaa49a!important;text-decoration:none!important}
.vault-page footer a:hover{color:var(--gold)!important}
.vault-page footer{padding-bottom:4.5rem!important}

@media(max-width:900px){
  .landing-page .nav-act{display:none!important}
}
.landing-page .hero-h1{opacity:1!important;animation:none!important}

/* Optical refinements after viewport QA. */
@media(min-width:961px){
  .landing-page .hero-h1-sans{font-size:clamp(2.15rem,3.25vw,3.15rem)!important}
  .landing-page .hero-h1-serif{font-size:clamp(3.5rem,4.55vw,4.55rem)!important;line-height:.97!important;text-wrap:balance}
}
@media(min-width:1400px){
  .vault-page.is-authenticated .dashboard-tabs.active{width:190px!important}
}
.legal-floating.rw-mobile-static,
.vault-page>a[href="feedback"].rw-mobile-static{
  position:static!important;
  display:flex!important;
  width:max-content!important;
  max-width:calc(100% - 2rem)!important;
  margin:1rem auto 1.5rem!important;
  inset:auto!important;
  transform:none!important;
}
