/* Landing Spiza: una ruta de decisión clara, de problema a conversación. */
.home-page {
  /* Plumaje de Spiza americana reinterpretado para una interfaz tecnológica. */
  --bird-ink: #121820;
  --bird-gold: #D6B52C;
  --bird-gold-soft: #E7D783;
  --bird-rust: #985333;
  --bird-ivory: #F4F1E7;
  --bird-feather: #74766F;
  --ink: var(--bird-ink);
  --ink-2: #20272C;
  --cloud: var(--bird-ivory);
  --muted: #5F625D;
  --blue: var(--bird-gold);
  --blue-action: #8A472D;
  --blue-ink: #755900;
  --blue-hover: #743A25;
  --teal: var(--bird-gold);
  --teal-ink: #6E5400;
  --steel: #9D9A8F;
  --on-dark: #D1D0C7;
  --on-dark-strong: #ECE9DD;
  --line-light: #DED8C8;
  --line-dark: rgb(231 215 131 / .2);
  --focus: 0 0 0 3px var(--white), 0 0 0 6px #755900;
  --focus-dark: 0 0 0 3px var(--ink), 0 0 0 6px var(--bird-gold);
}
.home-page .section { padding-block: clamp(3.25rem, 2.25rem + 4vw, 6rem); }
.home-page main h2 { font-size: clamp(1.85rem, 1.4rem + 2vw, 3.1rem); line-height: 1.04; letter-spacing: -.035em; }
.home-page main h3 { letter-spacing: -.025em; }
.home-page .site-header { color: var(--ink); background: rgb(250 248 241 / .96); border-bottom-color: var(--line-light); box-shadow: 0 8px 24px -24px rgb(18 24 32 / .7); }
.home-page .brand { color: var(--ink); }
.home-page .brand__logo--header { height: 2.35rem; }
.home-page .nav__link { color: var(--muted); }
.home-page .nav__link:hover { color: var(--ink); border-bottom-color: var(--blue); }
.home-page .nav__link[aria-current="true"] { color: var(--ink); border-bottom-color: var(--blue); }
.home-page .nav-toggle { color: var(--ink); border-color: var(--line-light); }
.home-page .lang-switch {
  --lang-fg: var(--muted);
  --lang-fg-strong: var(--ink);
  --lang-surface: rgb(18 24 32 / .05);
  --lang-border: rgb(18 24 32 / .12);
  --lang-hover: rgb(18 24 32 / .05);
  --lang-current-bg: var(--white);
  --lang-current-fg: var(--ink);
  --lang-current-shadow: 0 1px 2px rgb(18 24 32 / .16);
}

.section-label { display: flex; align-items: center; gap: .7rem; color: var(--blue-ink); font-family: var(--font-utility); font-size: .75rem; font-weight: 700; letter-spacing: .11em; line-height: 1.4; text-transform: uppercase; }
.section-label::before { content: ""; width: 1.75rem; height: 2px; background: currentColor; }
.section-intro { display: grid; grid-template-columns: minmax(10rem, .55fr) minmax(0, 1.45fr); gap: clamp(1.25rem, 1rem + 3vw, 4rem); align-items: start; margin-bottom: clamp(1.75rem, 1.3rem + 2vw, 3rem); }
.section-intro > div > p { max-width: 61ch; margin-top: .9rem; color: var(--muted); font-size: var(--fs-lead); }

