/* ============================================================
   GreenData — Sitio corporativo
   site.css  ·  builds on colors_and_type.css tokens
   "GreenData no convence. Demuestra."
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--gd-graphite);
  background: var(--gd-white);
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
::selection { background: rgba(0,181,184,0.22); }

/* ---------- layout primitives ---------- */
.wrap { max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.section { padding: 112px 0; position: relative; }
.section--tight { padding: 84px 0; }
.dark { background: var(--gd-deep); color: var(--fg-on-dark); }
.dark .gd-h1, .dark .gd-h2, .dark .gd-h3, .dark .gd-h4 { color: #fff; }
.dark .display, .dark .h1, .dark .h2, .dark .h3, .dark .h4,
.black .display, .black .h1, .black .h2, .black .h3, .black .h4 { color: #fff; }
.black { background: var(--gd-obsidian); color: var(--fg-on-dark); }
.paper { background: var(--gd-paper); }

/* ---------- type helpers ---------- */
.eyebrow {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: var(--fs-eyebrow);
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gd-teal);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow::before {
  content: "";
  width: 22px; height: 1px;
  background: var(--gd-teal);
  display: inline-block;
}
.eyebrow--plain::before { display: none; }
.label {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: var(--fs-label);
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gd-steel);
}
.mono { font-family: var(--font-mono); }
.lead {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: var(--fs-lead);
  line-height: 1.5;
  color: var(--gd-deep);
}
.dark .lead { color: rgba(255,255,255,0.82); }
.serif-it { font-family: var(--font-serif); font-style: italic; }

h1, h2, h3, h4 { margin: 0; font-family: var(--font-sans); font-weight: 600; color: var(--gd-deep); }
.display {
  font-size: clamp(44px, 6vw, 84px);
  line-height: 0.99;
  letter-spacing: -2.4px;
  font-weight: 600;
}
.h1 { font-size: clamp(32px, 3.6vw, 46px); line-height: 1.06; letter-spacing: -1.2px; }
.h2 { font-size: clamp(26px, 2.4vw, 32px); line-height: 1.1; letter-spacing: -0.7px; }
.h3 { font-size: 20px; line-height: 1.25; letter-spacing: -0.3px; }
p { margin: 0; }

/* ---------- buttons ---------- */
.btn {
  font-family: var(--font-sans);
  font-size: 14px; font-weight: 500;
  letter-spacing: -0.1px;
  border-radius: var(--radius-xs);
  padding: 14px 22px;
  border: 1px solid transparent;
  transition: background var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out);
  display: inline-flex; align-items: center; gap: 10px;
  white-space: nowrap;
}
.btn svg { width: 16px; height: 16px; stroke-width: 1.6; }
.btn--accent { background: var(--gd-teal); color: #fff; }
.btn--accent:hover { background: #009ea1; }
.btn--primary { background: var(--gd-deep); color: #fff; }
.btn--primary:hover { background: #0d2e52; }
.btn--ghost { background: transparent; color: var(--gd-deep); border-color: var(--border-strong); }
.btn--ghost:hover { border-color: var(--gd-deep); }
.btn--on-dark { background: transparent; color: #fff; border-color: rgba(255,255,255,0.28); }
.btn--on-dark:hover { border-color: #fff; background: rgba(255,255,255,0.06); }
.btn--lg { padding: 17px 28px; font-size: 15px; }

/* mono text link with arrow */
.tlink {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--gd-teal); display: inline-flex; align-items: center; gap: 8px;
  transition: gap var(--dur-fast) var(--ease-out);
}
.tlink .arr { transition: transform var(--dur-fast) var(--ease-out); }
.tlink:hover { gap: 12px; }

/* ============================================================
   HEADER
   ============================================================ */
.header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  transition: background var(--dur-base) var(--ease-out),
              border-color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out);
  border-bottom: 1px solid transparent;
}
.header__inner {
  max-width: 1280px; margin: 0 auto; padding: 0 40px;
  height: 72px; display: flex; align-items: center; gap: 28px;
}
.header__logo { height: 30px; width: auto; }
.header__logo--light { display: block; }
.header__logo--dark  { display: none; }
.nav { display: flex; align-items: center; gap: 26px; margin-left: 14px; }
.nav a {
  font-size: 14px; font-weight: 450; color: rgba(255,255,255,0.78);
  letter-spacing: -0.1px; transition: color var(--dur-fast) var(--ease-out);
  position: relative; padding: 6px 0;
}
.nav a:hover { color: #fff; }
.nav a.active { color: #fff; }
.header__right { margin-left: auto; display: flex; align-items: center; gap: 16px; }

/* language toggle */
.lang {
  display: inline-flex; font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 1px; border: 1px solid rgba(255,255,255,0.24);
  border-radius: var(--radius-xs); overflow: hidden;
}
.lang button {
  background: transparent; border: 0; color: rgba(255,255,255,0.6);
  padding: 6px 10px; transition: all var(--dur-fast) var(--ease-out);
}
.lang button.on { background: var(--gd-teal); color: #fff; }

/* scrolled state — solid white */
.header.scrolled {
  background: rgba(255,255,255,0.94);
  backdrop-filter: saturate(140%) blur(12px);
  border-bottom-color: var(--gd-mist);
}
.header.scrolled .header__logo--light { display: none; }
.header.scrolled .header__logo--dark  { display: block; }
.header.scrolled .nav a { color: var(--gd-graphite); }
.header.scrolled .nav a:hover, .header.scrolled .nav a.active { color: var(--gd-deep); }
.header.scrolled .lang { border-color: var(--gd-mist); }
.header.scrolled .lang button { color: var(--gd-steel); }
.header.scrolled .lang button.on { background: var(--gd-teal); color: #fff; }

.menu-toggle { display: none; background: transparent; border: 0; padding: 6px; }
.menu-toggle svg { stroke: #fff; width: 26px; height: 26px; }
.header.scrolled .menu-toggle svg { stroke: var(--gd-deep); }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  background: var(--gd-deep);
  color: #fff; position: relative; overflow: hidden;
  padding: 168px 0 96px;
}
/* faint structural grid in the hero — evidence, not decoration */
.hero__grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 90% 80% at 70% 30%, #000 30%, transparent 78%);
  pointer-events: none;
}
.hero__inner {
  position: relative; display: grid;
  grid-template-columns: 1.15fr 0.85fr; gap: 64px; align-items: center;
}
.hero__copy { max-width: 640px; }
.hero h1 { color: #fff; margin: 22px 0 0; }
.hero h1 .accent { color: var(--gd-teal); }
.hero__sub {
  margin-top: 26px; max-width: 520px;
  font-family: var(--font-serif); font-size: 20px; line-height: 1.5;
  color: rgba(255,255,255,0.78);
}
.hero__cta { margin-top: 38px; display: flex; gap: 14px; flex-wrap: wrap; }
.hero__stats {
  margin-top: 52px; display: flex; gap: 40px;
  border-top: 1px solid rgba(255,255,255,0.12); padding-top: 26px;
}
.hero__stat .n { font-family: var(--font-mono); font-size: 26px; font-weight: 600; color: #fff; letter-spacing: -0.5px; }
.hero__stat .n .u { font-size: 14px; color: var(--gd-teal); margin-left: 2px; }
.hero__stat .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-top: 6px; }

/* hero diagnostic readout card */
.readout {
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  padding: 0; overflow: hidden;
  box-shadow: var(--shadow-xl);
  position: relative;
}
.readout__bar { height: 3px; background: var(--grad-bar); }
.readout__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px; border-bottom: 1px solid rgba(255,255,255,0.1);
}
.readout__head .t { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.readout__live { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 9px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-signal-green); }
.readout__live .dot { width: 7px; height: 7px; border-radius: 999px; background: var(--gd-signal-green); box-shadow: 0 0 0 0 rgba(0,214,125,0.5); animation: pulse 2.4s var(--ease-out) infinite; }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(0,214,125,0.5)} 70%{box-shadow:0 0 0 7px rgba(0,214,125,0)} 100%{box-shadow:0 0 0 0 rgba(0,214,125,0)} }
.readout__kpis { display: grid; grid-template-columns: 1fr 1fr; }
.readout__kpi { padding: 18px 20px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.readout__kpi:nth-child(odd) { border-right: 1px solid rgba(255,255,255,0.08); }
.readout__kpi .k { font-family: var(--font-mono); font-size: 9px; letter-spacing: 1.4px; text-transform: uppercase; color: rgba(255,255,255,0.5); }
.readout__kpi .v { font-family: var(--font-mono); font-size: 23px; font-weight: 600; color: #fff; margin-top: 8px; letter-spacing: -0.5px; }
.readout__kpi .v .u { font-size: 12px; color: rgba(255,255,255,0.55); }
.readout__kpi .d { font-family: var(--font-mono); font-size: 10px; margin-top: 4px; }
.d.up { color: var(--gd-signal-green); }
.d.down { color: var(--gd-signal-red); }
.d.warn { color: var(--gd-signal-amber); }
.readout__chart { padding: 16px 20px 20px; }
.readout__chart .clabel { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 9px; letter-spacing: 1.3px; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 12px; }

/* ============================================================
   SECTION HEADER
   ============================================================ */
.shead { max-width: 760px; }
.shead.center { margin: 0 auto; text-align: center; }
.shead.center .eyebrow::before { display: none; }
.shead .eyebrow { margin-bottom: 18px; }
.shead .lead { margin-top: 22px; }
.shead p.body { margin-top: 20px; color: var(--gd-graphite); font-size: 17px; }
.dark .shead p.body { color: rgba(255,255,255,0.72); }

/* ============================================================
   EL PROBLEMA — flow pipeline
   ============================================================ */
.flow {
  margin-top: 64px;
  display: flex; align-items: stretch; gap: 0;
  border: 1px solid var(--gd-mist); border-radius: var(--radius-md);
  background: #fff; overflow: hidden;
}
.flow__node {
  flex: 1; padding: 30px 22px; position: relative;
  display: flex; flex-direction: column; gap: 12px; min-width: 0;
}
.flow__node:not(:last-child)::after {
  content: ""; position: absolute; right: -1px; top: 0; bottom: 0; width: 1px; background: var(--gd-mist);
}
.flow__num { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.5px; color: var(--gd-steel); }
.flow__ico { color: var(--gd-steel); }
.flow__ico svg { width: 24px; height: 24px; stroke-width: 1.5; }
.flow__name { font-family: var(--font-sans); font-weight: 600; font-size: 15px; color: var(--gd-deep); letter-spacing: -0.2px; }
.flow__desc { font-size: 12.5px; color: var(--gd-steel); line-height: 1.45; }
.flow__node.is-gd { background: var(--gd-deep); }
.flow__node.is-gd .flow__num { color: var(--gd-teal); }
.flow__node.is-gd .flow__name { color: #fff; }
.flow__node.is-gd .flow__desc { color: rgba(255,255,255,0.62); }
.flow__node.is-gd .flow__ico { color: var(--gd-teal); }
.flow__node.is-gd::after { background: var(--gd-deep); }
.flow__node.is-out .flow__name { color: var(--gd-signal-green); }
.flow__node.is-out .flow__ico { color: var(--gd-signal-green); }

/* ============================================================
   PROPUESTA DE VALOR — converging stages
   ============================================================ */
.stages { margin-top: 60px; }
.stages__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.stage {
  background: #fff; border: 1px solid var(--gd-mist); border-radius: var(--radius-sm);
  border-top: 2px solid var(--gd-teal);
  padding: 32px 28px; position: relative;
  transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.stage:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.stage__num { font-family: var(--font-mono); font-size: 11px; letter-spacing: 2px; color: var(--gd-teal); }
.stage__title { font-size: 22px; font-weight: 600; color: var(--gd-deep); margin: 16px 0 12px; letter-spacing: -0.4px; }
.stage__desc { font-size: 15px; color: var(--gd-graphite); line-height: 1.55; }
.converge { display: flex; flex-direction: column; align-items: center; margin-top: 8px; }
.converge__lines { height: 56px; width: 70%; position: relative; }
.converge__lines svg { width: 100%; height: 100%; overflow: visible; }
.converge__target {
  display: inline-flex; align-items: center; gap: 14px;
  background: var(--gd-deep); color: #fff; border-radius: var(--radius-sm);
  padding: 18px 28px; box-shadow: var(--shadow-md); position: relative;
}
.converge__target .iso { height: 30px; width: auto; }
.converge__target .t { font-family: var(--font-sans); font-weight: 600; font-size: 18px; letter-spacing: -0.3px; }
.converge__target .t b { color: var(--gd-teal); font-weight: 600; }

/* ============================================================
   ENERGY PARTNER (dark commercial)
   ============================================================ */
.ep__grid { display: grid; grid-template-columns: 1fr 0.92fr; gap: 72px; align-items: center; }
.ep h2 { color: #fff; margin: 18px 0 0; }
.ep h2 b { color: var(--gd-teal); font-weight: 600; }
.ep__sub { margin-top: 20px; font-family: var(--font-serif); font-size: 21px; color: rgba(255,255,255,0.85); }
.ep__desc { margin-top: 18px; color: rgba(255,255,255,0.66); font-size: 16px; max-width: 480px; }
.ep__benefits { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
.chip {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.6px;
  color: rgba(255,255,255,0.85); border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--radius-full); padding: 8px 15px; display: inline-flex; align-items: center; gap: 8px;
}
.chip .dot { width: 5px; height: 5px; border-radius: 999px; background: var(--gd-teal); }
.ep__cta { margin-top: 34px; }
/* EP panel: included items list */
.ep__panel {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md); overflow: hidden;
}
.ep__panel-head { padding: 16px 22px; border-bottom: 1px solid rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: space-between; }
.ep__panel-head .t { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.ep__list { display: grid; grid-template-columns: 1fr 1fr; }
.ep__item { padding: 14px 22px; display: flex; align-items: center; gap: 11px; border-bottom: 1px solid rgba(255,255,255,0.07); font-size: 13.5px; color: rgba(255,255,255,0.85); }
.ep__item:nth-child(odd) { border-right: 1px solid rgba(255,255,255,0.07); }
.ep__item svg { width: 17px; height: 17px; stroke: var(--gd-teal); stroke-width: 1.6; flex-shrink: 0; }

/* ============================================================
   CAPACIDADES — cards w/ teal left border
   ============================================================ */
.caps { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cap {
  background: #fff; border: 1px solid var(--gd-mist); border-left: 2px solid var(--gd-teal);
  border-radius: var(--radius-xs); padding: 28px 26px; display: flex; flex-direction: column;
  min-height: 220px; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.cap:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.cap__ico { color: var(--gd-deep); margin-bottom: 20px; }
.cap__ico svg { width: 28px; height: 28px; stroke-width: 1.5; }
.cap__num { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.5px; color: var(--gd-steel); margin-bottom: 8px; }
.cap__title { font-size: 18px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; }
.cap__desc { font-size: 14px; color: var(--gd-graphite); line-height: 1.5; margin-top: 10px; flex: 1; }
.cap__link { margin-top: 18px; }

/* ============================================================
   SECTORES
   ============================================================ */
.sectors { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sector {
  position: relative; border: 1px solid var(--gd-mist); border-radius: var(--radius-sm);
  padding: 26px 24px; background: #fff; overflow: hidden;
  transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
  display: flex; flex-direction: column; min-height: 168px;
}
.sector:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.sector::before { content: ""; position: absolute; left: 0; top: 0; height: 100%; width: 2px; background: var(--gd-teal); transform: scaleY(0); transform-origin: top; transition: transform var(--dur-base) var(--ease-out); }
.sector:hover::before { transform: scaleY(1); }
.sector__idx { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.5px; color: var(--gd-steel); }
.sector__ico { color: var(--gd-deep); margin: 14px 0 18px; }
.sector__ico svg { width: 26px; height: 26px; stroke-width: 1.5; }
.sector__name { font-size: 19px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; margin-top: auto; }
.sector__stat { font-family: var(--font-mono); font-size: 11.5px; color: var(--gd-steel); margin-top: 8px; }
.sector__stat b { color: var(--gd-teal); font-weight: 600; }

/* ============================================================
   MÉTODO — stepped timeline
   ============================================================ */
.method { margin-top: 60px; }
.method__track { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; position: relative; }
.method__line { position: absolute; top: 13px; left: 7%; right: 7%; height: 2px; background: linear-gradient(90deg, var(--gd-teal), rgba(0,181,184,0.25)); }
.mstep { position: relative; text-align: center; padding: 0 8px; }
.mstep__node { width: 28px; height: 28px; border-radius: 999px; background: #fff; border: 2px solid var(--gd-teal); margin: 0 auto; display: grid; place-items: center; position: relative; z-index: 2; }
.mstep__node .i { width: 8px; height: 8px; border-radius: 999px; background: var(--gd-teal); }
.dark .mstep__node { background: var(--gd-deep); }
.mstep__n { font-family: var(--font-mono); font-size: 9px; letter-spacing: 1.2px; color: var(--gd-steel); margin-top: 16px; }
.mstep__name { font-size: 14px; font-weight: 600; color: var(--gd-deep); margin-top: 6px; letter-spacing: -0.2px; }
.dark .mstep__name { color: #fff; }
.method__frames { margin-top: 56px; border-top: 1px solid var(--gd-mist); padding-top: 30px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.dark .method__frames { border-top-color: rgba(255,255,255,0.12); }
.method__frames .lbl { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--gd-steel); }
.fchip { font-family: var(--font-mono); font-size: 12px; color: var(--gd-deep); border: 1px solid var(--gd-mist); border-radius: var(--radius-xs); padding: 8px 14px; background: #fff; }
.dark .fchip { color: #fff; border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.04); }

/* ============================================================
   CASOS DE ÉXITO
   ============================================================ */
.cases { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.case {
  background: #fff; border: 1px solid var(--gd-mist); border-radius: var(--radius-sm);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.case:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.case__top { padding: 24px 26px 0; }
.case__tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-teal); }
.case__title { font-size: 19px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; margin: 14px 0 0; line-height: 1.22; }
.case__rows { padding: 20px 26px 0; display: flex; flex-direction: column; gap: 11px; }
.case__row { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: baseline; }
.case__row .k { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-steel); padding-top: 2px; }
.case__row .v { font-size: 13.5px; color: var(--gd-graphite); line-height: 1.45; }
.case__result {
  margin-top: 22px; background: var(--gd-paper); border-top: 1px solid var(--gd-mist);
  padding: 20px 26px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
}
.case__result .big { font-family: var(--font-mono); font-size: 26px; font-weight: 600; color: var(--gd-signal-green); letter-spacing: -0.5px; }
.case__result .k { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-steel); text-align: right; }
.case__result .pay { font-family: var(--font-mono); font-size: 13px; color: var(--gd-deep); }

/* ============================================================
   INSIGHTS
   ============================================================ */
.posts { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.post {
  border-top: 2px solid var(--gd-deep); padding-top: 22px; display: flex; flex-direction: column;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.post:hover { border-top-color: var(--gd-teal); }
.post__cat { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-teal); }
.post__title { font-size: 21px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.4px; line-height: 1.2; margin: 14px 0 14px; }
.post:hover .post__title { color: var(--gd-deep); }
.post__excerpt { font-size: 14.5px; color: var(--gd-graphite); line-height: 1.55; flex: 1; }
.post__meta { margin-top: 20px; display: flex; gap: 14px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.4px; color: var(--gd-steel); flex-wrap: wrap; }
.post__meta .sep { color: var(--gd-mist); }
.post__top { display: flex; align-items: center; gap: 12px; justify-content: space-between; }
.post__ext { font-family: var(--font-mono); font-size: 9px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-steel); border: 1px solid var(--gd-mist); border-radius: var(--radius-full); padding: 3px 9px; white-space: nowrap; }
.post__ext::after { content: " \2197"; }

/* knowledge hub — section sub-heads */
.khub-head { margin-top: 56px; display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--gd-mist); flex-wrap: wrap; }
.khub-head__t { font-size: 17px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; }
.khub-head__sub { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--gd-steel); }
.khub-head__link { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gd-deep); display: inline-flex; align-items: center; gap: 8px; transition: color var(--dur-fast) var(--ease-out); }
.khub-head__link .arr { transition: transform var(--dur-fast) var(--ease-out); }
.khub-head__link:hover { color: var(--gd-teal); }
.khub-head__link:hover .arr { transform: translateX(3px); }
.khub-head + .posts { margin-top: 28px; }

/* knowledge hub — resource library */
.reslib { margin-top: 28px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.res { background: #fff; border: 1px solid var(--gd-mist); border-left: 2px solid var(--gd-mist); border-radius: var(--radius-sm); padding: 24px 22px 20px; display: flex; flex-direction: column; min-height: 240px; transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.res:hover { border-color: var(--gd-mist); border-left-color: var(--gd-teal); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.res__ico { width: 40px; height: 40px; border-radius: var(--radius-xs); border: 1px solid var(--gd-mist); display: grid; place-items: center; margin-bottom: 18px; }
.res__ico svg { width: 20px; height: 20px; stroke: var(--gd-deep); stroke-width: 1.5; }
.res:hover .res__ico { border-color: var(--gd-teal); }
.res:hover .res__ico svg { stroke: var(--gd-teal); }
.res__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-teal); }
.res__t { font-size: 16px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; line-height: 1.25; margin: 8px 0 8px; }
.res__d { font-size: 13px; color: var(--gd-graphite); line-height: 1.5; flex: 1; }
.res__go { margin-top: 18px; display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.8px; text-transform: uppercase; color: var(--gd-steel); transition: color var(--dur-fast) var(--ease-out); }
.res__go .arr { transition: transform var(--dur-fast) var(--ease-out); }
.res:hover .res__go { color: var(--gd-deep); }
.res:hover .res__go .arr { transform: translateX(3px); }
@media (max-width: 980px) { .reslib { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .reslib { grid-template-columns: 1fr; } .res { min-height: 0; } }

/* ============================================================
   CTA FINAL
   ============================================================ */
.cta-final { text-align: center; }
.cta-final .display { color: #fff; max-width: 980px; margin: 22px auto 0; }
.cta-final .display .accent { color: var(--gd-teal); }
.cta-final .lead { margin: 26px auto 0; max-width: 600px; color: rgba(255,255,255,0.7); }
.cta-final__btns { margin-top: 38px; display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background: var(--gd-obsidian); color: rgba(255,255,255,0.7); padding: 80px 0 36px; }
.footer__top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; }
.footer__brand img { height: 30px; margin-bottom: 22px; }
.footer__brand .pr { font-family: var(--font-serif); font-style: italic; font-size: 16px; color: rgba(255,255,255,0.62); max-width: 280px; line-height: 1.5; }
.footer__col h4 { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 18px; font-weight: 500; }
.footer__col a { display: block; font-size: 14px; color: rgba(255,255,255,0.72); padding: 6px 0; transition: color var(--dur-fast) var(--ease-out); }
.footer__col a:hover { color: var(--gd-teal); }
.footer__bottom { margin-top: 60px; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 26px; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.footer__bottom .legal { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.4px; color: rgba(255,255,255,0.4); }
.footer__social { display: flex; gap: 12px; }
.footer__social a { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,0.16); border-radius: var(--radius-xs); display: grid; place-items: center; transition: all var(--dur-fast) var(--ease-out); }
.footer__social a:hover { border-color: var(--gd-teal); background: rgba(0,181,184,0.1); }
.footer__social svg { width: 18px; height: 18px; stroke: rgba(255,255,255,0.7); stroke-width: 1.6; }
.footer__social a:hover svg { stroke: var(--gd-teal); }

/* ============================================================
   REVEAL ANIMATION
   Content is visible by default (robust); JS adds .gd-anim to <html>
   only after a paint frame, enabling a safe entrance that can never
   leave content hidden.
   ============================================================ */
.reveal { opacity: 1; transform: none; }
[data-stagger] > * { opacity: 1; transform: none; }

.gd-anim .reveal {
  opacity: 0; transform: translateY(20px);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
}
.gd-anim .reveal.in { opacity: 1; transform: none; }
.gd-anim [data-stagger] > * {
  opacity: 0; transform: translateY(18px);
  transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out);
}
.gd-anim [data-stagger].in > * { opacity: 1; transform: none; }

/* ============================================================
   MOBILE NAV PANEL
   ============================================================ */
.mnav { position: fixed; inset: 0; z-index: 200; background: var(--gd-deep); transform: translateX(100%); transition: transform var(--dur-base) var(--ease-out); display: flex; flex-direction: column; padding: 28px 32px; }
.mnav.open { transform: none; }
.mnav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.mnav__head img { height: 28px; }
.mnav__close { background: transparent; border: 0; }
.mnav__close svg { stroke: #fff; width: 28px; height: 28px; }
.mnav a { font-size: 24px; font-weight: 600; color: #fff; letter-spacing: -0.5px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }
.mnav .btn { margin-top: 26px; justify-content: center; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1080px) {
  .nav { display: none; }
  .menu-toggle { display: block; }
  .hero__inner { grid-template-columns: 1fr; gap: 48px; }
  .ep__grid { grid-template-columns: 1fr; gap: 44px; }
  .caps, .sectors, .cases, .posts, .stages__row { grid-template-columns: repeat(2, 1fr); }
  .method__track { grid-template-columns: repeat(4, 1fr); row-gap: 34px; }
  .method__line { display: none; }
}
@media (max-width: 720px) {
  .wrap { padding: 0 22px; }
  .header__inner { padding: 0 22px; height: 64px; }
  .section { padding: 76px 0; }
  .hero { padding: 130px 0 72px; }
  .hero__stats { flex-wrap: wrap; gap: 28px; }
  .flow { flex-direction: column; }
  .flow__node:not(:last-child)::after { right: 0; left: 0; top: auto; bottom: -1px; width: auto; height: 1px; }
  .caps, .sectors, .cases, .posts, .stages__row { grid-template-columns: 1fr; }
  .method__track { grid-template-columns: repeat(2, 1fr); }
  .readout__kpis { grid-template-columns: 1fr 1fr; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .footer__brand { grid-column: 1 / -1; }
  .ep__list, .converge__lines { }
  .converge__lines { width: 100%; }
}
@media (max-width: 460px) {
  .ep__list { grid-template-columns: 1fr; }
  .ep__item:nth-child(odd) { border-right: 0; }
  .readout__kpi:nth-child(odd) { border-right: 0; }
  .readout__kpis { grid-template-columns: 1fr; }
}

/* ============================================================
   ENERGY PARTNER PAGE
   ============================================================ */
/* subpage hero sizing reuse .hero; team panel */
.team {
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-md);
  overflow: hidden; box-shadow: var(--shadow-xl);
}
.team__bar { height: 3px; background: var(--grad-bar); }
.team__head { padding: 16px 20px; border-bottom: 1px solid rgba(255,255,255,0.1); display: flex; justify-content: space-between; align-items: center; }
.team__head .t { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.team__head .c { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; color: var(--gd-teal); }
.team__row { padding: 15px 20px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid rgba(255,255,255,0.07); }
.team__row:last-child { border-bottom: 0; }
.team__ico { width: 40px; height: 40px; border-radius: var(--radius-sm); background: rgba(0,181,184,0.12); display: grid; place-items: center; flex-shrink: 0; }
.team__ico svg { width: 21px; height: 21px; stroke: var(--gd-teal); stroke-width: 1.6; }
.team__meta { display: flex; flex-direction: column; min-width: 0; }
.team__meta .role { display: block; font-weight: 600; color: #fff; font-size: 14.5px; letter-spacing: -0.2px; }
.team__meta .desc { display: block; font-size: 12.5px; color: rgba(255,255,255,0.62); margin-top: 2px; }

/* model cycle */
.cycle { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cyc { background: #fff; border: 1px solid var(--gd-mist); border-radius: var(--radius-sm); border-top: 2px solid var(--gd-teal); padding: 30px 28px; position: relative; }
.cyc__n { font-family: var(--font-mono); font-size: 11px; letter-spacing: 2px; color: var(--gd-teal); display: flex; align-items: center; gap: 10px; }
.cyc__n svg { width: 22px; height: 22px; stroke: var(--gd-deep); stroke-width: 1.5; }
.cyc__t { font-size: 21px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.4px; margin: 16px 0 10px; }
.cyc__d { font-size: 15px; color: var(--gd-graphite); line-height: 1.55; }
.cycle__loop { margin-top: 26px; display: flex; justify-content: center; }
.cycle__loop .pill { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-deep); border: 1px solid var(--border-strong); border-radius: var(--radius-full); padding: 10px 20px; }
.cycle__loop .pill svg { width: 16px; height: 16px; stroke: var(--gd-teal); stroke-width: 1.8; }

/* qué incluye grid */
.inc-grid { margin-top: 56px; display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--gd-mist); border-radius: var(--radius-md); overflow: hidden; background: #fff; }
.inc { padding: 26px 28px; display: flex; gap: 18px; border-bottom: 1px solid var(--gd-mist); transition: background var(--dur-fast) var(--ease-out); }
.inc:nth-child(odd) { border-right: 1px solid var(--gd-mist); }
.inc:nth-last-child(-n+2) { border-bottom: 0; }
.inc:hover { background: var(--gd-paper); }
.inc__ico { width: 42px; height: 42px; border-radius: var(--radius-sm); background: rgba(10,37,64,0.05); display: grid; place-items: center; flex-shrink: 0; }
.inc__ico svg { width: 22px; height: 22px; stroke: var(--gd-deep); stroke-width: 1.5; }
.inc__num { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.5px; color: var(--gd-steel); }
.inc__t { font-size: 16px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; margin: 6px 0 5px; }
.inc__d { font-size: 13.5px; color: var(--gd-graphite); line-height: 1.5; }

/* modalidades tiers */
.tiers { margin-top: 28px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: start; }
.tier { background: #fff; border: 1px solid var(--gd-mist); border-radius: var(--radius-md); padding: 36px 30px; display: flex; flex-direction: column; position: relative; }
.tier--feat { border-color: var(--gd-teal); box-shadow: var(--shadow-md); }
.tier__badge { position: absolute; top: -11px; left: 30px; background: var(--gd-teal); color: #fff; font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; padding: 5px 12px; border-radius: var(--radius-xs); }
.tier__name { font-size: 24px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.6px; }
.tier__who { font-family: var(--font-serif); font-size: 16px; color: var(--gd-graphite); line-height: 1.45; margin-top: 12px; min-height: 70px; }
.tier__note { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-steel); margin-top: 4px; padding-top: 18px; border-top: 1px solid var(--gd-mist); }
.tier__feats { list-style: none; margin: 18px 0 26px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.tier__feat { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; color: var(--gd-graphite); line-height: 1.4; }
.tier__feat svg { width: 17px; height: 17px; stroke: var(--gd-teal); stroke-width: 2; flex-shrink: 0; margin-top: 2px; }
.tier__cta { margin-top: auto; }
.tier__cta .btn { width: 100%; justify-content: center; }

/* beneficios */
.benefits { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.benefit { padding: 28px 26px; border: 1px solid var(--gd-mist); border-left: 2px solid var(--gd-teal); border-radius: var(--radius-xs); background: #fff; }
.benefit__ico { color: var(--gd-deep); margin-bottom: 16px; }
.benefit__ico svg { width: 24px; height: 24px; stroke-width: 1.5; }
.benefit__t { font-size: 17px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; }
.benefit__d { font-size: 14px; color: var(--gd-graphite); line-height: 1.5; margin-top: 8px; }

/* greendata en cifras — aggregate stat grid (dark) */
.gdstats { margin-top: 52px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,0.16); border-left: 1px solid rgba(255,255,255,0.16); }
.gdstat { padding: 30px 26px; border-right: 1px solid rgba(255,255,255,0.16); border-bottom: 1px solid rgba(255,255,255,0.16); transition: background var(--dur-fast) var(--ease-out); }
.gdstat:hover { background: rgba(255,255,255,0.03); }
.gdstat__n { font-family: var(--font-mono); font-size: 40px; font-weight: 600; color: #fff; letter-spacing: -1.5px; line-height: 1; }
.gdstat__n.green { color: var(--gd-signal-green); }
.gdstat__n.teal { color: var(--gd-teal); }
.gdstat__n .u { font-size: 18px; letter-spacing: -0.5px; color: rgba(255,255,255,0.55); }
.gdstat__n.green .u, .gdstat__n.teal .u { color: rgba(255,255,255,0.55); }
.gdstat__k { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase; color: rgba(255,255,255,0.58); margin-top: 14px; line-height: 1.5; }

@media (max-width: 1080px) {
  .cycle, .tiers, .benefits { grid-template-columns: 1fr; }
  .gdstats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .inc-grid { grid-template-columns: 1fr; }
  .inc:nth-child(odd) { border-right: 0; }
  .inc:nth-last-child(2) { border-bottom: 1px solid var(--gd-mist); }
  .gdstats { grid-template-columns: 1fr; }
  .gdstat__n { font-size: 34px; }
}

/* ============================================================
   SOLUCIONES PAGE
   ============================================================ */
/* overview strip — quick nav to each solution */
.sol-overview { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sol-chip {
  display: flex; align-items: center; gap: 16px; padding: 18px 20px;
  border: 1px solid var(--gd-mist); border-radius: var(--radius-sm); background: #fff;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.sol-chip:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: var(--gd-teal); }
.sol-chip__ico { color: var(--gd-deep); flex-shrink: 0; }
.sol-chip__ico svg { width: 24px; height: 24px; stroke-width: 1.5; }
.sol-chip__n { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.5px; color: var(--gd-steel); }
.sol-chip__t { font-size: 15px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; margin-top: 3px; }

/* detailed solution rows */
.sols { margin-top: 40px; }
.sol {
  display: grid; grid-template-columns: 0.88fr 1.12fr; gap: 60px;
  padding: 64px 0; border-top: 1px solid var(--gd-mist); align-items: start;
  scroll-margin-top: 96px;
}
.sol:first-child { border-top: 1px solid var(--gd-mist); padding-top: 64px; }
.sol__idx { font-family: var(--font-mono); font-size: 12px; letter-spacing: 2px; color: var(--gd-teal); }
.sol__ico { color: var(--gd-deep); margin: 18px 0 0; }
.sol__ico svg { width: 34px; height: 34px; stroke-width: 1.4; }
.sol__title { font-size: clamp(26px, 2.6vw, 34px); font-weight: 600; color: var(--gd-deep); letter-spacing: -0.8px; line-height: 1.08; margin-top: 16px; }
.sol__obj { font-family: var(--font-serif); font-size: 18px; line-height: 1.5; color: var(--gd-graphite); margin-top: 18px; max-width: 420px; }
.sol__deliver { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--gd-mist); display: flex; flex-direction: column; gap: 6px; }
.sol__deliver .lbl { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-steel); }
.sol__deliver .val { font-family: var(--font-sans); font-size: 15px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; }
/* right detail panel */
.sol__panel { border: 1px solid var(--gd-mist); border-radius: var(--radius-md); background: #fff; overflow: hidden; box-shadow: var(--shadow-sm); }
.sol__panel-head { padding: 15px 24px; border-bottom: 1px solid var(--gd-mist); display: flex; justify-content: space-between; align-items: center; }
.sol__panel-head .t { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-steel); }
.sol__panel-head .c { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; color: var(--gd-teal); }
.sol__item { display: grid; grid-template-columns: 30px 1fr; gap: 16px; padding: 18px 24px; border-bottom: 1px solid var(--gd-mist); transition: background var(--dur-fast) var(--ease-out); }
.sol__item:last-child { border-bottom: 0; }
.sol__item:hover { background: var(--gd-paper); }
.sol__item .mk { font-family: var(--font-mono); font-size: 11px; letter-spacing: 1px; color: var(--gd-teal); padding-top: 2px; }
.sol__item > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.sol__item-t { display: block; font-size: 15px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; }
.sol__item-d { display: block; font-size: 13px; color: var(--gd-graphite); line-height: 1.45; margin-top: 4px; }

/* intega band (dark cross-sell) */
.integra { display: grid; grid-template-columns: 1fr 0.9fr; gap: 64px; align-items: center; }
.integra__lead { font-family: var(--font-serif); font-size: clamp(22px, 2.4vw, 30px); line-height: 1.34; color: #fff; letter-spacing: -0.4px; }
.integra__lead b { color: var(--gd-teal); font-weight: 400; }
.integra__cta { margin-top: 30px; display: flex; gap: 14px; flex-wrap: wrap; }
.integra__aside { border-left: 1px solid rgba(255,255,255,0.14); padding-left: 40px; display: flex; flex-direction: column; gap: 22px; }
.integra__pt { display: flex; gap: 16px; align-items: flex-start; }
.integra__pt > span { display: flex; flex-direction: column; min-width: 0; }
.integra__pt svg { width: 22px; height: 22px; stroke: var(--gd-teal); stroke-width: 1.6; flex-shrink: 0; margin-top: 2px; }
.integra__pt .t { display: block; font-size: 15px; font-weight: 600; color: #fff; letter-spacing: -0.2px; }
.integra__pt .d { display: block; font-size: 13.5px; color: rgba(255,255,255,0.64); line-height: 1.5; margin-top: 3px; }

@media (max-width: 1080px) {
  .sol-overview { grid-template-columns: repeat(2, 1fr); }
  .sol { grid-template-columns: 1fr; gap: 32px; }
  .sol__obj { max-width: none; }
  .integra { grid-template-columns: 1fr; gap: 40px; }
  .integra__aside { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,0.14); padding-top: 32px; }
}
@media (max-width: 720px) {
  .sol-overview { grid-template-columns: 1fr; }
}

/* ============================================================
   NOSOTROS PAGE
   ============================================================ */
/* about hero — philosophy panel */
.phil {
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-md);
  overflow: hidden; box-shadow: var(--shadow-xl); padding: 0;
}
.phil__bar { height: 3px; background: var(--grad-bar); }
.phil__body { padding: 34px 32px 30px; }
.phil__mark { height: 30px; width: auto; margin-bottom: 22px; }
.phil__quote { font-family: var(--font-serif); font-style: italic; font-size: 24px; line-height: 1.42; color: #fff; letter-spacing: -0.3px; }
.phil__src { margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.12); font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-teal); }

/* historia — eras */
.eras { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.era { border-top: 2px solid var(--gd-mist); padding-top: 26px; }
.era.is-now { border-top-color: var(--gd-teal); }
.era__k { font-family: var(--font-mono); font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-steel); }
.era.is-now .era__k { color: var(--gd-teal); }
.era__t { font-size: 21px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.4px; margin: 14px 0 12px; }
.era__d { font-size: 15px; color: var(--gd-graphite); line-height: 1.55; }

/* propósito · visión · filosofía (dark grid) */
.pvf { margin-top: 8px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,0.16); border-left: 1px solid rgba(255,255,255,0.16); }
.pvf__cell { padding: 38px 32px; border-right: 1px solid rgba(255,255,255,0.16); border-bottom: 1px solid rgba(255,255,255,0.16); }
.pvf__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--gd-teal); }
.pvf__v { font-family: var(--font-serif); font-size: 22px; line-height: 1.4; color: #fff; letter-spacing: -0.3px; margin-top: 20px; }

/* valores — editorial list */
.values { margin-top: 52px; border-top: 1px solid var(--gd-mist); }
.value { display: grid; grid-template-columns: 56px 1.05fr 1fr; gap: 36px; padding: 30px 0; border-bottom: 1px solid var(--gd-mist); align-items: baseline; }
.value__n { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1.5px; color: var(--gd-steel); }
.value__h { font-size: clamp(22px, 2.2vw, 30px); font-weight: 600; color: var(--gd-deep); letter-spacing: -0.6px; line-height: 1.12; }
.value__h .vx { color: var(--gd-teal); }
.value__h .vs { color: var(--gd-steel); font-family: var(--font-mono); font-size: 0.5em; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; display: block; margin: 8px 0; }
.value__h .vy { color: var(--gd-steel); font-weight: 500; }
.value__d { font-size: 15px; color: var(--gd-graphite); line-height: 1.55; }

/* disciplinas — 4 col */
.disc { margin-top: 56px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.disc__card { background: #fff; border: 1px solid var(--gd-mist); border-top: 2px solid var(--gd-teal); border-radius: var(--radius-sm); padding: 28px 24px; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.disc__card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.disc__ico { color: var(--gd-deep); margin-bottom: 18px; }
.disc__ico svg { width: 26px; height: 26px; stroke-width: 1.5; }
.disc__t { font-size: 18px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; }
.disc__d { font-size: 13.5px; color: var(--gd-graphite); line-height: 1.5; margin-top: 10px; }

/* liderazgo — founder profile */
.leader { margin-top: 56px; display: grid; grid-template-columns: 230px 1fr; gap: 48px; align-items: start; }
.leader__portrait { position: relative; }
.leader__portrait image-slot, .leader__portrait img { width: 100%; height: 290px; display: block; border: 1px solid var(--gd-mist); object-fit: cover; }
.leader__pmeta { margin-top: 18px; display: flex; flex-direction: column; gap: 4px; }
.leader__pmeta .nm { font-size: 20px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.4px; }
.leader__pmeta .rl { font-family: var(--font-mono); font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-teal); }
.leader__li { margin-top: 8px; display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.6px; color: var(--gd-steel); transition: color var(--dur-fast) var(--ease-out); }
.leader__li svg { width: 16px; height: 16px; stroke-width: 1.6; }
.leader__li:hover { color: var(--gd-teal); }
.leader__bio { font-size: 16px; color: var(--gd-graphite); line-height: 1.65; }
.leader__bio + .leader__bio { margin-top: 16px; }
.leader__sub { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--gd-steel); margin: 30px 0 14px; }
.xchips { display: flex; flex-wrap: wrap; gap: 10px; }
.xchip { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.4px; color: var(--gd-deep); border: 1px solid var(--gd-mist); border-radius: var(--radius-full); padding: 9px 16px; background: #fff; display: inline-flex; align-items: center; gap: 9px; }
.xchip .dot { width: 5px; height: 5px; border-radius: 999px; background: var(--gd-teal); }
.creds { margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--gd-mist); border-radius: var(--radius-sm); overflow: hidden; background: #fff; }
.cred { padding: 18px 20px; border-bottom: 1px solid var(--gd-mist); display: flex; gap: 14px; align-items: flex-start; }
.cred > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.cred--head { grid-column: 1 / -1; }
.cred:nth-child(even) { border-right: 1px solid var(--gd-mist); }
.cred:nth-child(4), .cred:nth-child(5) { border-bottom: 0; }
.cred__ab { font-family: var(--font-mono); font-size: 11px; letter-spacing: 1px; color: var(--gd-teal); min-width: 56px; padding-top: 2px; }
.cred__t { display: block; font-size: 14px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; }
.cred__d { display: block; font-size: 12.5px; color: var(--gd-steel); margin-top: 2px; line-height: 1.4; }

@media (max-width: 1080px) {
  .eras { grid-template-columns: 1fr; gap: 0; }
  .era { padding: 24px 0; }
  .pvf { grid-template-columns: 1fr; }
  .disc { grid-template-columns: repeat(2, 1fr); }
  .value { grid-template-columns: 40px 1fr; gap: 16px 24px; }
  .value__d { grid-column: 2; }
  .leader { grid-template-columns: 1fr; gap: 40px; }
  .leader__portrait { max-width: 230px; }
  .leader__portrait image-slot, .leader__portrait img { height: 290px; }
}
@media (max-width: 720px) {
  .disc { grid-template-columns: 1fr; }
  .creds { grid-template-columns: 1fr; }
  .creds .cred { border-right: 0; }
  .value { grid-template-columns: 1fr; gap: 10px; }
  .value__n { display: none; }
  .value__d { grid-column: 1; }
}

/* ============================================================
   SECTORES PAGE
   ============================================================ */
.secd { padding: 60px 0; border-top: 1px solid var(--gd-mist); scroll-margin-top: 92px; }
.secd:first-child { border-top: 1px solid var(--gd-mist); margin-top: 40px; padding-top: 60px; }
.secd__head { display: flex; align-items: flex-start; gap: 22px; }
.secd__ico { width: 56px; height: 56px; border-radius: var(--radius-sm); background: rgba(10,37,64,0.05); display: grid; place-items: center; flex-shrink: 0; }
.secd__ico svg { width: 28px; height: 28px; stroke: var(--gd-deep); stroke-width: 1.5; }
.secd__idx { font-family: var(--font-mono); font-size: 11px; letter-spacing: 1.6px; color: var(--gd-teal); }
.secd__name { font-size: clamp(24px, 2.4vw, 30px); font-weight: 600; color: var(--gd-deep); letter-spacing: -0.6px; margin-top: 5px; }
.secd__pos { font-family: var(--font-serif); font-size: 17px; color: var(--gd-graphite); line-height: 1.5; margin-top: 9px; max-width: 640px; }
.secd__grid { margin-top: 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.secd__col h4 { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-steel); margin: 0 0 16px; font-weight: 500; }
.seclist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.seclist li { display: grid; grid-template-columns: 16px 1fr; gap: 11px; font-size: 14px; color: var(--gd-graphite); line-height: 1.45; }
.seclist li .mk { font-family: var(--font-mono); font-size: 12px; line-height: 1.5; }
.seclist--challenge li .mk { color: var(--gd-steel); }
.seclist--opp li .mk { color: var(--gd-signal-green); }
.seclist--sol li .mk { color: var(--gd-teal); }
.seclist--sol li a { color: var(--gd-deep); border-bottom: 1px solid var(--gd-mist); transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.seclist--sol li a:hover { color: var(--gd-teal); border-color: var(--gd-teal); }
/* footer strip: caso relacionado + cta */
.secd__foot { margin-top: 30px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: var(--gd-paper); border: 1px solid var(--gd-mist); border-left: 2px solid var(--gd-teal); border-radius: var(--radius-xs); padding: 20px 24px; flex-wrap: wrap; }
.secd__case { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.secd__case .lbl { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-steel); }
.secd__case .big { font-family: var(--font-mono); font-size: 22px; font-weight: 600; color: var(--gd-signal-green); letter-spacing: -0.5px; }
.secd__case .txt { font-size: 14px; color: var(--gd-graphite); max-width: 460px; }
.secd__case .txt b { color: var(--gd-deep); font-weight: 600; }

@media (max-width: 1080px) {
  .secd__grid { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 720px) {
  .secd__head { gap: 16px; }
  .secd__ico { width: 46px; height: 46px; }
  .secd__ico svg { width: 23px; height: 23px; }
}

/* ============================================================
   CONTACTO PAGE
   ============================================================ */
.contact { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 56px; align-items: start; margin-top: 4px; }
.cinfo__lead { font-family: var(--font-serif); font-size: 18px; color: var(--gd-graphite); line-height: 1.55; }
.cmethods { margin-top: 28px; border-top: 1px solid var(--gd-mist); }
.cmethod { display: flex; align-items: center; gap: 16px; padding: 17px 0; border-bottom: 1px solid var(--gd-mist); }
.cmethod__ico { width: 42px; height: 42px; border-radius: var(--radius-sm); background: rgba(10,37,64,0.05); display: grid; place-items: center; flex-shrink: 0; }
.cmethod__ico svg { width: 21px; height: 21px; stroke: var(--gd-deep); stroke-width: 1.6; }
.cmethod__k { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-steel); }
.cmethod__v { font-size: 15px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; margin-top: 3px; display: block; transition: color var(--dur-fast) var(--ease-out); }
a.cmethod:hover .cmethod__v { color: var(--gd-teal); }
.cexpect { margin-top: 30px; }
.cexpect h4 { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-steel); margin: 0 0 14px; font-weight: 500; }
.cexpect ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.cexpect li { display: grid; grid-template-columns: 18px 1fr; gap: 11px; font-size: 14px; color: var(--gd-graphite); line-height: 1.45; }
.cexpect li svg { width: 17px; height: 17px; stroke: var(--gd-teal); stroke-width: 2; margin-top: 2px; }

/* form card */
.cform { background: #fff; border: 1px solid var(--gd-mist); border-radius: var(--radius-md); box-shadow: var(--shadow-md); overflow: hidden; }
.cform__bar { height: 3px; background: var(--grad-bar); }
.cform__head { padding: 22px 32px 0; }
.cform__title { font-size: 21px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.4px; }
.cform__sub { font-size: 14px; color: var(--gd-steel); margin-top: 6px; }
.cform__body { padding: 24px 32px 30px; }
.frow { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { margin-bottom: 18px; display: flex; flex-direction: column; gap: 7px; }
.field label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-steel); }
.field label .req { color: var(--gd-teal); }
.field input, .field select, .field textarea {
  font-family: var(--font-sans); font-size: 15px; color: var(--gd-deep); background: #fff;
  border: 1px solid var(--gd-mist); border-radius: var(--radius-xs); padding: 12px 14px;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.field input::placeholder, .field textarea::placeholder { color: var(--gd-steel); opacity: 0.7; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gd-teal); box-shadow: 0 0 0 3px rgba(0,181,184,0.12); outline: none; }
.field textarea { resize: vertical; min-height: 108px; line-height: 1.5; }
.field select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A95A5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px; cursor: pointer; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: var(--gd-signal-red); }
.field__err { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.4px; color: var(--gd-signal-red); display: none; }
.field.invalid .field__err { display: block; }
.consent { display: flex; gap: 11px; align-items: flex-start; font-size: 12.5px; color: var(--gd-steel); line-height: 1.45; margin-bottom: 20px; }
.consent input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--gd-teal); flex-shrink: 0; }
.consent a { color: var(--gd-deep); border-bottom: 1px solid var(--gd-mist); }
.consent a:hover { color: var(--gd-teal); border-color: var(--gd-teal); }
.cform .btn--submit { width: 100%; justify-content: center; }
.cform__note { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.4px; color: var(--gd-steel); text-align: center; margin-top: 14px; }
/* success state */
.cdone { display: none; padding: 48px 36px; text-align: center; }
.cdone.show { display: block; }
.cdone__ico { width: 56px; height: 56px; border-radius: 999px; background: rgba(0,214,125,0.12); display: grid; place-items: center; margin: 0 auto 22px; }
.cdone__ico svg { width: 28px; height: 28px; stroke: var(--gd-signal-green); stroke-width: 2; }
.cdone__t { font-size: 22px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.4px; }
.cdone__d { font-size: 15px; color: var(--gd-graphite); line-height: 1.55; margin-top: 12px; max-width: 360px; margin-left: auto; margin-right: auto; }

/* scheduling band (dark) */
.sched { display: grid; grid-template-columns: 1fr 0.85fr; gap: 56px; align-items: center; }
.sched__lead { font-family: var(--font-serif); font-size: clamp(22px, 2.4vw, 30px); line-height: 1.34; color: #fff; letter-spacing: -0.4px; }
.sched__lead b { color: var(--gd-teal); font-weight: 400; }
.sched__sub { color: rgba(255,255,255,0.66); font-size: 16px; margin-top: 18px; max-width: 440px; }
.sched__card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-md); overflow: hidden; }
.sched__card-bar { height: 3px; background: var(--grad-bar); }
.sched__card-body { padding: 28px 30px; }
.sched__meta { display: flex; gap: 24px; margin-bottom: 22px; }
.sched__meta .it { display: flex; align-items: center; gap: 9px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.4px; color: rgba(255,255,255,0.82); }
.sched__meta .it svg { width: 17px; height: 17px; stroke: var(--gd-teal); stroke-width: 1.8; }
.sched__card .btn { width: 100%; justify-content: center; }
.sched__card-note { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: rgba(255,255,255,0.4); text-align: center; margin-top: 14px; }

@media (max-width: 1080px) {
  .contact { grid-template-columns: 1fr; gap: 44px; }
  .sched { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 560px) {
  .frow { grid-template-columns: 1fr; gap: 0; }
  .cform__body, .cform__head { padding-left: 22px; padding-right: 22px; }
  .sched__meta { flex-direction: column; gap: 12px; }
}

/* ============================================================
   KNOWLEDGE HUB — image-led article cards (override text-only .post)
   ============================================================ */
.post { display: flex; flex-direction: column; transition: transform var(--dur-fast) var(--ease-out); }
.post__img { position: relative; width: 100%; aspect-ratio: 16 / 10; border: 1px solid var(--gd-mist); border-radius: var(--radius-sm); overflow: hidden; background: var(--gd-paper); margin-bottom: 20px; }
.post__img image-slot, .post__img img { width: 100%; height: 100%; display: block; object-fit: cover; }
.post__img::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(10,37,64,0.05); border-radius: inherit; pointer-events: none; transition: box-shadow var(--dur-fast) var(--ease-out); }
.post:hover .post__img { border-color: var(--gd-teal); }
.post:hover .post__img::after { box-shadow: inset 0 0 0 1px rgba(0,181,184,0.35); }
.post__title { transition: color var(--dur-fast) var(--ease-out); }
.post:hover .post__title { color: var(--gd-teal); }

/* ============================================================
   ARTICLE — reading page
   ============================================================ */
.artlead { padding: 132px 0 0; background: #fff; }
.artback { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gd-steel); display: flex; width: fit-content; align-items: center; gap: 8px; transition: color var(--dur-fast) var(--ease-out); }
.artback svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.8; }
.artback:hover { color: var(--gd-teal); }
.artlead .eyebrow { display: flex; width: fit-content; margin: 30px 0 0; }
.arttitle { font-size: clamp(31px, 4.6vw, 54px); font-weight: 600; letter-spacing: -1.5px; line-height: 1.05; color: var(--gd-deep); margin: 16px 0 0; max-width: 17ch; text-wrap: balance; }
.artdek { font-family: var(--font-serif); font-style: italic; font-size: clamp(18px, 2.1vw, 24px); line-height: 1.45; color: var(--gd-graphite); margin: 24px 0 0; max-width: 700px; }
.artmeta { margin-top: 28px; padding-bottom: 30px; border-bottom: 1px solid var(--gd-mist); display: flex; align-items: center; gap: 14px; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.4px; color: var(--gd-steel); flex-wrap: wrap; }
.artmeta .au { color: var(--gd-deep); font-weight: 500; }
.artmeta .sep { color: var(--gd-mist); }
.artfig { margin: 40px 0 0; position: relative; width: 100%; aspect-ratio: 16 / 8.2; border: 1px solid var(--gd-mist); border-radius: var(--radius-md); overflow: hidden; background: var(--gd-paper); }
.artfig image-slot, .artfig img { width: 100%; height: 100%; display: block; object-fit: cover; }
.artfig__cap { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.4px; color: var(--gd-steel); margin: 12px 0 0; }

.artbody { max-width: 760px; margin: 0 auto; padding: 44px 40px 8px; }
.artbody > p { font-size: 18px; line-height: 1.74; color: var(--gd-graphite); margin: 0 0 24px; }
.artbody > p:first-child { font-size: 19.5px; color: var(--gd-deep); }
.artbody > p b, .artbody li b { color: var(--gd-deep); font-weight: 600; }
.artbody h2 { font-size: clamp(24px, 2.6vw, 29px); font-weight: 600; color: var(--gd-deep); letter-spacing: -0.7px; line-height: 1.18; margin: 52px 0 18px; }
.artbody h2 .ix { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1.4px; color: var(--gd-teal); display: block; margin-bottom: 12px; font-weight: 500; }
.artbody h3 { font-size: 20px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; margin: 38px 0 12px; }
.artbody ul.dash { margin: 0 0 24px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 13px; }
.artbody ul.dash li { position: relative; padding-left: 26px; font-size: 17.5px; line-height: 1.6; color: var(--gd-graphite); }
.artbody ul.dash li::before { content: ""; position: absolute; left: 3px; top: 11px; width: 7px; height: 7px; border-radius: 2px; background: var(--gd-teal); }
.artbody ol.q { counter-reset: q; margin: 0 0 24px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.artbody ol.q li { counter-increment: q; position: relative; padding: 18px 0 18px 52px; border-bottom: 1px solid var(--gd-mist); font-size: 17.5px; line-height: 1.55; color: var(--gd-graphite); }
.artbody ol.q li:first-child { border-top: 1px solid var(--gd-mist); }
.artbody ol.q li::before { content: counter(q); position: absolute; left: 0; top: 16px; width: 32px; height: 32px; border-radius: var(--radius-xs); background: rgba(10,37,64,0.05); color: var(--gd-deep); font-family: var(--font-mono); font-size: 14px; font-weight: 600; display: grid; place-items: center; }
.artbody ol.q li .a { display: block; margin-top: 5px; font-size: 14.5px; color: var(--gd-steel); }

.artquote { margin: 46px 0; padding: 4px 0 4px 30px; border-left: 2px solid var(--gd-teal); }
.artquote p { font-family: var(--font-serif); font-style: italic; font-size: clamp(21px, 2.3vw, 25px); line-height: 1.4; color: var(--gd-deep); margin: 0; }
.artquote cite { display: block; margin-top: 16px; font-family: var(--font-mono); font-style: normal; font-size: 11px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gd-steel); }

.artbox { background: var(--gd-paper); border: 1px solid var(--gd-mist); border-left: 2px solid var(--gd-teal); border-radius: var(--radius-sm); padding: 26px 30px; margin: 38px 0; }
.artbox__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-teal); }
.artbox h4 { font-size: 18px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; margin: 9px 0 0; }
.artbox .cols { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px 26px; }
.artbox .cols span { display: grid; grid-template-columns: 16px 1fr; gap: 10px; font-size: 14.5px; color: var(--gd-graphite); line-height: 1.4; }
.artbox .cols span::before { content: "\2014"; font-family: var(--font-mono); color: var(--gd-teal); }

/* author bio + source */
.artauthor { max-width: 760px; margin: 50px auto 0; padding: 30px 40px 0; }
.artauthor__card { border-top: 1px solid var(--gd-mist); padding-top: 30px; display: grid; grid-template-columns: 88px 1fr; gap: 24px; align-items: start; }
.artauthor__ph { width: 88px; height: 88px; border-radius: var(--radius-sm); overflow: hidden; border: 1px solid var(--gd-mist); background: var(--gd-paper); }
.artauthor__ph image-slot, .artauthor__ph img { width: 100%; height: 100%; display: block; object-fit: cover; }
.artauthor__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-steel); }
.artauthor__nm { font-size: 19px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.4px; margin-top: 7px; }
.artauthor__bio { font-size: 14.5px; color: var(--gd-graphite); line-height: 1.6; margin-top: 9px; }
.artauthor__li { margin-top: 12px; display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.6px; color: var(--gd-steel); transition: color var(--dur-fast) var(--ease-out); }
.artauthor__li svg { width: 16px; height: 16px; stroke-width: 1.6; }
.artauthor__li:hover { color: var(--gd-teal); }

/* related strip */
.artrel { max-width: 760px; margin: 46px auto 0; padding: 0 40px; }
.artrel__h { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-steel); padding-bottom: 16px; border-bottom: 1px solid var(--gd-mist); }
.artrel__row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 24px; }
.artrelcard { border-top: 2px solid var(--gd-deep); padding-top: 18px; transition: border-color var(--dur-fast) var(--ease-out); }
.artrelcard:hover { border-top-color: var(--gd-teal); }
.artrelcard .c { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-teal); }
.artrelcard .t { font-size: 17px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; line-height: 1.25; margin-top: 10px; transition: color var(--dur-fast) var(--ease-out); }
.artrelcard:hover .t { color: var(--gd-teal); }

@media (max-width: 720px) {
  .artlead { padding-top: 96px; }
  .artbody { padding: 36px 22px 8px; }
  .artbody > p { font-size: 17px; }
  .artbox .cols { grid-template-columns: 1fr; }
  .artauthor { padding: 30px 22px 0; }
  .artauthor__card { grid-template-columns: 1fr; }
  .artrel { padding: 0 22px; }
  .artrel__row { grid-template-columns: 1fr; }
}

/* ============================================================
   KNOWLEDGE HUB PAGE — hero + filter rail
   ============================================================ */
.hubhero { background: var(--gd-deep); color: #fff; position: relative; overflow: hidden; padding: 150px 0 76px; }
.hubhero .hero__grid { position: absolute; inset: 0; }
.hubhero__inner { position: relative; max-width: 820px; }
.hubhero .eyebrow { margin-bottom: 18px; }
.hubhero h1 { color: #fff; }
.hubhero h1 .accent { color: var(--gd-teal); }
.hubhero__sub { margin-top: 24px; max-width: 600px; font-family: var(--font-serif); font-size: 19px; line-height: 1.5; color: rgba(255,255,255,0.78); }

/* ============================================================
   CASOS — gallery cards (casos.html) + executive report pages
   ============================================================ */
.casegrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 40px; }
.casecard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--gd-mist); border-radius: var(--radius-sm); overflow: hidden; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.casecard:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--gd-mist); }
.casecard__img { position: relative; aspect-ratio: 16 / 10; background: var(--gd-paper); border-bottom: 1px solid var(--gd-mist); }
.casecard__img image-slot, .casecard__img img { width: 100%; height: 100%; display: block; object-fit: cover; }
.casecard__body { padding: 22px 24px 22px; display: flex; flex-direction: column; flex: 1; }
.casecard__tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-teal); }
.casecard__title { font-size: 19px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; line-height: 1.24; margin: 12px 0 0; flex: 1; transition: color var(--dur-fast) var(--ease-out); }
.casecard:hover .casecard__title { color: var(--gd-teal); }
.casecard__result { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--gd-mist); display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.casecard__big { font-family: var(--font-mono); font-size: 26px; font-weight: 600; color: var(--gd-signal-green); letter-spacing: -0.5px; }
.casecard__k { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-steel); text-align: right; max-width: 130px; }
@media (max-width: 1080px) { .casegrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px) { .casegrid { grid-template-columns: 1fr; } }

/* report — hero (cover) */
.rephero { background: var(--gd-deep); color: #fff; position: relative; overflow: hidden; padding: 150px 0 68px; }
.rephero .hero__grid { position: absolute; inset: 0; }
.rephero__inner { position: relative; max-width: 920px; }
.repback { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.6px; text-transform: uppercase; color: rgba(255,255,255,0.55); display: flex; width: fit-content; align-items: center; gap: 8px; transition: color var(--dur-fast) var(--ease-out); }
.repback svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.8; }
.repback:hover { color: var(--gd-teal); }
.rephero .eyebrow { margin: 28px 0 0; }
.rephero h1 { color: #fff; max-width: 18ch; margin-top: 16px; letter-spacing: -1.4px; line-height: 1.05; }
.rephero h1 .accent { color: var(--gd-teal); }
.rephero__lead { font-family: var(--font-serif); font-size: clamp(18px, 2vw, 22px); line-height: 1.45; color: rgba(255,255,255,0.78); margin: 22px 0 0; max-width: 620px; }
.repactions { margin-top: 34px; display: flex; gap: 14px; flex-wrap: wrap; }
.repactions .btn svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1.8; margin-right: -2px; }
.rephero__kpis { margin-top: 48px; display: flex; gap: 52px; border-top: 1px solid rgba(255,255,255,0.12); padding-top: 28px; flex-wrap: wrap; }
.repkpi .n { font-family: var(--font-mono); font-size: clamp(28px, 3.4vw, 36px); font-weight: 600; color: #fff; letter-spacing: -1px; }
.repkpi .n.green { color: var(--gd-signal-green); }
.repkpi .n .u { font-size: 15px; color: var(--gd-teal); margin-left: 3px; letter-spacing: 0; }
.repkpi .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-top: 9px; max-width: 180px; }

/* report — body sections */
.repsec { max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.repsec + .repsec { margin-top: 18px; }
.rephead { display: flex; align-items: baseline; gap: 18px; border-bottom: 1px solid var(--gd-mist); padding-bottom: 16px; }
.rephead .ix { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1.6px; color: var(--gd-teal); }
.rephead h2 { font-size: clamp(24px, 2.6vw, 30px); font-weight: 600; color: var(--gd-deep); letter-spacing: -0.6px; }
.reptext { font-size: 18px; line-height: 1.7; color: var(--gd-graphite); max-width: 720px; margin: 24px 0 0; }
.reptext b { color: var(--gd-deep); font-weight: 600; }

/* diagnosis bars */
.repbars { margin-top: 30px; display: flex; flex-direction: column; gap: 16px; max-width: 640px; }
.repbar__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.repbar__top .lab { font-size: 14.5px; color: var(--gd-deep); }
.repbar__top .pct { font-family: var(--font-mono); font-size: 14px; font-weight: 600; color: var(--gd-deep); }
.repbar__track { height: 9px; background: var(--gd-mist); border-radius: 999px; overflow: hidden; }
.repbar__fill { height: 100%; border-radius: 999px; background: var(--gd-teal); }
.repbar__fill.alt { background: var(--gd-deep); }
.repbar__fill.green { background: var(--gd-signal-green); }

/* solution measures */
.repmeasures { margin-top: 28px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.repmeasure { border: 1px solid var(--gd-mist); border-left: 2px solid var(--gd-teal); border-radius: var(--radius-sm); padding: 22px 24px; background: #fff; }
.repmeasure__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-teal); }
.repmeasure h4 { font-size: 16.5px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.3px; margin: 9px 0 0; }
.repmeasure p { font-size: 14px; color: var(--gd-graphite); line-height: 1.55; margin: 8px 0 0; }

/* roadmap phases */
.repphases { margin-top: 28px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.repphase { border-top: 2px solid var(--gd-deep); padding-top: 16px; transition: border-color var(--dur-fast) var(--ease-out); }
.repphase:hover { border-top-color: var(--gd-teal); }
.repphase .ph { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gd-teal); }
.repphase h4 { font-size: 15px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; margin: 9px 0 0; }
.repphase p { font-size: 13px; color: var(--gd-graphite); line-height: 1.5; margin: 7px 0 0; }

/* verified results band */
.repverified { background: var(--gd-deep); color: #fff; }
.repverified .shead .eyebrow { color: var(--gd-teal); }
.repvgrid { margin-top: 36px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-md); overflow: hidden; }
.repv { background: var(--gd-deep); padding: 30px 28px; }
.repv .n { font-family: var(--font-mono); font-size: clamp(26px, 3vw, 32px); font-weight: 600; color: var(--gd-signal-green); letter-spacing: -0.8px; }
.repv .n.teal { color: var(--gd-teal); }
.repv .n.white { color: #fff; }
.repv .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.3px; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-top: 10px; line-height: 1.4; }
.repnote { margin-top: 22px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.6px; color: rgba(255,255,255,0.5); }

@media (max-width: 980px) {
  .repmeasures { grid-template-columns: 1fr; }
  .repphases { grid-template-columns: repeat(2, 1fr); }
  .repvgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .rephero { padding-top: 100px; }
  .repsec { padding: 0 22px; }
  .reptext { font-size: 17px; }
  .repphases { grid-template-columns: 1fr; }
  .repvgrid { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   PRINT / PDF (case report pages read & download cleanly)
   ============================================================ */
@media print {
  .header, .mnav, .repactions, .cta-final, .footer, .menu-toggle, .lang { display: none !important; }
  body { background: #fff !important; }
  .rephero { background: var(--gd-deep) !important; padding: 28px 0 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rephero .hero__grid { display: none; }
  .repverified, .repv, .repbar__fill, .repmeasure { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .section { padding: 28px 0 !important; }
  .repsec, .wrap { max-width: 100% !important; }
  .reveal, [data-stagger] > * { opacity: 1 !important; transform: none !important; }
  .repsec, .repmeasure, .repphase, .repv, .case, .casecard { break-inside: avoid; }
  h1, h2, h3, h4 { break-after: avoid; }
  a[href]::after { content: ""; }
}

/* internal/web report extras */
.repflag { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-signal-amber); border: 1px solid rgba(255,176,32,0.4); border-radius: var(--radius-full); padding: 5px 12px; }
.repmeta-line { margin-top: 20px; display: flex; gap: 14px; flex-wrap: wrap; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.4px; color: rgba(255,255,255,0.66); }
.repmeta-line .sep { color: rgba(255,255,255,0.28); }
.repmeta-line b { color: #fff; font-weight: 500; }
.repintnote { background: rgba(255,176,32,0.06); border: 1px solid rgba(255,176,32,0.3); border-left: 2px solid var(--gd-signal-amber); border-radius: var(--radius-sm); padding: 24px 28px; max-width: 920px; margin: 0 auto; }
.repintnote__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: #b9831a; }
.repintnote p { font-size: 15px; color: var(--gd-graphite); line-height: 1.6; margin: 10px 0 0; }
.replist { margin-top: 26px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px 28px; max-width: 760px; }
.replist span { display: grid; grid-template-columns: 14px 1fr; gap: 11px; font-size: 15px; color: var(--gd-graphite); line-height: 1.45; }
.replist span::before { content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--gd-teal); margin-top: 8px; }
.reptestim { max-width: 760px; margin: 40px auto 0; padding: 0 40px; }
.reptestim blockquote { border-left: 2px solid var(--gd-teal); padding: 4px 0 4px 30px; margin: 0; }
.reptestim p { font-family: var(--font-serif); font-style: italic; font-size: clamp(20px, 2.2vw, 24px); line-height: 1.42; color: var(--gd-deep); margin: 0; }
.reptestim cite { display: block; margin-top: 14px; font-family: var(--font-mono); font-style: normal; font-size: 11px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gd-steel); }
@media (max-width: 720px) { .replist { grid-template-columns: 1fr; } .reptestim { padding: 0 22px; } }

/* ============================================================
   LEGAL DOCUMENT PAGES (privacidad · cookies · terminos)
   ============================================================ */
.legaldoc h2 { margin-top: 46px; }
.legaldoc h2:first-of-type { margin-top: 8px; }
.legaldoc h2 .ix { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1.4px; color: var(--gd-teal); display: block; margin-bottom: 10px; font-weight: 500; }
.legaldoc h3 { font-size: 16px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; margin: 28px 0 12px; }
.legaldoc ul.dash li { font-size: 16.5px; }
.legalcontact { background: var(--gd-paper); border: 1px solid var(--gd-mist); border-left: 2px solid var(--gd-teal); border-radius: var(--radius-sm); padding: 22px 26px; margin: 28px 0; }
.legalcontact .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gd-teal); }
.legalcontact p { font-size: 16px; color: var(--gd-graphite); line-height: 1.6; margin: 10px 0 0; }
.legalcontact a { color: var(--gd-deep); font-weight: 600; border-bottom: 1px solid var(--gd-mist); transition: border-color var(--dur-fast) var(--ease-out); }
.legalcontact a:hover { border-color: var(--gd-teal); }
.artbody a.inl { color: var(--gd-deep); font-weight: 600; border-bottom: 1px solid var(--gd-mist); }
.artbody a.inl:hover { border-color: var(--gd-teal); }

/* footer legal cluster (copyright + legal links) */
.footer__bottom .legal { max-width: 820px; line-height: 1.75; }
.footer__bottom .legal a { color: rgba(255,255,255,0.62); border-bottom: 1px solid rgba(255,255,255,0.2); transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.footer__bottom .legal a:hover { color: var(--gd-teal); border-color: var(--gd-teal); }

/* ============================================================
   COOKIE CONSENT — banner + preferences modal
   ============================================================ */
.gdck { position: fixed; left: 24px; right: 24px; bottom: 24px; z-index: 180; display: none; }
.gdck.show { display: block; animation: gdckIn var(--dur-slow) var(--ease-out); }
@keyframes gdckIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.gdck__card { max-width: 1000px; margin: 0 auto; background: var(--gd-deep); color: #fff; border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-md); box-shadow: var(--shadow-xl); overflow: hidden; }
.gdck__bar { height: 3px; background: var(--grad-bar); }
.gdck__row { padding: 24px 28px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.gdck__txt { flex: 1; min-width: 280px; }
.gdck__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-teal); }
.gdck__d { font-size: 14px; line-height: 1.6; color: rgba(255,255,255,0.82); margin-top: 8px; }
.gdck__d a { color: #fff; border-bottom: 1px solid rgba(255,255,255,0.3); transition: border-color var(--dur-fast) var(--ease-out); }
.gdck__d a:hover { border-color: var(--gd-teal); }
.gdck__btns { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gdck__btns .btn { font-size: 13px; padding: 12px 18px; }
.gdck__config { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.6px; color: rgba(255,255,255,0.7); background: transparent; border: 0; padding: 12px 6px; transition: color var(--dur-fast) var(--ease-out); }
.gdck__config:hover { color: var(--gd-teal); }

/* preferences modal */
.gdckm { position: fixed; inset: 0; z-index: 210; display: none; align-items: center; justify-content: center; padding: 24px; }
.gdckm.show { display: flex; }
.gdckm__scrim { position: absolute; inset: 0; background: rgba(10,22,32,0.55); backdrop-filter: blur(2px); animation: gdckFade var(--dur-base) var(--ease-out); }
@keyframes gdckFade { from { opacity: 0; } to { opacity: 1; } }
.gdckm__panel { position: relative; width: 100%; max-width: 560px; max-height: 88vh; overflow-y: auto; background: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-xl); animation: gdckIn var(--dur-base) var(--ease-out); }
.gdckm__bar { height: 3px; background: var(--grad-bar); }
.gdckm__head { padding: 26px 30px 18px; border-bottom: 1px solid var(--gd-mist); }
.gdckm__head .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-teal); }
.gdckm__head h3 { font-size: 22px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.5px; margin: 8px 0 0; }
.gdckm__head p { font-size: 14px; color: var(--gd-graphite); line-height: 1.55; margin: 10px 0 0; }
.gdckm__body { padding: 8px 30px 4px; }
.gdckopt { display: flex; gap: 18px; align-items: flex-start; padding: 20px 0; border-bottom: 1px solid var(--gd-mist); }
.gdckopt:last-child { border-bottom: 0; }
.gdckopt__txt { flex: 1; }
.gdckopt__t { font-size: 15px; font-weight: 600; color: var(--gd-deep); letter-spacing: -0.2px; }
.gdckopt__d { font-size: 13px; color: var(--gd-graphite); line-height: 1.5; margin-top: 5px; }
/* switch */
.gdsw { position: relative; flex-shrink: 0; width: 44px; height: 26px; }
.gdsw input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.gdsw__track { position: absolute; inset: 0; background: var(--gd-mist); border-radius: 999px; transition: background var(--dur-fast) var(--ease-out); }
.gdsw__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: #fff; border-radius: 999px; box-shadow: var(--shadow-sm); transition: transform var(--dur-fast) var(--ease-out); }
.gdsw input:checked + .gdsw__track { background: var(--gd-teal); }
.gdsw input:checked + .gdsw__track::after { transform: translateX(18px); }
.gdsw input:disabled { cursor: not-allowed; }
.gdsw input:disabled + .gdsw__track { background: var(--gd-deep); opacity: 0.5; }
.gdckm__foot { padding: 20px 30px 26px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; border-top: 1px solid var(--gd-mist); }
.gdckm__foot .btn { font-size: 13px; padding: 12px 18px; }
@media (max-width: 680px) {
  .gdck { left: 14px; right: 14px; bottom: 14px; }
  .gdck__row { padding: 20px; gap: 18px; }
  .gdck__btns { width: 100%; }
  .gdck__btns .btn { flex: 1; justify-content: center; }
  .gdckm__foot { flex-direction: column-reverse; }
  .gdckm__foot .btn { width: 100%; justify-content: center; }
}

/* ============================================================
   SHARE CLUSTER (artículos + casos) — LinkedIn · WhatsApp · Correo · Copiar
   ============================================================ */
.gdshare-wrap { max-width: 760px; margin: 40px auto 0; padding: 0 40px; }
.gdshare { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gdshare__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--gd-steel); margin-right: 4px; }
.gdshare__btn { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border: 1px solid var(--gd-mist); border-radius: var(--radius-xs); background: #fff; color: var(--gd-graphite); font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.4px; cursor: pointer; transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out); }
.gdshare__btn svg { width: 16px; height: 16px; stroke-width: 1.6; }
.gdshare__btn:hover { border-color: var(--gd-teal); color: var(--gd-teal); }
.gdshare__btn.copied { border-color: var(--gd-signal-green); color: var(--gd-signal-green); }
/* on dark (case report hero) */
.gdshare--on-dark .gdshare__k { color: rgba(255,255,255,0.5); }
.gdshare--on-dark .gdshare__btn { background: transparent; border-color: rgba(255,255,255,0.22); color: rgba(255,255,255,0.82); }
.gdshare--on-dark .gdshare__btn:hover { border-color: var(--gd-teal); color: var(--gd-teal); }
.gdshare--on-dark .gdshare__btn.copied { border-color: var(--gd-signal-green); color: var(--gd-signal-green); }
@media (max-width: 720px) { .gdshare-wrap { padding: 0 22px; } }

/* edit overrides */
