/* ==========================================================================
   MINMUEBLES ARCO — Estilos Página Nosotros (nosotros.php)
   ========================================================================== */

/* ==========================================================================
   PÁGINA NOSOTROS
   ========================================================================== */

/* --- Hero: Quiénes Somos & Nuestro Objetivo --------------------------------- */
.nos-hero{
  position:relative;
  overflow:hidden;
  min-height:92vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-top:clamp(160px,20vw,240px);
  padding-bottom:clamp(80px,10vw,140px);
  box-sizing:border-box;
}
.nos-hero__fondo{position:absolute;inset:0;z-index:0;}
.nos-hero__fondo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:.85;
}
.nos-hero__fondo::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.85) 100%);
}
.nos-hero__inner{
  position:relative;
  z-index:1;
  text-align:center;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.nos-hero__bloque{
  max-width:860px;
  width:100%;
  margin-inline:auto;
}
.nos-hero__bloque--objetivo{
  margin-top:clamp(45px,6.5vw,75px);
}
.nos-hero__titulo,
.nos-hero__subtitulo{
  font-weight:300;
  font-size:clamp(2.2rem,4.4vw,3.6rem);
  line-height:1.15;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:clamp(20px,2.8vw,32px);
  text-align:center;
}
.nos-hero__titulo strong,
.nos-hero__subtitulo strong{
  font-family:var(--fuente-heavy);
  font-weight:700;
  letter-spacing:.03em;
}
.nos-hero__desc{
  max-width:880px;
  margin:0 auto clamp(16px,2vw,22px);
  font-size:clamp(1rem,1.4vw,1.22rem);
  line-height:1.65;
  text-align:center;
  color:#ffffff;
  font-weight:300;
  letter-spacing:.005em;
}
.nos-hero__desc:last-child{
  margin-bottom:0;
}
@media(max-width:768px){
  .br-desktop{display:none;}
}

/* --- Sección Misión -------------------------------------------------------- */
.nos-mision{
  padding-block:clamp(70px,10vw,140px);
  background:var(--negro);
}
.nos-mision__grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:clamp(40px,7vw,100px);
  align-items:center;
}
.nos-mision__info{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.nos-mision__titulo{
  font-family:var(--fuente-heavy);
  font-size:clamp(2.4rem,4.6vw,4rem);
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#fff;
  line-height:1.1;
  margin-bottom:clamp(20px,3vw,34px);
}
.nos-mision__texto{
  font-size:clamp(.94rem,1.35vw,1.15rem);
  line-height:1.8;
  font-weight:300;
  color:rgba(255,255,255,.92);
  text-align:justify;
  text-justify:inter-word;
}
.nos-mision__foto{
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 16px 40px rgba(0,0,0,.6);
}
.nos-mision__foto img{
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  filter:grayscale(100%);
  transition:filter .4s ease, transform .5s ease;
}
.nos-mision__foto:hover img{
  filter:grayscale(0%);
  transform:scale(1.03);
}

@media(max-width:860px){
  .nos-mision__grid{
    grid-template-columns:1fr;
    gap:40px;
  }
}

/* --- Sección Visión -------------------------------------------------------- */
.nos-vision{
  padding-block:clamp(70px,10vw,140px);
  background:var(--negro);
  position:relative;
  overflow:hidden;
}
.nos-vision__grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:clamp(40px,8vw,110px);
  align-items:center;
}
.nos-vision__foto{
  display:flex;
  justify-content:center;
  max-width:540px;
  width:100%;
}
.nos-vision__foto img{
  width:100%;
  height:auto;
  display:block;
  filter:grayscale(100%);
  transition:filter .4s ease, transform .5s ease;
}
.nos-vision__foto:hover img{
  filter:grayscale(0%);
  transform:scale(1.02);
}
.nos-vision__info{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.nos-vision__titulo{
  font-family:var(--fuente-heavy);
  font-size:clamp(2.4rem,4.6vw,4rem);
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#fff;
  line-height:1.1;
  margin-bottom:clamp(20px,3vw,34px);
}
.nos-vision__texto{
  font-size:clamp(.98rem,1.4vw,1.2rem);
  line-height:1.8;
  font-weight:300;
  color:rgba(255,255,255,.92);
  text-align:justify;
  text-justify:inter-word;
  max-width:520px;
}

@media(max-width:860px){
  .nos-vision__grid{
    grid-template-columns:1fr;
    gap:45px;
  }
  .nos-vision__foto{
    order:2;
    margin-inline:auto;
  }
  .nos-vision__info{
    order:1;
  }
}

/* --- Sección Valores ------------------------------------------------------- */
.nos-valores{
  padding-block:clamp(70px,10vw,140px);
  background:var(--negro);
}
.nos-valores__grid{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:clamp(40px,7vw,100px);
  align-items:center;
}
.nos-valores__info{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.nos-valores__titulo{
  font-family:var(--fuente-heavy);
  font-size:clamp(2.4rem,4.6vw,4rem);
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#fff;
  line-height:1.1;
  margin-bottom:clamp(20px,3vw,34px);
}
.nos-valores__lista{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.nos-valores__lista li{
  position:relative;
  padding-left:22px;
  font-size:clamp(1rem,1.4vw,1.22rem);
  line-height:1.6;
  font-weight:300;
  color:rgba(255,255,255,.92);
}
.nos-valores__lista li::before{
  content:'•';
  position:absolute;
  left:0;
  top:0;
  color:#fff;
  font-size:1.3em;
  line-height:1.4;
}
.nos-valores__foto{
  display:flex;
  justify-content:center;
  align-items:center;
}
.nos-valores__foto img{
  width:100%;
  max-width:600px;
  height:auto;
  display:block;
  filter:grayscale(100%);
  transition:filter .4s ease, transform .5s ease;
}
.nos-valores__foto:hover img{
  filter:grayscale(0%);
  transform:scale(1.02);
}

@media(max-width:860px){
  .nos-valores__grid{
    grid-template-columns:1fr;
    gap:45px;
  }
}

.nos-valores__cierre{
  text-align:center;
  font-size:clamp(1.35rem,2.2vw,1.95rem);
  font-weight:500;
  line-height:1.4;
  letter-spacing:.01em;
  color:#ffffff;
  margin-top:clamp(55px,7.5vw,95px);
  margin-bottom:clamp(55px,7.5vw,90px);
  max-width:960px;
  margin-inline:auto;
}

.nos-proyectos-header{
  text-align:center;
  padding-top:clamp(20px,3vw,40px);
  margin-bottom:clamp(30px,4vw,50px);
}
.nos-proyectos-header__titulo{
  font-weight:300;
  font-size:clamp(2rem,4vw,3.4rem);
  line-height:1.15;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:#fff;
  text-align:center;
}
.nos-proyectos-header__titulo strong{
  font-family:var(--fuente-heavy);
  font-weight:700;
  letter-spacing:.04em;
}

/* --- Secciones de servicios con fondo foto ----------------------------- */
.nos-serv{position:relative;overflow:hidden;padding-block:clamp(60px,9vw,130px);}
.nos-serv__fondo{position:absolute;inset:0;z-index:0;}
.nos-serv__fondo img{width:100%;height:100%;object-fit:cover;object-position:center center;}
.nos-serv__fondo::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.5);}

/* Fondo y degradado nítido para Ingeniería Eléctrica */
.nos-serv--electrica .nos-serv__fondo img{
  opacity:0.92;
  filter:grayscale(1) contrast(1.05);
}
.nos-serv--electrica .nos-serv__fondo::after{
  background:radial-gradient(ellipse at 50% 45%,rgba(0,0,0,.15) 0%,rgba(0,0,0,.45) 85%),
             linear-gradient(180deg,rgba(0,0,0,.4) 0%,transparent 20%,transparent 80%,rgba(0,0,0,.65) 100%);
}

/* Fondo y degradado nítido para Aire Acondicionado */
.nos-serv--aire .nos-serv__fondo img{
  opacity:0.92;
  filter:grayscale(1) contrast(1.08);
}
.nos-serv--aire .nos-serv__fondo::after{
  background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.15) 0%,rgba(0,0,0,.45) 85%),
             linear-gradient(180deg,rgba(0,0,0,.45) 0%,transparent 20%,transparent 80%,rgba(0,0,0,.65) 100%);
}