/* Hero: una promesa concreta sobre una superficie clara; el mapa conserva la firma técnica. */
.home-page .hero { isolation: isolate; min-height: min(50rem, calc(100svh - var(--header-h))); display: flex; align-items: center; padding-block: clamp(3.5rem, 2.4rem + 4vw, 6.5rem); color: var(--ink); background-color: var(--bird-ivory); background-image: radial-gradient(circle at 90% 30%, rgb(214 181 44 / .16), transparent 30%), linear-gradient(180deg, #FAF8F1, var(--bird-ivory)); }
.home-page .hero::before { content: ""; position: absolute; inset: 0; opacity: .48; background-image: linear-gradient(rgb(152 83 51 / .07) 1px, transparent 1px), linear-gradient(90deg, rgb(152 83 51 / .07) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, transparent 34%, #000 74%, transparent); pointer-events: none; }
.home-page .hero__inner { position: relative; z-index: 1; grid-template-columns: minmax(0, 1.12fr) minmax(19rem, .88fr); gap: clamp(2rem, 1.2rem + 3vw, 4.5rem); align-items: center; }
.home-page .hero__copy { max-width: 45rem; }
.home-page .hero__tagline { margin-bottom: 1.1rem; color: var(--blue-ink); font-family: var(--font-utility); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.home-page .hero__tagline::before { content: ""; display: inline-block; width: 1.75rem; height: 2px; margin: 0 .7rem .22rem 0; background: currentColor; }
.home-page .hero h1 { max-width: 18ch; color: var(--ink); font-size: clamp(2.45rem, 1.6rem + 3vw, 4.25rem); font-weight: 700; line-height: 1; letter-spacing: -.05em; }
/* La promesa ocupa su propia linea y es lo unico con color de acento. */
.home-page .hero h1 em { display: block; color: var(--bird-rust); font-style: normal; }
.home-page .hero__text { max-width: 53ch; margin-top: 1.5rem; color: var(--muted); font-size: var(--fs-lead); line-height: 1.65; }
.home-page .hero .actions { display: flex; align-items: center; gap: 1.25rem; margin-top: 2rem; }
.home-page .hero__budget { margin-top: 1.1rem; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.home-page .hero__budget a { color: var(--bird-rust); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
.home-page .hero__budget a:hover { color: var(--ink); }
.text-link { display: inline-flex; align-items: center; gap: .55rem; font-weight: 600; text-decoration: none; }
.text-link--light { color: var(--ink); }.text-link--light span { color: var(--blue-ink); transition: transform 180ms var(--ease); }.text-link:hover { color: var(--blue-ink); }.text-link:hover span { transform: translateX(.2rem); }

/* Mapa: lo que ya usas se conecta en una plataforma. */
.hero-map { position: relative; justify-self: end; width: min(100%, 31rem); margin: 0; animation: hero-map-arrival 700ms var(--ease) 100ms both; }
.hero-map::before { content: ""; position: absolute; inset: -2rem; z-index: -1; background: radial-gradient(55% 55% at 50% 45%, rgb(214 181 44 / .2), transparent 72%); pointer-events: none; }
.hero-map__panel { overflow: hidden; background: var(--ink); border: 1px solid rgb(18 24 32 / .16); border-radius: 1rem; box-shadow: 0 2.5rem 5rem -2.5rem rgb(18 24 32 / .65); }
.hero-map__head { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: .85rem 1.15rem; border-bottom: 1px solid rgb(255 255 255 / .1); }
.hero-map__label { display: inline-flex; gap: .5rem; align-items: center; color: var(--teal); font-family: var(--font-utility); font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero-map__label::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 .2rem rgb(214 181 44 / .16); }
.hero-map__note { color: var(--steel); font-size: .6875rem; }
.hero-map__figure { padding: 1.15rem 1.35rem; }
.hero-shot { position: relative; display: block; min-height: 17.5rem; overflow: hidden; background: #eaf0f7; border-radius: .55rem; text-decoration: none; transition: transform 220ms var(--ease); }
.hero-shot .project-browser { height: 2.1rem; }
.hero-shot .project-screen--desktop { top: 2.6rem; right: 15%; bottom: 1rem; left: 3%; }
.hero-shot .project-screen--phone { top: 27%; right: 3%; width: 22%; }
.hero-map__foot { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: rgb(255 255 255 / .08); border-top: 1px solid rgb(255 255 255 / .1); }
.hero-map__foot li { padding: .85rem .6rem; color: var(--steel); background: rgb(18 24 32 / .68); font-size: .6875rem; line-height: 1.35; text-align: center; }
.hero-map__caption { max-width: 52ch; margin-top: 1rem; color: var(--muted); font-size: .8125rem; line-height: 1.55; }
@keyframes hero-map-arrival { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: none; } }

/* Impacto temprano: beneficios concretos y la forma de medirlos. */
.impact-band { padding-block: clamp(2.8rem, 2rem + 3vw, 4.75rem); color: var(--white); background: var(--ink); }
.impact-band__layout { display: grid; gap: clamp(2rem, 1.4rem + 2vw, 3.25rem); }
.impact-band .section-label { color: var(--teal); }
.impact-band__intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(17rem, .85fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: end; }
.impact-band__intro h2 { max-width: 18ch; margin-top: 1rem; color: var(--white); font-size: clamp(1.85rem, 1.45rem + 1.7vw, 2.85rem); line-height: 1.04; letter-spacing: -.04em; }
.impact-band__context > p { max-width: 54ch; color: var(--on-dark); font-size: .86rem; line-height: 1.65; }
.impact-band__link { display: inline-flex; gap: .55rem; align-items: center; margin-top: 1.25rem; color: var(--white); font-size: .84rem; font-weight: 700; text-decoration: none; }
.impact-band__link span { color: var(--teal); transition: transform 180ms var(--ease); }
.impact-band__link:hover { color: var(--teal); }
.impact-band__link:hover span { transform: translateX(.2rem); }
.impact-band__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--line-dark); }
.impact-band__stats li { display: flex; min-width: 0; flex-direction: column; padding: clamp(1.2rem, 1rem + 1vw, 1.75rem); }
.impact-band__stats li + li { border-left: 1px solid var(--line-dark); }
.impact-band__type { color: var(--teal); font: 700 .65rem/1.2 var(--font-utility); letter-spacing: .1em; text-transform: uppercase; }
.impact-band__stats strong { display: block; min-height: 1em; margin-top: 1rem; color: var(--white); font-family: var(--font-display); font-size: clamp(2.5rem, 1.65rem + 3vw, 4.5rem); font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: -.065em; line-height: .95; white-space: nowrap; }
.impact-band__stats p { max-width: 20ch; margin-top: 1.1rem; color: var(--on-dark-strong); font-size: .82rem; font-weight: 700; line-height: 1.4; }
.impact-band__stats sup { margin-left: .15rem; font-size: .62em; vertical-align: super; }
.impact-band__stats sup a { color: var(--teal); text-decoration: none; }
.impact-band__stats sup a:hover { color: var(--white); }
.impact-band__sources { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 1.5rem; margin-top: 1rem; }
.impact-band__sources li { color: var(--steel); font-size: .64rem; line-height: 1.5; }
.impact-band__sources li > span { color: var(--teal); font-weight: 700; }
.impact-band__sources a { color: var(--on-dark); text-underline-offset: .18em; }
.impact-band__sources a:hover { color: var(--teal); }

/* Dolor */
.pain-points { background: var(--cloud); border-top: 1px solid var(--line-light); }.pain-points__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line-light); }.pain-points__list li { display: grid; gap: .45rem; padding: 1.25rem 1.25rem 1.25rem 0; border-bottom: 1px solid var(--line-light); }.pain-points__list li:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--line-light); }.pain-points__list li:last-child { grid-column: 1 / -1; }.pain-points__list strong { font-size: 1.05rem; line-height: 1.35; }.pain-points__list span { max-width: 56ch; color: var(--muted); font-size: var(--fs-sm); line-height: 1.55; }.pain-points__close { max-width: 56ch; margin-top: 1.5rem; color: var(--ink); font-size: var(--fs-lead); font-weight: 600; }

/* Servicios */
.service-scale { background: var(--white); }.service-scale__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }.service-scale__group { display: flex; flex-direction: column; min-width: 0; padding: clamp(1.35rem, 1rem + 1.5vw, 2.25rem); background: var(--cloud); border: 1px solid var(--line-light); border-top: 3px solid var(--blue); border-radius: 1rem; }.service-scale__group--dark { color: var(--white); background: var(--ink); border-color: var(--ink); border-top-color: var(--teal); }.service-scale__eyebrow { color: var(--blue-ink); font-family: var(--font-utility); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.service-scale__group--dark .service-scale__eyebrow { color: var(--teal); }.service-scale__group h3 { max-width: 19ch; margin-top: .85rem; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.75rem); line-height: 1.12; }.service-scale__group ul { margin-top: 1.5rem; border-top: 1px solid var(--line-light); }.service-scale__group li { display: grid; gap: .3rem; padding-block: .9rem; border-bottom: 1px solid var(--line-light); }.service-scale__group li strong { font-size: .9375rem; }.service-scale__group li span { color: var(--muted); font-size: .875rem; line-height: 1.5; }.service-scale__group--dark ul, .service-scale__group--dark li { border-color: var(--line-dark); }.service-scale__group--dark li span { color: var(--on-dark); }.service-scale__fit { margin-top: auto; padding-top: 1.1rem; color: var(--blue-ink); font-size: .875rem; font-weight: 600; line-height: 1.5; }.service-scale__group--dark .service-scale__fit { color: var(--teal); }

