/* =====================================================
   RT•NEXUS — INVESTOR / INVESTIDOR SYSTEM
   Base estrutural compartilhada PT + EN
   ===================================================== */

:root{
  /* reading widths */
  --inv-read-wide: 900px;
  --inv-read-main: 820px;
  --inv-read-body: 760px;
  --inv-read-tight: 680px;
  --inv-read-quote: 920px;
  --inv-read-micro: 720px;

  /* radius */
  --inv-radius-xs: 12px;
  --inv-radius-sm: 16px;
  --inv-radius-md: 20px;
  --inv-radius-lg: 24px;
  --inv-radius-xl: 28px;
  --inv-radius-pill: 999px;

  /* spacing */
  --inv-hero-pad-top: 78px;
  --inv-hero-pad-bottom: 54px;
  --inv-section-pad: 24px;
  --inv-section-pad-spaced: 42px;
  --inv-head-gap: 20px;
  --inv-grid-gap: 16px;
  --inv-stack-gap: 14px;

  /* motion */
  --inv-ease: cubic-bezier(.22,.8,.22,1);
  --inv-fast: .16s;
  --inv-mid: .22s;
  --inv-slow: .32s;

  --inv-lift-1: translateY(-1px);
  --inv-lift-2: translateY(-2px);
  --inv-press: translateY(0) scale(.985);
}

/* =====================================================
   HEADER STRUCTURE
   ===================================================== */

.rt-header{
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  background:rgba(10,14,25,.68);
}

.rt-header__shell{
  max-width:1200px;
  margin:0 auto;
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.rt-header__left{
  display:flex;
  align-items:center;
  min-width:0;
}

.rt-header__brand{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  font-weight:700;
  letter-spacing:-.01em;
  line-height:1;
  white-space:nowrap;
}

.rt-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  flex:0 0 auto;
}

.rt-header__sub{
  margin-left:6px;
  font-weight:500;
  letter-spacing:0;
}

.rt-header__nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  flex:1 1 auto;
}

.rt-header__nav a{
  position:relative;
  text-decoration:none;
  font-size:.95rem;
  font-weight:500;
  line-height:1;
  transition:
    color var(--inv-fast) var(--inv-ease),
    opacity var(--inv-fast) var(--inv-ease);
}

.rt-header__nav a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:100%;
  height:1px;
  transform:scaleX(.35);
  transform-origin:center;
  opacity:0;
  transition:
    transform var(--inv-mid) var(--inv-ease),
    opacity var(--inv-fast) var(--inv-ease);
}

.rt-header__nav a:hover::after{
  transform:scaleX(1);
  opacity:.9;
}

.rt-header__right{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
}

.rt-header__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 16px;
  border-radius:var(--inv-radius-pill);
  text-decoration:none;
  font-size:.88rem;
  font-weight:700;
  line-height:1;
  transition:
    transform var(--inv-mid) var(--inv-ease),
    box-shadow var(--inv-mid) var(--inv-ease),
    opacity var(--inv-fast) var(--inv-ease),
    color var(--inv-fast) var(--inv-ease),
    background-color var(--inv-mid) var(--inv-ease),
    border-color var(--inv-mid) var(--inv-ease);
}

.rt-header__lang{
  text-decoration:none;
  font-size:.82rem;
  font-weight:600;
  line-height:1;
  transition:
    color var(--inv-fast) var(--inv-ease),
    opacity var(--inv-fast) var(--inv-ease);
}

/* =====================================================
   HERO SYSTEM
   ===================================================== */

.rt-hero,
body .hero{
  position:relative;
  padding-top:var(--inv-hero-pad-top);
  padding-bottom:var(--inv-hero-pad-bottom);
}

.rt-hero__shell,
body .hero-grid{
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:30px;
  align-items:start;
}

.rt-hero__main{
  max-width:var(--inv-read-body);
}

.rt-hero__eyebrow,
body .eyebrow,
body .mini-label,
body .phase-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:0 12px;
  border-radius:var(--inv-radius-pill);
  font-size:.76rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.rt-hero__title,
body .hero h1{
  margin:18px 0 16px;
  max-width:900px;
}

.rt-hero__lead,
body .hero .lead{
  margin:0;
  max-width:var(--inv-read-micro);
}

.rt-hero__actions,
body .hero-cta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:26px;
}