.nos-serv__inner{position:relative;z-index:1;}
.nos-serv__eyebrow{
  font-size:clamp(1.8rem,3.4vw,2.8rem);
  font-weight:300;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#fff;
  text-align:center;
  margin-bottom:clamp(14px,2vw,24px);
}
.nos-serv__eyebrow strong{
  font-family:var(--fuente-heavy);
  font-weight:700;
  letter-spacing:.04em;
}
.nos-serv__titulo{
  font-size:clamp(2rem,3.8vw,3.2rem);
  font-weight:300;
  text-transform:uppercase;
  line-height:1.15;
  letter-spacing:.04em;
  color:#fff;
  margin-bottom:clamp(40px,5.5vw,65px);
  text-align:center;
}
.nos-serv__titulo strong{
  font-family:var(--fuente-heavy);
  font-weight:700;
  letter-spacing:.04em;
}

/* Timeline vertical zigzag (2 columnas) con nodos circulares */
.nos-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(30px,6vw,90px);
  max-width:1160px;
  margin-inline:auto;
}
.nos-tl{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:clamp(16px,2.2vw,28px);
  padding:0;
}
.nos-tl::before{
  content:'';
  position:absolute;
  left:50%;
  top:12px;
  bottom:12px;
  width:1.5px;
  background:rgba(255,255,255,.65);
  transform:translateX(-50%);
  z-index:0;
}
.nos-tl__item{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  position:relative;
  z-index:1;
  min-height:2.8em;
}
.nos-tl__dot{
  grid-column:2;
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid #fff;
  background:#0a0a0a;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:2;
  box-shadow:0 0 0 2px rgba(0,0,0,0.85);
  margin:0 auto;
}
.nos-tl__dot::before{
  content:'';
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
}