/* Experiencia: evidencia abierta, con atribución explícita. */
.experience { background: var(--cloud); border-top: 1px solid var(--line-light); }.experience__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }.evidence-card { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(14rem, .95fr); min-width: 0; overflow: hidden; background: var(--white); border: 1px solid var(--line-light); border-radius: 1rem; box-shadow: 0 20px 48px -42px rgb(7 17 31 / .45); }.evidence-card--client { grid-column: 1 / -1; grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr); border-color: rgb(47 107 255 / .28); }.evidence-card__visual { position: relative; display: block; min-height: 14rem; overflow: hidden; background: var(--ink); border-right: 1px solid var(--line-light); color: var(--white); text-decoration: none; }.evidence-card__visual > img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 280ms var(--ease); }.evidence-card__visual:hover > img { transform: scale(1.025); }.evidence-card__browser { position: absolute; top: .7rem; left: .7rem; z-index: 1; padding: .35rem .55rem; color: var(--on-dark-strong); background: rgb(7 17 31 / .8); border: 1px solid rgb(255 255 255 / .14); border-radius: .35rem; font-family: var(--font-utility); font-size: .625rem; letter-spacing: .06em; }.evidence-card__body { display: flex; min-width: 0; flex-direction: column; padding: clamp(1rem, .8rem + .8vw, 1.45rem); }.evidence-card__type { color: var(--blue-ink); font-family: var(--font-utility); font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.evidence-card__body h3 { margin-top: .6rem; font-size: clamp(1.1rem, 1rem + .6vw, 1.4rem); line-height: 1.15; }.evidence-card__body > p:not(.evidence-card__type) { margin-top: .55rem; color: var(--muted); font-size: .8125rem; line-height: 1.55; }.evidence-card__body a { margin-top: auto; padding-top: 1rem; color: var(--blue-ink); font-size: .8125rem; font-weight: 700; text-decoration: none; }.evidence-card__body a:hover { color: var(--teal-ink); }.experience__note { max-width: 80ch; margin-top: 1rem; color: var(--muted); font-size: .75rem; line-height: 1.5; }

/* Módulo de portafolio: recuperado sin cambios de la versión publicada. */
.experience-within { background: var(--white); border-top: 1px solid var(--line-light); }.experience-within__heading { display: grid; grid-template-columns: minmax(11rem, .45fr) minmax(0, 1.55fr); gap: clamp(1.25rem, .9rem + 2.5vw, 3.5rem); align-items: start; margin-bottom: clamp(1.5rem, 1.15rem + 1.6vw, 2.5rem); }.experience-within__heading > div > p { max-width: 58ch; margin-top: .8rem; color: var(--muted); font-size: var(--fs-lead); }.portfolio-toolbar { display: flex; justify-content: flex-end; margin-bottom: 1.25rem; }.no-js .portfolio-controls { display: none; }.project-nav { min-height: 2.35rem; padding: .55rem .8rem; color: var(--muted); background: var(--white); border: 1px solid var(--line-light); border-radius: var(--radius); font: 600 .75rem/1 var(--font-utility); cursor: pointer; }.portfolio-controls { display: flex; flex: none; gap: .55rem; align-items: center; }.project-nav { display: inline-flex; gap: .45rem; align-items: center; justify-content: center; color: var(--ink); }.project-nav:disabled { cursor: default; opacity: .36; }.portfolio-position { min-width: 3.8rem; color: var(--ink); font: 700 .75rem/1 var(--font-utility); letter-spacing: .08em; text-align: center; }.js .portfolio-viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }.js .portfolio-viewport::-webkit-scrollbar { display: none; }.portfolio-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, .85rem + 1.2vw, 1.6rem); }.js .portfolio-viewport .portfolio-grid { display: flex; gap: 1rem; }.project-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; background: var(--white); border: 1px solid var(--line-light); border-radius: 1.125rem; box-shadow: var(--shadow-card); }.project-card--featured { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); }.js .portfolio-viewport .project-card { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); flex: 0 0 100%; scroll-snap-align: start; }.project-card[hidden] { display: none; }.project-card__visual { position: relative; display: block; min-height: 22rem; overflow: hidden; color: var(--ink); background: #eaf0f7; border-bottom: 1px solid var(--line-light); text-decoration: none; }.project-card--featured .project-card__visual, .js .portfolio-viewport .project-card__visual { min-height: 27rem; border-right: 1px solid var(--line-light); border-bottom: 0; }.project-browser { position: absolute; z-index: 3; inset: 0 0 auto; display: flex; gap: .8rem; align-items: center; height: 2.5rem; padding-inline: 1rem; color: var(--muted); background: rgb(255 255 255 / .94); border-bottom: 1px solid var(--line-light); font: 500 .7rem/1 var(--font-utility); }.project-browser span { color: var(--steel); letter-spacing: .16em; }.project-screen { position: absolute; display: block; overflow: hidden; background: var(--white); border: 1px solid rgb(7 17 31 / .16); box-shadow: 0 22px 40px -28px rgb(7 17 31 / .75); }.project-screen img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }.project-screen--desktop { top: 3.75rem; right: 13%; bottom: 1.6rem; left: 3.5%; border-radius: .45rem; }.project-screen--phone { z-index: 2; top: 24%; right: 3.5%; width: 19%; aspect-ratio: 540 / 1062; border: 4px solid var(--ink); border-radius: .8rem; box-shadow: 0 26px 48px -24px rgb(7 17 31 / .9); }.project-card:not(.project-card--featured) .project-screen--desktop { right: 16%; }.project-card:not(.project-card--featured) .project-screen--phone { width: 23%; }.project-card[data-project-id="tocumen"] .project-screen--desktop img { object-position: center; }.project-card[data-project-id="controlfauna"] .project-screen--desktop { bottom: auto; aspect-ratio: 1440 / 744; }.project-card[data-project-id="controlfauna"] .project-screen--phone { width: 17%; aspect-ratio: 638 / 1394; }.project-card__body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); }.project-card__type { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-bottom: .85rem; color: var(--muted); font: 500 .69rem/1.45 var(--font-utility); letter-spacing: .02em; text-transform: uppercase; }.project-card__type span { color: var(--blue-ink); font-weight: 700; }.project-card[data-project-type="professional"] .project-card__type span { color: var(--teal-ink); }.project-card h3 { max-width: 22ch; font-size: clamp(1.3rem, 1.1rem + .9vw, 1.85rem); line-height: 1.1; }.project-card h3 + p { margin-top: .8rem; color: var(--muted); font-size: var(--fs-sm); line-height: 1.6; }.project-card__link { display: inline-flex; gap: .5rem; align-items: center; align-self: flex-start; margin-top: auto; padding-top: 1.3rem; color: var(--ink); font-size: .8125rem; font-weight: 700; text-decoration: none; }

/* Dirección visible: la confianza se vincula con una persona y responsabilidades concretas. */
.founder-proof { background: var(--cloud); border-top: 1px solid var(--line-light); }
.founder-proof__layout { display: grid; grid-template-columns: minmax(0, .82fr) minmax(22rem, 1.18fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: center; }
.founder-proof__statement h2 { max-width: 13ch; margin-top: 1rem; }
.founder-proof__statement > p:not(.section-label) { max-width: 51ch; margin-top: 1rem; color: var(--muted); font-size: var(--fs-lead); line-height: 1.65; }
.founder-card { position: relative; overflow: hidden; padding: clamp(1.4rem, 1rem + 1.5vw, 2.2rem); color: var(--white); background: var(--ink); border-radius: 1rem; box-shadow: 0 2rem 4rem -2.8rem rgb(18 24 32 / .8); }
.founder-card::after { position: absolute; right: -3.5rem; bottom: -5.5rem; width: 12rem; height: 12rem; content: ""; border: 1px solid rgb(214 181 44 / .22); border-radius: 50%; pointer-events: none; }
.founder-card__identity { position: relative; z-index: 1; display: flex; gap: 1rem; align-items: center; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line-dark); }
.founder-card__identity > span { display: grid; width: 3.25rem; height: 3.25rem; flex: none; place-items: center; color: var(--ink); background: var(--teal); border-radius: 50%; font: 700 .88rem/1 var(--font-utility); letter-spacing: .06em; }
.founder-card h3 { color: var(--white); font-size: 1.2rem; }
.founder-card__identity p { margin-top: .25rem; color: var(--steel); font-size: .75rem; line-height: 1.4; }
.founder-card > p { position: relative; z-index: 1; max-width: 62ch; margin-top: 1.2rem; color: var(--on-dark); font-size: .88rem; line-height: 1.65; }
.founder-card > ul { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin-top: 1.25rem; }
.founder-card > ul li { padding-top: .75rem; color: var(--on-dark-strong); border-top: 2px solid var(--blue); font-size: .72rem; font-weight: 600; line-height: 1.45; }
.founder-card > ul li:last-child { border-top-color: var(--teal); }
.founder-card > a { position: relative; z-index: 1; display: inline-flex; gap: .5rem; align-items: center; margin-top: 1.35rem; color: var(--teal); font-size: .8rem; font-weight: 700; text-decoration: none; }
.founder-card > a:hover { color: var(--white); }

/* Método */
.methodology { color: var(--white); background: var(--ink); }.section-intro--light .section-label { color: var(--teal); }.section-intro--light > div > p { color: var(--on-dark); }.methodology__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, .8rem + 1.2vw, 1.75rem); }.methodology__steps li { min-width: 0; padding-top: 1rem; border-top: 2px solid var(--teal); }.methodology__steps span { color: var(--teal); font-family: var(--font-utility); font-size: .75rem; font-weight: 700; letter-spacing: .1em; }.methodology__steps h3 { margin-top: .6rem; color: var(--white); font-size: 1.25rem; }.methodology__steps p { margin-top: .65rem; color: var(--on-dark); font-size: .875rem; line-height: 1.6; }

