/* ==========================================================================
   PAKTRA — Hero + barra de contacto rápido
   ========================================================================== */

/* ============= HERO ============= */
  .hero {
    position: relative;
    background: var(--paktra-negro);
    color: var(--paktra-crema);
    overflow: hidden;
    isolation: isolate;
  }
  .hero__grid-bg {
    position: absolute; inset: 0;
    background-image:
      linear-gradient(rgba(255,253,238,0.045) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,253,238,0.045) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: radial-gradient(ellipse 80% 70% at 30% 35%, black 30%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse 80% 70% at 30% 35%, black 30%, transparent 75%);
    pointer-events: none;
  }
  /* Tacto del cursor sobre la retícula: la misma cuadrícula, más brillante y
     con un velo lima, revelada solo dentro de un círculo que sigue al puntero.
     Todo el trabajo lo hace la máscara — no hay repintado de layout.
     js/hero-grid.js actualiza --mx / --my; sin JS la capa queda invisible. */
  .hero__grid-touch {
    position: absolute; inset: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity .45s var(--ease);
    background-image:
      linear-gradient(rgba(227,239,38,0.30) 1px, transparent 1px),
      linear-gradient(90deg, rgba(227,239,38,0.30) 1px, transparent 1px),
      radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(227,239,38,0.05) 0%, transparent 70%);
    background-size: 80px 80px, 80px 80px, 100% 100%;
    mask-image: radial-gradient(circle 220px at var(--mx, 50%) var(--my, 50%), #000 0%, rgba(0,0,0,0.45) 45%, transparent 72%);
    -webkit-mask-image: radial-gradient(circle 220px at var(--mx, 50%) var(--my, 50%), #000 0%, rgba(0,0,0,0.45) 45%, transparent 72%);
  }
  .hero.is-pointing .hero__grid-touch { opacity: 1; }

  /* Sin cursor fino (táctil) o con reduced-motion, la capa nunca se activa */
  @media (hover: none), (prefers-reduced-motion: reduce) {
    .hero__grid-touch { display: none; }
  }

  .hero__glow {
    position: absolute;
    width: 700px; height: 700px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(7,102,83,0.55) 0%, transparent 60%);
    bottom: -250px; left: -200px;
    pointer-events: none;
    z-index: -1;
  }
  .hero__inner {
    position: relative;
    z-index: 1; /* el contenido siempre por encima de las capas decorativas */
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 60px;
    align-items: center;
    /* padding-block: no tocar el padding lateral que aporta .wrap (--gutter) */
    padding-block: clamp(80px, 11vw, 160px) clamp(60px, 8vw, 110px);
    min-height: 88vh;
  }
  .hero__eyebrow {
    display: inline-flex; align-items: center; gap: 14px;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--paktra-lima);
    margin-bottom: 28px;
  }
  .hero__eyebrow .line { width: 36px; height: 1px; background: var(--paktra-lima); }
  .hero h1 {
    font-size: clamp(44px, 7vw, 104px);
    line-height: 0.96;
    font-weight: 700;
    letter-spacing: -0.025em;
    text-wrap: balance;
    margin-bottom: 32px;
  }
  .hero h1 em {
    font-style: normal;
    font-weight: 300;
    color: var(--paktra-verde-clr);
  }
  .hero h1 .accent {
    color: var(--paktra-lima);
    font-weight: 700;
  }
  .hero__sub {
    font-size: clamp(16px, 1.3vw, 19px);
    line-height: 1.55;
    max-width: 560px;
    color: rgba(255,253,238,0.78);
    font-weight: 300;
    margin-bottom: 44px;
  }
  .hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }

  .hero__visual {
    position: relative;
    aspect-ratio: 4/5;
    border: 1px solid var(--paktra-borde-osc);
    background: linear-gradient(180deg, rgba(255,253,238,0.04), rgba(7,102,83,0.10));
    overflow: hidden;
    isolation: isolate;
  }
  .hero__visual > .photo-real {
    object-position: 50% 45%;
    filter: contrast(1.10) saturate(0.78) brightness(0.92) hue-rotate(-8deg);
    transition: transform .8s var(--ease);
  }
  /* Tinte verde + vignette para integrar al fondo del hero */
  .hero__visual::before {
    content: '';
    position: absolute; inset: 0;
    background:
      linear-gradient(180deg, rgba(6,35,29,0.42) 0%, rgba(6,35,29,0.05) 35%, rgba(6,35,29,0.55) 100%),
      linear-gradient(90deg, rgba(6,35,29,0.55) 0%, rgba(6,35,29,0) 22%, rgba(6,35,29,0) 78%, rgba(6,35,29,0.35) 100%);
    pointer-events: none;
    z-index: 2;
  }
  .hero__visual::after {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at center, transparent 45%, rgba(6,35,29,0.55) 100%);
    mix-blend-mode: multiply;
    pointer-events: none;
    z-index: 3;
  }
  /* Acento de luz lima sutil — esquina superior izquierda */
  .hero__visual .hero__visual-accent {
    position: absolute;
    top: 0; left: 0;
    width: 60%; height: 1px;
    background: linear-gradient(90deg, var(--paktra-lima), transparent);
    opacity: 0.5;
    z-index: 4;
  }
  .hero__visual:hover > .photo-real { transform: scale(1.02); }
  /* photo placeholder system */
  .photo-real {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
  }
  .photo-ph {
    position: relative;
    background: linear-gradient(160deg, var(--paktra-verde-osc), var(--paktra-negro));
    color: rgba(255,253,238,0.72);
    overflow: hidden;
  }
  .photo-ph::before {
    content: '';
    position: absolute; inset: 0;
    background-image:
      linear-gradient(rgba(255,253,238,0.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,253,238,0.05) 1px, transparent 1px);
    background-size: 32px 32px;
  }
  .photo-ph::after {
    content: '';
    position: absolute; inset: 18px;
    border: 1px dashed rgba(255,253,238,0.18);
  }
  .photo-ph__body {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 28px;
    z-index: 2;
  }
  .photo-ph__corner {
    display: flex; justify-content: space-between;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,253,238,0.5);
  }
  .photo-ph__center {
    text-align: left;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.06em;
    line-height: 1.55;
  }
  .photo-ph__center .label {
    display: inline-block;
    color: var(--paktra-lima);
    border: 1px solid var(--paktra-lima);
    padding: 4px 10px;
    margin-bottom: 14px;
    font-size: 10px;
    letter-spacing: 0.18em;
  }
  .photo-ph__center .desc {
    color: rgba(255,253,238,0.85);
    font-size: 13px;
    max-width: 280px;
  }
  .photo-ph--light {
    background: linear-gradient(160deg, var(--paktra-gris-2), var(--paktra-gris));
    color: var(--paktra-verde-osc);
  }
  .photo-ph--light::before {
    background-image:
      linear-gradient(rgba(12,52,44,0.06) 1px, transparent 1px),
      linear-gradient(90deg, rgba(12,52,44,0.06) 1px, transparent 1px);
  }
  .photo-ph--light::after {
    border-color: rgba(12,52,44,0.18);
  }
  .photo-ph--light .photo-ph__corner { color: rgba(12,52,44,0.5); }
  .photo-ph--light .photo-ph__center .label { color: var(--paktra-verde-osc); border-color: var(--paktra-verde-osc); }
  .photo-ph--light .photo-ph__center .desc { color: var(--paktra-verde-osc); }

  .hero__visual .photo-ph__center { font-size: 13px; }

  /* hero side-meta */
  .hero__meta {
    position: absolute;
    bottom: 32px; right: var(--gutter);
    display: flex; align-items: center; gap: 24px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,253,238,0.55);
  }
  .hero__meta .scroll-arrow {
    width: 28px; height: 28px;
    border: 1px solid rgba(255,253,238,0.4);
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    animation: bob 2.2s ease-in-out infinite;
  }
  @keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

  /* hero unit chips left col */
  .hero__chips {
    display: flex; gap: 10px; flex-wrap: wrap;
    margin-top: 48px;
  }
  .hero__chip {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--paktra-borde-osc);
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,253,238,0.78);
  }
  .hero__chip .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--paktra-lima); }

/* ============= QUICK CONTACT BAR ============= */
  .qcontact {
    background: var(--paktra-verde-osc);
    color: var(--paktra-crema);
    border-top: 1px solid var(--paktra-borde-osc);
  }
  .qcontact__inner {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }
  .qcontact__item {
    display: flex; align-items: center; gap: 16px;
    padding: 26px var(--gutter);
    border-right: 1px solid var(--paktra-borde-osc);
    transition: background .2s var(--ease);
  }
  .qcontact__inner--single { grid-template-columns: 1fr !important; }
  .qcontact__inner--single .qcontact__item { border-right: none !important; justify-content: center; }
  .qcontact__item:last-child { border-right: none; }
  .qcontact__item:hover { background: var(--paktra-verde-med); }
  .qcontact__icon {
    width: 38px; height: 38px;
    border: 1px solid rgba(255,253,238,0.25);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    color: var(--paktra-lima);
  }
  .qcontact__label {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,253,238,0.55);
    margin-bottom: 3px;
  }
  .qcontact__value { font-size: 15px; font-weight: 500; }