/* Items a la derecha: [Spacer] [Dot] [Number + Text] */
.nos-tl__item--der .nos-tl__content{
  grid-column:3;
  display:flex;
  align-items:center;
  gap:clamp(8px,1.2vw,14px);
  padding-left:clamp(10px,1.4vw,18px);
}
.nos-tl__item--der .nos-tl__num{
  font-size:clamp(1.9rem,3.2vw,2.8rem);
  font-weight:700;
  line-height:1;
  color:#fff;
  flex:none;
}
.nos-tl__item--der .nos-tl__txt{
  font-size:clamp(.72rem,.95vw,.86rem);
  line-height:1.3;
  font-weight:300;
  color:#e8e8e8;
  text-align:left;
  max-width:230px;
}

/* Items a la izquierda: [Text + Number] [Dot] [Spacer] */
.nos-tl__item--izq .nos-tl__content{
  grid-column:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(8px,1.2vw,14px);
  padding-right:clamp(10px,1.4vw,18px);
}
.nos-tl__item--izq .nos-tl__txt{
  font-size:clamp(.72rem,.95vw,.86rem);
  line-height:1.3;
  font-weight:300;
  color:#e8e8e8;
  text-align:right;
  max-width:230px;
}
.nos-tl__item--izq .nos-tl__num{
  font-size:clamp(1.9rem,3.2vw,2.8rem);
  font-weight:700;
  line-height:1;
  color:#fff;
  flex:none;
}

/* Timeline diagonal (aire) */
.nos-diag{
  position:relative;
  width:100%;
  max-width:1160px;
  height:clamp(460px,46vw,580px);
  margin:clamp(20px,3vw,40px) auto 0;
}
.nos-diag__linea{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:0;
}
.nos-diag__node{
  position:absolute;
  transform:translate(-50%,-50%);
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
}
.nos-diag__dot{
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid #fff;
  background:#0a0a0a;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 0 0 2px rgba(0,0,0,0.85);
  position:relative;
  z-index:2;
}
.nos-diag__dot::before{
  content:'';
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
}

