/*
Theme Name: Factor Futuro
Theme URI: https://factorfuturo.cl/
Description: Tema hijo editorial de Blocksy para Factor Futuro.
Author: Factor Futuro
Template: blocksy
Version: 1.2.0
Text Domain: factor-futuro
Requires at least: 6.2
Requires PHP: 8.0
License: GPL-2.0-or-later
*/

:root {
  --ff-navy: #020719;
  --ff-blue: #087CF4;
  --ff-teal: #00D8BE;
  --ff-background: #F4F8FC;
  --ff-text: #08111F;
  --ff-muted: #64748B;
  --ff-border: #D9E5F0;
  --ff-breaking: #DC2626;
  --ff-white: #FFFFFF;
  --ff-content: 1240px;
  --ff-reading: 760px;
  --ff-transition: 180ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ff-text); background: var(--ff-background); font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 17px; line-height: 1.65; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; transition: color var(--ff-transition); }
a:hover { color: var(--ff-blue); }
button, input { font: inherit; }
:focus-visible { outline: 3px solid var(--ff-teal); outline-offset: 3px; }
.ff-container { width: min(calc(100% - 40px), var(--ff-content)); margin-inline: auto; }
.ff-skip-link { position: fixed; z-index: 9999; left: 1rem; top: -5rem; padding: .7rem 1rem; color: var(--ff-white); background: var(--ff-blue); }
.ff-skip-link:focus { top: 1rem; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.ff-topbar { color: #CBD5E1; background: #070C16; font-size: .78rem; letter-spacing: .03em; }
.ff-topbar__inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ff-topbar__latest { color: var(--ff-white); font-weight: 700; text-transform: uppercase; }
.ff-header { color: var(--ff-white); background: var(--ff-navy); }
.ff-header__main { min-height: 100px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.5rem; }
.ff-brand { justify-self: center; color: var(--ff-white); font-size: clamp(1.55rem, 3vw, 2.35rem); font-weight: 900; line-height: 1; letter-spacing: -.055em; }
.ff-brand:hover { color: var(--ff-white); }
.ff-brand span { color: var(--ff-teal); }
.ff-header__tools { justify-self: end; display: flex; align-items: center; gap: .75rem; }
.ff-search-toggle, .ff-menu-toggle { border: 0; color: var(--ff-white); background: transparent; cursor: pointer; padding: .65rem; }
.ff-newsletter-button, .ff-button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: .65rem 1.05rem; border: 1px solid var(--ff-blue); color: var(--ff-white); background: var(--ff-blue); font-weight: 800; cursor: pointer; transition: background var(--ff-transition), border-color var(--ff-transition); }
.ff-newsletter-button:hover, .ff-button:hover { color: var(--ff-white); background: #1D4ED8; border-color: #1D4ED8; }
.ff-menu-toggle { display: none; }
.ff-nav { border-top: 1px solid rgba(255,255,255,.12); border-bottom: 3px solid var(--ff-blue); background: var(--ff-navy); }
.ff-nav ul { display: flex; justify-content: center; gap: clamp(.8rem, 2vw, 1.7rem); margin: 0; padding: 0; list-style: none; }
.ff-nav a { display: block; padding: .82rem 0; color: #E2E8F0; font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .025em; }
.ff-nav a:hover, .ff-nav .current-menu-item > a { color: var(--ff-teal); }
.ff-search-panel { display: none; padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.12); }
.ff-search-panel.is-open { display: block; }
.ff-search-form { display: flex; gap: .5rem; max-width: 720px; margin-inline: auto; }
.ff-search-form input { min-width: 0; flex: 1; min-height: 46px; padding: .7rem .9rem; border: 1px solid var(--ff-border); background: var(--ff-white); color: var(--ff-text); }

.ff-main { min-height: 55vh; padding-block: clamp(2rem, 5vw, 4.5rem); }
.ff-section { margin-top: clamp(3rem, 6vw, 5.5rem); }
.ff-section:first-child { margin-top: 0; }
.ff-section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: .65rem; border-bottom: 2px solid var(--ff-navy); }
.ff-section-heading h2, .ff-archive-header h1 { margin: 0; color: var(--ff-navy); font-size: clamp(1.75rem, 3.2vw, 2.35rem); line-height: 1.1; letter-spacing: -.035em; }
.ff-section-heading a { color: var(--ff-blue); font-size: .85rem; font-weight: 800; text-transform: uppercase; }
.ff-category { display: inline-block; margin-bottom: .55rem; color: var(--ff-blue); font-size: .75rem; font-weight: 900; line-height: 1.2; letter-spacing: .07em; text-transform: uppercase; }
.ff-meta { display: flex; flex-wrap: wrap; gap: .35rem .8rem; color: var(--ff-muted); font-size: .78rem; }

.ff-hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, .85fr); gap: 1.5rem; }
.ff-hero__lead { position: relative; min-height: 520px; overflow: hidden; background: var(--ff-navy); }
.ff-hero__lead img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; opacity: .66; }
.ff-hero__lead-content { position: absolute; inset: auto 0 0; padding: clamp(1.25rem, 4vw, 2.5rem); color: var(--ff-white); background: linear-gradient(transparent, rgba(7,12,22,.95)); }
.ff-hero__lead .ff-category { color: #5EEAD4; }
.ff-hero__lead h1 { margin: 0 0 .75rem; font-size: clamp(2rem, 4.2vw, 3.5rem); line-height: 1.02; letter-spacing: -.05em; }
.ff-hero__lead h1,
.ff-hero__lead h1 a,
.ff-hero__lead > a,
.ff-hero__lead > a:hover { color: var(--ff-white); }
.ff-hero__lead p { max-width: 720px; margin: 0 0 .8rem; color: #E2E8F0; font-size: clamp(.95rem, 1.5vw, 1.1rem); line-height: 1.5; }
.ff-hero__lead .ff-meta { color: #CBD5E1; }
.ff-hero__secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ff-hero__secondary .ff-card { border-bottom: 1px solid var(--ff-border); }

.ff-card { min-width: 0; }
.ff-card__image { display: block; margin-bottom: .85rem; overflow: hidden; aspect-ratio: 16/9; background: #E2E8F0; }
.ff-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 250ms ease; }
.ff-card:hover .ff-card__image img { transform: scale(1.025); }
.ff-card h2, .ff-card h3 { margin: 0 0 .55rem; color: var(--ff-navy); font-size: clamp(1.05rem, 1.7vw, 1.35rem); line-height: 1.2; letter-spacing: -.025em; }
.ff-card p { margin: .55rem 0; color: var(--ff-muted); font-size: .92rem; line-height: 1.5; }
.ff-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.ff-timeline { border-top: 1px solid var(--ff-border); }
.ff-timeline__item { display: grid; grid-template-columns: 110px 150px 1fr; gap: 1rem; align-items: baseline; padding: .85rem 0; border-bottom: 1px solid var(--ff-border); }
.ff-timeline__time { color: var(--ff-muted); font-size: .8rem; }
.ff-timeline__item .ff-category { margin: 0; }
.ff-timeline__item h3 { margin: 0; font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.3; }

.ff-archive-header { max-width: 820px; margin-bottom: 2.25rem; }
.ff-archive-header p { color: var(--ff-muted); }
.ff-featured-row { display: grid; grid-template-columns: 1.15fr 1fr; gap: 2rem; align-items: center; margin-bottom: 3rem; padding-bottom: 3rem; border-bottom: 1px solid var(--ff-border); }
.ff-featured-row h2 { margin: .4rem 0 .8rem; font-size: clamp(1.8rem, 3.5vw, 2.8rem); line-height: 1.05; letter-spacing: -.04em; }
.ff-list { display: grid; gap: 1.5rem; }
.ff-list-card { display: grid; grid-template-columns: 260px 1fr; gap: 1.4rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--ff-border); }
.ff-list-card .ff-card__image { margin: 0; }
.ff-list-card h2 { margin: .2rem 0 .55rem; font-size: clamp(1.25rem, 2.5vw, 1.75rem); line-height: 1.15; }
.ff-pagination { margin-top: 2.5rem; }
.ff-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.ff-pagination .page-numbers { padding: .45rem .75rem; border: 1px solid var(--ff-border); background: var(--ff-white); }
.ff-pagination .current { color: var(--ff-white); border-color: var(--ff-blue); background: var(--ff-blue); }

.ff-article { width: min(calc(100% - 40px), 1100px); margin-inline: auto; }
.ff-article__header { max-width: 940px; margin-bottom: 2rem; }
.ff-article__header h1 { margin: .3rem 0 1rem; color: var(--ff-navy); font-size: clamp(2.4rem, 6vw, 4.2rem); line-height: .99; letter-spacing: -.055em; }
.ff-article__dek { margin: 0 0 1.25rem; color: #475569; font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.45; }
.ff-article__byline { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; }
.ff-article__byline img { border-radius: 50%; }
.ff-article__hero { width: 100%; margin: 0 0 2.5rem; }
.ff-article__hero figcaption { margin-top: .5rem; color: var(--ff-muted); font-size: .78rem; }
.ff-article__layout { display: grid; grid-template-columns: minmax(0, var(--ff-reading)) 220px; gap: 3rem; justify-content: center; }
.ff-article__content { min-width: 0; font-size: clamp(1.05rem, 1.6vw, 1.17rem); }
.ff-article__content > * { max-width: var(--ff-reading); }
.ff-article__content h2 { margin: 2.4rem 0 .8rem; color: var(--ff-navy); font-size: clamp(1.75rem, 3.5vw, 2.25rem); line-height: 1.15; }
.ff-article__content h3 { margin: 2rem 0 .6rem; font-size: clamp(1.35rem, 2.7vw, 1.65rem); }
.ff-article__content blockquote { margin: 2rem 0; padding: .4rem 0 .4rem 1.5rem; border-left: 5px solid var(--ff-teal); color: var(--ff-navy); font-size: 1.35em; font-weight: 700; line-height: 1.35; }
.ff-article__content .wp-block-image.alignwide, .ff-article__content .wp-block-gallery.alignwide, .ff-article__content .wp-block-embed.alignwide { width: min(100vw - 40px, 1040px); max-width: 1040px; margin-left: 50%; transform: translateX(-50%); }
.ff-article__content iframe { max-width: 100%; }
.ff-article__aside { font-size: .85rem; }
.ff-share { position: sticky; top: 1.5rem; padding-top: .8rem; border-top: 2px solid var(--ff-navy); }
.ff-share a { display: block; padding: .45rem 0; color: var(--ff-blue); font-weight: 800; }
.ff-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--ff-border); }
.ff-tags a { padding: .3rem .6rem; border: 1px solid var(--ff-border); font-size: .78rem; }

.ff-newsletter { margin-top: clamp(3rem, 6vw, 5rem); padding: clamp(1.5rem, 5vw, 3.5rem); color: var(--ff-white); background: var(--ff-navy); }
.ff-newsletter__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.ff-newsletter h2 { margin: 0 0 .4rem; font-size: clamp(1.8rem, 3.5vw, 2.5rem); line-height: 1.1; }
.ff-newsletter p { margin: 0; color: #CBD5E1; }
.ff-newsletter form { display: flex; gap: .6rem; }
.ff-newsletter input { min-width: 0; flex: 1; min-height: 48px; padding: .7rem .9rem; border: 1px solid #475569; background: var(--ff-white); }
.ff-empty { max-width: 700px; padding: 3rem; border: 1px solid var(--ff-border); background: var(--ff-white); text-align: center; }

.ff-footer { margin-top: 4rem; color: #CBD5E1; background: var(--ff-navy); }
.ff-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2.5rem; padding-block: 4rem; }
.ff-footer h2, .ff-footer h3 { margin-top: 0; color: var(--ff-white); }
.ff-footer h2 { letter-spacing: -.04em; }
.ff-footer ul { margin: 0; padding: 0; list-style: none; }
.ff-footer li { margin-bottom: .45rem; }
.ff-footer a:hover { color: var(--ff-teal); }
.ff-footer__bottom { padding: 1rem 0; border-top: 1px solid #334155; font-size: .78rem; }

@media (max-width: 980px) {
  .ff-header__main { grid-template-columns: auto 1fr auto; }
  .ff-brand { justify-self: start; }
  .ff-header__tools { grid-column: 3; }
  .ff-menu-toggle { display: inline-flex; }
  .ff-nav { display: none; }
  .ff-nav.is-open { display: block; }
  .ff-nav ul { flex-direction: column; gap: 0; padding-block: .5rem; }
  .ff-nav a { padding: .7rem 0; }
  .ff-hero { grid-template-columns: 1fr; }
  .ff-hero__lead, .ff-hero__lead img { min-height: 480px; }
  .ff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ff-article__layout { grid-template-columns: 1fr; }
  .ff-article__aside { order: -1; }
  .ff-share { position: static; display: flex; flex-wrap: wrap; gap: 1rem; }
  .ff-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .ff-container, .ff-article { width: min(calc(100% - 28px), var(--ff-content)); }
  .ff-topbar__date { display: none; }
  .ff-header__main { min-height: 76px; gap: .5rem; }
  .ff-newsletter-button { display: none; }
  .ff-hero__lead, .ff-hero__lead img { min-height: 430px; }
  .ff-hero__secondary, .ff-grid { grid-template-columns: 1fr; }
  .ff-hero__secondary .ff-card { display: grid; grid-template-columns: 120px 1fr; gap: .9rem; padding-bottom: 1rem; }
  .ff-hero__secondary .ff-card__image { margin: 0; }
  .ff-timeline__item { grid-template-columns: 76px 1fr; gap: .25rem .8rem; }
  .ff-timeline__item .ff-category { grid-column: 2; grid-row: 1; }
  .ff-timeline__item h3 { grid-column: 1 / -1; }
  .ff-featured-row, .ff-list-card { grid-template-columns: 1fr; gap: 1rem; }
  .ff-list-card .ff-card__image { aspect-ratio: 16/9; }
  .ff-newsletter__inner { grid-template-columns: 1fr; }
  .ff-newsletter form, .ff-search-form { flex-direction: column; }
  .ff-footer__grid { grid-template-columns: 1fr; padding-block: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}


/* Identidad visual Factor Futuro — septiembre 2026 */
.ff-topbar {
  background: #010411;
  border-bottom: 1px solid rgba(0, 198, 242, .18);
}

.ff-topbar__latest {
  color: #00D8BE;
}

.ff-header {
  background:
    radial-gradient(circle at 50% -140%, rgba(8, 124, 244, .36), transparent 58%),
    #020719;
}

.ff-header__main {
  min-height: 152px;
}

.ff-brand--logo {
  display: flex;
  width: clamp(168px, 18vw, 214px);
  height: 138px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  line-height: 0;
}

.ff-brand--logo img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 8px 24px rgba(0, 198, 242, .12));
}

.ff-newsletter-button,
.ff-button {
  border-color: #00C6F2;
  background: linear-gradient(115deg, #087CF4 0%, #00C6F2 55%, #00D8BE 100%);
  box-shadow: 0 8px 22px rgba(8, 124, 244, .2);
}

.ff-newsletter-button:hover,
.ff-button:hover {
  border-color: #00D8BE;
  background: linear-gradient(115deg, #0669D3 0%, #00AEDA 55%, #00BFA9 100%);
}

.ff-nav {
  border-bottom-color: #00C6F2;
  background: #020719;
}

.ff-nav a:hover,
.ff-nav .current-menu-item > a {
  color: #00D8BE;
}

.ff-category,
.ff-section-heading a {
  color: #087CF4;
}

.ff-hero__lead .ff-category {
  color: #00D8BE;
}

.ff-section-heading {
  border-bottom-color: #020719;
}

.ff-hero__lead-content {
  background: linear-gradient(transparent, rgba(2, 7, 25, .97));
}

.ff-newsletter,
.ff-footer {
  background:
    radial-gradient(circle at 85% 5%, rgba(0, 198, 242, .14), transparent 34%),
    linear-gradient(145deg, #020719 0%, #06152F 100%);
}

.ff-newsletter {
  border-top: 3px solid #00C6F2;
}

.ff-footer {
  border-top: 1px solid rgba(0, 216, 190, .28);
}

.ff-footer__brand {
  display: block;
  width: min(180px, 100%);
  margin-bottom: 1rem;
  overflow: hidden;
  line-height: 0;
}

.ff-footer__brand img {
  width: 100%;
  height: auto;
}

.ff-footer__bottom {
  border-top-color: rgba(0, 198, 242, .22);
}

@media (max-width: 640px) {
  .ff-header__main {
    min-height: 112px;
  }

  .ff-brand--logo {
    width: 132px;
    height: 104px;
  }
}


.ff-footer__social a {
  color: var(--ff-white);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.ff-footer__social a:hover {
  color: #00D8BE;
}

.ff-footer__contact-note {
  margin-top: 1rem;
  color: #9FB3C8;
  font-size: .82rem;
  line-height: 1.5;
}


/* Menú editorial compacto */
.ff-nav ul {
  gap: clamp(.55rem, 1.35vw, 1.15rem);
}

.ff-nav a {
  padding: .64rem 0;
  font-size: .75rem;
  letter-spacing: .02em;
}

@media (max-width: 980px) {
  .ff-nav ul {
    gap: 0;
    padding-block: .25rem;
  }

  .ff-nav a {
    padding: .48rem 0;
    font-size: .74rem;
  }
}


/* Resúmenes con IA y portada editorial por secciones */
.ff-ai-summary {
  max-width: var(--ff-reading);
  margin: 0 auto 2.5rem;
  padding: 1.35rem 1.5rem;
  border: 1px solid #B9D9F7;
  border-left: 5px solid var(--ff-blue);
  background: linear-gradient(135deg, #FFFFFF 0%, #EAF5FF 100%);
  box-shadow: 0 12px 30px rgba(8, 124, 244, .08);
}

.ff-ai-summary__eyebrow {
  display: block;
  margin-bottom: .45rem;
  color: var(--ff-blue);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.ff-ai-summary p {
  margin: 0 0 .55rem;
  color: var(--ff-navy);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.5;
}

.ff-ai-summary small {
  color: var(--ff-muted);
  font-size: .72rem;
}

.ff-timeline__content {
  min-width: 0;
}

.ff-timeline__summary {
  margin: .35rem 0 0;
  color: var(--ff-muted);
  font-size: .88rem;
  line-height: 1.45;
}

@media (max-width: 640px) {
  body {
    font-size: 16px;
    line-height: 1.55;
  }

  .ff-topbar {
    display: none;
  }

  .ff-header__main {
    min-height: 72px;
  }

  .ff-brand--logo {
    width: 108px;
    height: 64px;
  }

  .ff-search-toggle,
  .ff-menu-toggle {
    padding: .5rem;
  }

  .ff-main {
    padding-block: 1.25rem 2.5rem;
  }

  .ff-section {
    margin-top: 2.4rem;
  }

  .ff-section-heading {
    margin-bottom: 1rem;
    padding-bottom: .5rem;
  }

  .ff-section-heading h2,
  .ff-archive-header h1 {
    font-size: 1.55rem;
  }

  .ff-section-heading a {
    font-size: .7rem;
  }

  .ff-hero {
    gap: 1rem;
  }

  .ff-hero__lead,
  .ff-hero__lead img {
    min-height: 350px;
  }

  .ff-hero__lead-content {
    padding: 1.15rem;
  }

  .ff-hero__lead h1 {
    font-size: 1.75rem;
    line-height: 1.08;
  }

  .ff-hero__lead p {
    display: -webkit-box;
    overflow: hidden;
    font-size: .9rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .ff-hero__secondary .ff-card {
    grid-template-columns: 104px 1fr;
  }

  .ff-hero__secondary .ff-card:nth-child(n+3),
  .ff-grid .ff-card:nth-child(n+4) {
    display: none;
  }

  .ff-card h2,
  .ff-card h3 {
    font-size: 1rem;
  }

  .ff-card p {
    display: -webkit-box;
    overflow: hidden;
    margin-top: .35rem;
    font-size: .84rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .ff-timeline__item {
    grid-template-columns: auto 1fr;
    gap: .25rem .7rem;
    padding: .9rem 0;
  }

  .ff-timeline__item .ff-category {
    grid-column: 2;
    grid-row: 1;
  }

  .ff-timeline__content {
    grid-column: 1 / -1;
  }

  .ff-timeline__summary {
    display: -webkit-box;
    overflow: hidden;
    font-size: .82rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .ff-article__header {
    margin-bottom: 1.25rem;
  }

  .ff-article__header h1 {
    font-size: 2rem;
    line-height: 1.06;
  }

  .ff-article__hero {
    margin-bottom: 1.25rem;
  }

  .ff-ai-summary {
    margin-bottom: 1.5rem;
    padding: 1rem;
  }

  .ff-ai-summary p {
    font-size: .96rem;
  }

  .ff-share {
    gap: .75rem;
    padding: .7rem 0;
  }

  .ff-newsletter {
    padding: 1.25rem;
  }

  .ff-footer {
    margin-top: 2.5rem;
  }

  .ff-footer__grid {
    gap: 1.5rem;
    padding-block: 2.25rem;
  }
}


/* Editorial structure, pages, forms and accessibility — v1.2 */
.ff-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
  margin-bottom: 1.25rem;
  color: var(--ff-muted);
  font-size: .78rem;
  line-height: 1.4;
}

.ff-breadcrumbs a {
  color: var(--ff-blue);
  font-weight: 700;
}

.ff-breadcrumbs [aria-current="page"] {
  overflow: hidden;
  max-width: 58ch;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ff-page {
  width: min(100%, 900px);
  margin-inline: auto;
}

.ff-page__header {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--ff-navy);
}

.ff-page__header h1 {
  margin: 0;
  color: var(--ff-navy);
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  line-height: 1.03;
  letter-spacing: -.045em;
}

.ff-page__content {
  font-size: 1.05rem;
}

.ff-page__content h2 {
  margin: 2.5rem 0 .75rem;
  color: var(--ff-navy);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  line-height: 1.15;
}

.ff-page__content h3 {
  margin: 1.8rem 0 .55rem;
  color: var(--ff-navy);
}

.ff-page__content a:not(.ff-button) {
  color: var(--ff-blue);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.ff-author-header {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
  max-width: 850px;
  padding: 1.5rem;
  border: 1px solid var(--ff-border);
  background: var(--ff-white);
}

.ff-author-header img {
  border-radius: 50%;
}

.ff-author-header h1 {
  margin: 0 0 .35rem;
  color: var(--ff-navy);
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.05;
}

.ff-author-header p {
  margin: .35rem 0 0;
  color: var(--ff-muted);
}

.ff-author-role {
  color: var(--ff-blue) !important;
  font-weight: 800;
}

.ff-contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.25rem;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--ff-border);
  background: var(--ff-white);
}

.ff-contact-form p {
  margin: 0;
}

.ff-contact-form label {
  display: block;
  margin-bottom: .35rem;
  color: var(--ff-navy);
  font-size: .85rem;
  font-weight: 800;
}

.ff-contact-form input,
.ff-contact-form select,
.ff-contact-form textarea {
  width: 100%;
  min-height: 48px;
  padding: .7rem .8rem;
  border: 1px solid #AFC3D5;
  border-radius: 0;
  color: var(--ff-text);
  background: var(--ff-white);
}

.ff-contact-form textarea {
  min-height: 160px;
  resize: vertical;
}

.ff-contact-form__wide {
  grid-column: 1 / -1;
}

.ff-honeypot {
  position: absolute !important;
  left: -9999px !important;
}

.ff-form-notice {
  margin-bottom: 1rem;
  padding: .85rem 1rem;
  border-left: 4px solid var(--ff-blue);
  background: var(--ff-white);
}

.ff-form-notice--success { border-left-color: #15803D; }
.ff-form-notice--error { border-left-color: var(--ff-breaking); }

.ff-newsletter__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .6rem;
}

.ff-newsletter__form small {
  grid-column: 1 / -1;
  color: #9FB3C8;
}

.ff-newsletter__form input:disabled,
.ff-newsletter__form button:disabled {
  cursor: not-allowed;
  opacity: .72;
}

.ff-footer .ff-button {
  width: max-content;
  max-width: 100%;
}

@media (max-width: 1024px) {
  .ff-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ff-hero {
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  }

  .ff-hero__secondary {
    grid-template-columns: 1fr;
  }

  .ff-hero__secondary .ff-card:last-child {
    display: none;
  }
}

@media (max-width: 768px) {
  .ff-hero {
    grid-template-columns: 1fr;
  }

  .ff-hero__secondary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ff-hero__secondary .ff-card:last-child {
    display: block;
  }

  .ff-footer__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .ff-grid,
  .ff-hero__secondary,
  .ff-contact-form {
    grid-template-columns: 1fr;
  }

  .ff-contact-form__wide {
    grid-column: auto;
  }

  .ff-page__header {
    margin-bottom: 1.25rem;
  }

  .ff-page__header h1 {
    font-size: 2rem;
  }

  .ff-breadcrumbs [aria-current="page"] {
    max-width: 24ch;
  }

  .ff-author-header {
    grid-template-columns: 72px 1fr;
    padding: 1rem;
  }

  .ff-author-header img {
    width: 72px;
    height: 72px;
  }

  .ff-author-header h1 {
    font-size: 1.55rem;
  }

  .ff-newsletter__form {
    grid-template-columns: 1fr;
  }

  .ff-newsletter__form small {
    grid-column: auto;
  }

  .ff-footer__grid {
    grid-template-columns: 1fr;
  }
}
/* Compartir: logos y botones compactos — septiembre 2026 */
.ff-share { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; width: 100%; max-width: 350px; padding: 16px 10px; border: 0; border-radius: 14px; background: #F8FAFC; }
.ff-share > strong { grid-column: 1 / -1; margin: 0 0 10px; color: var(--ff-text); font-size: 15px; font-weight: 600; line-height: 1.4; }
.ff-share > a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; min-width: 0; min-height: 76px; padding: 12px 2px; border: 1px solid #E2E7ED; border-radius: 10px; background: #FFFFFF; color: #17212C; font-size: 12px; font-weight: 500; line-height: 1.4; text-align: center; text-decoration: none; transition: background var(--ff-transition), border-color var(--ff-transition); }
.ff-share > a:hover, .ff-share > a:focus-visible { color: #17212C; background: #EDF2F7; border-color: #B3BFCC; }
.ff-share > a::before { content: ""; display: block; width: 20px; height: 20px; flex: 0 0 20px; background: currentColor; -webkit-mask: var(--ff-share-logo) center / contain no-repeat; mask: var(--ff-share-logo) center / contain no-repeat; }
.ff-share > a[href^="https://www.linkedin.com/"] { --ff-share-logo: url("https://cdn.jsdelivr.net/npm/simple-icons@11.15.0/icons/linkedin.svg"); }
.ff-share > a[href^="https://twitter.com/"] { --ff-share-logo: url("https://cdn.jsdelivr.net/npm/simple-icons@11.15.0/icons/x.svg"); }
.ff-share > a[href^="https://wa.me/"] { --ff-share-logo: url("https://cdn.jsdelivr.net/npm/simple-icons@11.15.0/icons/whatsapp.svg"); }


/* Integrar el fondo oscuro del logo con la cabecera y el pie. */
.ff-brand--logo,
.ff-footer__brand {
  mix-blend-mode: lighten;
}
.ff-brand--logo img,
.ff-footer__brand img {
  filter: none;
}