/* Inversión y contacto */
.investment-contact { background: var(--cloud); }.investment-contact__layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(21rem, 1.05fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: start; }.investment-table { background: var(--white); border: 1px solid var(--line-light); border-radius: 1rem; overflow: hidden; box-shadow: var(--shadow-card); }.investment-table__head, .investment-table__row { display: grid; grid-template-columns: minmax(8rem, .65fr) minmax(12rem, 1.2fr) minmax(4.6rem, .35fr); gap: 1rem; }.investment-table__head { padding: .8rem 1rem; color: var(--muted); background: #EDF3F9; font-family: var(--font-utility); font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.investment-table__row { align-items: start; padding: 1.15rem 1rem; border-top: 1px solid var(--line-light); }.investment-table__row strong { line-height: 1.35; }.investment-table__row span { color: var(--muted); font-size: .8125rem; line-height: 1.55; }.investment-table__row b { color: var(--ink); font-size: 1.15rem; text-align: right; white-space: nowrap; }.investment-note { margin-top: .8rem; color: var(--muted); font-size: .75rem; }.contact-panel { padding: clamp(1.3rem, 1rem + 1.2vw, 2rem); color: var(--white); background: var(--ink); border-radius: 1rem; box-shadow: 0 2rem 4rem -2.5rem rgb(7 17 31 / .9); }.contact-panel__label { color: var(--teal); font-family: var(--font-utility); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.contact-panel h2 { margin-top: .65rem; color: var(--white); font-size: clamp(1.45rem, 1.25rem + 1vw, 2rem) !important; }.contact-panel > p:not(.contact-panel__label) { margin-top: .65rem; color: var(--on-dark); font-size: .9375rem; }.contact-panel .form { margin-top: 1.25rem; padding: 0; background: transparent; border: 0; box-shadow: none; }.contact-panel .field > label { color: var(--white); }.contact-panel .field__hint, .contact-panel .form__legal { color: var(--steel); }.contact-panel input, .contact-panel textarea { background: var(--white); }.contact-panel .form__footer { align-items: center; gap: 1rem; }.contact-panel__whatsapp { color: var(--teal); font-size: .8125rem; font-weight: 600; text-decoration: none; }.contact-panel__whatsapp:hover { color: var(--white); }

@media (max-width: 900px) { .home-page .hero__inner, .investment-contact__layout, .founder-proof__layout { grid-template-columns: 1fr; }.hero-map { justify-self: start; width: min(100%, 34rem); }.impact-band__intro { grid-template-columns: 1fr; }.impact-band__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }.impact-band__stats li:nth-child(3) { border-left: 0; }.impact-band__stats li:nth-child(n + 3) { border-top: 1px solid var(--line-dark); }.impact-band__sources { grid-template-columns: 1fr; }.service-scale__grid { grid-template-columns: 1fr; }.experience__grid { grid-template-columns: 1fr; }.evidence-card, .evidence-card--client { grid-template-columns: minmax(0, 1.1fr) minmax(15rem, .9fr); }.founder-proof__statement h2 { max-width: 18ch; }.methodology__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1080px) { .home-page .js .nav-toggle + .nav { background: var(--white); border-bottom-color: var(--line-light); box-shadow: 0 22px 35px -28px rgb(7 17 31 / .55); }.home-page .js .nav-toggle + .nav .nav__link { color: var(--ink); border-bottom-color: var(--line-light); } }
@media (max-width: 700px) { .section-intro { grid-template-columns: 1fr; gap: .9rem; }.pain-points__list { grid-template-columns: 1fr; }.pain-points__list li, .pain-points__list li:nth-child(even) { padding: 1rem 0; border-left: 0; }.pain-points__list li:last-child { grid-column: auto; }.founder-card > ul { grid-template-columns: 1fr; }.investment-table__head { display: none; }.investment-table__row { grid-template-columns: 1fr auto; gap: .4rem 1rem; }.investment-table__row span { grid-column: 1 / -1; grid-row: 2; }.investment-table__row b { grid-column: 2; grid-row: 1; }.contact-panel { margin-inline: calc(var(--s-1) * -1); } }
@media (max-width: 520px) { .impact-band__stats { grid-template-columns: 1fr; }.impact-band__stats li + li, .impact-band__stats li:nth-child(3) { border-top: 1px solid var(--line-dark); border-left: 0; }.impact-band__stats strong { font-size: clamp(3rem, 18vw, 4.5rem); } }
@media (max-width: 620px) { .home-page .section { padding-block: 2.75rem; }.home-page .hero { min-height: auto; padding-block: 2.5rem; }.home-page .hero__inner { gap: 2rem; }.home-page .hero h1 { font-size: clamp(2.25rem, 10.4vw, 3.1rem); }.home-page .hero .actions { align-items: stretch; flex-direction: column; }.home-page .hero .actions .btn { width: 100%; }.home-page .hero .actions .text-link { align-self: flex-start; }.hero-map { width: 100%; }.hero-map__figure { padding: 1rem; }.evidence-card, .evidence-card--client { display: flex; flex-direction: column; }.evidence-card__visual { min-height: 13rem; border-right: 0; border-bottom: 1px solid var(--line-light); }.methodology__steps { grid-template-columns: 1fr; gap: 1.25rem; }.contact-panel .form__footer .btn { width: 100%; }.contact-panel__whatsapp { display: block; width: 100%; text-align: center; } }
@media (prefers-reduced-motion: reduce) { .hero-map { animation: none; } }