/* Coordenadas en la diagonal ascendente (1 a 10) */
.nos-diag__node--1 { left:18.0%; top:85.0%; }
.nos-diag__node--2 { left:26.2%; top:77.8%; }
.nos-diag__node--3 { left:34.4%; top:70.6%; }
.nos-diag__node--4 { left:42.7%; top:63.4%; }
.nos-diag__node--5 { left:50.9%; top:56.2%; }
.nos-diag__node--6 { left:59.1%; top:48.8%; }
.nos-diag__node--7 { left:67.3%; top:41.6%; }
.nos-diag__node--8 { left:75.6%; top:34.4%; }
.nos-diag__node--9 { left:83.8%; top:27.2%; }
.nos-diag__node--10{ left:92.0%; top:20.0%; }

.nos-diag__content{
  display:flex;
  align-items:center;
  gap:clamp(6px,.9vw,12px);
  position:absolute;
  white-space:nowrap;
}
.nos-diag__num{
  font-size:clamp(1.5rem,2.4vw,2.3rem);
  font-weight:700;
  line-height:1;
  color:#fff;
  flex:none;
}
.nos-diag__txt{
  font-size:clamp(.68rem,.88vw,.82rem);
  line-height:1.25;
  font-weight:300;
  color:#e8e8e8;
  text-align:left;
}

/* Items ARRIBA-IZQUIERDA del nodo */
.nos-diag__node--arriba .nos-diag__content{
  bottom:12px;
  right:4px;
  flex-direction:row;
  justify-content:flex-end;
}

/* Items ABAJO-DERECHA del nodo */
.nos-diag__node--abajo .nos-diag__content{
  top:12px;
  left:4px;
  flex-direction:row;
  justify-content:flex-start;
}

/* --- Especiales -------------------------------------------------------- */
.nos-esp{
  padding-block:clamp(70px,10vw,140px);
  background:var(--negro);
}
.nos-esp__titulo{
  font-family:var(--fuente-heavy);
  text-align:center;
  font-size:clamp(2rem,3.8vw,3.2rem);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:clamp(50px,7vw,90px);
  color:#fff;
}
.nos-esp__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(30px,6vw,80px);
  align-items:center;
  max-width:1140px;
  margin-inline:auto;
}
.nos-esp__lista{
  display:flex;
  flex-direction:column;
  gap:clamp(38px,5.5vw,68px);
  max-width:460px;
}
.nos-esp__item{
  display:flex;
  align-items:flex-start;
  gap:clamp(18px,2.2vw,28px);
}
.nos-esp__num{
  font-size:clamp(3.2rem,5.2vw,4.5rem);
  font-weight:700;
  line-height:.88;
  color:#fff;
  flex:none;
}
.nos-esp__txt{
  font-size:clamp(.82rem,1.05vw,.95rem);
  font-weight:300;
  line-height:1.45;
  color:#e6e6e6;
  padding-top:4px;
}

/* Fotos escalonadas: Foto 2 a la izquierda (abajo), Foto 1 a la derecha (arriba) */
.nos-esp__fotos{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(16px,2.5vw,32px);
  align-items:start;
  max-width:540px;
  margin-left:auto;
}
.nos-esp__foto{
  margin:0;
}
.nos-esp__foto--1{
  margin-top:0;
}
.nos-esp__foto--2{
  margin-top:clamp(100px,14vw,190px);
}
.nos-esp__foto img{
  width:100%;
  height:auto;
  aspect-ratio:9/16;
  object-fit:cover;
  display:block;
}

