/* =========================================================
   RELAYABLE — QUIÉNES SOMOS
   ========================================================= */

:root{
  --navy:#0B2347;
  --lavender:#4E568D;
  --lavender-dark:#343B70;
  --lavender-light:#EEEAF0;
  --cream:#F5F1F0;
  --cream-dark:#E9E3E4;
  --white:#FFFFFF;
  --text:#0B2347;
  --muted:#6F7080;
  --border:rgba(11,35,71,.11);

  --display:'Playfair Display',Georgia,serif;
  --body:'DM Sans',system-ui,sans-serif;

  --max:1180px;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:var(--body);
  -webkit-font-smoothing:antialiased;
}

a{
  color:inherit;
}


/* =========================================================
   CABECERA
   ========================================================= */

.site-header{
  position:relative;
  z-index:20;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--border);
}

.header-inner{
  width:calc(100% - 48px);
  max-width:var(--max);
  min-height:76px;
  margin:0 auto;

  display:flex;
  align-items:center;
  gap:30px;
}

.logo{
  width:125px;
  height:48px;
  overflow:hidden;
  flex-shrink:0;

  display:flex;
  align-items:center;
}

.logo img{
  display:block;
  width:125px;
  height:48px;
  object-fit:cover;
  object-position:center;
}

.main-nav{
  margin-left:auto;

  display:flex;
  align-items:center;
  gap:23px;
}

.main-nav a{
  position:relative;

  color:var(--navy);
  font-size:13px;
  font-weight:500;
  text-decoration:none;
  white-space:nowrap;
}

.main-nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;

  height:2px;

  background:var(--lavender);

  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease;
}

.main-nav a:hover::after,
.main-nav a.active::after{
  transform:scaleX(1);
}

.header-actions{
  display:flex;
  align-items:center;
  gap:13px;
}

.profile-link{
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}

.create-profile{
  padding:11px 17px;

  border-radius:9px;

  background:var(--lavender);
  color:white;

  font-size:13px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;

  transition:background .2s ease;
}

.create-profile:hover{
  background:var(--lavender-dark);
}


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

.hero{
  position:relative;
  overflow:hidden;

  padding:115px 24px 125px;

  background:
    radial-gradient(
      circle at 88% 20%,
      rgba(78,86,141,.14),
      transparent 31%
    ),
    var(--cream);
}

.hero::after{
  content:"";
  position:absolute;

  width:420px;
  height:420px;

  right:-210px;
  bottom:-260px;

  border:1px solid rgba(78,86,141,.15);
  border-radius:50%;
}

.hero-inner{
  position:relative;
  z-index:1;

  width:100%;
  max-width:960px;
  margin:0 auto;
}

.eyebrow{
  display:block;

  margin-bottom:24px;

  color:var(--lavender);
  font-size:12px;
  line-height:1;
  font-weight:700;
  letter-spacing:.15em;
}

.hero h1{
  max-width:900px;
  margin:0;

  font-family:var(--display);
  font-size:62px;
  line-height:1.04;
  letter-spacing:-1.8px;
  font-weight:600;

  color:var(--navy);
}

.hero h1 em{
  color:var(--lavender);
  font-weight:500;
}

.hero-text{
  max-width:680px;

  margin:34px 0 0;

  color:var(--muted);
  font-size:19px;
  line-height:1.7;
}


/* =========================================================
   ELEMENTOS COMUNES
   ========================================================= */

.section-inner{
  width:calc(100% - 48px);
  max-width:var(--max);
  margin:0 auto;
}


/* =========================================================
   HISTORIA
   ========================================================= */

.story{
  padding:115px 0;

  background:var(--white);
}

.story-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:110px;
}

.story-heading h2{
  max-width:460px;
  margin:0;

  font-family:var(--display);
  font-size:43px;
  line-height:1.12;
  letter-spacing:-1px;
  font-weight:600;

  color:var(--navy);
}

.story-content{
  max-width:570px;
}

.story-content p{
  margin:0 0 23px;

  color:var(--muted);
  font-size:17px;
  line-height:1.75;
}

.story-content .story-highlight{
  margin-top:34px;
  padding-left:24px;

  border-left:3px solid var(--lavender);

  color:var(--navy);
  font-family:var(--display);
  font-size:23px;
  line-height:1.5;
}

