:root{
  --azul-marino:#314e9d;
  --naranja:#f8ad26;
  --celeste:#44a4dc;
  --verde:#7cb928;

  --azul-texto:#314e9d;
  --borde:14px;
  --shadow:0 4px 12px rgba(0,0,0,.06);

  /* tipografía base (fácil de cambiar luego) */
  --font-sans: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family: var(--font-sans);
  color:#223;
  background:#fff;
}

/* ===== HEADER ===== */
.site-header{ 
    background:#fff; 
}

.header-inner{
  max-width:none;     /* antes: 1200px */
  width:100%;         /* ocupa todo el ancho */
  margin:0;           /* elimina centrado por max-width */
  padding:14px 16px;  /* gutter lateral (ajusta 16px a gusto) */
  display:flex;
  align-items:center;
  gap:18px;
  justify-content:flex-start;
}

.brand{ display:flex; align-items:left; gap:12px; text-decoration:none; }
.brand-logo{ height:120px; width:auto; display:block; } 

/* === SOLO para llevar los botones a la derecha === */

/* empuja TODO el bloque de navegación a la derecha */
.main-nav{
  margin-left: auto;
}

/* y deja el ul alineado al borde derecho */
.main-nav ul{
  list-style:none;
  display:flex;
  align-items:center;
  gap:18px;
  margin:0;              /* quita margin-right:auto (no sirve aquí) */
  padding:0;
  justify-content:flex-end;
}

.nav-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 22px; font-weight:700; font-size:18px; letter-spacing:.4px;
  text-transform:uppercase; color:#fff; text-decoration:none;
  border-radius:var(--borde); box-shadow:var(--shadow); transition:transform .08s ease, filter .15s ease;
}
.btn-inicio{background:var(--azul-marino)}
.btn-servicios{background:var(--naranja)}
.btn-nosotros{background:var(--celeste)}
.btn-contacto{background:var(--verde)}
.nav-btn:hover{ transform:translateY(-1px); filter:brightness(1.02); }
.nav-btn.active{ filter:saturate(1.05) brightness(.97); box-shadow:0 0 0 3px rgba(0,0,0,.06) inset, var(--shadow); }

.header-underline{ border-top: 6px solid var(--verde); }

/* ===== FOOTER ===== */
.site-footer{ background:#fff; }

/* Cinta verde */
.footer-ribbon{
  width:100%;
  background:var(--verde);
  color:#fff;
  text-align:center;
  padding:16px 0;
  font-style:italic;
  font-weight:600;
}
.footer-ribbon span{
  display:inline-block;
  letter-spacing:.6px;
  text-transform:uppercase;
}

/* Contenido ancho completo con gutters laterales */
.footer-wrap{
  max-width:none;      /* full-bleed como el header */
  width:100%;
  margin:0;
  padding:0 16px;
}

/* GRID: IZQ = texto | DER = logo */
.footer-grid{
  display:grid;
  grid-template-columns:1fr auto;  /* texto (1fr) | logo (auto) */
  align-items:center;              /* centra verticalmente ambos lados */
  column-gap:24px;
  padding:6px 0 12px;
  min-height:120px;                /* estabilidad del eje Y */
}

/* ==== IZQUIERDA: URL + Íconos + Ubicación ==== */
.footer-left{
  grid-column:1;
  display:flex;
  flex-direction:column;
  justify-content:center;      /* centra el bloque en altura */
  align-items:flex-start;      /* alinea al borde izquierdo */
  gap:6px;
  margin:0;
  text-align:left;
}

.footer-url{
  color:#2a2f3a;
  text-decoration:none;
  font-weight:600;
  font-size:16px;
  letter-spacing:.2px;
  margin:0;
}
.footer-url:hover{ text-decoration:underline; }

.footer-bottom{
  display:flex;
  align-items:center;          /* centra verticalmente íconos + texto */
  justify-content:flex-start;  /* alineado a la izquierda */
  gap:12px;
  margin:0;
}

.footer-social{ display:flex; align-items:center; gap:12px; }
.social-link{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; }
.social-link img{ width:18px; height:18px; display:block; }

.footer-location{
  color:#3a4453;
  font-weight:600;
  letter-spacing:.3px;
  text-transform:uppercase;
}

/* ==== DERECHA: LOGO ==== */
.footer-right{
  grid-column:2;
  justify-self:end;            /* pega el logo al borde derecho */
  align-self:center;
}
.footer-logo{
  height:120px;
  width:auto;
  display:block;
  margin:0;
}

/* (Opcional) Banda gris inferior */
.footer-underline{ height:10px; background:#eef2f6; }

/* ===== Responsive ===== */
@media (max-width:780px){
  .footer-grid{
    grid-template-columns:1fr; /* apila: texto arriba, logo abajo */
    row-gap:10px;
    align-items:start;
    min-height:auto;
  }
  .footer-left{  grid-column:1; align-items:flex-start; text-align:left; }
  .footer-right{ grid-column:1; justify-self:start; }
  .footer-logo{ height:100px; }
}

/* ====== HEADER RESPONSIVE FIX ====== */

/* 1) Pequeño bug: align-items:left no es válido */
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }

/* 2) Permitir que el header “quiebre” en 2 líneas cuando haga falta */
.header-inner{
  flex-wrap: wrap;                 /* permite salto de línea */
  gap: clamp(10px, 2.2vw, 18px);   /* gap adaptable */
  padding: 10px clamp(12px, 2.2vw, 16px);
}

/* 3) Logo adaptable: nunca gigante, nunca microscópico */
.brand-logo{
  height: clamp(56px, 10vw, 120px);
  width: auto;
}

/* 4) Mantén la nav a la derecha cuando cabe en una sola línea */
.main-nav{ margin-left:auto; }

/* 5) La lista de botones también puede envolver y ajusta su espacio */
.main-nav ul{
  flex-wrap: wrap;                       /* permite que bajen a segunda línea */
  gap: clamp(8px, 1.8vw, 18px);
  justify-content: flex-end;
}

/* 6) Botones un poco más compactos al reducir ancho/zoom */
.nav-btn{
  padding: clamp(8px, 1.4vw, 12px) clamp(14px, 2vw, 22px);
  font-size: clamp(14px, 1.8vw, 18px);
  border-radius: var(--borde);
}

/* 7) Cuando el ancho efectivo sea menor (~zoom in o móvil), apila */
@media (max-width: 960px){
  .main-nav{
    order: 2;            /* baja la nav a la segunda línea */
    margin-left: 0;
    width: 100%;
  }
  .main-nav ul{
    justify-content: flex-start;  /* usa 'center' si la quieres centrada */
  }
}

/* 8) Más compacto aún en pantallas muy angostas o zoom muy alto */
@media (max-width: 640px){
  .brand-logo{ height: 64px; }
  .nav-btn{
    padding: 8px 12px;
    font-size: 14px;
    letter-spacing: .3px;
  }
}

/* 9) Evita que el contenido del header empuje el layout si algo se desborda */
.header-inner, .main-nav ul{
  min-width: 0; /* permite a flex contraerse sin overflow horizontal */
}