.rt-hero__cta,
body .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 18px;
  border-radius:var(--inv-radius-pill);
  text-decoration:none;
  font-weight:700;
  transition:
    transform var(--inv-mid) var(--inv-ease),
    box-shadow var(--inv-mid) var(--inv-ease),
    border-color var(--inv-mid) var(--inv-ease),
    background-color var(--inv-mid) var(--inv-ease),
    color var(--inv-fast) var(--inv-ease),
    opacity var(--inv-fast) var(--inv-ease);
}

.rt-hero__microcopy,
body .hero-note{
  margin-top:18px;
  max-width:680px;
}

.rt-hero-card,
body .hero-card{
  border-radius:var(--inv-radius-xl);
  padding:22px;
  min-height:100%;
}

.rt-hero-card__kicker{
  margin-bottom:14px;
}

.rt-hero-card__item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px 0;
}

/* =====================================================
   TYPOGRAPHY RHYTHM
   ===================================================== */

body .section-head{
  margin-bottom:var(--inv-head-gap);
  max-width:var(--inv-read-main);
}

body .section-head h2,
body .slide h2{
  margin:0 0 12px;
  max-width:920px;
}

body .section-head p,
body .lead,
body .hero-note,
body .card-text,
body .phase p,
body .cta-band p{
  max-width:var(--inv-read-body);
}

body .quote{
  max-width:var(--inv-read-quote);
}

body .rt-hero__lead,
body .rt-hero__microcopy{
  max-width:var(--inv-read-micro);
}

/* =====================================================
   SECTION RHYTHM
   ===================================================== */

body .section{
  padding:var(--inv-section-pad) 0;
}

body .section.spaced{
  padding:var(--inv-section-pad-spaced) 0;
}

body main > .section:first-of-type{
  padding-top:18px;
}

/* =====================================================
   GRID / CARD SYSTEM
   ===================================================== */

body .panel,
body .slide{
  border-radius:var(--inv-radius-xl);
  padding:32px;
}

body .card,
body .info-card,
body .metric,
body .stat,
body .launch-box,
body .mini-card,
body .phase,
body .hero-card,
body .rt-hero-card{
  border-radius:var(--inv-radius-md);
}

body .card,
body .info-card,
body .launch-box{
  padding:20px;
}

body .metric,
body .stat{
  padding:22px;
}

body .mini-card{
  padding:16px;
}

body .phase{
  border-radius:var(--inv-radius-lg);
  padding:24px;
}

body .grid,
body .grid-2,
body .grid-3,
body .grid-4,
body .metric-row,
body .launch-assets,
body .split,
body .phase-grid{
  gap:var(--inv-grid-gap);
  margin-top:18px;
}

body .timeline{
  gap:12px;
}

body .timeline li{
  border-radius:18px;
  padding:16px;
  gap:14px;
}

body .timeline-step{
  width:34px;
  height:34px;
  border-radius:var(--inv-radius-pill);
}

/* =====================================================
   CTA BANDS
   ===================================================== */

body .cta-band{
  border-radius:22px;
  padding:22px;
  margin-top:8px;
}

body .cta-band h3{
  margin:0 0 8px;
}

body .cta-band p{
  margin:0 0 16px;
}

body .cta-band .hero-cta,
body .cta-band .rt-hero__actions{
  margin-top:0;
}

/* =====================================================
   FORMS / LEGAL
   ===================================================== */

body .page,
body main.page{
  padding-top:80px;
  padding-bottom:64px;
}

body .form{
  gap:14px;
  margin-top:18px;
}

body .field{
  gap:8px;
}

body input,
body select,
body textarea{
  border-radius:var(--inv-radius-sm);
}

body .submit{
  border-radius:var(--inv-radius-sm);
  min-height:54px;
}

/* =====================================================
   FOOTER STRUCTURE
   ===================================================== */

.rt-footer{
  position:relative;
  margin-top:72px;
}

.rt-footer__shell{
  width:100%;
  max-width:1320px;
  margin:0 auto;
  padding:34px 20px 0;
  box-sizing:border-box;
}

.rt-footer__grid{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) repeat(3,minmax(0,1fr));
  gap:34px;
  padding:0 0 26px;
}

.rt-footer__col{
  min-width:0;
}