/* =========================================================
   MISIÓN Y VISIÓN
   ========================================================= */

.purpose{
  padding:115px 0;
  background:var(--cream);
}

.purpose-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}

.purpose-card{
  position:relative;
  min-height:500px;
  padding:54px 50px;

  border-radius:20px;
  overflow:hidden;
}

.purpose-card--mission{
  background:var(--navy);
  color:white;
}

.purpose-card--vision{
  background:var(--lavender-light);
  color:var(--navy);
}

.purpose-number{
  display:block;
  margin-bottom:75px;

  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;

  opacity:.55;
}

.purpose-card--mission .eyebrow{
  color:#BFC2E0;
}

.purpose-card h2{
  max-width:450px;
  margin:0 0 30px;

  font-family:var(--display);
  font-size:40px;
  line-height:1.12;
  letter-spacing:-.8px;
  font-weight:600;
}

.purpose-card p{
  max-width:470px;
  margin:0 0 18px;

  font-size:16px;
  line-height:1.75;
}

.purpose-card--mission p{
  color:rgba(255,255,255,.72);
}

.purpose-card--vision p{
  color:var(--muted);
}

/* =========================================================
   VALORES
   ========================================================= */

.values{
  padding:115px 0 125px;
  background:var(--white);
}

.values-heading{
  max-width:760px;
}

.values-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;

  overflow:hidden;

  background:var(--border);
  border:1px solid var(--border);
  border-radius:20px;
}

.value-card{
  min-height:310px;
  padding:43px 42px;

  background:var(--white);
}

.value-number{
  display:block;
  margin-bottom:52px;

  color:var(--lavender);
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
}

.value-card h3{
  max-width:430px;
  margin:0 0 17px;

  color:var(--navy);

  font-family:var(--display);
  font-size:28px;
  line-height:1.22;
  font-weight:600;
}

.value-card p{
  max-width:450px;
  margin:0;

  color:var(--muted);
  font-size:15px;
  line-height:1.75;
}


/* =========================================================
   INNOVACIÓN SOCIAL
   ========================================================= */

.social-impact{
  padding:120px 0;
  background:var(--lavender-light);
}

.social-impact-grid{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:110px;
  align-items:start;
}

.social-impact-heading h2{
  max-width:500px;
  margin:0;

  color:var(--navy);

  font-family:var(--display);
  font-size:45px;
  line-height:1.13;
  letter-spacing:-1px;
  font-weight:600;
}

.social-impact-content{
  max-width:570px;
}

.social-impact-content p{
  margin:0 0 23px;

  color:var(--muted);
  font-size:17px;
  line-height:1.75;
}

.social-impact-content .social-impact-lead{
  margin-bottom:30px;

  color:var(--navy);

  font-family:var(--display);
  font-size:25px;
  line-height:1.45;
}

/* =========================================================
   EQUIPO
   ========================================================= */

.team{
  padding:115px 0 125px;

  background:var(--cream);
}

.section-heading{
  max-width:690px;
  margin-bottom:62px;
}

.section-heading h2{
  margin:0 0 18px;

  font-family:var(--display);
  font-size:46px;
  line-height:1.12;
  letter-spacing:-1px;
  font-weight:600;

  color:var(--navy);
}

.section-heading p{
  max-width:610px;
  margin:0;

  color:var(--muted);
  font-size:17px;
  line-height:1.7;
}

.team-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.person-card{
  overflow:hidden;

  background:white;
  border:1px solid var(--border);
  border-radius:18px;

  box-shadow:0 15px 45px rgba(11,35,71,.045);

  transition:
    transform .25s ease,
    box-shadow .25s ease;
}

.person-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 50px rgba(11,35,71,.08);
}