/* Adaptación original del portafolio para tableta y móvil. */
@media (max-width: 900px) { .project-card--featured { grid-template-columns: minmax(0, 1.15fr) minmax(17rem, .85fr); } }
@media (max-width: 760px) { .experience-within__heading { grid-template-columns: 1fr; gap: 1.25rem; }.portfolio-controls { justify-content: flex-end; }.portfolio-grid { grid-template-columns: 1fr; }.project-card--featured { display: flex; grid-column: auto; }.project-card--featured .project-card__visual, .js .portfolio-viewport .project-card__visual { min-height: 23rem; border-right: 0; border-bottom: 1px solid var(--line-light); }.js .portfolio-viewport .project-card { display: flex; grid-template-columns: none; } }
@media (max-width: 620px) { .portfolio-controls { justify-content: space-between; }.project-nav { min-height: 2.65rem; }.project-card__visual, .project-card--featured .project-card__visual, .js .portfolio-viewport .project-card__visual { min-height: 20rem; }.project-screen--desktop { right: 15%; bottom: 1.25rem; left: 4%; }.project-screen--phone, .project-card:not(.project-card--featured) .project-screen--phone { right: 3%; width: 25%; }.project-card[data-project-id="controlfauna"] .project-screen--phone { width: 22%; }.project-browser { font-size: .625rem; } }

