/* =========================================================
   WEBAPP - TU VOZ - CSS
   ========================================================= */

@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap");

:root {
  --tv-ink: #29243f;
  --violeta-oscuro: #504e76;
  --tv-muted: #716b7e;
  --tv-paper: #f7f5f1;
  --tv-card: #fffdfa;
  --violeta: #a38df2;
  --tv-lavender-soft: #c9bbed;
  --tv-lime: #b2c965;
  --naranja: #fcb92d;
  --tv-line: #ddd8e2;
  --tv-radius: 26px;
  --tv-shadow: 0 18px 45px rgba(59, 48, 93, 0.1);
  --tv-sans: "DM Sans", "Avenir Next", Avenir, Helvetica, Arial, sans-serif;
  --tv-display: "Space Grotesk", "Arial Rounded MT Bold", Helvetica, Arial, sans-serif;
  --radio-medio: 18px;
  --sombra: 0 10px 30px rgba(80, 78, 118, 0.08);
}

* {
    box-sizing: border-box;
}
body {
  min-width: 320px;
  margin: 0;
  overflow-x: hidden;
  color: var(--violeta-oscuro);
  background:
     radial-gradient(circle at 90% 6%, rgba(165, 140, 232, 0.12), transparent 28rem),
     var(--tv-paper);
  font-family: var(--tv-sans);
  line-height: 1.5;
}
a {
    color: inherit;
    text-decoration: none;
}
p {
    color: var(--violeta-oscuro);
}
/* =========================================================
   HEADER
   ========================================================= */
.navegador {
    width: 100%;
    min-height: 82px;
    margin: 0 auto;
    padding: 10px 30px 10px 30px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    border-bottom: 1px solid rgba(221, 216, 226, 0.85);
    background: rgba(247, 245, 241, 0.88);
}
.link {
    display: flex;
    align-items: center;
}
.logo {
    width: 115px;
    max-height: 48px;
    object-fit: contain;
}
.botones {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 34px;

}
.botón {
    position: relative;
    padding: 8px 2px;
    color: var(--violeta-oscuro);
    font-size: 15px;
    font-weight: 600;
    transition: color .2s ease;
}
.botón::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 0;
    height: 2px;
    border-radius: 10px;
    background: var(--naranja);
    transition: right .2s ease;
}
.botón:hover {
    color: var(--violeta);
}
.botón:hover::after {
    right: 0;
}
/* =========================================================
   MAIN
   ========================================================= */
.marca {
  flex-shrink: 0;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  box-sizing: border-box;
  padding: 82px 24px;
}
.voz {
  width: clamp(200px, 35vw, 500px);
  height: auto;
  margin: 0 auto 35px;
  display: block;
}
.voztext {
    text-align: center;
    font-weight: 700;
    width: min(100%, 550px);
    text-wrap: balance;
    margin: 0 auto 0;
    padding: 0 20px;
    
    color: var(--tv-muted);
    font-size: 1.40rem;
    line-height: 1.65;
}
section {
    min-width: 0;
    max-width: 100%;
}
/* =========================================================
   JT01
   ========================================================= */
.participantes {
    padding: 20px 10% 40px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}
.jt01 {
    margin: 0 0 24px;
    font-size: clamp(28px, 4vw, 40px);
    font: 'Space Grotesk';
    line-height: 1.1;
    color: var(--violeta-oscuro);
    grid-column: 1 / -1;
    text-align: center;
}
.compañera1, .compañera2 {
    min-height: 250px;
    padding: 22px;

    background: var(--tv-card);
    border-radius: var(--radio-medio);
    box-shadow: var(--sombra);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}
