/* Estilos exclusivos de Nosotros. No altera la página principal. */
.nosotros-page {
  background:#f4f8fa;
}
.nosotros-hero {
  position:relative;
  overflow:hidden;
  padding:70px 0 76px;
  color:#fff;
  background:linear-gradient(118deg,#042f3e 0%,#07566a 72%,#064051 100%);
}
.nosotros-hero-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:clamp(30px,5vw,72px);
}
.nosotros-glow {
  position:absolute;
  width:360px;
  height:360px;
  border-radius:50%;
  filter:blur(2px);
  pointer-events:none;
}
.nosotros-glow-one {
  right:-120px;
  top:-190px;
  background:radial-gradient(circle,rgba(32,185,176,.2),transparent 70%);
}
.nosotros-glow-two {
  left:-200px;
  bottom:-250px;
  background:radial-gradient(circle,rgba(40,120,219,.17),transparent 70%);
}
.nosotros-kicker {
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 13px;
  color:#a6c9d9;
  font-size:11px;
  font-weight:800;
  letter-spacing:.15em;
}
.nosotros-kicker>span {
  display:inline-block;
  flex:0 0 26px;
  width:26px;
  height:3px;
  border-radius:2px;
  background:linear-gradient(90deg,#2878db,#20b9b0,#c6a85b);
}
.nosotros-intro h1 {
  margin:0 0 20px;
  font-size:clamp(34px,4.1vw,55px);
  line-height:1.04;
  letter-spacing:-.04em;
  font-weight:900;
}
.nosotros-intro h1 em {
  color:#7ed9c5;
  font-style:normal;
}
.nosotros-intro h1 span {
  display:block;
}
.nosotros-lead {
  max-width:590px;
  margin:0 0 27px;
  color:rgba(255,255,255,.86);
  font-size:15px;
  line-height:1.82;
}
.nosotros-intro .button,.nosotros-cta-inner .button {
  display:inline-flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  border-radius:8px;
  font-weight:800;
}
.nosotros-photo {
  position:relative;
  padding:0 0 20px 20px;
}
.nosotros-photo::before {
  content:"";
  position:absolute;
  left:0;
  top:20px;
  right:20px;
  bottom:0;
  border:1px solid rgba(126,217,197,.65);
  border-radius:20px;
}
.nosotros-photo img {
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1.22;
  object-fit:cover;
  border-radius:17px;
  border:2px solid rgba(255,255,255,.25);
  box-shadow:0 24px 55px rgba(0,0,0,.22);
}
.nosotros-photo-caption {
  position:absolute;
  right:-8px;
  bottom:0;
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px 18px;
  color:#063b4b;
  background:#fff;
  border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.caption-dot {
  width:10px;
  height:10px;
  border-radius:50%;
  background:#20b9a9;
  box-shadow:0 0 0 5px rgba(32,185,169,.14);
}
.nosotros-photo-caption strong,.nosotros-photo-caption small {
  display:block;
}
.nosotros-photo-caption strong {
  font-size:13px;
}
.nosotros-photo-caption small {
  margin-top:3px;
  color:#607681;
  font-size:11px;
}
.nosotros-valores {
  padding:72px 0 78px;
  background:#f4f8fa;
}
.nosotros-section-heading {
  max-width:670px;
  margin:0 auto 35px;
  text-align:center;
}
.nosotros-section-heading .nosotros-kicker {
  justify-content:center;
}
.nosotros-section-heading h2 {
  margin:0 0 12px;
  color:#063b4b;
  font-size:clamp(29px,3.5vw,40px);
  line-height:1.1;
  letter-spacing:-.025em;
}
.nosotros-section-heading>p:last-child {
  margin:0;
  color:#526b77;
  font-size:15px;
  line-height:1.7;
}
.nosotros-value-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.nosotros-value-card {
  min-height:230px;
  padding:25px 22px;
  background:#fff;
  border:1px solid #e1eaee;
  border-radius:15px;
  box-shadow:0 8px 24px rgba(6,59,75,.045);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.nosotros-value-card:hover {
  transform:translateY(-4px);
  border-color:#8bd9d0;
  box-shadow:0 14px 30px rgba(6,59,75,.09);
}
.nosotros-icon {
  display:grid;
  place-items:center;
  width:47px;
  height:47px;
  margin-bottom:19px;
  color:#138f91;
  background:#e8f7f5;
  border-radius:13px;
}
.nosotros-icon svg {
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.nosotros-value-card h3 {
  margin:0 0 10px;
  color:#073e50;
  font-size:16px;
  line-height:1.3;
}
.nosotros-value-card p {
  margin:0;
  color:#5c707a;
  font-size:13px;
  line-height:1.7;
}
.nosotros-proposito {
  padding:0 0 76px;
  background:#f4f8fa;
}
.nosotros-purpose-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.nosotros-purpose-card {
  position:relative;
  overflow:hidden;
  padding:34px 35px 37px;
  color:#fff;
  background:linear-gradient(125deg,#063b4b,#07566a);
  border:1px solid rgba(32,185,176,.3);
  border-radius:17px;
}
.nosotros-purpose-card.purpose-vision {
  background:linear-gradient(125deg,#074b59,#063846);
}
.purpose-number {
  position:absolute;
  top:13px;
  right:22px;
  color:rgba(255,255,255,.1);
  font-size:68px;
  line-height:1;
  font-weight:900;
}
.nosotros-purpose-card .nosotros-kicker {
  position:relative;
  z-index:1;
}
.nosotros-purpose-card h2 {
  position:relative;
  z-index:1;
  margin:0 0 13px;
  color:#7ed9c5;
  font-size:27px;
}
.nosotros-purpose-card>p:last-child {
  position:relative;
  z-index:1;
  max-width:520px;
  margin:0;
  color:rgba(255,255,255,.84);
  font-size:14px;
  line-height:1.85;
}
.nosotros-cta {
  padding:28px 0 34px;
  background:#eaf3f5;
}
.nosotros-cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:30px 35px;
  color:#fff;
  background:linear-gradient(110deg,#063b4b,#07566a);
  border-radius:17px;
}
.nosotros-cta-inner .nosotros-kicker {
  margin-bottom:8px;
}
.nosotros-cta-inner h2 {
  max-width:680px;
  margin:0 0 7px;
  font-size:clamp(24px,3vw,32px);
  line-height:1.2;
}
.nosotros-cta-inner div>p:last-child {
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:14px;
  line-height:1.6;
}
.nosotros-cta-inner .button {
  flex:0 0 auto;
}
.nosotros-footer {
  padding:21px 0;
  color:#c3d5dc;
  background:#042f3e;
}
.nosotros-footer-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  font-size:12px;
}
.nosotros-footer a {
  color:#fff;
  text-decoration:none;
  font-weight:700;
}
.nosotros-footer a:hover {
  color:#7ed9c5;
}
@media(max-width:900px) {
  .nosotros-hero{
    padding:56px 0 62px}
    .nosotros-hero-grid{
      grid-template-columns:1fr .9fr;
      gap:28px}
      .nosotros-value-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))}
        .nosotros-value-card{
          min-height:195px}
        }
        @media(max-width:680px) {
          .nosotros-hero{
            padding:43px 0 54px}
            .nosotros-hero-grid{
              grid-template-columns:1fr;
              gap:32px}
              .nosotros-intro h1{
                font-size:clamp(34px,9vw,46px)}
                .nosotros-lead{
                  font-size:14px;
                  line-height:1.8}
                  .nosotros-photo{
                    margin:0 8px 10px 0;
                    padding-left:12px}
                    .nosotros-photo img{
                      aspect-ratio:1.35}
                      .nosotros-photo-caption{
                        right:-5px}
                        .nosotros-valores{
                          padding:52px 0 56px}
                          .nosotros-section-heading{
                            margin-bottom:26px;
                            text-align:left}
                            .nosotros-section-heading .nosotros-kicker{
                              justify-content:flex-start}
                              .nosotros-value-grid{
                                grid-template-columns:1fr;
                                gap:12px}
                                .nosotros-value-card{
                                  display:grid;
                                  grid-template-columns:48px 1fr;
                                  column-gap:14px;
                                  min-height:0;
                                  padding:19px}
                                  .nosotros-icon{
                                    grid-row:span 2;
                                    margin:0}
                                    .nosotros-value-card h3{
                                      align-self:end;
                                      margin-bottom:5px}
                                      .nosotros-value-card p{
                                        grid-column:2}
                                        .nosotros-proposito{
                                          padding:0 0 54px}
                                          .nosotros-purpose-grid{
                                            grid-template-columns:1fr;
                                            gap:13px}
                                            .nosotros-purpose-card{
                                              padding:29px 24px 31px}
                                              .nosotros-cta{
                                                padding:20px 0}
                                                .nosotros-cta-inner{
                                                  align-items:flex-start;
                                                  flex-direction:column;
                                                  padding:25px 22px}
                                                  .nosotros-footer-inner{
                                                    align-items:flex-start;
                                                    flex-direction:column;
                                                    gap:10px}
                                                  }
                                                  @media(prefers-reduced-motion:reduce) {
                                                    .nosotros-value-card{
                                                      transition:none}
                                                    }
                                                    /* Refinamiento visual exclusivo de la página Nosotros */
                                                    .nosotros-page {
                                                      color:#173b49;
                                                      background:#f7fafb;
                                                    }
                                                    .nosotros-hero {
                                                      padding:clamp(66px,7vw,98px) 0 clamp(72px,7vw,100px);
                                                      background:linear-gradient(122deg,#042f3e 0%,#064758 57%,#073747 100%);
                                                    }
                                                    .nosotros-hero::after {
                                                      content:"";
                                                      position:absolute;
                                                      right:0;
                                                      bottom:0;
                                                      width:min(42vw,560px);
                                                      height:1px;
                                                      background:linear-gradient(90deg,transparent,rgba(126,217,197,.72));
                                                    }
                                                    .nosotros-hero-grid {
                                                      grid-template-columns:minmax(0,1.04fr) minmax(300px,.86fr);
                                                      gap:clamp(36px,6vw,88px);
                                                    }
                                                    .nosotros-intro {
                                                      max-width:660px;
                                                    }
                                                    .nosotros-kicker {
                                                      font-size:10px;
                                                      letter-spacing:.19em;
                                                    }
                                                    .nosotros-intro h1 {
                                                      max-width:650px;
                                                      font-size:clamp(37px,4.25vw,59px);
                                                      line-height:1.02;
                                                      letter-spacing:-.045em;
                                                    }
                                                    .nosotros-intro h1 em {
                                                      color:#8de1ce;
                                                    }
                                                    .nosotros-lead {
                                                      max-width:560px;
                                                      font-size:15px;
                                                      line-height:1.9;
                                                      color:rgba(255,255,255,.82);
                                                    }
                                                    .nosotros-intro .button {
                                                      min-height:48px;
                                                      padding:0 19px;
                                                      box-shadow:0 8px 24px rgba(0,0,0,.15);
                                                    }
                                                    .nosotros-photo {
                                                      padding:0 0 23px 23px;
                                                    }
                                                    .nosotros-photo::before {
                                                      left:0;
                                                      top:23px;
                                                      right:23px;
                                                      bottom:0;
                                                      border-color:rgba(126,217,197,.52);
                                                      border-radius:19px;
                                                    }
                                                    .nosotros-photo img {
                                                      aspect-ratio:1.08;
                                                      border-radius:16px;
                                                      box-shadow:0 28px 65px rgba(0,0,0,.27);
                                                    }
                                                    .nosotros-photo-caption {
                                                      right:-12px;
                                                      bottom:3px;
                                                      padding:15px 20px;
                                                      border:1px solid rgba(6,59,75,.08);
                                                    }
                                                    .nosotros-valores {
                                                      padding:clamp(62px,7vw,92px) 0 clamp(68px,7vw,96px);
                                                      background:linear-gradient(180deg,#f7fafb 0%,#eef5f7 100%);
                                                    }
                                                    .nosotros-section-heading {
                                                      max-width:720px;
                                                      margin-bottom:42px;
                                                    }
                                                    .nosotros-section-heading h2 {
                                                      font-size:clamp(30px,3.4vw,43px);
                                                      letter-spacing:-.035em;
                                                    }
                                                    .nosotros-section-heading>p:last-child {
                                                      max-width:590px;
                                                      margin-inline:auto;
                                                    }
                                                    .nosotros-value-grid {
                                                      gap:17px;
                                                    }
                                                    .nosotros-value-card {
                                                      position:relative;
                                                      min-height:246px;
                                                      padding:27px 23px 25px;
                                                      border-radius:13px;
                                                      border-color:#dce8ec;
                                                      box-shadow:0 9px 25px rgba(6,59,75,.045);
                                                    }
                                                    .nosotros-value-card::before {
                                                      content:"";
                                                      position:absolute;
                                                      top:-1px;
                                                      left:22px;
                                                      right:22px;
                                                      height:3px;
                                                      border-radius:0 0 3px 3px;
                                                      background:linear-gradient(90deg,#2878db,#20b9b0,#c6a85b);
                                                      opacity:.78;
                                                    }
                                                    .nosotros-value-card:hover {
                                                      transform:translateY(-3px);
                                                      box-shadow:0 17px 34px rgba(6,59,75,.10);
                                                    }
                                                    .nosotros-icon {
                                                      width:49px;
                                                      height:49px;
                                                      border-radius:12px;
                                                      color:#087f82;
                                                      background:#e4f5f2;
                                                    }
                                                    .nosotros-value-card h3 {
                                                      font-size:15px;
                                                      letter-spacing:-.01em;
                                                    }
                                                    .nosotros-value-card p {
                                                      font-size:13px;
                                                      line-height:1.78;
                                                    }
                                                    .nosotros-proposito {
                                                      padding:0 0 clamp(66px,7vw,90px);
                                                      background:#eef5f7;
                                                    }
                                                    .nosotros-purpose-grid {
                                                      gap:22px;
                                                    }
                                                    .nosotros-purpose-card {
                                                      min-height:250px;
                                                      padding:38px 38px 40px;
                                                      border-radius:15px;
                                                      box-shadow:0 14px 32px rgba(6,59,75,.08);
                                                    }
                                                    .nosotros-purpose-card::after {
                                                      content:"";
                                                      position:absolute;
                                                      left:0;
                                                      bottom:0;
                                                      width:100%;
                                                      height:3px;
                                                      background:linear-gradient(90deg,#2878db,#20b9b0,#c6a85b);
                                                      opacity:.9;
                                                    }
                                                    .nosotros-purpose-card h2 {
                                                      font-size:30px;
                                                      letter-spacing:-.025em;
                                                    }
                                                    .nosotros-purpose-card>p:last-child {
                                                      max-width:490px;
                                                      font-size:14px;
                                                      line-height:1.9;
                                                    }
                                                    .purpose-number {
                                                      top:17px;
                                                      right:25px;
                                                      font-size:78px;
                                                      color:rgba(255,255,255,.085);
                                                    }
                                                    .nosotros-cta {
                                                      padding:28px 0 42px;
                                                      background:#f7fafb;
                                                    }
                                                    .nosotros-cta-inner {
                                                      position:relative;
                                                      overflow:hidden;
                                                      padding:34px 38px;
                                                      border:1px solid rgba(126,217,197,.2);
                                                      box-shadow:0 15px 35px rgba(6,59,75,.10);
                                                    }
                                                    .nosotros-cta-inner::after {
                                                      content:"";
                                                      position:absolute;
                                                      top:-95px;
                                                      right:-55px;
                                                      width:230px;
                                                      height:230px;
                                                      border:1px solid rgba(126,217,197,.18);
                                                      border-radius:50%;
                                                      box-shadow:0 0 0 25px rgba(126,217,197,.035),0 0 0 50px rgba(126,217,197,.025);
                                                      pointer-events:none;
                                                    }
                                                    .nosotros-cta-inner>div,.nosotros-cta-inner>.button {
                                                      position:relative;
                                                      z-index:1;
                                                    }
                                                    .nosotros-cta-inner .button {
                                                      min-height:46px;
                                                      padding:0 18px;
                                                    }
                                                    .nosotros-footer {
                                                      border-top:1px solid rgba(126,217,197,.16);
                                                    }
                                                    .nosotros-footer-inner {
                                                      min-height:24px;
                                                    }
                                                    .nosotros-footer a {
                                                      transition:color .2s ease;
                                                    }
                                                    @media(max-width:1000px) {
                                                      .nosotros-hero-grid {
                                                        grid-template-columns:minmax(0,1fr) minmax(270px,.82fr);
                                                        gap:32px;
                                                      }
                                                      .nosotros-intro h1 {
                                                        font-size:clamp(35px,4.6vw,49px);
                                                      }
                                                      .nosotros-value-grid {
                                                        grid-template-columns:repeat(2,minmax(0,1fr));
                                                      }
                                                      .nosotros-value-card {
                                                        min-height:215px;
                                                      }
                                                    }
                                                    @media(max-width:680px) {
                                                      .nosotros-hero {
                                                        padding:46px 0 58px;
                                                      }
                                                      .nosotros-hero-grid {
                                                        grid-template-columns:minmax(0,1fr);
                                                        gap:30px;
                                                      }
                                                      .nosotros-intro h1 {
                                                        max-width:520px;
                                                        font-size:clamp(35px,9vw,47px);
                                                      }
                                                      .nosotros-photo {
                                                        margin:0 8px 10px 0;
                                                        padding:0 0 18px 14px;
                                                      }
                                                      .nosotros-photo::before {
                                                        top:16px;
                                                        right:15px;
                                                      }
                                                      .nosotros-photo img {
                                                        aspect-ratio:1.25;
                                                      }
                                                      .nosotros-photo-caption {
                                                        right:-5px;
                                                        padding:12px 14px;
                                                      }
                                                      .nosotros-valores {
                                                        padding:55px 0 60px;
                                                      }
                                                      .nosotros-section-heading {
                                                        margin-bottom:29px;
                                                      }
                                                      .nosotros-value-grid {
                                                        grid-template-columns:1fr;
                                                        gap:13px;
                                                      }
                                                      .nosotros-value-card {
                                                        min-height:0;
                                                        padding:21px 19px;
                                                      }
                                                      .nosotros-value-card::before {
                                                        left:19px;
                                                        right:19px;
                                                      }
                                                      .nosotros-proposito {
                                                        padding-bottom:57px;
                                                      }
                                                      .nosotros-purpose-grid {
                                                        grid-template-columns:1fr;
                                                        gap:15px;
                                                      }
                                                      .nosotros-purpose-card {
                                                        min-height:0;
                                                        padding:30px 25px 34px;
                                                      }
                                                      .nosotros-cta {
                                                        padding:18px 0 28px;
                                                      }
                                                      .nosotros-cta-inner {
                                                        padding:27px 23px;
                                                        gap:20px;
                                                      }
                                                    }
                                                    @media(prefers-reduced-motion:reduce) {
                                                      .nosotros-footer a {
                                                        transition:none;
                                                      }
                                                    }
                                                    /* AJUSTE DE COLOR: fondo claro inspirado en la presentación principal.
                                                    Reglas exclusivas de Nosotros; no modifican la página de inicio. */
                                                    .nosotros-page {
                                                      background:#f4f6f6;
                                                    }
                                                    .nosotros-hero {
                                                      color:#15242d;
                                                      background:linear-gradient(118deg,#f4f7f7 0%,#eaf5f5 58%,#e7f1f8 100%);
                                                    }
                                                    .nosotros-glow-one {
                                                      background:radial-gradient(circle,rgba(18,181,167,.22),transparent 70%);
                                                    }
                                                    .nosotros-glow-two {
                                                      background:radial-gradient(circle,rgba(25,118,201,.15),transparent 70%);
                                                    }
                                                    .nosotros-kicker {
                                                      color:#287082;
                                                    }
                                                    .nosotros-intro h1 {
                                                      color:#063c4d;
                                                    }
                                                    .nosotros-intro h1 em {
                                                      color:#0aa99d;
                                                    }
                                                    .nosotros-lead {
                                                      color:#425c66;
                                                    }
                                                    .nosotros-photo::before {
                                                      border-color:rgba(18,181,167,.72);
                                                    }
                                                    .nosotros-photo img {
                                                      border-color:rgba(255,255,255,.9);
                                                      box-shadow:0 24px 55px rgba(6,60,77,.16);
                                                    }
                                                    .nosotros-photo-caption {
                                                      box-shadow:0 10px 30px rgba(6,60,77,.12);
                                                    }
                                                    .nosotros-valores {
                                                      background:linear-gradient(180deg,#f4f7f7 0%,#edf5f6 100%);
                                                    }
                                                    .nosotros-proposito {
                                                      background:linear-gradient(180deg,#edf5f6 0%,#f5f7f7 100%);
                                                    }
                                                    .nosotros-purpose-card {
                                                      background:linear-gradient(125deg,#063c4d 0%,#087d88 72%,#12a99f 130%);
                                                      border-color:rgba(18,181,167,.38);
                                                      box-shadow:0 12px 30px rgba(6,60,77,.10);
                                                    }
                                                    .nosotros-purpose-card.purpose-vision {
                                                      background:linear-gradient(125deg,#174d7b 0%,#087b88 72%,#12a99f 130%);
                                                    }
                                                    .nosotros-cta {
                                                      background:linear-gradient(110deg,#eaf4f5,#e8f0f8);
                                                    }
                                                    .nosotros-cta-inner {
                                                      background:linear-gradient(110deg,#063c4d 0%,#087b88 72%,#149c9c 120%);
                                                      box-shadow:0 12px 30px rgba(6,60,77,.12);
                                                    }
                                                    @media (prefers-reduced-motion: reduce) {
                                                      .nosotros-value-card {
                                                        transition:none;
                                                      }
                                                    }
                                                    /* Ajuste solicitado: marco fotográfico más sutil y sangría en párrafos. */
                                                    .nosotros-photo::before {
                                                      top: 15px;
                                                      right: 10px;
                                                      bottom: -2px;
                                                      left: 15px;
                                                      border: 0;
                                                      border-right: 3px solid transparent;
                                                      border-bottom: 3px solid transparent;
                                                      border-radius: 18px;
                                                      background: linear-gradient(135deg, #2878db, #20b9b0 62%, #c6a85b) border-box;
                                                      -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
                                                      -webkit-mask-composite: xor;
                                                      mask-composite: exclude;
                                                      pointer-events: none;
                                                    }
                                                    /* Párrafos sin sangría para una lectura más limpia */
                                                    @media (max-width: 680px) {
                                                      .nosotros-photo::before {
                                                        top: 12px;
                                                        right: 8px;
                                                        left: 10px;
                                                        bottom: 0;
                                                      }
                                                    }

/* CTA final de Nosotros: mismo fondo a todo lo ancho que el cierre de Galería */
.nosotros-cta {
  padding: 38px 0;
  color: #fff;
  background: linear-gradient(112deg, #063747, #07566a);
}
.nosotros-cta-inner {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.nosotros-cta-inner::after {
  content: none;
}
.nosotros-cta-inner .nosotros-kicker {
  color: #6dd4bd;
}
.nosotros-cta-inner div > p:last-child {
  color: rgba(255,255,255,.75);
}
@media (max-width: 1000px) {
  .nosotros-cta-inner {
    padding: 0;
  }
}