/* Componentes de lectura rápida: cada sección responde una sola pregunta. */
.pain-points__list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  border: 0;
}

.pain-points__list li,
.pain-points__list li:nth-child(even),
.pain-points__list li:last-child {
  display: flex;
  grid-column: auto;
  flex-direction: column;
  min-height: 17.5rem;
  padding: clamp(1.2rem, 1rem + 1.1vw, 1.75rem);
  background: var(--white);
  border: 1px solid var(--line-light);
  border-left: 0;
  border-radius: .9rem;
  box-shadow: 0 18px 35px -32px rgb(7 17 31 / .5);
}

.pain-point__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.35rem;
  color: var(--blue-ink);
  font: 700 .68rem/1 var(--font-utility);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.pain-point__meta span:first-child {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  color: var(--white);
  background: var(--ink);
  border-radius: 50%;
}

.pain-points__list strong {
  max-width: 19ch;
  font-size: clamp(1.08rem, 1rem + .35vw, 1.3rem);
  line-height: 1.18;
}

.pain-points__list > li > span {
  margin-top: .75rem;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.55;
}

.pain-point__cue {
  margin-top: auto;
  padding-top: 1rem;
  color: var(--ink);
  border-top: 1px solid var(--line-light);
  font-size: .76rem;
  line-height: 1.45;
}

.pain-point__cue b { color: var(--blue-ink); }

.service-scale__group {
  position: relative;
  overflow: hidden;
  border-top-width: 1px;
}

.service-scale__group::after {
  position: absolute;
  right: -2rem;
  bottom: -3.4rem;
  width: 9rem;
  height: 9rem;
  content: "";
  border: 1px solid rgb(47 107 255 / .18);
  border-radius: 50%;
  pointer-events: none;
}

.service-scale__group--dark::after { border-color: rgb(24 191 165 / .28); }

.service-scale__heading {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  justify-content: space-between;
}

.service-scale__heading .service-scale__eyebrow { max-width: 26ch; }

.service-scale__symbol {
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  flex: none;
  place-items: center;
  color: var(--blue-ink);
  background: rgb(47 107 255 / .1);
  border-radius: 50%;
  font-size: 1.25rem;
  font-weight: 700;
}

