/* home.css - estilos responsive para la página de inicio */
:root{ --max-width:1100px; --accent:#e33; --muted:#777 }
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#222;line-height:1.4}
.wrap{max-width:var(--max-width);margin:0 auto;padding:0 16px}
.site-header{background:#fff;border-bottom:none;position:sticky;top:0;z-index:1000}
.site-header .wrap{display:flex;align-items:center;gap:16px;padding:56px 0}
.logo img{height:64px;width:auto;display:block;transition:height .18s ease}
.site-heading{
  /* copied nav styles: color, padding, border-radius, font */
  color:#888888;
  text-decoration:none;
  padding:8px 10px;
  border-radius:4px;
  font-family:mostra-nuova, Arial, Helvetica, sans-serif;
  font-size:15px;
  font-weight:400;
  line-height:1.2;
  max-width:520px;
  display:block;
}
.site-heading:hover{background:#f2f2f2}

/* split heading lines styles (keep the first line emphasized) */
.site-heading-line1{display:block;font-weight:700;font-size:15px;letter-spacing:0.6px;text-transform:uppercase;color:#888888}
.site-heading-line2{display:block;font-weight:400;font-size:13px;margin-top:4px;color:#888888;line-height:1.2}
.main-nav{display:flex;gap:18px}
.main-nav a{color:#888888;text-decoration:none;padding:8px 10px;border-radius:4px;font-family:mostra-nuova;font-size:15px;font-weight:400;display:inline-flex;align-items:center;gap:6px}
.main-nav a:hover{background:#f2f2f2}
.menu-toggle{display:none;background:transparent;border:0;font-size:20px}

/* Social media icons */
.social-media {
  display: flex;
  gap: 16px;
  align-items: center;
}

.social-media a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  transition: opacity 0.2s ease;
}

.social-media a:hover {
  opacity: 0.7;
}

.social-media img {
  width: 32px;
  height: 32px;
  display: block;
  object-fit: contain;
}

/* Ocultar versión móvil en desktop */
.social-media-mobile {
  display: none;
}

/* Hero / slider */
.hero{padding:18px 0;background:transparent}
.promo-slider{position:relative;overflow:hidden;border-radius:10px;background:#000;box-shadow:0 8px 24px rgba(0,0,0,.12);
  /* altura dinámica: ajusta según la ventana, evita que sea demasiado pequeña o enorme */
  /* height = mínimo entre (100vh - header) y 75vh, con un mínimo razonable */
  height: min(calc(100vh - 96px), 75vh);
  min-height: 360px;
  margin: 0 auto; /* centrar según el ancho calculado */
  max-width: 100%;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.promo-slider:not(.loaded){opacity:0}
.promo-slider .slides-wrapper{display:flex;flex-wrap:nowrap;transition:transform .6s cubic-bezier(.22,.9,.29,1);will-change:transform;height:100%}
.promo-slider .slide{flex:0 0 100%;height:100%;display:block;position:relative;overflow:hidden}
.promo-slider .slide .slide-link{display:block;width:100%;height:100%;text-decoration:none;color:inherit;cursor:pointer;transition:transform .3s ease}
.promo-slider .slide .slide-link:hover{transform:scale(1.02)}
.promo-slider .slide img{width:100%;height:100%;object-fit:contain;display:block;background:#000;transition:opacity .3s ease}
.promo-slider .slide .slide-link:hover img{opacity:0.95}

/* Caption overlay */
.slide-caption{position:absolute;left:0;right:0;bottom:0;padding:18px;background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.55) 60%);color:#fff;pointer-events:none}
.caption-inner{max-width:720px}
.slide-caption h3{margin:0;font-size:1.4rem;letter-spacing:0.2px}
.slide-caption .cta{display:inline-block;margin-top:8px;padding:8px 12px;background:var(--accent);color:#fff;border-radius:4px;text-decoration:none;transition:background .2s ease}
.promo-slider .slide .slide-link:hover .cta{background:#c22;transform:translateX(4px)}

.slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.08);color:#fff;border:0;padding:12px 14px;cursor:pointer;border-radius:50%;backdrop-filter:blur(4px);box-shadow:0 4px 10px rgba(0,0,0,.2);font-size:20px}
.slider-btn:hover{background:rgba(255,255,255,0.14)}
.slider-btn.prev{left:12px}
.slider-btn.next{right:12px}
.slider-dots{position:absolute;left:50%;transform:translateX(-50%);bottom:12px;display:flex;gap:10px}
.slider-dots button{width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.35);cursor:pointer;transition:transform .18s ease}
.slider-dots button.active{background:#fff;transform:scale(1.15)}

/* Features */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:24px 0}

/* Background for main content area */

/* Use user-provided background image for the hero area (so it appears UNDER the slider) */
.hero{
  /* show the image with no white overlay so colors are true */
  background-image: url('../../img_n/fondoficha1.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: #f6f8fa; /* fallback while image loads */
}

/* keep main spacing but no background so hero shows the image under the slider */
main{
  padding-top: 30px;
  padding-bottom: 40px;
}

.wrap.section-pad{padding-top:12px;padding-bottom:12px}
.features article{background:#fff;padding:18px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.features h2{margin-top:0}

/* Blog/Notas Section */
.blog-section{
  padding: 50px 0;
  background: #f6f8fa;
}

.blog-title{
  text-align: center;
  font-size: 32px;
  font-weight: 700;
  font-family: mostra-nuova, Arial, Helvetica, sans-serif; /* igual que la barra de navegación */
  color: #333;
  margin: 0 0 40px 0;
  letter-spacing: 1px;
}

.blog-grid{
  display: flex;
  flex-direction: column;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

.blog-card{
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: row;
  align-items: stretch;
}

.blog-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

.blog-card-image{
  width: 300px;
  min-width: 300px;
  height: auto;
  overflow: hidden;
  background: #f0f0f0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.blog-card-image img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.blog-card:hover .blog-card-image img{
  transform: scale(1.05);
}

.blog-card-content-wrapper{
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 24px;
}

.blog-card-header{
  margin: 0 0 16px 0;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 12px;
}

.blog-card-title{
  font-size: 20px;
  font-weight: 700;
  font-family: mostra-nuova, Arial, Helvetica, sans-serif;
  color: #333;
  margin: 0 0 8px 0;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.blog-card-date{
  font-size: 13px;
  color: #888;
  font-weight: 400;
}

.blog-card-content{
  flex: 1;
  color: #555;
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 16px 0;
  overflow: visible;
  display: block;
}

.blog-card-link{
  color: var(--accent, #e63946);
  font-weight: 600;
  text-decoration: none;
  font-size: 14px;
  transition: color 0.2s ease;
  align-self: flex-start;
}

.blog-card-link:hover{
  color: #c5303d;
  text-decoration: underline;
}

.blog-empty{
  text-align: center;
  color: #888;
  font-size: 16px;
  padding: 40px 0;
}

/* Responsive */
@media (max-width:900px){
  .features{grid-template-columns:repeat(2,1fr)}
  .blog-title{
    font-size: 28px;
    margin-bottom: 30px;
  }
}
@media (max-width:640px){
  /* Quitar position sticky en móvil para que el header haga scroll */
  .site-header{
    position: relative;
  }
  
  /* Reorganizar header en móvil: logo arriba centrado, luego h1, luego menú */
  .site-header .wrap{
     flex-direction: column;
     align-items: center;
     padding: 10px 12px 4px;
     gap: 4px;
  }
  
  /* Logo centrado arriba */
  .site-header .logo{
    position: static;
    transform: none;
    order: 1;
  }
  
  .logo img{
    height: 50px;
  }
  
  /* H1 debajo del logo, centrado */
  .site-heading{
     position: static;
     transform: none;
     order: 2;
     text-align: center;
     max-width: 100%;
     padding: 2px 10px;
  }
  
  /* Aumentar tamaño del texto secundario en móvil */
  .site-heading-line2{
    font-size: 14px;
  }
  
  /* Ocultar redes sociales del header en móvil */
  .site-header .social-media{
    display: none;
  }
  
  /* Mostrar redes sociales móvil debajo del slider */
  .social-media-mobile{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 18px auto;
    max-width: 100vw;
    gap: 18px;
  }
  
  /* Menú hamburguesa a la derecha */
  .menu-toggle{
    display: block;
    position: absolute;
    top: 16px;
    right: 12px;
  }
  
  /* Menú desplegable */
  .main-nav{
    position: fixed;
    top: 0;
    right: 0;
    background: #fff;
    flex-direction: column;
    padding: 60px 12px 12px;
    gap: 6px;
    border-left: 1px solid #eee;
    transform: translateX(100%);
    transition: transform .25s ease;
    height: auto;
    max-height: 100vh;
    z-index: 2000;
    order: 3;
  }
  
  .main-nav.open{transform:translateX(0)}
  .wrap{padding:0 12px}
  .features{grid-template-columns:1fr}
  /* En móvil el slider ocupa menos altura para no forzar scroll excesivo */
  .promo-slider{height:50vh;max-height:none}
  /* Reducir padding superior del main en móvil */
  main{padding-top: 5px}
}

/* Desktop: center the main nav horizontally relative to the header (and thus to the centered slider) */
@media (min-width:641px){
  /* make header the positioning context so logo can be at the viewport left */
  .site-header{position:relative}
  .main-nav{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);}
  /* give the centered wrap left padding so its content doesn't sit under the absolute logo */
  .site-header .wrap{padding-left:140px}
  /* position the heading under the logo on desktop (left aligned) - anchor to bottom to avoid overlap */
  .site-heading{position:absolute;left:18px;bottom:-16px;transform:none;margin:0;max-width:420px;color:#888888}
  .site-heading-line1{font-size:15px}
  .site-heading-line2{font-size:13px}
  /* place logo at the extreme left of the header on desktop (relative to site-header) */
  .site-header .logo{position:absolute;left:18px;top:50%;transform:translateY(-50%);}
  /* ensure the logo image keeps its size when absolute */
  .site-header .logo img{height:64px}
  /* Redes sociales a la derecha con la misma posición bottom que el h1 */
  .social-media{
    position:absolute;
    right:18px;
    bottom:-16px;
  }
  /* style nav icons */
  .nav-icon{width:20px;height:auto;margin-right:8px;opacity:.9}
}

/* on small screens keep nav icons smaller */
@media (max-width:640px){
  .nav-icon{width:18px;margin-right:6px}
  .site-header .logo{position:static;transform:none}
}

/* Small touch-ups */
footer .wrap{padding:18px 16px;background:transparent;color:#222;text-align:center}

/* Footer wrapper */
.footer-wrapper {
  width: 100%;
  position: relative;
  margin-top: 20px;
}

/* Main footer styles */
.main-footer {
  background: #fff;
  padding: 20px 20px 30px;
  font-family: mostra-nuova, Arial, Helvetica, sans-serif;
}

.footer-columns {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 30px;
  max-width: var(--max-width);
  margin: 0 auto 30px;
}

.footer-column h3 {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  margin: 0 0 15px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.footer-column h3 img {
  opacity: 0.8;
}

.footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-column ul li {
  margin-bottom: 8px;
}

.footer-column ul li a {
  color: #666;
  text-decoration: none;
  font-size: 15px;
  font-weight: 400;
  transition: color 0.2s ease;
}

.footer-column ul li a:hover {
  color: var(--accent);
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  max-width: var(--max-width);
  margin: 0 auto;
  padding-top: 20px;
  border-top: 1px solid #e0e0e0;
}

.footer-contact {
  text-align: left;
}

.footer-contact p {
  margin: 0 0 5px 0;
  font-size: 15px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.footer-contact .contact-icon {
  width: 20px;
  height: auto;
  opacity: 0.9;
}

.footer-contact a {
  color: #666;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-contact a:hover {
  color: var(--accent);
}

.footer-tagline {
  text-align: right;
}

.footer-tagline p {
  font-size: 19px;
  font-weight: 500;
  color: #333;
  margin: 0 0 5px 0;
}

.footer-tagline span {
  font-size: 10px;
  color: #666;
}

/* Responsive footer */
@media (max-width: 900px) {
  .footer-columns {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 640px) {
  .footer-columns {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  
  .footer-bottom {
    flex-direction: column;
    gap: 15px;
  }
  
  .footer-contact,
  .footer-tagline {
    text-align: center;
  }
  
  /* Blog en móvil */
  .blog-section{
    padding: 30px 0;
  }
  
  .blog-title{
    font-size: 24px;
    margin-bottom: 20px;
  }
  
  .blog-card{
    padding: 0;
    flex-direction: column;
    overflow: hidden;
    gap: 12px; /* separación entre imagen y texto en móvil */
  }
  
  .blog-card-image{
    width: 100%;
    min-width: 100%;
    height: 200px;
  }
  
  .blog-card-content-wrapper{
    padding: 20px;
    margin-top: 12px; /* fallback: asegura separación si gap no está soportado */
  }
  
  .footer-tagline p {
    font-size: 16px;
  }
}

@media (max-width: 400px) {
  .footer-columns {
    grid-template-columns: 1fr;
  }
}

/* Ensure images don't overflow inside table layout in case of older markup */
img{max-width:100%;height:auto}

/* ================= SOBRE NOSOTROS (migrado desde inline style) ================= */
/* Hero */
.about-hero { background: linear-gradient(135deg,#1f2937,#374151); color:#fff; padding:64px 0; text-align:center; }
.about-hero h1 { font-family: mostra-nuova, Arial, Helvetica, sans-serif; font-size:42px; margin:0 0 10px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.about-hero p { color:#d1d5db; font-size:18px; margin:0; }

/* Content */
.about-wrap { max-width:1100px; margin:0 auto; padding:56px 20px; }
.about-section { margin-bottom:40px; }
.about-section h2 { font-family: mostra-nuova, Arial, Helvetica, sans-serif; font-size:28px; color:#111827; margin:0 0 14px; text-transform:uppercase; letter-spacing:.5px; }
.about-section p { color:#4b5563; font-size:16px; line-height:1.8; margin:0 0 12px; }

/* Cards */
.about-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:24px; margin-top:16px; }
.about-card { background:#fff; border-radius:10px; padding:24px; box-shadow:0 2px 12px rgba(0,0,0,.08); transition: transform .2s ease, box-shadow .2s ease; }
.about-card:hover { transform: translateY(-4px); box-shadow:0 8px 24px rgba(0,0,0,.12); }
.about-card h3 { margin:0 0 8px; font-size:18px; color:#111827; font-weight:700; }
.about-card p { margin:0; color:#6b7280; line-height:1.7; font-size:15px; }

/* Highlight */
.highlight { background:#f3f4f6; border-left:4px solid #111827; padding:18px 20px; border-radius:6px; color:#374151; font-weight:600; }

/* Timeline */
.timeline { position:relative; padding-left:36px; margin-top:10px; }
.timeline:before { content:""; position:absolute; left:12px; top:0; bottom:0; width:2px; background:#e5e7eb; }
.timeline-item { position:relative; margin:14px 0; }
.timeline-item:before { content:""; position:absolute; left:0px; top:6px; width:12px; height:12px; border-radius:50%; background:#111827; }
.timeline-item strong { display:block; color:#111827; margin-bottom:4px; padding-left:28px; }
.timeline-item p { margin:0; color:#6b7280; padding-left:28px; }

/* Responsive ajustes propios de la página */
@media (max-width: 768px) { .about-hero h1{font-size:32px} .about-hero p{font-size:16px} }
@media (max-width: 640px) { .about-wrap{padding:40px 16px} .about-section h2{font-size:22px} }

/* Galería de marcas/logos */
.brands-gallery{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:32px;margin-top:24px;padding:20px 0}
.brand-item{flex:0 0 auto;max-width:180px;height:80px;display:flex;align-items:center;justify-content:center;padding:12px;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:transform .2s ease, box-shadow .2s ease}
.brand-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.brand-item img{max-width:100%;max-height:100%;object-fit:contain;display:block;filter:grayscale(0.2);transition:filter .2s ease}
.brand-item:hover img{filter:grayscale(0)}
@media (max-width:640px){.brands-gallery{gap:20px}.brand-item{max-width:140px;height:60px}}

/* Galería histórica */
.history-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:24px}
.history-item{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.08);display:flex;flex-direction:column;transition:transform .2s ease, box-shadow .2s ease}
.history-item:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px rgba(0,0,0,.12);z-index:10}
.history-item img{width:100%;height:180px;object-fit:cover;display:block;background:#f0f0f0;transition:transform .3s ease}
.history-item:hover img{transform:scale(1.1)}
.history-caption{padding:14px 16px;font-size:14px;color:#555;line-height:1.5}
@media (max-width:640px){.history-item img{height:140px}.history-caption{font-size:13px;padding:12px}}

/* Forzar 4 columnas en desktop para la galería de historia */
@media (min-width:1024px){
  .history-gallery{grid-template-columns:repeat(4,1fr)}
}