.rt-footer__heading{
  width:100%;
  margin:0 0 12px;
  padding:0;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.rt-footer__chevron{
  display:none;
  width:10px;
  height:10px;
  transform:rotate(45deg);
  transition:transform .2s ease;
  margin-left:10px;
}

.rt-footer__links{
  display:grid;
  gap:10px;
}

.rt-footer__links a{
  display:block;
  text-decoration:none;
  font-size:15px;
  font-weight:600;
  line-height:1.4;
  transition:
    color var(--inv-fast) var(--inv-ease),
    transform var(--inv-mid) var(--inv-ease),
    opacity var(--inv-fast) var(--inv-ease);
}

.rt-footer__link-strong{
  display:flex !important;
  flex-direction:column;
  gap:3px;
}

.rt-footer__meta{
  display:block;
  margin-top:1px;
  font-size:12px;
  font-weight:500;
  line-height:1.42;
}

.rt-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding-top:18px;
  font-size:12px;
}

/* =====================================================
   MOTION BASE
   ===================================================== */

body a,
body button,
body .btn,
body .rt-hero__cta,
body .rt-header__cta,
body .card,
body .info-card,
body .metric,
body .stat,
body .launch-box,
body .mini-card,
body .phase,
body .hero-card,
body .rt-hero-card,
body .signal-item,
body .timeline li{
  transition:
    transform var(--inv-mid) var(--inv-ease),
    box-shadow var(--inv-mid) var(--inv-ease),
    border-color var(--inv-mid) var(--inv-ease),
    background-color var(--inv-mid) var(--inv-ease),
    color var(--inv-fast) var(--inv-ease),
    opacity var(--inv-fast) var(--inv-ease);
}

body .btn:hover,
body .rt-hero__cta:hover,
body .rt-header__cta:hover{
  transform:var(--inv-lift-1);
}

body .btn:active,
body .rt-hero__cta:active,
body .rt-header__cta:active{
  transform:var(--inv-press);
}

/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 980px){
  :root{
    --inv-hero-pad-top:58px;
    --inv-hero-pad-bottom:40px;
    --inv-section-pad:16px;
    --inv-section-pad-spaced:28px;
    --inv-head-gap:16px;
    --inv-grid-gap:14px;
  }

  .rt-header__shell{
    padding:12px 16px;
    gap:14px;
  }

  .rt-header__nav{
    display:none;
  }

  .rt-header__brand{
    font-size:.98rem;
  }

  .rt-header__cta{
    min-height:40px;
    padding:0 14px;
    font-size:.84rem;
  }

  .rt-hero__shell,
  body .hero-grid{
    grid-template-columns:1fr;
    gap:24px;
    padding:0 16px;
  }

  body .panel,
  body .slide{
    padding:24px;
  }

  body .card,
  body .info-card,
  body .launch-box,
  body .metric,
  body .stat,
  body .phase{
    padding:18px;
  }

  body .mini-card{
    padding:16px;
  }

  body .cta-band{
    padding:20px;
  }

  body .page,
  body main.page{
    padding-top:64px;
    padding-bottom:56px;
  }

  .rt-footer{
    margin-top:44px;
    padding-bottom:16px;
  }

  .rt-footer__shell{
    padding:22px 14px 0;
  }

  .rt-footer__grid{
    grid-template-columns:1fr;
    gap:10px;
    padding:14px 0 16px;
  }

  .rt-footer__col{
    overflow:hidden;
  }

  .rt-footer__heading{
    padding:14px 16px;
    margin:0;
    font-size:10.5px;
    cursor:pointer;
  }

  .rt-footer__chevron{
    display:inline-block;
  }

  .rt-footer__links{
    padding:0 16px 14px;
    gap:9px;
    max-height:1000px;
    opacity:1;
    transition:max-height .24s ease, opacity .18s ease, padding .18s ease;
  }

  .rt-footer__col.is-collapsed .rt-footer__links{
    max-height:0;
    opacity:0;
    padding:0 16px;
    overflow:hidden;
  }

  .rt-footer__col.is-collapsed .rt-footer__chevron{
    transform:rotate(-45deg);
  }

  .rt-footer__bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    padding-top:14px;
    font-size:11.5px;
  }
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto !important;
  }

  *,
  *::before,
  *::after{
    transition:none !important;
    animation:none !important;
  }
}