/* ============================================================
   IMSO · GCE — DESIGN SYSTEM v1.0 · COMPONENTES
   Depende de gce-tokens.css. Todo bajo el scope .imso-gce.
   Grid responsive, estados interactivos, variantes y
   estados vacío/loading/error.
   ============================================================ */

/* ---------- GRID / LAYOUT ---------- */
.imso-gce .gce-grid{display:grid;gap:var(--gce-sp-4)}
.imso-gce .gce-grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.imso-gce .gce-grid--3{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.imso-gce .gce-grid--4{grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}
.imso-gce .gce-stack{display:flex;flex-direction:column;gap:var(--gce-sp-5)}
.imso-gce .gce-section{padding:var(--gce-sp-7) 0}
.imso-gce .gce-flow>*+*{margin-top:1em}

/* ---------- BOTONES (.imso-btn) ---------- */
.imso-gce .imso-btn{
  font-family:var(--gce-sans);font-weight:600;font-size:.92rem;line-height:1;
  border-radius:var(--gce-r-1);padding:.72rem 1.15rem;border:1px solid transparent;cursor:pointer;
  display:inline-flex;gap:.5rem;align-items:center;justify-content:center;text-decoration:none;
  transition:background var(--gce-t),border-color var(--gce-t),transform var(--gce-t-fast);
}
.imso-gce .imso-btn:hover{text-decoration:none}
.imso-gce .imso-btn:active{transform:translateY(1px)}
/* PRIMARIO ámbar: fondo ámbar IMSO + texto navy de alto contraste, siempre
   visible (bold). El color se fija con especificidad de par de clases para ganar
   a cualquier regla de color de enlace/tema. WCAG AA holgado (navy sobre ámbar). */
.imso-gce a.imso-btn--amber,.imso-gce .imso-btn--amber{background:var(--gce-amber);color:var(--gce-navy);border-color:var(--gce-amber-deep);font-weight:700}
.imso-gce .imso-btn--amber:hover{background:var(--gce-amber-hi);color:var(--gce-navy)}
.imso-gce a.imso-btn--navy,.imso-gce .imso-btn--navy{background:var(--gce-navy);color:#fff}
.imso-gce .imso-btn--navy:hover{background:var(--gce-navy-700);color:#fff}
.imso-gce a.imso-btn--ghost,.imso-gce .imso-btn--ghost{background:transparent;color:var(--gce-ink);border-color:var(--gce-line)}
.imso-gce .imso-btn--ghost:hover{border-color:var(--gce-ink-2);color:var(--gce-ink)}
.imso-gce a.imso-btn--wa,.imso-gce .imso-btn--wa{background:#1f6b3a;color:#fff}
.imso-gce .imso-btn--wa:hover{background:#17512c;color:#fff}
.imso-gce .imso-btn--sm{padding:.46rem .75rem;font-size:.8rem}
.imso-gce .imso-btn--block{width:100%}
.imso-gce .imso-btn[disabled],.imso-gce .imso-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none}
/* ondark: solo variantes translúcidas (ghost) sobre fondo oscuro; NUNCA debe
   pisar el texto de un botón con fondo propio como el ámbar. */
.imso-gce .imso-btn--ghost.imso-btn--ondark{color:#fff;border-color:var(--gce-navy-500)}
.imso-gce .imso-btn--ghost.imso-btn--ondark:hover{border-color:#fff;color:#fff}
/* Foco accesible: anillo que contrasta con el propio botón (ámbar/ghost → navy;
   navy/wa → ámbar), en vez del anillo ámbar global que se pierde sobre ámbar. */
.imso-gce .imso-btn:focus-visible{outline:3px solid var(--gce-navy);outline-offset:2px}
.imso-gce .imso-btn--navy:focus-visible,.imso-gce .imso-btn--wa:focus-visible,.imso-gce .imso-btn--ondark:focus-visible{outline-color:var(--gce-amber)}

/* ---------- BADGE / CHIP / PILL ---------- */
.imso-gce .imso-badge{font-family:var(--gce-mono);font-size:.62rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;padding:.12rem .5rem;border-radius:var(--gce-r-1);color:#fff;display:inline-block}
.imso-gce .imso-badge--demo{background:var(--gce-crit)}
.imso-gce .imso-pill{font-family:var(--gce-mono);font-size:.7rem;padding:.24rem .6rem;border-radius:var(--gce-r-pill);
  border:1px solid var(--gce-line);background:var(--gce-panel);color:var(--gce-ink-2);display:inline-flex;gap:.4rem;align-items:center}

/* ---------- BREADCRUMB (.imso-crumb) ---------- */
.imso-gce .imso-crumb{font-family:var(--gce-mono);font-size:.76rem;color:var(--gce-muted);
  display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;padding:.2rem 0}
.imso-gce .imso-crumb a{color:var(--gce-muted)}
.imso-gce .imso-crumb a:hover{color:var(--gce-ink)}
.imso-gce .imso-crumb__sep{color:var(--gce-faint)}
.imso-gce .imso-crumb__cur{color:var(--gce-ink);font-weight:600}

/* ---------- HERO (.imso-hero) ---------- */
.imso-gce .imso-hero{background:linear-gradient(120deg,var(--gce-navy),var(--gce-navy-800));
  color:#fff;border-radius:var(--gce-r-3);padding:var(--gce-sp-6);position:relative;overflow:hidden}
.imso-gce .imso-hero--flush{border-radius:0}
.imso-gce .imso-hero::after{content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;
  border:1px solid var(--gce-navy-600);border-radius:50%;opacity:.5;pointer-events:none}
.imso-gce .imso-hero__pilar{font-family:var(--gce-mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gce-amber);margin-bottom:.6rem;position:relative;z-index:1}
.imso-gce .imso-hero__title{font-size:clamp(1.6rem,3.4vw,2.4rem);max-width:22ch;margin-bottom:.6rem;position:relative;z-index:1}
.imso-gce .imso-hero__lede{color:#bccdeb;max-width:56ch;margin-bottom:1.2rem;position:relative;z-index:1}
.imso-gce .imso-hero__cta{display:flex;gap:.6rem;flex-wrap:wrap;position:relative;z-index:1}
.imso-gce .imso-hero__wave{position:absolute;inset:0;width:100%;height:100%;opacity:.5;z-index:0}

/* ---------- DIRECT ANSWER (.imso-da) ---------- */
.imso-gce .imso-da{border:1px solid var(--gce-line);border-left:4px solid var(--gce-tofu);
  border-radius:var(--gce-r-2);background:var(--gce-panel);padding:1.1rem 1.25rem;max-width:66ch}
.imso-gce .imso-da__q{font-size:var(--gce-fs-md);font-weight:700;margin-bottom:.5rem}
.imso-gce .imso-da__a{color:var(--gce-ink-2)}
.imso-gce .imso-da__note{font-family:var(--gce-mono);font-size:.64rem;color:var(--gce-tofu);
  margin-top:.6rem;letter-spacing:.1em;text-transform:uppercase}

/* ---------- ENTITY CARDS (.imso-card) ---------- */
.imso-gce .imso-card{border:1px solid var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-paper);
  padding:1.05rem 1.1rem;box-shadow:var(--gce-sh-1);display:flex;flex-direction:column;gap:.5rem;
  transition:transform var(--gce-t),box-shadow var(--gce-t),border-color var(--gce-t)}
.imso-gce a.imso-card:hover,.imso-gce .imso-card--link:hover{transform:translateY(-2px);
  box-shadow:var(--gce-sh-2);border-color:color-mix(in srgb,var(--gce-amber) 40%,var(--gce-line));text-decoration:none}
.imso-gce .imso-card__kind{font-family:var(--gce-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:600;display:inline-flex;gap:.4rem;align-items:center;width:max-content}
.imso-gce .imso-card__kind::before{content:"";width:7px;height:7px;border-radius:2px;background:currentColor}
.imso-gce .imso-card__title{font-size:1.02rem;letter-spacing:-.01em;color:var(--gce-ink)}
.imso-gce .imso-card__desc{font-size:.86rem;color:var(--gce-muted);margin:0}
.imso-gce .imso-card__go{font-family:var(--gce-mono);font-size:.74rem;color:var(--gce-amber-deep);margin-top:auto;font-weight:500}
/* colores por tipo */
.imso-gce .imso-card--problema .imso-card__kind{color:var(--gce-ct-problema)}
.imso-gce .imso-card--sintoma  .imso-card__kind{color:var(--gce-ct-sintoma)}
.imso-gce .imso-card--solucion .imso-card__kind{color:var(--gce-ct-solucion)}
.imso-gce .imso-card--tecnologia .imso-card__kind{color:var(--gce-ct-tecnologia)}
.imso-gce .imso-card--servicio .imso-card__kind{color:var(--gce-ct-servicio)}
.imso-gce .imso-card--recurso  .imso-card__kind{color:var(--gce-ct-recurso)}
.imso-gce .imso-card--caso     .imso-card__kind{color:var(--gce-ct-caso)}

/* ---------- SYMPTOM CARD (.imso-sym) ---------- */
.imso-gce .imso-sym{border:1px dashed var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-panel);
  padding:.9rem 1rem;display:flex;gap:.7rem;align-items:flex-start}
.imso-gce .imso-sym__ic{width:30px;height:30px;border-radius:var(--gce-r-1);background:var(--gce-sunken);
  display:grid;place-items:center;flex:0 0 auto;font-size:1rem}
.imso-gce .imso-sym__title{font-size:.92rem;margin-bottom:.15rem}
.imso-gce .imso-sym__desc{font-size:.78rem;color:var(--gce-muted);margin:0}

/* ---------- COMPARISON TABLE (.imso-ctbl) ---------- */
.imso-gce .imso-tblwrap{overflow-x:auto;border:1px solid var(--gce-line);border-radius:var(--gce-r-2);box-shadow:var(--gce-sh-1)}
.imso-gce .imso-ctbl{border-collapse:collapse;width:100%;min-width:520px;background:var(--gce-paper);font-size:.88rem}
.imso-gce .imso-ctbl th,.imso-gce .imso-ctbl td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid var(--gce-line-2)}
.imso-gce .imso-ctbl thead th{background:var(--gce-navy);color:#fff;font-family:var(--gce-mono);font-size:.72rem;font-weight:600}
.imso-gce .imso-ctbl thead th:first-child{background:var(--gce-navy-800)}
.imso-gce .imso-ctbl td:first-child{font-weight:600;color:var(--gce-ink-2);font-size:.82rem}
.imso-gce .imso-ctbl tbody tr:last-child td{border-bottom:none}
.imso-gce .imso-ctbl__win{color:var(--gce-ok);font-weight:600}
.imso-gce .imso-ctbl__u{color:var(--gce-faint)}

/* ---------- DECISION TREE (.imso-dtree) ---------- */
.imso-gce .imso-dtree{display:flex;flex-direction:column;gap:.6rem}
.imso-gce .imso-dnode{border:1px solid var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-panel);padding:.8rem 1rem}
.imso-gce .imso-dnode__q{font-weight:600;font-size:.92rem;margin-bottom:.5rem}
.imso-gce .imso-dnode__opts{display:flex;gap:.5rem;flex-wrap:wrap}
.imso-gce .imso-dopt{font-family:var(--gce-mono);font-size:.76rem;border:1px solid var(--gce-line);
  border-radius:var(--gce-r-pill);padding:.35rem .7rem;background:var(--gce-paper);display:inline-flex;gap:.4rem;align-items:center}
.imso-gce .imso-dopt b{color:var(--gce-ink)}
.imso-gce .imso-dtree__note{font-family:var(--gce-mono);font-size:.68rem;color:var(--gce-muted);margin-top:.5rem}

/* ---------- METHODOLOGY (.imso-meth) ---------- */
.imso-gce .imso-meth{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--gce-line);
  border-radius:var(--gce-r-2);overflow:hidden;background:var(--gce-paper)}
.imso-gce .imso-meth__st{padding:1.1rem 1rem;border-right:1px solid var(--gce-line);position:relative}
.imso-gce .imso-meth__st:last-child{border-right:none}
.imso-gce .imso-meth__no{font-family:var(--gce-mono);font-size:.7rem;color:var(--gce-amber-deep);font-weight:600}
.imso-gce .imso-meth__t{font-size:.96rem;margin:.4rem 0 .3rem}
.imso-gce .imso-meth__d{font-size:.76rem;color:var(--gce-muted);margin:0}
.imso-gce .imso-meth__st::after{content:"→";position:absolute;right:-9px;top:1.1rem;color:var(--gce-amber);
  font-weight:700;z-index:2;background:var(--gce-paper);width:18px;text-align:center}
.imso-gce .imso-meth__st:last-child::after{display:none}

/* ---------- TECHNICAL CALLOUT (.imso-tcall) ---------- */
.imso-gce .imso-tcall{border:1px solid var(--gce-navy-600);border-radius:var(--gce-r-2);background:var(--gce-navy);
  color:#eaf1fb;padding:1.1rem 1.25rem;font-family:var(--gce-mono);position:relative;overflow:hidden}
.imso-gce .imso-tcall__lbl{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gce-amber);margin-bottom:.6rem}
.imso-gce .imso-tcall__formula{font-size:1.2rem;color:#fff;letter-spacing:.02em}
.imso-gce .imso-tcall__formula sub{color:var(--gce-amber-hi)}
.imso-gce .imso-tcall__p{font-family:var(--gce-sans);font-size:.82rem;color:#a9bcda;margin:.7rem 0 0}

/* ---------- STANDARDS (.imso-std) ---------- */
.imso-gce .imso-stds{display:flex;flex-wrap:wrap;gap:.6rem}
.imso-gce .imso-std{border:1px solid var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-panel);padding:.7rem .9rem;min-width:170px}
.imso-gce .imso-std__code{font-family:var(--gce-mono);font-weight:600;font-size:.86rem;color:var(--gce-ink)}
.imso-gce .imso-std__org{font-size:.74rem;color:var(--gce-muted)}
.imso-gce .imso-std__scope{font-size:.72rem;color:var(--gce-faint);margin-top:.2rem}

/* ---------- CASE STUDY (.imso-case) ---------- */
.imso-gce .imso-case{border:1px solid var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-paper);
  overflow:hidden;box-shadow:var(--gce-sh-1);display:grid;grid-template-columns:1.2fr 1fr}
.imso-gce .imso-case__ph{background:linear-gradient(135deg,var(--gce-navy-700),var(--gce-navy));min-height:150px;
  position:relative;display:grid;place-items:center;color:#6f88a8;font-family:var(--gce-mono);font-size:.72rem}
.imso-gce .imso-case__badge{position:absolute;top:.7rem;left:.7rem}
.imso-gce .imso-case__bd{padding:1.2rem 1.3rem}
.imso-gce .imso-case__ind{font-family:var(--gce-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gce-ct-caso);font-weight:600}
.imso-gce .imso-case__title{font-size:1.1rem;margin:.4rem 0 .5rem}
.imso-gce .imso-case__kpis{display:flex;gap:1.4rem;margin-top:.9rem;flex-wrap:wrap}
.imso-gce .imso-case__kpi .v{font-family:var(--gce-mono);font-size:1.3rem;font-weight:600;color:var(--gce-ok)}
.imso-gce .imso-case__kpi .k{font-size:.68rem;color:var(--gce-muted)}
.imso-gce .imso-case[data-demo="true"] .imso-case__kpi .v{color:var(--gce-muted)}

/* ---------- EXPERT REVIEWER (.imso-rev) ---------- */
.imso-gce .imso-rev{display:flex;gap:.9rem;align-items:center;border:1px solid var(--gce-line);
  border-radius:var(--gce-r-2);background:var(--gce-panel);padding:.9rem 1.1rem;max-width:60ch}
.imso-gce .imso-rev__av{width:46px;height:46px;border-radius:50%;background:var(--gce-navy);color:var(--gce-amber);
  display:grid;place-items:center;font-weight:700;flex:0 0 auto}
.imso-gce .imso-rev__name{font-size:.92rem;font-weight:700}
.imso-gce .imso-rev__role{font-size:.78rem;color:var(--gce-muted)}
.imso-gce .imso-rev__date{font-family:var(--gce-mono);font-size:.68rem;color:var(--gce-faint);margin-top:.15rem}

/* ---------- RELATED (.imso-rel) ---------- */
.imso-gce .imso-rel{display:flex;flex-wrap:wrap;gap:.5rem}
.imso-gce .imso-rchip{border:1px solid var(--gce-line);border-radius:var(--gce-r-pill);background:var(--gce-paper);
  padding:.4rem .8rem;font-size:.82rem;display:inline-flex;gap:.5rem;align-items:center;box-shadow:var(--gce-sh-1)}
.imso-gce .imso-rchip:hover{border-color:var(--gce-amber);text-decoration:none}
.imso-gce .imso-rchip__k{width:8px;height:8px;border-radius:2px}
.imso-gce .imso-rchip--pinned::after{content:"📌";font-size:.7rem;margin-left:.1rem}

/* ---------- FAQ (.imso-faq) ---------- */
.imso-gce .imso-faq{border:1px solid var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-paper);overflow:hidden;max-width:70ch}
.imso-gce .imso-faq details{border-bottom:1px solid var(--gce-line-2)}
.imso-gce .imso-faq details:last-child{border-bottom:none}
.imso-gce .imso-faq summary{padding:.95rem 1.1rem;font-weight:600;font-size:.95rem;cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.imso-gce .imso-faq summary::-webkit-details-marker{display:none}
.imso-gce .imso-faq summary::after{content:"+";font-family:var(--gce-mono);color:var(--gce-amber-deep);font-size:1.2rem;flex:0 0 auto}
.imso-gce .imso-faq details[open] summary::after{content:"–"}
.imso-gce .imso-faq__a{padding:0 1.1rem 1.1rem;color:var(--gce-ink-2);font-size:.9rem;max-width:64ch}

/* ---------- CTA BLOCK (.imso-cta) ---------- */
.imso-gce .imso-cta{border-radius:var(--gce-r-3);padding:1.6rem 1.8rem;display:flex;justify-content:space-between;
  gap:1.4rem;align-items:center;flex-wrap:wrap}
.imso-gce .imso-cta--tofu{background:color-mix(in srgb,var(--gce-tofu) 12%,var(--gce-paper));border:1px solid color-mix(in srgb,var(--gce-tofu) 30%,var(--gce-line))}
.imso-gce .imso-cta--mofu{background:var(--gce-amber-tint);border:1px solid color-mix(in srgb,var(--gce-amber) 40%,var(--gce-line))}
.imso-gce .imso-cta--bofu{background:linear-gradient(120deg,var(--gce-navy),var(--gce-navy-800));color:#fff}
.imso-gce .imso-cta__stage{font-family:var(--gce-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:.4rem}
.imso-gce .imso-cta--tofu .imso-cta__stage{color:var(--gce-tofu)}
.imso-gce .imso-cta--mofu .imso-cta__stage{color:var(--gce-mofu)}
.imso-gce .imso-cta--bofu .imso-cta__stage{color:var(--gce-amber)}
.imso-gce .imso-cta__title{font-size:1.15rem}
.imso-gce .imso-cta--bofu .imso-cta__title{color:#fff}
.imso-gce .imso-cta__sub{margin:.2rem 0 0;font-size:.86rem;color:var(--gce-muted)}
.imso-gce .imso-cta--bofu .imso-cta__sub{color:#a9bcda}
.imso-gce .imso-cta__acts{display:flex;gap:.6rem;flex-wrap:wrap}

/* ---------- LEAD FORM (.imso-lf) ---------- */
.imso-gce .imso-lf{border:1px solid var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-paper);
  padding:1.3rem;max-width:560px;box-shadow:var(--gce-sh-1)}
.imso-gce .imso-lf__title{font-size:1.1rem;margin-bottom:.3rem}
.imso-gce .imso-lf__sub{font-size:.84rem;color:var(--gce-muted);margin-bottom:1rem}
.imso-gce .imso-lf__row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:.7rem}
.imso-gce .imso-lf label{display:block;font-size:.74rem;font-weight:600;color:var(--gce-ink-2);
  margin-bottom:.3rem;font-family:var(--gce-mono);letter-spacing:.02em}
.imso-gce .imso-lf label .req{color:var(--gce-crit)}
.imso-gce .imso-lf input,.imso-gce .imso-lf textarea,.imso-gce .imso-lf select{width:100%;border:1px solid var(--gce-line);
  border-radius:7px;padding:.6rem .7rem;font-family:var(--gce-sans);font-size:.9rem;background:var(--gce-panel);color:var(--gce-ink)}
.imso-gce .imso-lf input:focus,.imso-gce .imso-lf textarea:focus{border-color:var(--gce-amber);background:var(--gce-paper)}
.imso-gce .imso-lf input[aria-invalid="true"]{border-color:var(--gce-crit)}
.imso-gce .imso-lf__err{color:var(--gce-crit);font-size:.76rem;margin:.2rem 0 0}
.imso-gce .imso-lf__hidden{font-family:var(--gce-mono);font-size:.66rem;color:var(--gce-faint);
  margin-top:.8rem;border-top:1px dashed var(--gce-line);padding-top:.7rem}

/* ---------- REFERENCES (.imso-refs) ---------- */
.imso-gce .imso-refs{list-style:none;padding:0;margin:0;max-width:70ch;counter-reset:r}
.imso-gce .imso-refs li{counter-increment:r;padding:.5rem 0 .5rem 2rem;border-bottom:1px solid var(--gce-line-2);
  position:relative;font-size:.84rem;color:var(--gce-ink-2)}
.imso-gce .imso-refs li::before{content:"["counter(r)"]";position:absolute;left:0;font-family:var(--gce-mono);font-size:.72rem;color:var(--gce-amber-deep)}
.imso-gce .imso-refs__src{color:var(--gce-muted)}

/* ---------- GLOSSARY TERM (.imso-gt) ---------- */
.imso-gce .imso-gt{border-bottom:1.5px dotted var(--gce-amber-deep);cursor:help;position:relative;font-weight:600}
.imso-gce .imso-gt__tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:240px;
  background:var(--gce-navy);color:#eaf1fb;font-size:.78rem;font-weight:400;line-height:1.5;padding:.7rem .8rem;
  border-radius:8px;box-shadow:var(--gce-sh-2);opacity:0;visibility:hidden;transition:opacity var(--gce-t);z-index:20;font-family:var(--gce-sans)}
.imso-gce .imso-gt__tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--gce-navy)}
.imso-gce .imso-gt:hover .imso-gt__tip,.imso-gce .imso-gt:focus .imso-gt__tip,.imso-gce .imso-gt:focus-within .imso-gt__tip{opacity:1;visibility:visible}

/* ---------- HOLDER / TOOLS (fase 2) ---------- */
.imso-gce .imso-holder{border:2px dashed var(--gce-line);border-radius:var(--gce-r-2);padding:1.5rem;
  background:repeating-linear-gradient(45deg,transparent,transparent 10px,color-mix(in srgb,var(--gce-grid) 24%,transparent) 10px,color-mix(in srgb,var(--gce-grid) 24%,transparent) 11px)}

/* ============================================================
   ESTADOS: vacío / cargando / error  (.imso-state)
   ============================================================ */
.imso-gce .imso-state{border:1px dashed var(--gce-line);border-radius:var(--gce-r-2);background:var(--gce-panel);
  padding:1.3rem 1.4rem;text-align:center;color:var(--gce-muted)}
.imso-gce .imso-state__ic{font-size:1.4rem;margin-bottom:.4rem}
.imso-gce .imso-state__title{font-size:.95rem;font-weight:600;color:var(--gce-ink-2);margin-bottom:.2rem}
.imso-gce .imso-state__msg{font-size:.84rem;margin:0}
.imso-gce .imso-state--error{border-color:color-mix(in srgb,var(--gce-crit) 40%,var(--gce-line));background:color-mix(in srgb,var(--gce-crit) 8%,var(--gce-panel))}
.imso-gce .imso-state--error .imso-state__title{color:var(--gce-crit)}
/* skeleton loading */
.imso-gce .imso-skel{border-radius:var(--gce-r-1);background:linear-gradient(90deg,var(--gce-sunken) 25%,var(--gce-line-2) 37%,var(--gce-sunken) 63%);
  background-size:400% 100%;animation:gce-shimmer 1.4s ease infinite;height:1rem;margin:.4rem 0}
.imso-gce .imso-skel--title{height:1.4rem;width:60%}
.imso-gce .imso-skel--line{width:100%}
.imso-gce .imso-skel--card{height:120px}
@keyframes gce-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion: reduce){.imso-gce .imso-skel{animation:none}}

/* ============================================================
   RESPONSIVE — mobile-first: colapsos en breakpoints
   ============================================================ */
@media (max-width:860px){
  .imso-gce .imso-meth{grid-template-columns:1fr 1fr}
  .imso-gce .imso-meth__st::after{display:none}
}
@media (max-width:640px){
  .imso-gce .imso-case{grid-template-columns:1fr}
  .imso-gce .imso-lf__row{grid-template-columns:1fr}
  .imso-gce .imso-cta{flex-direction:column;align-items:flex-start}
  .imso-gce .imso-meth{grid-template-columns:1fr}
}

/* ============================================================
   FASE 3 · Templates — estructura de página (single-gce.php)
   .imso-gce va en <main> (banda a todo el ancho); .gce-container centra.
   ============================================================ */
.imso-gce.gce-main{background:var(--gce-bg);width:100%}
.imso-gce .gce-container{max-width:1080px;margin:0 auto;padding:clamp(24px,4vw,48px) clamp(16px,4vw,32px) 72px}
.imso-gce .gce-single{display:flex;flex-direction:column;gap:var(--gce-sp-7)}   /* ritmo vertical entre secciones */
.imso-gce .gce-sec{display:flex;flex-direction:column;gap:var(--gce-sp-4);margin:0}
.imso-gce .gce-sec__h{font-size:var(--gce-fs-lg);line-height:1.2;margin:0;font-weight:700;letter-spacing:-.01em;
  display:flex;align-items:center;gap:.55rem}
.imso-gce .gce-sec__h::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--gce-amber);flex:0 0 auto} /* marcador de sección */
.imso-gce .gce-case-det{margin-top:10px;font-size:.9rem;color:var(--gce-muted)}
.imso-gce .gce-case-det p{margin:.25rem 0}
.imso-gce .gce-mut{color:var(--gce-muted)}

/* ---- Hero: onda más sutil + H1 protegido y mayor en desktop ---- */
.imso-gce .imso-hero{padding:clamp(1.6rem,3vw,2.6rem)}
.imso-gce .imso-hero__wave{opacity:.22}
.imso-gce .imso-hero__title{z-index:2;font-size:clamp(1.7rem,3.8vw,2.7rem);max-width:20ch}
.imso-gce .imso-hero__lede{font-size:var(--gce-fs-md);max-width:60ch}

/* ---- DirectAnswer: ancho de columna (ya no estrecho) + texto legible ---- */
.imso-gce .imso-da{max-width:none;border-left-width:5px;padding:1.3rem 1.5rem}
.imso-gce .imso-da__q{font-size:var(--gce-fs-lg)}
.imso-gce .imso-da__a{max-width:74ch;font-size:var(--gce-fs-md);color:var(--gce-ink-2)}

/* ---- Cards: iconografía semántica por tipo (color + etiqueta + forma) ---- */
.imso-gce .imso-card__kind::before{content:"◆";width:auto;height:auto;background:none;border-radius:0;font-size:.72rem;line-height:1}
.imso-gce .imso-card--problema   .imso-card__kind::before{content:"▲"}
.imso-gce .imso-card--concepto   .imso-card__kind{color:var(--gce-ct-concepto)}
.imso-gce .imso-card--concepto   .imso-card__kind::before{content:"◍"}
.imso-gce .imso-card--solucion   .imso-card__kind::before{content:"◆"}
.imso-gce .imso-card--tecnologia .imso-card__kind::before{content:"⬢"}
.imso-gce .imso-card--servicio   .imso-card__kind::before{content:"◉"}
.imso-gce .imso-card--recurso    .imso-card__kind::before{content:"▤"}
.imso-gce .imso-card--caso       .imso-card__kind::before{content:"◈"}
.imso-gce .imso-card--comparativa .imso-card__kind{color:var(--gce-ct-comparativa)}
.imso-gce .imso-card--comparativa .imso-card__kind::before{content:"⧉"}

/* ---- PILARES: presentación específica (numerada, etiqueta PILAR) ---- */
.imso-gce .imso-pillars{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;
  grid-template-columns:repeat(auto-fit,minmax(158px,1fr))}
.imso-gce .imso-pillar{position:relative;border:1px solid var(--gce-line);border-top:3px solid var(--gce-amber);
  border-radius:var(--gce-r-2);background:var(--gce-paper);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.25rem;box-shadow:var(--gce-sh-1)}
.imso-gce .imso-pillar__n{font-family:var(--gce-mono);font-size:.9rem;font-weight:600;color:var(--gce-amber-deep)}
.imso-gce .imso-pillar__lbl{font-family:var(--gce-mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gce-faint)}
.imso-gce .imso-pillar__name{font-size:.98rem;font-weight:700;letter-spacing:-.01em;line-height:1.2}
.imso-gce .imso-pillar__desc{font-size:.8rem;color:var(--gce-muted)}

/* ---- Cuerpo editorial (post_content vía the_content) ---- */
.imso-gce .gce-prose{max-width:var(--gce-readw);color:var(--gce-ink-2);font-size:var(--gce-fs-md);line-height:1.7}
.imso-gce .gce-prose>*+*{margin-top:1em}
.imso-gce .gce-prose h2{font-size:var(--gce-fs-lg);color:var(--gce-ink);margin-top:1.4em}
.imso-gce .gce-prose h3{font-size:1.06rem;color:var(--gce-ink);margin-top:1.2em}
.imso-gce .gce-prose ul,.imso-gce .gce-prose ol{padding-left:1.3em}
.imso-gce .gce-prose li{margin:.3em 0}
.imso-gce .gce-prose a{color:var(--gce-amber-deep);text-decoration:underline}
.imso-gce .gce-prose blockquote{border-left:3px solid var(--gce-line);padding-left:1rem;color:var(--gce-muted);margin-left:0}
.imso-gce .gce-prose img{border-radius:var(--gce-r-2)}
.imso-gce .gce-prose code{background:var(--gce-panel);padding:.1rem .4rem;border-radius:var(--gce-r-1);font-size:.9em}

/* ---- responsive extra ---- */
@media (max-width:520px){
  .imso-gce .imso-pillars{grid-template-columns:1fr 1fr}
  .imso-gce .imso-hero__title{font-size:1.55rem;max-width:none}
  .imso-gce .imso-da{padding:1.1rem 1.15rem}
}