/* --- Experiencia ------------------------------------------------------- */
.nos-exp{
  padding-block:clamp(70px,10vw,140px);
  background:var(--negro);
}
.nos-exp__titulo{
  font-family:var(--fuente-heavy);
  text-align:center;
  font-size:clamp(2rem,3.8vw,3.2rem);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:clamp(50px,7vw,90px);
  color:#fff;
}
.nos-exp__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(38px,5.5vw,70px) clamp(24px,4vw,55px);
  max-width:1140px;
  margin-inline:auto;
}
.nos-exp__item{
  display:flex;
  align-items:flex-start;
  gap:clamp(14px,1.8vw,22px);
}
.nos-exp__badge{
  width:clamp(56px,5.8vw,74px);
  height:clamp(56px,5.8vw,74px);
  border-radius:50%;
  border:1.5px solid #fff;
  display:grid;
  place-items:center;
  flex:none;
  font-size:clamp(1.5rem,2.3vw,2.1rem);
  font-weight:700;
  color:#fff;
  line-height:1;
}
.nos-exp__content{
  display:flex;
  flex-direction:column;
}
.nos-exp__txt{
  font-size:clamp(.75rem,.95vw,.86rem);
  line-height:1.4;
  color:#e6e6e6;
  font-weight:300;
}
.nos-exp__txt strong{
  font-weight:700;
  color:#fff;
}
.nos-exp__dots{
  display:flex;
  gap:8px;
  margin-top:10px;
  align-items:center;
}
.nos-exp__dots span{
  width:6px;
  height:6px;
  border-radius:50%;
  background:rgba(255,255,255,.38);
}
.nos-exp__dots span:first-child{
  background:#fff;
}
.nos-exp__dots span:last-child{
  background:rgba(255,255,255,.75);
}

/* Disposición escalonada/cascada en escritorio (3 columnas) */
@media (min-width:861px){
  .nos-exp__item--1{ grid-column:1; grid-row:1; }
  .nos-exp__item--2{ grid-column:2; grid-row:1; }
  .nos-exp__item--3{ grid-column:3; grid-row:1; }
  .nos-exp__item--4{ grid-column:1; grid-row:2; }
  .nos-exp__item--5{ grid-column:2; grid-row:2; }
  .nos-exp__item--6{ grid-column:3; grid-row:2; }
  .nos-exp__item--7{ grid-column:2; grid-row:3; }
  .nos-exp__item--8{ grid-column:3; grid-row:3; }
  .nos-exp__item--9{ grid-column:3; grid-row:4; }
}

/* --- Principales obras (años) ------------------------------------------ */
.nos-obras{
  padding-block:clamp(60px,9vw,130px);
  background:var(--negro);
}
.nos-obras__titulo{
  font-family:var(--fuente-heavy);
  text-align:center;
  font-size:clamp(2.4rem,4.4vw,3.6rem);
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
  line-height:1.15;
  margin-bottom:clamp(55px,8vw,90px);
  color:#fff;
}