.service-scale__group--dark .service-scale__symbol {
  color: var(--teal);
  background: rgb(24 191 165 / .12);
}

.service-scale__group ul { position: relative; z-index: 1; }

.service-scale__group li {
  grid-template-columns: .85rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
}

.service-scale__group li > div {
  display: grid;
  gap: .35rem;
}

.service-scale__line {
  width: .65rem;
  height: .65rem;
  margin-top: .22rem;
  background: var(--blue);
  border-radius: 50%;
  box-shadow: 0 0 0 .25rem rgb(47 107 255 / .11);
}

.service-scale__group--dark .service-scale__line {
  background: var(--teal);
  box-shadow: 0 0 0 .25rem rgb(24 191 165 / .13);
}

.service-scale__fit {
  position: relative;
  z-index: 1;
  padding: 1.1rem 1rem 0 0 !important;
  font-size: .82rem !important;
}

.service-scale__fit b { color: var(--ink); }
.service-scale__group--dark .service-scale__fit b { color: var(--white); }

.experience-within__lead { max-width: 56ch !important; }

.methodology__steps {
  gap: 1rem;
  counter-reset: method;
}

.methodology__steps li {
  display: flex;
  flex-direction: column;
  min-height: 17.75rem;
  padding: 1.25rem;
  background: rgb(255 255 255 / .045);
  border: 1px solid rgb(214 224 238 / .14);
  border-top: 2px solid var(--teal);
  border-radius: .8rem;
}

.methodology__step-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.methodology__step-top small {
  color: var(--steel);
  font: 700 .64rem/1 var(--font-utility);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.methodology__steps h3 { margin-top: 1.5rem; }

.methodology__output {
  margin-top: auto !important;
  padding-top: .9rem;
  color: var(--on-dark-strong) !important;
  border-top: 1px solid var(--line-dark);
  font-size: .74rem !important;
  line-height: 1.5 !important;
}

.methodology__output b { color: var(--teal); }

.investment-table {
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  counter-reset: investment;
}

.investment-table__intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0 .8rem;
}

.investment-table__intro p {
  color: var(--ink);
  font: 700 .72rem/1 var(--font-utility);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.investment-table__intro span {
  color: var(--muted);
  font-size: .72rem;
  text-align: right;
}

.investment-table__row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .35rem 1rem;
  align-items: start;
  min-height: 8.75rem;
  margin-top: .75rem;
  padding: 1.1rem 1.2rem 1.15rem 3.7rem;
  overflow: hidden;
  counter-increment: investment;
  background: var(--white);
  border: 1px solid var(--line-light);
  border-radius: .75rem;
  box-shadow: 0 16px 30px -28px rgb(7 17 31 / .6);
}

.investment-table__row::before {
  position: absolute;
  top: 1.15rem;
  left: 1.1rem;
  display: grid;
  width: 1.7rem;
  height: 1.7rem;
  place-items: center;
  color: var(--blue-ink);
  content: counter(investment, decimal-leading-zero);
  background: rgb(47 107 255 / .1);
  border-radius: 50%;
  font: 700 .65rem/1 var(--font-utility);
}

