/* Ajustes compartidos: conservar la identidad, mejorar lectura y escala. */
:root {
  --muted: #a49d99;
  --dim: #948d89;
  --red-txt: #ef7468;
}

html { scroll-padding-top: 100px; }
body { -webkit-text-size-adjust: 100%; }
::selection { background: #79231f; color: #fff; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid #f0ede8;
  outline-offset: 5px;
}
:where(button, input, select, textarea) { border-radius: 0; }
:where(.sec, .art-wrap, .sim2-layout, .split) > * { min-width: 0; }
.nav { gap: 20px; }
.nav-logo, .nav > svg, .nav-right { flex-shrink: 0; }
.nav svg[aria-label="Genghis Cybersecurity"] { display: block; width: 120px !important; height: 40px !important; max-width: none; flex-shrink: 0; }
.nav-back, .nav-link { color: #b3aaa5; }
.nav-link { font-size: 11px; min-height: 44px; }
.nav-tag, .hero-tag, .art-tag { color: var(--red-txt); border-color: #78302c; }
.nav-tag { display: inline-flex; align-items: center; min-height: 36px; }
.nav-cta, .btn, .art-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
}
.nav-cta:hover, .btn:hover, .art-cta a:hover {
  background: #a91c1c;
  box-shadow: none;
  text-decoration: none;
}
.nav-cta:active, .btn:active { transform: translateY(1px); }
.nav-cta .cta-x { margin-left: .3em; }
.fc { color: var(--dim); line-height: 1.6; }

/* Home: la ilustración se funde con el fondo y deja respirar al texto. */
.site-home #overlay { position: absolute; inset: 0 0 auto; height: 100vh; height: 100svh; overflow: hidden; pointer-events: none; background: var(--bg); }
.site-home #overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(8,8,8,.34), transparent 58%),
              linear-gradient(0deg, #080808 0%, rgba(8,8,8,.3) 18%, transparent 42%);
}
.site-home .nav { background: linear-gradient(#080808d9, #08080800); }
.site-home .nav.solid { background: rgba(8,8,8,.97); box-shadow: none; border-color: #272121; }
.site-home .nav-links { align-items: center; gap: clamp(16px, 2vw, 30px); }
.site-home #hero-section { height: auto; min-height: 100vh; min-height: 100svh; padding-block: 128px 88px; overflow: clip; }
.site-home .hero-inner { padding-top: 0; }
.site-home .hero-p { color: #c0b7b1; font-size: clamp(16px, 1.35vw, 18px); max-width: 44ch; }
.site-home .hero-tag { font-size: 11px; letter-spacing: 2.4px; padding: 6px 10px; }
.site-home .hero-btn .btn { min-height: 48px; font-size: 14px; }
.site-home .ttl { text-wrap: balance; }
.site-home .sec-bg { opacity: .64; }
.site-home #servicios, .site-home #porque { background: var(--bg); }
.site-home .cell, .site-home .ec-card { padding: clamp(24px, 2.4vw, 36px); }
.site-home .cell:hover, .site-home .ec-card:hover, .site-home .blog-card:hover {
  box-shadow: inset 0 1px 0 #94332e;
}
.site-home .cell::after, .site-home .ec-card::after, .site-home .blog-card::after { display: none; }
.site-home .term { box-shadow: 0 20px 48px #0005; }
.site-home .term-line .pr, .site-home .term-line .crit { color: var(--red-txt); }
.site-home .term-body { font-size: 12px; }
.site-home .all-inc-header, .site-home .blog-card-link,
.site-home .cot-open-btn, .site-home .blog-toggle-btn { color: var(--red-txt); }
.site-home .cot-open-btn:hover, .site-home .blog-toggle-btn:hover { color: #fff; box-shadow: none; }
.site-home .flag-carousel { display: grid; grid-template-columns: 44px minmax(0, 520px) 44px; gap: 16px; }
.site-home .flag-stage { width: 100%; height: 250px; min-width: 0; }
.site-home .flag-slide { border: 1px solid var(--border2); padding: 28px; }
.site-home .carousel-arrow { width: 44px; height: 44px; color: #c0b7b1; }
.site-home .carousel-dot { width: 44px; height: 44px; }
.site-home #sim2 { --dim: #a49d99; --muted: #b1aaa5; }
.site-home .sim2-tab { min-height: 44px; }
.site-home .sim2-card-desc, .site-home .sim2-cfg-subtitle { font-size: 13px; }
.site-home .sim2-card-price, .site-home .sim2-cfg-price-preview { color: var(--red-txt); }
.site-home .sp { font-family: var(--bebas); color: var(--red-txt); font-size: 25px; letter-spacing: .5px; margin-top: 12px; }
.site-home .tip { width: 20px; height: 20px; color: #b3aaa5; border-color: #655852; }
.site-home .tip-bubble { display: none; }
.site-home .tip.open .tip-bubble { display: block; }
.site-home .sim2-q-note, .site-home .sim2-nose-note { font-size: 12px; line-height: 1.65; }
.site-home .sim2-q-cta { min-height: 48px; }
.site-home :is(.hero-btn .btn, .sim2-nose-btn, .sim2-q-cta, .contact-wa) { text-decoration: none; }
.site-home .sim2-nose-btn { color: var(--red-txt); border-color: #873029; text-align: center; }
.site-home .sim2-q-alt { display: block; padding: 13px 18px; color: #c6bcb7; font-size: 12px; text-align: center; text-underline-offset: 4px; }
.site-home .sim2-q-alt:hover { color: #fff; }
.site-home .sim2-quote { top: 96px; }
.site-home .sim2-toggle input:focus-visible + .sim2-toggle-slider { outline: 2px solid #f0ede8; outline-offset: 5px; }
.site-home .cta-svg-bg { opacity: .52; }
.site-home .cta-content { max-width: 680px; }
.site-home .cta-content > p { font-size: 16px; line-height: 1.65; }
.site-home .contact-wa { width: min(100%, 420px); min-height: 52px; margin: 0 auto; }
.site-home .cta-content > .contact-wa-note { color: #bdb3ad; font-size: 12px; margin: 12px auto 0; }
.site-home .contact-email { max-width: 640px; margin: 32px auto 0; text-align: left; }
.site-home .contact-email summary { display: block; padding: 16px 20px; border: 1px solid #51413b; color: #e0d7d1; font-size: 13px; text-align: center; cursor: pointer; list-style: none; }
.site-home .contact-email summary::-webkit-details-marker { display: none; }
.site-home .contact-email summary::after { content: ' +'; color: var(--red-txt); }
.site-home .contact-email[open] summary::after { content: ' −'; }
.site-home .contact-email summary:hover { border-color: var(--red-txt); }
.site-home .contact-email summary:focus-visible { outline: 2px solid #f0ede8; outline-offset: 5px; }
.site-home .contact-email .contact-form { margin-top: 18px; }
.site-home .contact-form {
  max-width: 640px;
  padding: clamp(20px, 3vw, 32px);
  background: rgba(12,10,10,.94);
  border: 1px solid #352623;
  border-top: 2px solid #873029;
}
.site-home .cf-grid { gap: 20px 18px; margin-bottom: 24px; }
.site-home .cf-label { color: #d0c4be; font-size: 11px; letter-spacing: 1px; line-height: 1.6; }
.site-home .cf-label span { color: var(--dim); text-transform: none; letter-spacing: 0; }
.site-home .inp { background-color: #111; border-color: #49413d; min-height: 48px; font-size: 16px; padding: 12px 14px; }
.site-home .inp::placeholder { color: #9b918a; }
.site-home .inp:focus { border-color: var(--red-txt); }
.site-home select.inp { padding-right: 36px; }
.site-home textarea.inp { min-height: 112px; line-height: 1.6; }
.site-home .cf-msg { line-height: 1.65; }
.site-home .cf-msg.error { color: #e1b2aa; border-color: #80534b; }
.site-home .cf-msg.error a { color: #fff; }
.site-home .cta-content > .note { color: var(--dim); font-size: 12px; margin-top: 20px; margin-bottom: 0; }

/* Artículos y Nosotros: misma legibilidad y controles en toda la web. */
.site-about .hero { background-position: center bottom; }
.site-about .cta .btn { text-decoration: none; }
.site-about .cta .contact-alt-line { margin: 16px 0 0; font-size: 12px; }
.site-about .cta .contact-alt-line a { color: #c6bcb7; text-underline-offset: 4px; }
.site-about .nav-back, .site-article .nav-back { display: inline-flex; align-items: center; min-height: 44px; }
.site-article .art-wrap { grid-template-columns: minmax(0, 1fr) 260px; gap: clamp(28px, 4vw, 56px); }
.site-article .art-header h1 { text-wrap: balance; }
.site-article .art-body h2 { scroll-margin-top: 16px; line-height: 1.12; }
.site-article .art-body a:not(.art-cta a) { color: var(--red-txt); }
.site-article .art-cta a.contact-alt { display: inline-block; background: transparent; color: #c6bcb7; margin: 12px 0 0 14px; padding: 10px 0; text-transform: none; letter-spacing: 0; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; box-shadow: none; }
.site-article .art-cta a.contact-alt:hover { color: #fff; background: transparent; box-shadow: none; }
.site-article .art-cta a.service-link { display: inline; width: auto; min-height: 0; padding: 0; background: transparent; box-shadow: none; color: var(--red-txt); font-size: 14px; letter-spacing: 0; text-transform: none; text-decoration: underline; text-underline-offset: 4px; }
.site-article .art-cta a.service-link:hover { color: #fff; background: transparent; }
.site-article .toc-lbl, .site-article .related-lbl { color: var(--red-txt); font-size: 11px; }
.site-article .toc-box a, .site-article .related-links a { padding-block: 5px; }
.site-article .table-scroll { max-width: 100%; overflow-x: auto; margin: 24px 0 32px; border: 1px solid var(--border2); }
.site-article .table-scroll table { margin: 0; }
.site-article :is(.price-table, .comp-table) th { color: var(--red-txt); line-height: 1.6; }
.site-article .price-table td { line-height: 1.65; }

@media (max-width: 1100px) {
  .site-home .nav-links { display: none; }
  .site-home .nav-ham { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; }
  .site-home .nav-mobile-menu { top: 72px; }
  .site-home .nav-mobile-menu.open { display: flex !important; }
  .site-home .nav-mobile-link { color: #c0b7b1; min-height: 48px; }
}
@media (min-width: 1101px) { .site-home .nav-mobile-menu { display: none !important; } }
@media (max-width: 900px) {
  .site-home .grid6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-home .sim2-layout { grid-template-columns: minmax(0, 1fr); }
  .site-article .art-wrap { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 88px; }
  .nav { padding: 12px 20px; gap: 12px; }
  .nav-right { gap: 8px; }
  .nav-cta { font-size: 10px; letter-spacing: .5px; padding: 10px 12px; }
  .nav-back { display: none !important; }
  .nav svg[aria-label="Genghis Cybersecurity"] { width: 105px !important; height: 35px !important; }
  .site-home #hero-section { padding: 116px 24px 80px; }
  .site-home .hero-h1 { font-size: clamp(64px, 17vw, 90px); letter-spacing: 1px; line-height: .96; }
  .site-home .hero-tag { font-size: 9px; letter-spacing: 1.8px; }
  .site-home .hero-p { max-width: 30ch; line-height: 1.7; margin-bottom: 28px; }
  .site-home #overlay::after {
    background: linear-gradient(90deg, rgba(8,8,8,.46), rgba(8,8,8,.08)),
                linear-gradient(0deg, #080808, transparent 45%);
  }
  .site-home .sec, .site-home #sim2 { padding: 56px 24px; }
  .site-home .ttl { font-size: clamp(42px, 11vw, 58px); line-height: 1; letter-spacing: 1px; }
  .site-home .lbl { font-size: 11px; letter-spacing: 2px; }
  .site-home .grid6 { grid-template-columns: minmax(0, 1fr); }
  .site-home .ec-action, .site-home .lfpdppp-block { min-width: 0 !important; flex-basis: 100% !important; padding: 24px; }
  .site-home .flag-carousel { grid-template-columns: 36px minmax(0, 1fr) 36px; gap: 8px; }
  .site-home .carousel-arrow { width: 36px; height: 48px; }
  .site-home .flag-stage { height: 300px; }
  .site-home .flag-slide { padding: 20px 16px; }
  .site-home .slide-num { font-size: 48px; }
  .site-home .all-inc-title { font-size: 16px; line-height: 1.35; }
  .site-home .all-inc-desc { font-size: 14px; line-height: 1.65; }
  .site-home .sim2-cfg-header, .site-home .sim2-card-row { gap: 10px; padding: 18px 14px; flex-wrap: wrap; }
  .site-home .sim2-cfg-info, .site-home .sim2-card-info { flex-basis: calc(100% - 60px); }
  .site-home .sim2-cfg-price-preview, .site-home .sim2-card-right { margin-left: auto; }
  .site-home .sim2-cfg-body { padding: 0 16px 20px; }
  .site-home .tip-bubble { position: fixed; left: 50%; bottom: 24px; width: min(280px, calc(100vw - 48px)); }
  .site-home .tip-bubble::after { display: none; }
  .site-home .sim2-nose { padding: 24px 20px; }
  .site-home .cf-grid { grid-template-columns: minmax(0, 1fr); }
  .site-home .cta-sec { padding: 64px 20px; }
  .site-home .cta-sec h2 { line-height: 1; }
  .site-article .art-wrap { padding: 40px 24px; }
  .site-article .art-header h1 { font-size: clamp(36px, 10vw, 52px); line-height: 1.05; letter-spacing: 1px; overflow-wrap: anywhere; }
  .site-article .art-cta { padding: 24px; }
  .site-article .art-cta a { width: 100%; padding-inline: 16px; }
  .site-article .art-cta a.contact-alt { margin: 8px 0 0; justify-content: center; text-align: center; }
  .site-article .table-scroll table { min-width: 560px; }
  .site-article .table-scroll::before { content: 'Desliza para ver todas las columnas →'; display: block; position: sticky; left: 0; padding: 10px 12px; color: var(--dim); background: #111; font-size: 11px; }
  .site-about .hero { padding: 64px 24px; }
  .site-about .hero h1 { font-size: clamp(52px, 14vw, 76px); line-height: .98; }
  .site-about .sec { padding: 56px 24px; }
  footer { padding: 24px; gap: 16px; }
}
@media (max-width: 360px) {
  .site-home .nav { padding-inline: 14px; gap: 8px; }
  .site-home .nav-cta { padding-inline: 8px; font-size: 9px; }
  .site-home .flag-stage { height: 340px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal, .reveal-item { opacity: 1 !important; transform: none !important; }
}