/* Línea de tiempo de años con gráfico de maquetación */
.nos-timeline{
  position:relative;
  max-width:780px;
  width:calc(100% - 30px);
  margin:0 auto clamp(60px,9vw,110px);
  padding-block:54px;
}
.nos-timeline__grafico{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.nos-timeline__img{
  width:100%;
  height:auto;
  display:block;
  pointer-events:none;
}
.nos-timeline__years{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.nos-timeline__year{
  font-family:var(--fuente-bebas);
  position:absolute;
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  font-weight:700;
  letter-spacing:.03em;
  color:transparent;
  -webkit-text-stroke:1.4px #ffffff;
  text-decoration:none;
  pointer-events:auto;
  transition:transform .2s ease, -webkit-text-stroke .2s ease, color .2s ease, text-shadow .2s ease;
  cursor:pointer;
  user-select:none;
  line-height:1;
  white-space:nowrap;
}
.nos-timeline__year:hover,
.nos-timeline__year.activo{
  -webkit-text-stroke:1.6px #fff;
  color:#fff;
  text-shadow:0 0 16px rgba(255,255,255,.65);
}

/* Posicionamiento alternado ceñido arriba / abajo de la barra */
.nos-timeline__year--above{
  bottom:calc(50% + 14px);
  transform:translateX(-50%);
}
.nos-timeline__year--below{
  top:calc(50% + 14px);
  transform:translateX(-50%);
}

/* Posiciones X calibradas exactamente con cada uno de los 6 puntos de line-time.webp */
.nos-timeline__year--2018{ left:4.0%; }
.nos-timeline__year--2019{ left:19.8%; }
.nos-timeline__year--2020{ left:37.6%; }
.nos-timeline__year--2021{ left:56.7%; }
.nos-timeline__year--2022{ left:75.7%; }
.nos-timeline__year--2023{ left:96.7%; }

.nos-anio{
  display:none;
  margin-bottom:clamp(40px,7vw,90px);
}
.nos-anio.activo{
  display:block;
  animation:nosAnioFade .4s ease-out forwards;
}
@keyframes nosAnioFade{
  from{
    opacity:0;
    transform:translateY(14px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
.nos-anio__num{
  font-family:var(--fuente-bebas);
  text-align:center;
  font-size:clamp(4rem,12vw,10rem);
  font-weight:700;
  line-height:1;
  color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.7);
  margin-bottom:clamp(35px,5.5vw,65px);
  letter-spacing:.02em;
}
.nos-anio__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(40px,6vw,85px) clamp(24px,4.5vw,65px);
  max-width:1140px;
  margin-inline:auto;
  padding-left:clamp(20px,3vw,40px);
  border-left:1.5px solid rgba(255,255,255,.65);
}
.nos-anio__grid--single{
  display:flex;
  justify-content:center;
  border-left:none;
  padding-left:0;
}
.nos-anio__grid--single .obra{
  max-width:380px;
}
.obra{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.obra__desc{
  font-size:clamp(.78rem,1vw,.88rem);
  line-height:1.5;
  font-weight:300;
  color:#e2e2e2;
}
.obra__meta{
  margin-top:1.1em;
  font-size:clamp(.78rem,1vw,.88rem);
  font-weight:700;
  line-height:1.5;
  color:#fff;
}
.obra__meta span{display:block;}

/* --- Responsive Nosotros ----------------------------------------------- */
@media (max-width:900px){
  .nos-vmv__grid{grid-template-columns:1fr;gap:clamp(34px,6vw,50px);}
  .nos-vmv__col + .nos-vmv__col::before{display:none;}
  .nos-exp__grid{grid-template-columns:1fr 1fr;}
  .nos-anio__grid{grid-template-columns:1fr 1fr;}
  
  /* Timeline diagonal en tablets y móviles: flujo vertical */
  .nos-diag{
    height:auto;
    display:flex;
    flex-direction:column;
    gap:clamp(14px,2.5vw,20px);
    margin-top:24px;
    padding-left:14px;
  }
  .nos-diag__linea{display:none;}
  .nos-diag__node{
    position:relative;
    left:auto !important;
    top:auto !important;
    transform:none;
    justify-content:flex-start;
    gap:14px;
  }
  .nos-diag__content{
    position:static;
    white-space:normal;
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:10px;
  }
  .nos-diag__txt{font-size:.85rem;max-width:none;}
  .nos-diag__num{font-size:1.6rem;}
}
@media (max-width:760px){
  .nos-cols{grid-template-columns:1fr;gap:clamp(30px,6vw,50px);}
  .nos-esp__grid{grid-template-columns:1fr;gap:clamp(40px,7vw,60px);}
  .nos-esp__lista{max-width:none;}
  .nos-esp__fotos{max-width:440px;margin-inline:auto;}
  .nos-esp__foto--2{margin-top:clamp(40px,8vw,70px);}
  
  /* Timeline en móvil: línea lateral y flujo continuo */
  .nos-tl::before{left:14px;transform:none;}
  .nos-tl{gap:clamp(16px,3vw,22px);}
  .nos-tl__item{grid-template-columns:28px 1fr;gap:12px;min-height:0;}
  .nos-tl__dot{grid-column:1;margin:0 auto;}
  .nos-tl__item--der .nos-tl__content,
  .nos-tl__item--izq .nos-tl__content{
    grid-column:2;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    padding:0;
    gap:12px;
  }
  .nos-tl__item--izq .nos-tl__txt{order:2;text-align:left;max-width:none;}
  .nos-tl__item--izq .nos-tl__num{order:1;}
  .nos-tl__item--der .nos-tl__txt{max-width:none;}
}
@media (max-width:560px){
  .nos-exp__grid{grid-template-columns:1fr;}
  .nos-anio__grid{grid-template-columns:1fr;}
  .nos-esp__fotos{grid-template-columns:1fr 1fr;}
  .nos-timeline{padding-block:34px;width:100%;}
  .nos-timeline__year{font-size:1.05rem;}
}

/* --- Sección Director / Participación Activa ------------------------------- */
.nos-director{
  position:relative;
  overflow:hidden;
  padding-top:clamp(100px,14vw,180px);
  padding-bottom:clamp(100px,14vw,180px);
  background:var(--negro);
  min-height:90vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.nos-director__fondo{
  position:absolute;
  inset:0;
  z-index:0;
}
.nos-director__fondo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 60%;
  opacity:.80;
  filter:grayscale(100%) contrast(1.12) brightness(0.65);
}
.nos-director__fondo::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 70% 50%, rgba(0,0,0,.45) 0%, rgba(0,0,0,.1) 55%, rgba(0,0,0,.75) 100%),
    linear-gradient(180deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.15) 40%, rgba(0,0,0,.8) 100%);
}
.nos-director__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:clamp(40px,7vw,100px);
  align-items:center;
}
.nos-director__retrato{
  display:flex;
  justify-content:center;
  align-items:center;
  max-width:440px;
  width:100%;
  margin-inline:auto;
}
.nos-director__retrato img{
  width:100%;
  height:auto;
  display:block;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,.8));
  transition:transform .4s ease;
}
.nos-director__retrato:hover img{
  transform:scale(1.03);
}
.nos-director__info{
  display:flex;
  flex-direction:column;
  justify-content:center;
  max-width:580px;
}
.nos-director__header{
  margin-bottom:clamp(20px,3vw,32px);
}
.nos-director__sub{
  font-size:clamp(1.05rem,1.5vw,1.25rem);
  font-weight:300;
  color:#fff;
  line-height:1.3;
  margin-bottom:6px;
}
.nos-director__nombre{
  font-size:clamp(1.35rem,2.2vw,1.9rem);
  font-weight:300;
  color:#fff;
  line-height:1.2;
}
.nos-director__nombre strong{
  font-family:var(--fuente-heavy);
  font-weight:700;
}
.nos-director__desc{
  font-size:clamp(.92rem,1.3vw,1.1rem);
  line-height:1.8;
  font-weight:300;
  color:rgba(255,255,255,.92);
  text-align:justify;
  text-justify:inter-word;
}

@media(max-width:860px){
  .nos-director__grid{
    grid-template-columns:1fr;
    gap:45px;
    text-align:center;
  }
  .nos-director__info{
    margin-inline:auto;
  }
  .nos-director__desc{
    text-align:left;
  }
}

/* ==========================================================================
   Ajustes de móvil (revisión técnica)
   Bloque nuevo al final: no modifica ninguna regla anterior y sólo aplica
   por debajo de 760px, así que el escritorio queda intacto.
   ========================================================================== */
@media (max-width:760px){
  /* Los números van del 1 al 14. Sin un ancho fijo, el texto arrancaba donde
     terminara cada número, así que las cifras de dos dígitos empujaban su
     línea ~20px a la derecha y el borde izquierdo de la lista quedaba dentado
     (se medían 9 posiciones distintas). Un ancho mínimo los alinea a todos. */
  .nos-tl__item--der .nos-tl__num,
  .nos-tl__item--izq .nos-tl__num{
    min-width:1.35em;
    text-align:center;
  }
  /* 11.5px es demasiado pequeño para leer en un teléfono. */
  .nos-tl__item--der .nos-tl__txt,
  .nos-tl__item--izq .nos-tl__txt{
    font-size:.82rem;
    line-height:1.4;
  }
}
