/* ========== HERO ========== */
.nos-hero{
  position:relative;
  width:100%;
  min-height:62vh;
  padding:6rem 1rem 4rem;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.nos-hero__overlay{ display:none; }

/* logo grande al centro */
.nos-hero__logo{
  width:260px;
  max-width:40vw;
  height:auto;
  margin:0 auto 1rem;
}

/* título verde como el screenshot */
.nos-hero__title{
  margin:0;
  font-weight:700;
  font-size:clamp(1.8rem,2vw + 1.5rem,2.4rem);
  color:#008c3a;
}

/* tarjeta de respaldo abajo-izquierda */
.nos-hero__endorse{
  position:absolute;
  left:2rem;
  bottom:2rem;
  z-index:2;
  display:inline-flex;
  flex-direction:column;
  gap:.25rem;
  background:rgba(255,255,255,.92);
  border-radius:10px;
  padding:.75rem 1rem;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}

/* texto “–Con el respaldo de–” (compatible con ambas variantes de clases) */
.nos-hero__endorse > span,
.nos-endorse__caption{
  font-size:.9rem;
  color:#777;
  font-style:italic;
  line-height:1;
}

/* fila marca + logo (compatibilidad con clases antiguas) */
.nos-endorse__brand{ display:flex; align-items:center; gap:.5rem; }

/* logo de respaldo */
.nos-hero__endorselogo,
.nos-endorse__img{
  height:22px;
  width:auto;
}

/* en móviles la tarjeta se hace un poco más pequeña */
@media (max-width:768px){
  .nos-hero__endorse{ left:1rem; bottom:1rem; transform:scale(.95); }
  .nos-hero__logo{ width:220px; }
}


/* ========== SOLUCIONES ========== */
.nos-solutions{
  padding:4rem 1rem 5rem;
  background:#fff;
  text-align:center;
}

.nos-solutions__title{
  margin:0 0 .5rem;
  font-size:2rem;
  font-weight:700;
  color:#2a2a2a;
}

.nos-solutions__subtitle{
  margin:0 0 2rem;
  font-size:1.6rem;
  font-weight:700;
  color:#3a3a3a;
}

/* párrafo introductorio centrado y ancho cómodo */
.nos-solutions__intro{
  max-width:980px;
  margin:0 auto 4.5rem;
  font-size:1.05rem;
  line-height:1.8;
  color:#3f3f3f;
  text-align:center;
}

/* grid de dos columnas centrado con mucho aire como en el mock */
.nos-solutions__grid{
  max-width:980px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:3.5rem 4rem;
}

/* cada ítem: icono a la izquierda, texto a la derecha (alineado a la izquierda) */
.nos-col{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:1rem;
  align-items:start;
  text-align:left;
}

.nos-icon{ display:flex; align-items:center; justify-content:center; }

.nos-icon img{
  width:68px;
  height:auto;
}

.nos-coltext{
  font-size:1rem;
  line-height:1.7;
  color:#4a4a4a;
}
.nos-coltext strong{ color:#2a2a2a; }

/* responsive */
@media (max-width:768px){
  .nos-solutions__grid{ grid-template-columns:1fr; }
  .nos-col{ grid-template-columns:60px 1fr; }
  .nos-icon img{ width:56px; }
}


/* ========== CONTACTO ========== */
.nos-contact{
  padding:3rem 1rem;
  background:#f9f9f9;
  text-align:center;
}
.nos-contact__info{
  max-width:700px;
  margin:0 auto;
  font-size:1rem;
  line-height:1.6;
  color:#444;
}


/* ======= Corporativo ======= */
.nos-corp { background:#fff; }
.nos-corp__wrap { max-width:1100px; margin:0 auto; padding:56px 16px; }
.nos-h2.center { text-align:center; font-weight:700; margin:0 0 8px; }
.nos-corp__lead { text-align:center; max-width:900px; margin:0 auto 32px; color:#2b2f2f; line-height:1.8; }
.nos-corp__grid { display:grid; grid-template-columns: 420px 1fr; gap:40px; align-items:center; }
.nos-corp__img img { width:100%; height:auto; object-fit:contain; }
.nos-corp__benefits h3 { margin:0 0 8px; font-weight:700; }
.nos-list-html ul { margin:0; padding-left:20px; }
.nos-list-html li { margin:8px 0; position:relative; }
.nos-list-html li::marker { color:#e01787; } /* viñeta magenta */

/* ======= Servicios (3 tarjetas) ======= */
.nos-sectiontitle { font-size:28px; font-weight:700; margin:0 0 12px; }
.nos-serv { background:#fff; }
.nos-serv__wrap { max-width:1200px; margin:0 auto; padding:16px 16px 48px; }
.nos-serv__grid { display:grid; grid-template-columns: repeat(3,1fr); gap:28px; }
.nos-card { background:#fff; border-radius:18px; padding:22px; box-shadow:0 6px 18px rgba(0,0,0,.10); }
.nos-card h4 { font-weight:700; margin:0 0 14px; }
.nos-card__img { width:100%; height:auto; border-radius:8px; margin:4px 0 14px; object-fit:cover; }
.nos-card__txt { color:#2b2f2f; line-height:1.8; }

/* ======= Callouts Export / Import ======= */
.nos-callouts { max-width:1200px; margin:12px auto 48px; padding:0 16px; display:grid; gap:24px; }
.nos-call { background:#fff; border-radius:18px; box-shadow:0 8px 24px rgba(0,0,0,.10); padding:22px; display:grid; grid-template-columns: 290px 1fr; gap:24px; align-items:center; }
.nos-call__img img { width:100%; height:auto; object-fit:contain; }
.nos-call__body h4 { margin:0 0 10px; font-weight:700; }
.nos-call__txt { color:#2b2f2f; line-height:1.8; margin-bottom:16px; }
.btn-cta { display:inline-block; background:#0aa34b; color:#fff; font-weight:700; padding:14px 28px; border-radius:14px; text-decoration:none; box-shadow:0 6px 14px rgba(0,0,0,.12); }
.btn-cta:hover { filter:brightness(1.05); }

/* ======= Tiendas recomendadas ======= */
.nos-stores { max-width:1200px; margin:24px auto 56px; padding:0 16px; /* evita scroll horizontal del módulo */ overflow-x:hidden; }
.nos-stores__grid { display:grid; grid-template-columns: 360px 1fr; gap:-10px; align-items:center; }
.nos-stores__left { background:#f3f5f6; border-radius:12px; padding:28px; }
.nos-stores__left h4 { margin:0 0 10px; font-weight:800; font-size:28px; }
.nos-stores__txt { color:#2b2f2f; line-height:1.8; }

/* ====== Carrusel de logos (Stores) ====== */
.nos-stores__right{
  min-height: 140px;
  display:flex; 
  align-items:center; 
  justify-content:center;
  overflow:hidden;
}

/* carril limitado y centrado */
.logo-rail{
  width:100%;
  max-width: 960px;            /* ← ajusta el tope a gusto (p.ej. 720/840/960) */
  margin:0 auto;
  position:relative;
  overflow:hidden;              /* oculta el track infinito */
  border-radius:0px 12px 12px 0px;
  padding:70px 12px;            /* alto útil del banner */
  background: linear-gradient(90deg,#05a34b 0%, #75d16a 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}

/* pista animada */
.logo-track{
  display:flex; align-items:center;
  gap:clamp(30px, 6vw, 30px);   /* separaciones responsivas sin estirar de más */
  width:max-content;
  animation: logos-scroll var(--duration,28s) linear infinite;
  will-change: transform;
}
.logo-track:hover{ animation-play-state: paused; } /* opcional */

/* logos en blanco */
.nos-stores .logo img{
  height:60px; width:auto; display:block; object-fit:contain;
  filter: brightness(0) saturate(0) invert(1) contrast(1.05);
  opacity:.98;
}

/* bordes de desvanecido (opcional, queda top) */
.logo-rail::before,
.logo-rail::after{
  content:""; position:absolute; top:0; bottom:0; width:40px; pointer-events:none;
}
.logo-rail::before{ left:0;  background:linear-gradient(to right, rgba(5,163,75,.35), rgba(5,163,75,0)); }
.logo-rail::after { right:0; background:linear-gradient(to left,  rgba(117,209,106,.35), rgba(117,209,106,0)); }

@keyframes logos-scroll{
  from{ transform: translateX(0); }
  to  { transform: translateX(-50%); } /* duplicamos el set, por eso 50% */
}

/* accesibilidad */
@media (prefers-reduced-motion: reduce){
  .logo-track{ animation:none; }
}

/* responsive */
@media (max-width: 992px){
  .nos-stores__grid{ grid-template-columns:1fr; }
  .logo-rail{ max-width: 100%; }
  .nos-stores__right{ min-height: 120px; }
  .nos-stores .logo img{ height:52px; }
}
@media (max-width: 600px){
  .nos-stores .logo img{ height:44px; }
}



/* ======= Video ======= */
.nos-video { max-width:800px; margin:0 auto 64px; padding:0 16px; text-align:center; }
.nos-sectiontitle.center { text-align:center; }
.video-16by9 { position:relative; width:100%; padding-top:56.25%; border-radius:12px; overflow:hidden; box-shadow:0 10px 26px rgba(0,0,0,.15); }
.video-16by9 iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

@media (max-width: 1024px){
  .nos-corp__grid { grid-template-columns: 1fr; }
  .nos-serv__grid { grid-template-columns: 1fr 1fr; }
  .nos-call { grid-template-columns: 1fr; text-align:left; }
  .nos-stores__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px){
  .nos-serv__grid { grid-template-columns: 1fr; }
}


/* ======= FAQ ======= */
#faq {
  padding: 40px 20px;
  background-color: #ffffff;
  border-bottom: 2px solid #ffffff; /* línea abajo para marcar separación */
}
.nos-faq { max-width:1100px; margin:24px auto 72px; padding:0 16px; }
.nos-faq__wrap { width:100%;}
.faq-list { margin-top:8px; }

.faq-item { padding:14px 0 18px; border-bottom:2px solid #e01787; } /* línea magenta */
.faq-q { 
  list-style:none; cursor:pointer; outline:0;
  display:flex; align-items:center; gap:12px;
  font-weight:800; font-size:clamp(18px,2vw,24px); color:#4a4f55;
}
.faq-q::-webkit-details-marker { display:none; } /* quita marcador por defecto */

.faq-q::before{
  content:"+"; font-weight:900; font-size:26px; line-height:1;
  color:#0aa34b; width:20px; display:inline-block; transform:translateY(-1px);
}
.faq-item[open] .faq-q::before{ content:"–"; color:#0aa34b; } /* verde en abierto */

.faq-a{
  color:#6b7074; margin:10px 0 6px 32px;
  line-height:1.8; font-size:1rem;
}
