/* ==========================================================
   RUPTLINE_TOOLS_CORE_R20
   Directorio público como pilar de adquisición.
   ========================================================== */

html,
body.rl-tools-web-r20{
  min-height:100%;
}

body.rl-tools-web-r20{
  margin:0;
  background:#05060a;
  color:#f5f5f7;
}

html[data-theme="light"] body.rl-tools-web-r20{
  background:#f7f7f4;
  color:#171920;
}

.rl-tools-r20{
  --tools-max:1180px;
  --tools-line:rgba(255,255,255,.09);
  --tools-soft:#8d93a0;
  --tools-text:#f1f2f4;
  --tools-muted:#6f7682;
  --tools-accent:#8f73ff;
  width:100%;
  padding-top:84px;
  overflow:hidden;
}

.rl-tools-r20__wrap{
  width:min(calc(100% - 44px),var(--tools-max));
  margin:0 auto;
}

.rl-tools-r20__hero{
  padding:92px 0 104px;
}

.rl-tools-r20__eyebrow{
  display:block;
  margin:0 0 16px;
  color:var(--tools-accent);
  font-size:10px;
  line-height:1;
  font-weight:650;
  letter-spacing:.16em;
}

.rl-tools-r20__hero h1{
  max-width:900px;
  margin:0;
  color:var(--tools-text);
  font-size:clamp(38px,4.3vw,62px);
  line-height:1.02;
  font-weight:520;
  letter-spacing:-.045em;
  text-wrap:balance;
}

.rl-tools-r20__hero p{
  max-width:700px;
  margin:28px 0 0;
  color:var(--tools-soft);
  font-size:clamp(15px,1.15vw,18px);
  line-height:1.72;
}

.rl-tools-r20__jump{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  margin-top:36px;
}

.rl-tools-r20__jump a{
  color:#c9cbd2;
  font-size:12px;
  font-weight:520;
  text-decoration:none;
}

.rl-tools-r20__jump a:hover{
  color:#fff;
}

.rl-tools-r20__directory{
  border-top:1px solid var(--tools-line);
}

.rl-tools-r20__group{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:56px;
  padding:82px 0 94px;
  border-bottom:1px solid var(--tools-line);
  scroll-margin-top:96px;
}

.rl-tools-r20__group-head > span{
  display:block;
  margin:5px 0 14px;
  color:var(--tools-accent);
  font-size:9px;
  line-height:1;
  font-weight:650;
  letter-spacing:.14em;
}

.rl-tools-r20__group-head h2{
  max-width:180px;
  margin:0;
  color:var(--tools-text);
  font-size:17px;
  line-height:1.3;
  font-weight:530;
  letter-spacing:-.02em;
}

.rl-tools-r20__rows{
  border-top:1px solid var(--tools-line);
}

.rl-tools-r20__row{
  display:grid;
  grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr) 24px;
  gap:24px;
  align-items:center;
  min-height:96px;
  padding:22px 0;
  border-bottom:1px solid var(--tools-line);
  color:inherit;
  text-decoration:none;
  transition:padding .18s ease,background .18s ease;
}

.rl-tools-r20__row:hover{
  padding-left:10px;
  padding-right:10px;
  background:rgba(255,255,255,.018);
}

.rl-tools-r20__row strong{
  color:var(--tools-text);
  font-size:16px;
  line-height:1.22;
  font-weight:550;
}

.rl-tools-r20__row p{
  max-width:560px;
  margin:0;
  color:var(--tools-soft);
  font-size:13px;
  line-height:1.65;
}

.rl-tools-r20__row > span{
  color:var(--tools-muted);
  font-size:16px;
  text-align:right;
  transition:transform .18s ease,color .18s ease;
}

.rl-tools-r20__row:hover > span{
  color:var(--tools-text);
  transform:translateX(3px);
}

.rl-tools-r20__bridge{
  padding:88px 0 100px;
}

.rl-tools-r20__bridge-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.8fr);
  gap:90px;
  align-items:start;
}

.rl-tools-r20__bridge h2{
  max-width:720px;
  margin:0;
  color:var(--tools-text);
  font-size:clamp(27px,2.55vw,38px);
  line-height:1.08;
  font-weight:500;
  letter-spacing:-.035em;
  text-wrap:balance;
}

.rl-tools-r20__bridge-copy > p{
  max-width:540px;
  margin:0;
  color:var(--tools-soft);
  font-size:14px;
  line-height:1.75;
}

.rl-tools-r20__actions{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  margin-top:30px;
  padding-top:22px;
  border-top:1px solid var(--tools-line);
}

.rl-tools-r20__actions a{
  display:inline-flex;
  gap:8px;
  color:var(--tools-text);
  font-size:12px;
  font-weight:550;
  text-decoration:none;
}

.rl-tools-r20__actions a span{
  transition:transform .18s ease;
}

.rl-tools-r20__actions a:hover span{
  transform:translateX(3px);
}

html[data-theme="light"] .rl-tools-r20{
  --tools-line:rgba(20,23,35,.10);
  --tools-soft:#69717f;
  --tools-text:#171920;
  --tools-muted:#8a909b;
}

html[data-theme="light"] .rl-tools-r20__jump a{
  color:#4f5663;
}

html[data-theme="light"] .rl-tools-r20__row:hover{
  background:rgba(20,23,35,.025);
}

@media(max-width:900px){
  .rl-tools-r20{
    padding-top:76px;
  }

  .rl-tools-r20__hero{
    padding:72px 0 82px;
  }

  .rl-tools-r20__group{
    grid-template-columns:1fr;
    gap:28px;
  }

  .rl-tools-r20__group-head h2{
    max-width:520px;
  }

  .rl-tools-r20__bridge-grid{
    grid-template-columns:1fr;
    gap:32px;
  }
}

@media(max-width:640px){
  .rl-tools-r20__wrap{
    width:min(calc(100% - 30px),var(--tools-max));
  }

  .rl-tools-r20{
    padding-top:68px;
  }

  .rl-tools-r20__hero{
    padding:54px 0 66px;
  }

  .rl-tools-r20__hero h1{
    font-size:clamp(33px,10vw,43px);
    line-height:1.04;
  }

  .rl-tools-r20__hero p{
    margin-top:20px;
    font-size:15px;
    line-height:1.66;
  }

  .rl-tools-r20__jump{
    gap:15px 18px;
    margin-top:28px;
  }

  .rl-tools-r20__group{
    gap:20px;
    padding:58px 0 68px;
  }

  .rl-tools-r20__row{
    grid-template-columns:minmax(0,1fr) 20px;
    gap:10px 14px;
    min-height:0;
    padding:20px 0;
  }

  .rl-tools-r20__row p{
    grid-column:1 / -1;
    padding-right:28px;
    font-size:12px;
  }

  .rl-tools-r20__row > span{
    grid-column:2;
    grid-row:1;
  }

  .rl-tools-r20__bridge{
    padding:62px 0 72px;
  }

  .rl-tools-r20__bridge-copy > p{
    font-size:13px;
  }
}
