/* ==========================================================================
   ACODISA — KIT GLOBAL
   Sistema de diseño aprobado en Fase 1.
   Destino: Elementor → Ajustes del sitio → CSS personalizado
            (o style.css del tema hijo, recomendado)
   No contiene estilos de sección: solo tokens, base y utilidades.
   ========================================================================== */

/* ---------- 1. TOKENS ---------- */
:root{
  /* Primary — verde institucional */
  --acd-p900:#062A1E;
  --acd-p800:#0C3B2B;
  --acd-p700:#10503A;   /* base de marca */
  --acd-p600:#166B4C;
  --acd-p500:#1E8560;
  --acd-p100:#E3EFE9;
  --acd-p050:#F1F7F4;

  /* Accent — bronce (uso mínimo) */
  --acd-a700:#7E5518;   /* texto pequeño sobre claro */
  --acd-a600:#9A6B23;   /* bordes, iconos */
  --acd-a500:#B8863B;   /* sobre verde oscuro */
  --acd-a100:#F3E7D2;

  /* Neutros sesgados a verde */
  --acd-i900:#0E1512;
  --acd-i700:#34403A;
  --acd-i500:#5B6660;
  --acd-i400:#8A938C;

  --acd-bg:#F6F8F6;
  --acd-surface:#FFFFFF;
  --acd-sunken:#EDF1EE;
  --acd-border:#DDE4DF;
  --acd-border-strong:#C4CFC7;

  /* Semánticos */
  --acd-ok:#1E7A4D;
  --acd-warn:#8A5B08;
  --acd-err:#A3231F;
  --acd-info:#1F5E8C;

  /* Tipografía */
  --acd-font-display:"Newsreader","Palatino Linotype","Book Antiqua",Georgia,serif;
  --acd-font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

  /* Escala de espaciado — base 4px */
  --acd-s1:4px;   --acd-s2:8px;   --acd-s3:12px;  --acd-s4:16px;
  --acd-s6:24px;  --acd-s8:32px;  --acd-s12:48px; --acd-s16:64px;
  --acd-s24:96px; --acd-s32:128px;--acd-s40:160px;

  /* Radios */
  --acd-r-none:0; --acd-r-xs:2px; --acd-r-sm:4px; --acd-r-md:8px; --acd-r-full:999px;

  /* Sombras — tintadas en verde, nunca negro puro */
  --acd-sh-xs:0 1px 2px rgba(6,42,30,.06);
  --acd-sh-sm:0 2px 10px -4px rgba(6,42,30,.10);
  --acd-sh-md:0 8px 24px -8px rgba(6,42,30,.14);

  /* Movimiento */
  --acd-t-instant:120ms; --acd-t-fast:180ms; --acd-t-base:280ms; --acd-t-slow:420ms;
  --acd-ease:cubic-bezier(.2,.6,.3,1);
  --acd-ease-in:cubic-bezier(.16,1,.3,1);

  /* Layout */
  --acd-wrap:1280px;
  --acd-read:720px;
  --acd-gutter:20px;
  --acd-section-y:64px;
}
@media (min-width:768px){
  :root{ --acd-gutter:32px; --acd-section-y:88px; }
}
@media (min-width:1025px){
  :root{ --acd-gutter:48px; --acd-section-y:128px; }
}

/* ---------- 2. BASE ---------- */
/* No damos por supuesto que el tema lo defina: sin esto, el padding del
   contenedor se suma al max-width y la rejilla desborda 96 px. */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  background:var(--acd-bg);
  color:var(--acd-i700);
  font-family:var(--acd-font-sans);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
@media (min-width:1025px){ body{ font-size:17px; } }

h1,h2,h3,h4,h5,h6{
  color:var(--acd-i900);
  text-wrap:balance;
  margin:0;
}
p{ text-wrap:pretty; }

/* Elementor inyecta su propia normalización; estas reglas la afinan sin pelearse con ella.
   :where() deja el selector a especificidad 0, para que cualquier clase de
   componente (p. ej. .acd-hero__title) pueda sobrescribirlo sin !important. */
