/* =======================
   Senges Prime Partners — styles.css
   ======================= */

/* ---- Variables ---- */
:root{
  /* UX */
  scroll-behavior:smooth;
  scroll-padding-top: 96px;

  /* Paleta */
  --red:#E41C23;
  --black:#1A1A1A;
  --ink:#0f172a;
  --gray:#6b7280;
  --bg:#f8fafc;
  --card:#ffffff;
  --muted:#9ca3af;
  --gold:#b08d57;
  --silver:#9aa0a6;

  --shadow:0 10px 30px rgba(0,0,0,.06);
}

/* ---- Reset base ---- */
*{box-sizing:border-box}
html,body{
  margin:0; padding:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--black); background:var(--bg);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%; height:auto; display:block}

.container{max-width:1120px; margin:0 auto; padding:16px 24px}

/* =======================
   HEADER sticky
   ======================= */
.site-header{
  position:sticky; top:0; z-index:50;
  background:#fff;
  border-top:4px solid var(--red);
  box-shadow:0 4px 18px rgba(0,0,0,.06);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  min-height:84px; gap:16px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none}
.brand img{height:48px; width:auto}
.brand-sub{ font-size:12px; letter-spacing:.6px; color:#6b7280; margin-top:2px; }

.menu{display:flex; align-items:center; gap:8px}
.menu a{
  color:var(--black); text-decoration:none; font-weight:700;
  padding:10px 8px; border-radius:8px;
}
.menu a:hover{background:#f1f5f9}
.btn{ padding:10px 14px; border-radius:10px; font-weight:700; text-decoration:none; display:inline-block }
.btn-sm{ padding:8px 12px; font-size:14px }
.btn-primary{ background:var(--red); color:#fff }
.btn-primary:hover{ opacity:.92 }
.btn-outline{ border:2px solid var(--red); color:var(--red); background:transparent }
.btn-outline:hover{ background:#fff0f0 }

@media (max-width:640px){
  .brand img{height:42px}
  .brand-sub{display:none}
  .menu a{padding:8px 6px}
}

/* =======================
   HERO
   ======================= */
.hero{
  margin-top:18px;
  background:#fff; border-radius:16px;
  box-shadow:0 12px 40px rgba(0,0,0,.04);
}
.hero-inner{ padding:32px 24px 28px; }
h1{font-size:42px; margin:0 0 12px; line-height:1.15}
.lead{font-size:18px; color:var(--gray); max-width:820px}
.cta{display:flex; gap:12px; margin-top:22px}

@media (max-width:1024px){ h1{font-size:36px} }
@media (max-width:640px){
  h1{font-size:30px}
  .hero-inner{ padding:28px 18px 24px; }
}

/* =======================
   SECTIONS, GRID & CARDS
   ======================= */
.section{margin:44px 0}
.section-title{
  font-size:28px; margin:0 0 14px; font-weight:800; color:var(--ink);
  display:inline-block; padding-bottom:6px; border-bottom:3px solid var(--red);
}
.grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.card{
  background:var(--card); border-radius:14px; padding:20px;
  box-shadow:0 10px 25px rgba(0,0,0,.05)
}
.card h3{margin:0 0 6px}
.small{font-size:13px; color:#6b7280}

@media (max-width:900px){ .grid{grid-template-columns:1fr} }

/* =======================
   AWARDS (PP)
   ======================= */
.pp-awards{padding:56px 16px}
.pp-wrap{max-width:1120px; margin:0 auto}
.pp-head p{margin:0 0 32px; color:var(--muted)}

.pp-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px;
}
@media (max-width:980px){ .pp-grid{grid-template-columns:1fr} }

.pp-card{
  background:var(--card);
  border:1px solid #e5e7eb;
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:22px;
  display:flex; flex-direction:column; gap:14px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.pp-card:hover{ transform:translateY(-2px); box-shadow:0 14px 40px rgba(0,0,0,.08); border-color:#e2e8f0 }

.pp-badge{
  width:86px; height:86px; border-radius:999px;
  display:grid; place-items:center;
  background:conic-gradient(from 180deg,#fff,#f5f5f5);
  border:1px solid #eaeaea; overflow:hidden;
}
.pp-badge img{width:100%; height:100%; object-fit:contain}

.pp-card h3{
  margin:0; color:var(--ink); font:800 20px/1.2 Inter,system-ui,Arial,sans-serif;
  letter-spacing:.2px; min-height:48px; display:flex; align-items:flex-end;
}
.pp-card h3 .break{white-space:nowrap}
.pp-desc{margin:0; color:#374151}
.pp-criteria{margin:6px 0 0 0; padding:0 0 0 18px; color:#374151}
.pp-criteria li{margin:6px 0}

.pp-cta{margin-top:auto; display:flex; gap:12px; align-items:center; flex-wrap:wrap}
.pp-button{
  appearance:none; border:0; cursor:pointer; text-decoration:none;
  background:var(--black); color:#fff; padding:10px 14px; border-radius:12px;
  font-weight:700; letter-spacing:.2px; box-shadow:0 6px 16px rgba(0,0,0,.12);
}
.pp-button:hover{background:#0b1220}
.pp-link{color:var(--red); font-weight:600; text-decoration:none}
.pp-link:hover{text-decoration:underline}

/* Borde superior por categoría */
.pp-card:nth-child(1){ border-top:4px solid var(--gold) }   /* Success Case */
.pp-card:nth-child(2){ border-top:4px solid var(--silver) } /* Data & Tech */
.pp-card:nth-child(3){ border-top:4px solid var(--red) }    /* Marketing */

/* =======================
   SERVICIOS (4 pilares)
   ======================= */
.services-grid{
  display:grid !important;
  gap:22px !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
@media (max-width:1100px){
  .services-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:640px){
  .services-grid{ grid-template-columns:1fr !important; }
}

.svc-card{
  background:#fff; border:1px solid #e6ebf2; border-radius:18px;
  box-shadow:0 10px 24px rgba(0,0,0,.04); padding:18px 18px 16px;
  display:flex; flex-direction:column; gap:14px; transition:.2s ease;
}
.svc-card:hover{ transform:translateY(-2px); box-shadow:0 14px 36px rgba(0,0,0,.06) }

.svc-head{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center }
.svc-icon{
  width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  background:#f6f7fb; font-size:22px; border:1px solid #eef0f5;
}
.svc-head h3{ margin:0; font-size:20px; line-height:1.2; word-break:keep-all; hyphens:auto; min-height:48px; display:flex; align-items:flex-end }
.svc-sub{ margin:2px 0 0; color:#6b7280; font-size:14px }

.svc-body h4{ margin:8px 0 6px; font-size:14px; color:#0f172a; text-transform:uppercase; letter-spacing:.6px }
.svc-list{ margin:0 0 8px 0; padding:0 0 0 18px; color:#374151 }
.svc-list li{ margin:6px 0 }

.svc-meta{ display:flex; gap:8px; flex-wrap:wrap; margin-top:2px }
.tag{
  background:#f1f5f9; color:#0f172a; font-size:12px; border-radius:999px;
  padding:4px 10px; border:1px solid #e5e7eb;
}

.svc-cta{ margin-top:auto; display:flex; gap:10px; flex-wrap:wrap }

/* =======================
   CONTACTO
   ======================= */
#contacto{ scroll-margin-top: 104px; }
#contacto .lead{ max-width:820px; color:var(--gray); margin:0 0 14px; }
.card-contact{
  margin-top:8px; background:#fff; border:1px solid #eef2f7; border-radius:16px;
  box-shadow:0 10px 25px rgba(0,0,0,.05); padding:24px;
}
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:900px){ .grid-2{ grid-template-columns:1fr } }

.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.field label{ font-weight:600; display:block; margin-bottom:6px; }

.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field select{
  height:48px; line-height:48px;
  padding:0 14px;
  border:1px solid #e5e7eb; border-radius:10px;
  font-size:16px; background:#fff;
}
.field select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236b7280' d='M1.41.59 6 5.17l4.59-4.58L12 2 6 8 0 2z'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center; background-size:12px 8px; padding-right:34px;
}
.field input[type="file"]{ padding:8px 12px; height:auto; line-height:normal; border:1px solid #e5e7eb; border-radius:10px; background:#fff; }
.field textarea{
  min-height:140px; padding:12px 14px; border:1px solid #e5e7eb; border-radius:10px;
  font-size:16px; line-height:1.45; resize:vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none; border-color:#cbd5e1; box-shadow:0 0 0 3px rgba(228,28,35,.12);
}

.agree{ margin:10px 0 6px; }
.agree label{ font-size:14px; color:var(--black); }
.agree a{ color:var(--black); text-decoration:underline; }

.actions{ display:flex; gap:12px; align-items:center; margin-top:8px; }

.hp{ position:absolute; left:-9999px; opacity:0; }

.success{ color:#065f46; background:#ecfdf5; border:1px solid #d1fae5; padding:10px 12px; border-radius:8px; margin-top:10px; }
.error{ color:#7f1d1d; background:#fef2f2; border:1px solid #fee2e2; padding:10px 12px; border-radius:8px; margin-top:10px; }
.muted{ color:#6b7280 }

/* =======================
   FOOTER
   ======================= */
.footer{
  margin-top:36px; padding:24px; color:var(--muted); font-size:14px; text-align:center
}
.footer a{color:var(--red); text-decoration:none}


/* ===== FIX DEFINITIVO (deja 3 columnas y títulos normales) ===== */

/* 1) Servicios: 3 columnas responsivas (2 en tablet, 1 en mobile) */
.services-grid{
  display:grid !important;
  gap:22px !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
}
@media (max-width:1024px){
  .services-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width:680px){
  .services-grid{ grid-template-columns:1fr !important; }
}

/* 2) Títulos dentro de cards (QUITAR la versión vieja) */
.svc-head h3,
.pp-card h3{
  display:block !important;        /* no flex */
  min-height:auto !important;      /* sin altura fija */
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
  hyphens:none !important;
  line-height:1.25 !important;
  font-size:20px;                  /* tamaño estable */
  text-wrap:balance;               /* balancea saltos cuando hay guiones/em dashes */
}

/* 3) Cabecera de servicio: asegurar que el texto tenga buen ancho */
.svc-head{
  display:grid !important;
  grid-template-columns:auto 1fr !important;  /* icono + bloque de texto */
  align-items:center;
}
.svc-icon{ flex:0 0 auto; }

/* 4) Un pelín más de aire en los cards para que no se sientan apretados */
.svc-card{ padding:20px 20px 16px !important; }


.svc-card { display:flex; flex-direction:column; justify-content:space-between; height:100%; }
.svc-head h3{font-weight:800; margin-bottom:4px;}
.svc-sub{color:#4b5563; font-size:14px; margin-bottom:8px;}
.svc-list li strong{color:#111827;}
.svc-meta{margin-top:auto;}


/* ===== Hero con carrusel de fondo ===== */
.hero--carousel{
  position: relative;
  overflow: hidden;
  margin-top: 18px;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0,0,0,.04);
  background: #0b1220; /* fallback */
}
.hero--carousel .hero-inner{
  position: relative;
  padding: 42px 24px 32px;
  color: #fff;
}
.hero--carousel .lead{ color: #e5e7eb; }

/* Fondo (imágenes en capa inferior) */
.hero-bg{
  position:absolute; inset:0;
}
.hero-bg .bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  opacity:0; transition:opacity .9s ease;
  filter: saturate(105%) contrast(105%);
}
.hero-bg .bg.active{ opacity:1; }

/* Scrim para legibilidad del texto */
.hero-scrim{
  position:absolute; inset:0;
  background: radial-gradient(1200px 600px at 20% 20%, rgba(0,0,0,.35), rgba(0,0,0,.55) 60%, rgba(0,0,0,.65) 100%);
}

/* Botones sobre fondo oscuro */
.hero--carousel .btn-outline{ border-color:#fff; color:#fff; }
.hero--carousel .btn-outline:hover{ background:rgba(255,255,255,.08); }

/* Mobile */
@media (max-width:640px){
  .hero--carousel .hero-inner{ padding: 28px 16px 22px; }
  .hero-scrim{ background: linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.75)); }
}

/* Respeta usuarios que prefieren menos animación */
@media (prefers-reduced-motion: reduce){
  .hero-bg .bg{ transition:none; }
}


/* HERO carousel */
.hero { position: relative; }
.hero-bg{
  position:absolute; inset:0;
  overflow:hidden; border-radius:16px;   /* si tu hero tiene bordes redondeados */
  z-index:0;
}
.hero-bg .bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0; 
  transition: opacity .9s ease;
  will-change: opacity;
}
.hero-bg .bg.active{ opacity:1; }

/* capa para mejorar legibilidad del texto */
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(0,0,0,.30), rgba(0,0,0,.20));
}

/* contenido por encima */
.hero-inner{ position:relative; z-index:2; }


/* ---- Expertise polish ---- */
.services-grid{
  gap:22px;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media (max-width:980px){ .services-grid{ grid-template-columns:1fr; } }

.svc-card{
  background:#fff; border:1px solid #e6ebf2; border-radius:18px;
  box-shadow:0 10px 24px rgba(0,0,0,.04);
  padding:18px 18px 16px;
  display:flex; flex-direction:column; gap:14px; transition:.2s ease;
}
.svc-card:hover{ transform:translateY(-2px); box-shadow:0 14px 36px rgba(0,0,0,.06); }

.svc-head{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; }
.svc-icon{
  width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  background:#f6f7fb; font-size:22px; border:1px solid #eef0f5;
}
.svc-head h3{
  margin:0; font-size:20px; line-height:1.2;
  min-height:48px; display:flex; align-items:flex-end;
  word-break:keep-all; hyphens:auto;
}
.svc-sub{ margin:2px 0 0; color:#6b7280; font-size:14px; }

.svc-body h4{
  margin:8px 0 6px; font-size:13px; color:#0f172a;
  text-transform:uppercase; letter-spacing:.6px;
}
.svc-list{ margin:0 0 8px 0; padding:0 0 0 18px; color:#374151; }
.svc-list li{ margin:6px 0; }

.svc-meta{ display:flex; gap:8px; flex-wrap:wrap; margin-top:4px; }
.tag{
  background:#f1f5f9; color:#0f172a; font-size:12px; border-radius:999px;
  padding:4px 10px; border:1px solid #e5e7eb;
}

.svc-cta{ margin-top:auto; display:flex; gap:10px; flex-wrap:wrap; }

/* Alineación perfecta en móviles */
@media (max-width:640px){
  .svc-head h3{ min-height:auto; }
}

/* Títulos de las cards: evitar cortes raros y equilibrar líneas */
.svc-head h3{
  font-size: clamp(18px, 1.8vw, 20px);
  line-height: 1.25;
  white-space: normal;
  word-break: normal;          /* no cortes dentro de palabras */
  overflow-wrap: anywhere;     /* permite saltos naturales si hiciera falta */
  hyphens: manual;             /* respeta guiones y el — */
  text-wrap: balance;          /* navegadores modernos: balancea líneas */
  min-height: 0;               /* evita forzar alturas que compliquen el wrap */
  display: block;              /* más predecible que flex para títulos */
}

/* Cabecera de la card: asegura espacio cómodo para el título */
.svc-head{
  grid-template-columns: 48px 1fr;  /* icono + título */
  align-items: center;              /* centra verticalmente */
}

/* Para móviles, aún menos ruptura visual */
@media (max-width:640px){
  .svc-head h3{ font-size: 18px; }
}


.site-notice {
  background: #fde047; /* amarillo aviso */
  color: #1a1a1a;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  padding: 10px 16px;
  border-bottom: 1px solid #facc15;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  z-index: 1000;
  position: sticky;
  top: 0;
}