.investment-table__row > p {
  grid-column: 1;
  color: var(--blue-ink);
  font: 700 .63rem/1.2 var(--font-utility);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.investment-table__row strong { grid-column: 1; margin-top: .15rem; margin-bottom: .25rem; font-size: .98rem; }

.investment-table__row > span {
  grid-column: 1;
  max-width: 48ch;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.45;
}

.investment-table__row b {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: center;
  padding-left: .7rem;
  color: var(--ink);
  font-size: 1rem;
  text-align: right;
  white-space: nowrap;
}

.investment-note--offer {
  margin-top: .55rem;
  padding: .8rem .95rem;
  color: var(--ink);
  font-size: .82rem;
  line-height: 1.5;
  background: rgb(47 107 255 / .07);
  border-radius: .65rem;
}

.investment-note--offer b { color: var(--blue-ink); }

@media (hover: hover) and (pointer: fine) {
  .pain-points__list li,
  .investment-table__row,
  .methodology__steps li { transition: transform 220ms var(--ease), box-shadow 220ms var(--ease), border-color 220ms var(--ease); }
  .pain-points__list li:hover,
  .investment-table__row:hover { transform: translateY(-.22rem); border-color: rgb(47 107 255 / .35); box-shadow: 0 24px 38px -30px rgb(7 17 31 / .55); }
  .methodology__steps li:hover { transform: translateY(-.22rem); border-color: rgb(24 191 165 / .55); }
}

@media (max-width: 900px) {
  .pain-points__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pain-points__list li:last-child { grid-column: 1 / -1; }
  .pain-points__list li { min-height: 18.5rem; }
  .methodology__steps li { min-height: 15rem; }
}

@media (max-width: 700px) {
  .pain-points__list { grid-template-columns: 1fr; }
  .pain-points__list li,
  .pain-points__list li:nth-child(even),
  .pain-points__list li:last-child { min-height: 0; padding: 1.2rem; border-left: 1px solid var(--line-light); }
  .pain-point__meta { margin-bottom: 1rem; }
  .pain-point__cue { margin-top: 1rem; }
  .investment-table__intro { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .investment-table__intro span { text-align: left; }
}

@media (max-width: 440px) {
  .investment-table__row { grid-template-columns: 1fr; padding-left: 3.35rem; }
  .investment-table__row b { grid-column: 1; grid-row: auto; padding: .35rem 0 0; text-align: left; }
}

/* Señales de conversión: valor, siguiente paso y evidencia verificable. */
.section-next {
  display: inline-flex;
  gap: .6rem;
  align-items: center;
  margin-top: 1.25rem;
  color: var(--blue-ink);
  font-size: .9rem;
  font-weight: 700;
  text-decoration: none;
}

.section-next span { transition: transform 180ms var(--ease); }
.section-next:hover { color: var(--teal-ink); }
.section-next:hover span { transform: translateX(.2rem); }

.service-scale__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 1rem;
  padding: 1.1rem 1.25rem;
  background: var(--cloud);
  border: 1px solid var(--line-light);
  border-radius: .85rem;
}

.service-scale__cta p {
  max-width: 46ch;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.5;
}

.service-scale__cta .btn { flex: none; }

@media (max-width: 700px) {
  .service-scale__cta { align-items: flex-start; flex-direction: column; }
  .service-scale__cta .btn { width: 100%; }
}

.contact-panel__availability {
  margin-top: .85rem !important;
  color: var(--on-dark-strong) !important;
  font-size: .82rem !important;
}

.contact-panel__availability a {
  color: var(--teal);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}

.contact-panel__availability a:hover { color: var(--white); }

/* Armonización de componentes con el plumaje: dorado para guía, castaño para acción. */
.project-card__visual { background: #EEE9DA; }
.project-screen { border-color: rgb(18 24 32 / .16); box-shadow: 0 22px 40px -28px rgb(18 24 32 / .75); }
.project-screen--phone { box-shadow: 0 26px 48px -24px rgb(18 24 32 / .9); }
.project-card[data-project-type="professional"] .project-card__type span { color: #87492F; }
.service-scale__group::after { border-color: rgb(214 181 44 / .24); }
.service-scale__group--dark { border-top-color: var(--bird-rust); }
.service-scale__group--dark::after { border-color: rgb(152 83 51 / .4); }
.service-scale__symbol { color: var(--bird-rust); background: rgb(214 181 44 / .14); }
.service-scale__group--dark .service-scale__symbol { color: var(--bird-gold-soft); background: rgb(152 83 51 / .22); }
.service-scale__line { background: var(--bird-gold); box-shadow: 0 0 0 .25rem rgb(214 181 44 / .14); }
.service-scale__group--dark .service-scale__line { background: var(--bird-rust); box-shadow: 0 0 0 .25rem rgb(152 83 51 / .2); }
.investment-table__head { background: #ECE6D7; }
.investment-table__row::before { color: #684C00; background: rgb(214 181 44 / .18); }
.investment-note--offer { background: rgb(214 181 44 / .16); }
.investment-note--offer b { color: #684C00; }

@media (hover: hover) and (pointer: fine) {
  .hero-shot:hover { transform: translateY(-.25rem); }
  .pain-points__list li:hover,
  .investment-table__row:hover { border-color: rgb(214 181 44 / .62); }
  .methodology__steps li:hover { border-color: rgb(152 83 51 / .82); }
}

/* Preguntas frecuentes: quitar las objeciones antes del formulario. */
.faq { background: var(--cloud); }
.faq__list { display: grid; gap: .55rem; }
.faq__item { padding: .95rem 1.15rem; background: var(--white); border: 1px solid var(--line-light); border-radius: .75rem; transition: border-color .3s ease, box-shadow .3s ease, background-color .3s ease; }
.faq__item:hover { border-color: rgb(214 181 44 / .45); box-shadow: 0 14px 28px -26px rgb(7 17 31 / .5); }
.faq__item[open] { border-color: rgb(214 181 44 / .62); box-shadow: 0 18px 34px -28px rgb(7 17 31 / .55); }
.faq__item summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; cursor: pointer; color: var(--ink); font-size: .95rem; font-weight: 700; line-height: 1.4; list-style: none; transition: color .25s ease; }
.faq__item summary:hover { color: var(--bird-rust); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  flex: none;
  width: 1rem;
  height: 1rem;
  margin-top: .15rem;
  color: var(--bird-rust);
  content: "";
  background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
  background-position: center, center;
  background-repeat: no-repeat;
  background-size: 100% 2px, 2px 100%;
  transition: background-size .3s ease, transform .45s cubic-bezier(.2, .8, .25, 1);
}
.faq__item[open] summary::after { background-size: 100% 2px, 2px 0; transform: rotate(180deg); }
.faq__answer { overflow: hidden; }
.faq__item[data-closing] summary::after { background-size: 100% 2px, 2px 100%; transform: none; }
.faq__answer p { max-width: 72ch; margin-top: .7rem; color: var(--muted); font-size: .85rem; line-height: 1.6; }
.js .faq__item[open] .faq__answer p { animation: faq-answer-in .4s cubic-bezier(.2, .8, .25, 1) both; }
@keyframes faq-answer-in { from { opacity: 0; transform: translateY(-.35rem); } to { opacity: 1; transform: none; } }
.faq__item:focus-within { border-color: rgb(214 181 44 / .62); }
@media (prefers-reduced-motion: reduce) {
  .js .faq__item[open] .faq__answer p { animation: none; }
}