:where(.acd) h1,.acd-h1{
  font-family:var(--acd-font-display);
  font-weight:500;
  font-size:clamp(2.5rem,1.6rem + 3.4vw,4.5rem);
  line-height:1.05;
  letter-spacing:-.02em;
}
.acd-h2{
  font-family:var(--acd-font-display);
  font-weight:500;
  font-size:clamp(2rem,1.5rem + 1.9vw,3rem);
  line-height:1.12;
  letter-spacing:-.015em;
}
.acd-h3{
  font-family:var(--acd-font-sans);
  font-weight:600;
  font-size:clamp(1.375rem,1.2rem + .7vw,1.75rem);
  line-height:1.25;
  letter-spacing:-.01em;
}
.acd-h4{
  font-family:var(--acd-font-sans);
  font-weight:600;
  font-size:clamp(1.125rem,1.05rem + .3vw,1.25rem);
  line-height:1.35;
}

/* ---------- 3. UTILIDADES TIPOGRÁFICAS ---------- */
.acd-eyebrow{
  display:inline-block;
  font-family:var(--acd-font-sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--acd-a700);
  margin:0 0 var(--acd-s4);
}
.acd-eyebrow--dark{ color:var(--acd-a500); }
.acd-eyebrow--rule{ padding-top:var(--acd-s3); border-top:2px solid currentColor; }

.acd-lead{
  font-size:clamp(1.125rem,1.05rem + .3vw,1.3125rem);
  line-height:1.6;
  max-width:60ch;
  color:var(--acd-i700);
}
.acd-meta{
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  color:var(--acd-i500);
  font-variant-numeric:tabular-nums;
}
.acd-read{ max-width:var(--acd-read); }
.acd-measure{ max-width:72ch; }

/* ---------- 4. ACCESIBILIDAD ---------- */
.acd-skip{
  position:absolute; left:var(--acd-s4); top:var(--acd-s4);
  z-index:9999;
  transform:translateY(-200%);
  background:var(--acd-p700); color:#fff;
  padding:12px 20px; border-radius:var(--acd-r-sm);
  font-size:15px; font-weight:600; text-decoration:none;
  transition:transform var(--acd-t-fast) var(--acd-ease);
}
.acd-skip:focus{ transform:translateY(0); }

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--acd-a600);
  outline-offset:2px;
  border-radius:var(--acd-r-xs);
}
.acd-on-dark :where(a,button,summary,[tabindex]):focus-visible{
  outline-color:#fff;
}
.acd-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---------- 5. BOTONES ---------- */
.acd-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:44px;
  padding:13px 26px;
  font-family:var(--acd-font-sans);
  font-size:15px; font-weight:600; letter-spacing:.005em; line-height:1.2;
  text-decoration:none;
  border:1px solid transparent;
  border-radius:var(--acd-r-sm);
  cursor:pointer;
  transition:background-color var(--acd-t-fast) var(--acd-ease),
             color var(--acd-t-fast) var(--acd-ease),
             border-color var(--acd-t-fast) var(--acd-ease),
             transform var(--acd-t-fast) var(--acd-ease);
}
.acd-btn--primary{ background:var(--acd-p700); color:#fff; }
.acd-btn--primary:hover{ background:var(--acd-p800); transform:translateY(-1px); color:#fff; }

.acd-btn--secondary{ background:transparent; color:var(--acd-p700); border-color:var(--acd-p700); }
.acd-btn--secondary:hover{ background:var(--acd-p050); color:var(--acd-p800); }

.acd-btn--light{ background:#fff; color:var(--acd-p900); }
.acd-btn--light:hover{ background:var(--acd-p050); transform:translateY(-1px); }

.acd-btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.38); }
.acd-btn--ghost:hover{ background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.7); color:#fff; }

.acd-btn--link{
  min-height:0; padding:8px 0; border-radius:0;
  background:transparent; color:var(--acd-p700);
  border-bottom:1px solid var(--acd-border-strong);
}
.acd-btn--link:hover{ border-bottom-color:var(--acd-p700); color:var(--acd-p800); }
.acd-btn--link .acd-arrow{ transition:transform var(--acd-t-fast) var(--acd-ease); }
.acd-btn--link:hover .acd-arrow{ transform:translateX(4px); }

@media (max-width:767px){
  .acd-btn--block-mobile{ width:100%; }
}

/* ---------- 6. REVELADO AL SCROLL ---------- */
.acd-reveal{
  opacity:0;
  transform:translateY(12px);
  transition:opacity var(--acd-t-slow) var(--acd-ease-in),
             transform var(--acd-t-slow) var(--acd-ease-in);
  will-change:opacity,transform;
}
.acd-reveal.is-visible{ opacity:1; transform:none; will-change:auto; }

@media (prefers-reduced-motion:reduce){
  .acd-reveal{ opacity:1; transform:none; transition:none; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
