.kpc-portada-page,
.kpc-portada,
.kpc-portada-objective,
.kpc-portada-address,
.kpc-portada-name,
.kpc-portada-company,
.kpc-portada-advertencia,
.kpc-ana-advertencia-text {
  -webkit-user-select: text;
  user-select: text;
}

.kpc-portada-page {
  position: relative;
  min-height: 100dvh;
  overflow-x: hidden;
  background: #f3ead8;
  color: #1c1812;
}

html:has(body.kpc-portada-page) {
  background: #f3ead8;
}

/* Hoja en blanco: el logo no pelea con foto ni con pliegues. */
.kpc-portada-bg,
.kpc-portada-veil {
  display: none;
}

.kpc-portada-top {
  position: relative;
  z-index: 3;
  background: #f3ead8;
  border-bottom: 1px solid rgba(138, 112, 64, 0.28);
}

.kpc-portada {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 0 auto;
  padding: 28px 28px 40px;
  text-align: center;
}

.kpc-portada-logo {
  display: block;
  width: min(480px, 92vw);
  height: auto;
  margin: 12px auto 24px;
  object-fit: contain;
  background: transparent;
}

.kpc-portada-company {
  margin: 0 0 28px;
  color: #3a3228;
  font-size: 13px;
  line-height: 1.55;
  letter-spacing: 0.04em;
}

.kpc-portada-company span {
  display: block;
}

.kpc-portada-kicker {
  margin: 0 0 8px;
  color: #8a7040;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 600;
}

.kpc-portada-name {
  margin: 0 0 10px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 7vw, 52px);
  font-weight: 500;
  color: #6b5428;
  letter-spacing: 0.04em;
}

.kpc-portada-address {
  margin: 0 0 22px;
  color: #2a241c;
  font-size: clamp(15px, 2.4vw, 18px);
  letter-spacing: 0.03em;
  line-height: 1.4;
}

.kpc-portada-objective {
  margin: 0 auto 28px;
  max-width: 38em;
  color: #3f382e;
  font-size: clamp(18px, 2.6vw, 22px);
  line-height: 1.45;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
}

.kpc-portada-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  align-items: center;
}

.kpc-portada-enter {
  min-height: 46px;
  padding: 0 22px;
  font-size: 14px;
}