.compañera1:hover, .compañera2:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 35px rgba(80, 78, 118, 0.13);
}
.linkp {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.perfiles {
    width: 100%;
    height: auto;
    border-radius: 14px;
    margin-bottom: 17px;
}
.nombres {
    margin: 0;
    font-size: 20px;
    color: var(--violeta-oscuro);
    text-align: center;
}
.compañera1 {
    background: var(--tv-lime);
}
.compañera2 {
    background: var(--naranja);
}

/* =========================================================
   ONU
   ========================================================= */
.onu {
    background-color: var(--tv-paper);
    margin: 10px 10% 5px;;
    border-top: 1px solid var(--tv-line);
    border-bottom: 1px solid var(--tv-line);
    padding: 40px 48px;
    position: relative;
    overflow: hidden;
    
}
.tituloonu {
    display: inline-block;
    background-color: var(--tv-line); 
    color: var(--tv-muted);            
    padding: 6px 16px;
    border-radius: 50px;       
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    margin-top: 0;
    margin-bottom: 16px;
    margin-left: -15px;
}
.subonu {
   color: var(--tv-ink);         
   font-size: 28px;
   font-weight: 700;
   margin-top: 0;
   margin-bottom: 16px;
}
.textonu {
  color: var(--tv-ink);   
  position: relative;         
  font-size: 15px;
  line-height: 1.6;
  max-width: 70%;           
  margin: 0;
  z-index: 2;
}
.onu::after {
  content: "";
  position: absolute;
  bottom: -40px;
  right: 40px;
  width: 160px;
  height: 160px;
  background-color: var(--tv-lavender-soft); 
  border-radius: 50%;
  z-index: 1;
}
/* =========================================================
   INSTITUCIONAL
   ========================================================= */
.institucional{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 40px 10% 0;
}
.cuadro {
  padding: 25px;
  border: 1px solid var(--tv-line);
  border-radius: var(--tv-radius);
  background: var(--tv-card);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.logos {
   display: block;
    max-height: 65px;
    margin: 0 auto 15px;
}
.tituloin {
  margin: 0 0 10px;
  font: 700 1rem / 1.15 var(--tv-display);
  text-align: center;
  align-content: center;
}
.textin {
  margin: 0;
  color: var(--tv-muted);
  font-size: 0.82rem;
  line-height: 1.55;
  text-align: center;
  align-content: center;
}
/* =========================================================
   FOOTER
   ========================================================= */
footer {
    margin-top: 65px;
    padding: 34px 24px;

    background: var(--violeta);
}
.piedepagina {
    width: min(1000px, calc(100% - 40px));
    margin: 0 auto;
    color: var(--tv-card);
    text-align: center;
    font-size: 12px;
    line-height: 1.6;
}
/* =========================================================
   MAPA
   ========================================================= */
.contenedor {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    box-sizing: border-box;
}
.titulo {
    margin: 0 0 50px;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.1;
    color: var(--violeta-oscuro);
    grid-column: 1 / -1;
    text-align: center;
}
.subtitulo {
    color: var(--tv-ink);         
   font-size: 28px;
   font-weight: 700;
   margin-top: 20;
   margin-bottom: 20px;
}
.imagen {
    display: flex;
    width: 80%;
    max-width: 100%;
    height: auto;
    border-radius: var(--radio-medio);
    box-shadow: var(--sombra);
}
.imagen2 {
    width: 55%;
    height: auto;
    margin: 0 auto 35px;
 display: block;
    border-radius: var(--radio-medio);
    box-shadow: var(--sombra);
}
/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 850px) {

    .marca {
        min-height: 360px;
        padding: 42px 34px;
    }

    .marca::before {
        right: -70px;
    }

    .voztext {
        width: 80%;
    }

    .participantes {
        grid-template-columns: 1fr;
    }

    .institucional {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .navegador {
        width: 100%;
        flex-direction: column;
        justify-content: center;
        gap: 16px;
        padding-top: 20px;
    }
    header {
        padding-top: 14px;
    }
    .botones {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
        gap: 12px 24px;
    }
    .botones {
        gap: 8px 17px;
    }

    .botón {
        font-size: 14px;
    }

    .participantes {
        min-height: 330px;
        padding: 34px 25px;
        border-radius: 20px;
    }

    .voztext {
        width: 100%;
        font-size: 15px;
    }

    .onu {
        padding: 32px 25px;
        border-radius: 20px;
    }
    .subonu, .subtitulo {
        font-size: 20px;

    }
    .textonu {
        font-size: 13px;
        max-width: 100%;
        text-wrap: pretty;
    }
    .cuadro {
        min-height: auto;
    }

    footer {
        margin-top: 40px;
    }
}
