/* =====================================================================
   KETIN 2.0 — HOME HERO (kem2-home-hero.css) · v1.0.0 · 2026-07-19
   Diseño por defecto fiel a la maqueta ZIHT (style.css v3).
   REGLA: sin !important. Los controles de Divi ('important' => 'all')
   ganan siempre a estos defaults.
   Nota tipografías: el sitio ya carga Source Serif 4 / Public Sans /
   Newsreader / Work Sans desde su hoja global; aquí solo se declaran
   los stacks con fallbacks, sin @import duplicado.
   ===================================================================== */

.kem2-hh{
  position:relative;
  overflow:hidden;
  padding:88px 0;
  font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16px;
  line-height:1.65;
}

/* ---------- fondos por identidad ---------- */
.kem2-hh-bg-ziht{
  background:linear-gradient(180deg,#080b26 0%,#0b1140 62%,#141c5c 100%);
  color:#fff;
}
.kem2-hh-bg-ptf{
  background:linear-gradient(180deg,#0e2015 0%,#1c3a24 60%,#2f5233 100%);
  color:#fff;
}
.kem2-hh-bg-none{ background:transparent; color:#12131c; }
.kem2-hh-id-ptf{ font-family:'Work Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }

/* ---------- marca de agua (100% del módulo) ---------- */
.kem2-hh-wm{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-repeat:no-repeat;
  background-size:var(--kem2hh-wm-fit,cover);
  background-position:var(--kem2hh-wm-pos,center center);
  opacity:var(--kem2hh-wm-opacity,.05);
  mix-blend-mode:var(--kem2hh-wm-blend,normal);
}

/* ---------- contenedor y grid ---------- */
.kem2-hh-container{
  position:relative; z-index:1;
  max-width:1360px; margin:0 auto; padding:0 40px;
}
.kem2-hh-grid{ display:grid; gap:64px; align-items:center; }
.kem2-hh-cols-115{ grid-template-columns:1.15fr 1fr; }
.kem2-hh-cols-50 { grid-template-columns:1fr 1fr; }
.kem2-hh-cols-55 { grid-template-columns:55fr 45fr; }
.kem2-hh-cols-60 { grid-template-columns:60fr 40fr; }
.kem2-hh-media-left .kem2-hh-inner{ order:2; }
.kem2-hh-media-left .kem2-hh-media{ order:1; }
.kem2-hh-align-center .kem2-hh-inner{ text-align:center; }
.kem2-hh-align-center .kem2-hh-eye,
.kem2-hh-align-center .kem2-hh-actions,
.kem2-hh-align-center .kem2-hh-labels{ justify-content:center; }
.kem2-hh-align-center .kem2-hh-lede,
.kem2-hh-align-center .kem2-hh-sub{ margin-left:auto; margin-right:auto; }

/* ---------- eyebrow ---------- */
.kem2-hh-eye{
  display:flex; align-items:center; gap:10px;
  font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:#b9b0ff; margin:0 0 14px;
}
.kem2-hh-bg-ptf .kem2-hh-eye{ color:#d9c896; }
.kem2-hh-bg-none .kem2-hh-eye{ color:#4800fe; }
.kem2-hh-eye-line{
  width:22px; height:1px; display:inline-block; flex:none;
  background:var(--kem2hh-eyeline,currentColor);
}

/* ---------- título / frase / bajada ---------- */
.kem2-hh-title{
  font-family:'Source Serif 4','Iowan Old Style',ui-serif,Georgia,serif;
  font-size:44px; font-weight:600; line-height:1.16; letter-spacing:-.008em;
  color:#fff; margin:0 0 .5em;
}
.kem2-hh-bg-none .kem2-hh-title{ color:#080b26; }
.kem2-hh-id-ptf .kem2-hh-title{ font-family:'Newsreader',ui-serif,Georgia,serif; font-weight:500; }

.kem2-hh-lede{
  font-family:'Source Serif 4','Iowan Old Style',ui-serif,Georgia,serif;
  font-style:italic; font-weight:400; font-size:19px;
  color:#c9cbe8; max-width:var(--kem2hh-text-max,620px);
  margin:0 0 1.15em;
}
.kem2-hh-bg-ptf .kem2-hh-lede{ font-family:'Newsreader',ui-serif,Georgia,serif; color:#d7e6d5; }
.kem2-hh-bg-none .kem2-hh-lede{ color:#40424f; }

.kem2-hh-sub{
  font-size:14.5px; color:#8b8fc0;
  max-width:var(--kem2hh-text-max,620px);
  margin:0 0 1.15em;
}
.kem2-hh-bg-ptf .kem2-hh-sub{ color:#9fbf9d; }
.kem2-hh-bg-none .kem2-hh-sub{ color:#565968; }

/* ---------- espaciado interno ---------- */
.kem2-hh-space-compact .kem2-hh-eye{ margin-bottom:8px; }
.kem2-hh-space-compact .kem2-hh-title{ margin-bottom:.35em; }
.kem2-hh-space-compact .kem2-hh-lede,
.kem2-hh-space-compact .kem2-hh-sub{ margin-bottom:.75em; }
.kem2-hh-space-compact .kem2-hh-actions{ margin-top:16px; }
.kem2-hh-space-compact .kem2-hh-labels{ margin-top:12px; }
.kem2-hh-space-wide .kem2-hh-eye{ margin-bottom:22px; }
.kem2-hh-space-wide .kem2-hh-title{ margin-bottom:.7em; }
.kem2-hh-space-wide .kem2-hh-lede,
.kem2-hh-space-wide .kem2-hh-sub{ margin-bottom:1.5em; }
.kem2-hh-space-wide .kem2-hh-actions{ margin-top:40px; }
.kem2-hh-space-wide .kem2-hh-labels{ margin-top:26px; }

/* ---------- botones ---------- */
.kem2-hh-actions{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; }
.kem2-hh-btn{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; font-size:13.5px; letter-spacing:.02em;
  padding:13px 24px; border-radius:2px; border:1px solid transparent;
  cursor:pointer; text-decoration:none;
}
.kem2-hh-btn-primary{ background:#4800fe; color:#fff; }
.kem2-hh-btn-primary:hover{ background:#3800d1; color:#fff; }
.kem2-hh-bg-ptf .kem2-hh-btn-primary{ background:#a9781f; color:#1c1c10; }
.kem2-hh-bg-ptf .kem2-hh-btn-primary:hover{ background:#cfa955; }
.kem2-hh-btn-outline{ border-color:rgba(255,255,255,.35); color:#fff; }
.kem2-hh-btn-outline:hover{ border-color:#fff; color:#fff; }
.kem2-hh-bg-none .kem2-hh-btn-outline{ border-color:#0b1140; color:#0b1140; }
.kem2-hh-btn-arrow{ display:inline-block; }
/* .kem2-hh-btn-native no declara nada: hereda el estilo de botón de Divi. */

/* ---------- labels ---------- */
.kem2-hh-labels{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.kem2-hh-label{
  font-size:11px; letter-spacing:.04em; text-transform:uppercase; font-weight:700;
  color:#c9cbe8;
  border:1px var(--kem2hh-label-style,solid) var(--kem2hh-label-border,#2a3080);
  padding:5px 11px; border-radius:var(--kem2hh-label-radius,20px);
  text-decoration:none;
}
.kem2-hh-bg-ptf .kem2-hh-label{ color:#cfe0cf; border-color:var(--kem2hh-label-border,#3a5a3a); }
.kem2-hh-bg-none .kem2-hh-label{ color:#40424f; border-color:var(--kem2hh-label-border,#dbdde6); }
a.kem2-hh-label:hover{ color:#fff; border-color:var(--kem2hh-label-border,#4a4fa0); }
.kem2-hh-bg-none a.kem2-hh-label:hover{ color:#080b26; }

/* ---------- media ---------- */
.kem2-hh-media{ position:relative; }
.kem2-hh-media img{ display:block; width:100%; height:100%; object-fit:cover; }
.kem2-hh-ratio-portrait .kem2-hh-carousel,
.kem2-hh-ratio-portrait > img,
.kem2-hh-ratio-portrait > .kem2-hh-ph-fallback{ aspect-ratio:3/4; }
.kem2-hh-ratio-square .kem2-hh-carousel,
.kem2-hh-ratio-square > img,
.kem2-hh-ratio-square > .kem2-hh-ph-fallback{ aspect-ratio:1/1; }
.kem2-hh-ratio-wide .kem2-hh-carousel,
.kem2-hh-ratio-wide > img,
.kem2-hh-ratio-wide > .kem2-hh-ph-fallback{ aspect-ratio:16/9; }
.kem2-hh-ratio-free .kem2-hh-media img{ height:auto; object-fit:unset; }
.kem2-hh-frame-solid > img,
.kem2-hh-frame-solid .kem2-hh-carousel{ border:1px solid var(--kem2hh-frame-color,rgba(255,255,255,.25)); }
.kem2-hh-frame-dashed > img,
.kem2-hh-frame-dashed .kem2-hh-carousel{ border:1px dashed var(--kem2hh-frame-color,rgba(255,255,255,.25)); }
.kem2-hh-ph-fallback{ width:100%; background:#eceef4; }

/* ---------- carrusel ---------- */
.kem2-hh-carousel{ position:relative; overflow:hidden; outline:none; }
.kem2-hh-slide{ position:absolute; inset:0; }
.kem2-hh-slide:first-child{ position:relative; }
.kem2-hh-slide img{ width:100%; height:100%; object-fit:cover; }

/* fundido */
.kem2-hh-t-fade .kem2-hh-slide{ opacity:0; transition:opacity .6s ease; }
.kem2-hh-t-fade .kem2-hh-slide.is-active{ opacity:1; }
/* deslizamiento */
.kem2-hh-t-slide .kem2-hh-slide{ transform:translateX(100%); transition:transform .6s ease; }
.kem2-hh-t-slide .kem2-hh-slide.is-active{ transform:translateX(0); }
.kem2-hh-t-slide .kem2-hh-slide.is-prev{ transform:translateX(-100%); }
@media (prefers-reduced-motion:reduce){
  .kem2-hh-t-fade .kem2-hh-slide,
  .kem2-hh-t-slide .kem2-hh-slide{ transition:none; }
}

.kem2-hh-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:var(--kem2hh-arrow-size,38px); height:var(--kem2hh-arrow-size,38px);
  display:flex; align-items:center; justify-content:center;
  background:rgba(8,11,38,.45); color:var(--kem2hh-arrow-color,#fff);
  border:none; border-radius:50%; cursor:pointer;
  font-size:calc(var(--kem2hh-arrow-size,38px) * .45); line-height:1;
}
.kem2-hh-arrow:hover{ background:rgba(8,11,38,.7); }
.kem2-hh-prev{ left:12px; }
.kem2-hh-next{ right:12px; }

.kem2-hh-dots{
  display:flex; gap:8px; justify-content:center; margin-top:12px;
}
.kem2-hh-dot{
  width:9px; height:9px; border-radius:50%; padding:0; border:none; cursor:pointer;
  background:rgba(255,255,255,.35);
}
.kem2-hh-dot.is-active{ background:var(--kem2hh-arrow-color,#fff); }
.kem2-hh-bg-none .kem2-hh-dot{ background:#dbdde6; }
.kem2-hh-bg-none .kem2-hh-dot.is-active{ background:var(--kem2hh-arrow-color,#4800fe); }

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .kem2-hh-grid{ grid-template-columns:1fr; }
  .kem2-hh-media-left .kem2-hh-inner{ order:1; }
  .kem2-hh-media-left .kem2-hh-media{ order:2; }
}
@media (max-width:760px){
  .kem2-hh{ padding:56px 0; }
  .kem2-hh-container{ padding:0 24px; }
  .kem2-hh-title{ font-size:28px; }
}