.kpc-portada-est {
  min-height: 46px;
  padding: 0 18px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.kpc-portada-advertencia {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 28px auto 0;
  padding: 0 28px;
  text-align: left;
}

.kpc-portada-advertencia .kpc-ana-advertencia-kicker {
  margin: 0 0 8px;
  color: #8a7040;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 600;
}

.kpc-portada-advertencia .kpc-ana-advertencia-text {
  margin: 0;
  color: #3f382e;
  font-size: 12px;
  line-height: 1.5;
}

.kpc-portada-foot {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 0 auto;
  padding: 16px 28px 36px;
  border-top: 1px solid rgba(138, 112, 64, 0.28);
  justify-content: center;
  text-align: center;
  color: #5a5348;
}

.kpc-portada-page .kpc-legal {
  color: #6b6356;
}

@media (max-width: 720px), (orientation: landscape) and (max-height: 520px) {
  .kpc-portada-advertencia {
    padding: 0 16px;
  }

  .kpc-portada {
    padding: 16px 16px 28px;
  }

  .kpc-portada-logo {
    width: min(360px, 92vw);
  }

  .kpc-portada-objective {
    font-size: 16px;
    letter-spacing: 0.04em;
  }
}

@media (orientation: landscape) and (max-height: 520px) {
  .kpc-portada-page {
    min-height: auto;
  }

  .kpc-portada {
    padding: 6px 16px 16px;
  }

  .kpc-portada-logo {
    width: min(220px, 38vw);
    margin: 0 auto 8px;
  }

  .kpc-portada-company {
    margin: 0 0 8px;
    font-size: 11px;
    line-height: 1.35;
  }

  .kpc-portada-kicker {
    margin: 0 0 4px;
  }

  .kpc-portada-name {
    margin: 0 0 4px;
    font-size: clamp(26px, 5vw, 36px);
  }

  .kpc-portada-address {
    margin: 0 0 8px;
    font-size: 14px;
  }

  .kpc-portada-objective {
    margin: 0 auto 12px;
    font-size: 14px;
    line-height: 1.3;
  }

  .kpc-portada-advertencia {
    margin: 16px auto 0;
  }

  .kpc-portada-foot {
    padding: 10px 16px 20px;
  }
}

.kpc-pres-approval {
  margin: 8px 0 14px;
  font-family: Georgia, serif;
  letter-spacing: .04em;
  font-size: 22px;
}
.kpc-blink {
  margin: 0 auto 18px;
  max-width: 40rem;
  border: 2px solid #8a6230;
  border-radius: 8px;
  padding: 12px 16px;
  background: #fff8ee;
  color: #1c1812;
  animation: kpcBlink 2.6s ease-in-out infinite;
}
.kpc-blink p { margin: 0; line-height: 1.45; color: #1c1812; }
@keyframes kpcBlink {
  0%, 100% { background: #fff8ee; box-shadow: 0 0 0 0 rgba(138, 98, 48, .15); }
  50% { background: #ffe8c2; box-shadow: 0 0 0 6px rgba(184, 140, 60, .28); }
}
.kpc-rev-cover { max-width: 52rem; margin: 0 auto 24px; text-align: left; }
.kpc-rev-cover h2, .kpc-rev-cover h3 { font-family: Georgia, serif; }
.kpc-estimate { width: 100%; border-collapse: collapse; font-size: 14px; margin: 12px 0; }
.kpc-estimate th, .kpc-estimate td { border: 1px solid #d9d1c4; padding: 6px 8px; text-align: left; }
.kpc-estimate tfoot td { font-weight: 650; }
.kpc-estimate tr.is-due td { background: transparent; color: inherit; }
.kpc-estimate-note { font-size: 14px; }
#kpc-rev-canvas { display: block; width: auto; height: auto; max-width: none; max-height: none; background: #fff; }
body.kpc-pres-client.kpc-fit #kpc-rev-stage { touch-action: none; }
body.kpc-pres-client.kpc-fit #kpc-rev-stage.is-zoomed {
  align-items: flex-start;
  justify-content: flex-start;
  overflow: auto;
  cursor: grab;
}

body.kpc-pres-client.kpc-fit {
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
body.kpc-pres-client.kpc-fit .kpc-top { flex: 0 0 auto; padding: 8px 16px; }
body.kpc-pres-client.kpc-fit .kpc-page {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 6px 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
body.kpc-pres-client.kpc-fit .kpc-foot {
  flex: 0 0 auto;
  margin: 0;
  padding: 4px 14px 6px;
}
body.kpc-pres-client.kpc-fit .kpc-legal { margin: 2px 0 0; }
body.kpc-pres-client.kpc-fit .kpc-pres-cover {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
}
body.kpc-pres-client.kpc-fit .kpc-pres-logo { width: min(320px, 46vw); max-height: 16dvh; margin: 0 auto 6px; }
body.kpc-pres-client.kpc-fit .kpc-pres-company { margin: 0 0 6px; font-size: 12px; line-height: 1.35; }
body.kpc-pres-client.kpc-fit .kpc-pres-name { font-size: clamp(26px, 4vw, 40px); margin: 0; }
body.kpc-pres-client.kpc-fit .kpc-pres-approval { margin: 4px 0 6px; font-size: 18px; }
body.kpc-pres-client.kpc-fit .kpc-pres-obj,
body.kpc-pres-client.kpc-fit .kpc-pres-lead { margin: 0 auto 6px; font-size: 14px; }
body.kpc-pres-client.kpc-fit .kpc-pres-cta { margin: 4px 0 8px; }
body.kpc-pres-client.kpc-fit .kpc-pres-menu-entry {
  flex: 1 1 auto;
  min-height: 0;
  justify-content: center;
  padding: 4px 8px;
  overflow: hidden;
}
body.kpc-pres-client.kpc-fit .kpc-pres-menu-entry h1 { margin: 0 0 10px; }
body.kpc-pres-client.kpc-fit .kpc-pres-menu-entry .kpc-pres-jump { gap: 8px; }
body.kpc-pres-client.kpc-fit .kpc-pres-menu-entry .kpc-pres-jump .kpc-nav-pill {
  min-height: 0;
  padding: 8px 14px;
}
body.kpc-pres-client.kpc-fit .kpc-pres-docview {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
body.kpc-pres-client.kpc-fit .kpc-pres-docbar { flex: 0 0 auto; justify-content: center; margin: 0; }
body.kpc-pres-client.kpc-fit .kpc-pres-docview > h1.kpc-serif {
  flex: 0 0 auto;
  margin: 2px 0 6px;
  font-size: clamp(20px, 3vw, 32px);
}
body.kpc-pres-client.kpc-fit #kpc-rev-body {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
}
body.kpc-pres-client.kpc-fit .kpc-blink {
  flex: 0 0 auto;
  margin: 0 auto 6px;
  padding: 6px 10px;
  font-size: 14px;
}
body.kpc-pres-client.kpc-fit #kpc-rev-stage {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
body.kpc-pres-client.kpc-fit .kpc-rev-cover {
  flex: 1 1 auto;
  min-height: 0;
  width: min(46rem, 100%);
  margin: 0 auto;
  overflow: hidden;
}
body.kpc-pres-client.kpc-fit .kpc-rev-cover h2 { margin: 0 0 6px; font-size: 20px; }
body.kpc-pres-client.kpc-fit .kpc-rev-cover p { margin: 0 0 6px; font-size: 15px; line-height: 1.35; }
body.kpc-pres-client.kpc-fit .kpc-estimate { font-size: 13px; margin: 6px 0; }
@media (max-width: 720px) {
  body.kpc-pres-client.kpc-fit .kpc-top {
    padding: 6px 10px;
    flex-wrap: nowrap;
    gap: 8px;
  }
  body.kpc-pres-client.kpc-fit .kpc-top-actions {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    justify-content: flex-end;
  }
  body.kpc-pres-client.kpc-fit .kpc-pres-brand { min-width: 0; }
  body.kpc-pres-client.kpc-fit .kpc-brand-name {
    font-size: 10px;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  body.kpc-pres-client.kpc-fit .kpc-pres-brand-logo { height: 28px; }
  body.kpc-pres-client.kpc-fit .kpc-brand-sub { display: none; }
  body.kpc-pres-client.kpc-fit .kpc-page { padding: 4px 8px; }
  body.kpc-pres-client.kpc-fit .kpc-foot { display: none; }
  body.kpc-pres-client.kpc-fit .kpc-pres-docbar { gap: 4px; }
  body.kpc-pres-client.kpc-fit .kpc-pres-docbar .kpc-nav-pill {
    height: 32px;
    padding: 0 8px;
    font-size: 11px;
  }
  body.kpc-pres-client.kpc-fit .kpc-blink { font-size: 12px; padding: 5px 8px; }
  body.kpc-pres-client.kpc-fit .kpc-pres-menu-entry .kpc-pres-jump { width: min(440px, 100%); gap: 6px; }
  body.kpc-pres-client.kpc-fit .kpc-pres-menu-entry .kpc-pres-jump .kpc-nav-pill { padding: 7px 10px; font-size: 12px; }
  body.kpc-pres-client.kpc-fit .kpc-estimate { font-size: 11px; }
  body.kpc-pres-client.kpc-fit .kpc-estimate th,
  body.kpc-pres-client.kpc-fit .kpc-estimate td { padding: 3px 4px; }
  body.kpc-pres-client.kpc-fit .kpc-rev-cover p { font-size: 13px; }
  body.kpc-pres-client.kpc-fit .kpc-pres-logo { max-height: 12dvh; }
}
.kpc-tela-official { max-width: 36rem; margin: 0 auto 16px; }
.kpc-tela-official img { width: 100%; border: 1px solid #d9d1c4; background: #fff; }
.kpc-tela-official figcaption { margin-top: 8px; }
.kpc-specs th { width: 34%; }
@media (max-width: 800px) { .kpc-tela-grid { grid-template-columns: 1fr; } }
@media print {
  .kpc-blink { animation: none; background: #fff; border: 2px solid #000; }
  .kpc-pres-docbar, .kpc-top, .kpc-foot { display: none !important; }
  body.kpc-pres-client.kpc-fit,
  body.kpc-pres-client.kpc-fit .kpc-page,
  body.kpc-pres-client.kpc-fit .kpc-pres-docview,
  body.kpc-pres-client.kpc-fit #kpc-rev-body,
  body.kpc-pres-client.kpc-fit #kpc-rev-stage,
  body.kpc-pres-client.kpc-fit .kpc-rev-cover {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: block !important;
  }
  #kpc-rev-canvas { width: 100% !important; height: auto !important; max-height: none !important; }
}