.person-photo{
  aspect-ratio:4/3;

  display:flex;
  align-items:center;
  justify-content:center;

  background:
    linear-gradient(
      145deg,
      var(--lavender-light),
      #F8F5F6
    );

  color:var(--lavender);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.person-content{
  padding:29px 28px 32px;
}

.person-number{
  display:block;

  margin-bottom:17px;

  color:var(--lavender);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
}

.person-content h3{
  margin:0 0 6px;

  font-family:var(--display);
  font-size:27px;
  line-height:1.2;
  font-weight:600;

  color:var(--navy);
}

.person-role{
  margin:0 0 20px;

  color:var(--lavender);
  font-size:13px;
  font-weight:600;
}

.person-description{
  margin:0;

  color:var(--muted);
  font-size:15px;
  line-height:1.7;
}


/* =========================================================
   CIERRE
   ========================================================= */

.closing{
  padding:120px 24px;

  background:var(--navy);
  color:white;
}

.closing-inner{
  max-width:850px;
  text-align:center;
}

.closing .eyebrow{
  color:#BFC2E0;
}

.closing h2{
  margin:0 auto;

  font-family:var(--display);
  font-size:49px;
  line-height:1.1;
  letter-spacing:-1px;
  font-weight:600;

  color:white;
}

.closing p{
  max-width:650px;
  margin:27px auto 34px;

  color:rgba(255,255,255,.72);
  font-size:17px;
  line-height:1.7;
}

.closing-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-height:52px;
  padding:0 25px;

  border-radius:11px;

  background:var(--lavender);
  color:white;

  font-size:14px;
  font-weight:600;
  text-decoration:none;

  transition:
    background .2s ease,
    transform .2s ease;
}

.closing-button:hover{
  background:#626AA1;
  transform:translateY(-2px);
}

.closing h2 em{
  color:#BFC2E0;
  font-weight:500;
}

.closing .closing-statement{
  margin-top:0;
  margin-bottom:38px;

  color:white;

  font-family:var(--display);
  font-size:21px;
  line-height:1.55;
}

.closing-button span{
  margin-left:10px;
}


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

.site-footer{
  padding:26px 24px;

  background:#071A37;
  color:rgba(255,255,255,.58);
}

.footer-inner{
  width:100%;
  max-width:var(--max);
  margin:0 auto;

  display:flex;
  align-items:center;
  justify-content:space-between;

  font-size:12px;
}

.footer-inner a{
  color:rgba(255,255,255,.72);
  text-decoration:none;
}

.footer-inner a:hover{
  color:white;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media(max-width:1050px){

  .main-nav{
    display:none;
  }

  .header-actions{
    margin-left:auto;
  }

  .hero h1{
    font-size:54px;
  }

  .story-grid{
    gap:65px;
  }
}


@media(max-width:800px){

  .hero{
    padding:85px 24px 95px;
  }

  .hero h1{
    font-size:45px;
  }

  .story{
    padding:85px 0;
  }

  .story-grid{
    grid-template-columns:1fr;
    gap:45px;
  }

  .team{
    padding:85px 0 95px;
  }

  .team-grid{
    grid-template-columns:1fr;
    max-width:560px;
  }

  .person-photo{
    aspect-ratio:16/9;
  }

  .closing{
    padding:90px 24px;
  }

  .closing h2{
    font-size:42px;
  }
  
  .purpose{
  padding:85px 0;
}

.purpose-grid{
  grid-template-columns:1fr;
}

.purpose-card{
  min-height:auto;
  padding:42px 36px;
}

.purpose-number{
  margin-bottom:50px;
}

.values{
  padding:85px 0 95px;
}

.values-grid{
  grid-template-columns:1fr;
}

.value-card{
  min-height:auto;
}

.value-number{
  margin-bottom:35px;
}

.social-impact{
  padding:85px 0;
}

.social-impact-grid{
  grid-template-columns:1fr;
  gap:45px;
}

.social-impact-heading h2{
  font-size:38px;
}
}


@media(max-width:520px){

  .header-inner{
    width:calc(100% - 32px);
    min-height:68px;
  }

  .logo{
    width:110px;
  }

  .logo img{
    width:110px;
  }

  .profile-link{
    display:none;
  }

  .create-profile{
    padding:10px 13px;
  }

  .hero{
    padding:70px 20px 78px;
  }

  .hero h1{
    font-size:38px;
    letter-spacing:-1px;
  }

  .hero-text{
    margin-top:26px;
    font-size:17px;
  }

  .section-inner{
    width:calc(100% - 40px);
  }

  .story-heading h2,
  .section-heading h2{
    font-size:36px;
  }

  .story-content .story-highlight{
    font-size:21px;
  }

  .section-heading{
    margin-bottom:40px;
  }

  .person-content{
    padding:25px 23px 28px;
  }

  .closing{
    padding:78px 20px;
  }

  .closing h2{
    font-size:36px;
  }

  .footer-inner{
    flex-direction:column;
    gap:10px;
  }
}