/* ============================================================
   PAGES.CSS — plantillas de página, journal y artículo.
   Reutiliza tokens y clases de style.css. Prefijos por área:
   .page- .about- .corp- .contact- .journal- .post-
   Cargado automáticamente por el loader de functions.php.
   ============================================================ */

/* ============================================================
   PAGE GENÉRICA (page.php)
   ============================================================ */
.page-generic__head { padding: 160px 0 40px; }
.page-generic__kicker { color: var(--terra); margin-bottom: 24px; }
.page-generic__kicker .rule { margin-right: 12px; }
.page-generic__title { font-size: var(--fs-4xl); max-width: 1000px; }

.page-generic__content {
  padding: 16px 0 120px;
  font-size: var(--fs-base); line-height: 1.8; color: var(--ink-soft);
}
.page-generic__content > * + * { margin-top: 20px; }
.page-generic__content h2,
.page-generic__content h3,
.page-generic__content h4 {
  font-family: var(--serif); font-weight: 400; color: var(--ink); line-height: 1.1;
}
.page-generic__content h2 { font-size: var(--fs-xl); margin-top: 40px; }
.page-generic__content h3 { font-size: var(--fs-lg); margin-top: 32px; }
.page-generic__content a { color: var(--ink); border-bottom: 1px solid var(--line); transition: border-color 180ms ease; }
.page-generic__content a:hover { border-color: var(--ink); }
.page-generic__content ul,
.page-generic__content ol { padding-left: 1.4em; }
.page-generic__content li { margin-bottom: 8px; }
.page-generic__content blockquote {
  border-left: 2px solid var(--terra); padding-left: 24px; margin: 32px 0;
  font-family: var(--serif); font-size: var(--fs-lg); font-style: italic; color: var(--ink);
}
.page-generic__content img { margin: 32px 0; }
.page-generic__links { margin-top: 32px; font-size: var(--fs-2xs); color: var(--ink-muted); }

/* ============================================================
   ABOUT (page-about.php)
   ============================================================ */
.about-hero { padding: 160px 0 100px; }
.about-hero__kicker { color: var(--terra); margin-bottom: 32px; }
.about-hero__kicker .rule { margin-right: 12px; }
.about-hero__title { font-size: var(--fs-4xl); max-width: 1200px; }

.about-story { padding-bottom: 120px; }
.about-story__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.about-story__media { height: 680px; }
.about-story__eyebrow { margin-bottom: 16px; }
.about-story__title { font-size: var(--fs-2xl); margin-bottom: 32px; }
.about-story__p { font-size: var(--fs-base); line-height: 1.7; color: var(--ink-soft); }
.about-story__p + .about-story__p { margin-top: 24px; }

.about-content { padding: 0 0 100px; }
.about-content__body { font-size: var(--fs-base); line-height: 1.8; color: var(--ink-soft); }
.about-content__body > * + * { margin-top: 20px; }

.about-promise { background: var(--bg-alt); padding: 120px 0; }
.about-promise__eyebrow { margin-bottom: 20px; }
.about-promise__title { font-size: var(--fs-2xl); margin-bottom: 80px; max-width: 900px; }
.about-promise__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 48px; }
.about-rule { padding-top: 32px; border-top: 2px solid var(--ink); }
.about-rule__n { font-family: var(--mono); font-size: var(--fs-2xs); color: var(--terra); margin-bottom: 16px; }
.about-rule__title { font-size: var(--fs-xl); margin-bottom: 16px; }
.about-rule__body { font-size: var(--fs-xs); line-height: 1.7; color: var(--ink-soft); }

.about-team { padding: 120px 0; }
.about-team__eyebrow { margin-bottom: 20px; }
.about-team__title { font-size: var(--fs-2xl); margin-bottom: 80px; max-width: 800px; }
.about-team__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 48px; }
.about-team__empty { color: var(--ink-muted); font-style: italic; }
.about-member__media { aspect-ratio: 1 / 1; margin-bottom: 24px; }
.about-member__name { font-size: var(--fs-xl); margin-bottom: 6px; }
.about-member__role { font-size: var(--fs-2xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--terra); margin-bottom: 16px; }
.about-member__bio { font-size: var(--fs-xs); line-height: 1.7; color: var(--ink-soft); margin-bottom: 16px; }
.about-member__langs { display: flex; flex-direction: column; gap: 4px; }
.about-member__langs .eyebrow { font-size: var(--fs-3xs); }
.about-member__langs span:last-child { font-size: var(--fs-2xs); color: var(--ink-soft); }

.about-network { margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--line); }
.about-network__lead { font-family: var(--serif); font-size: var(--fs-lg); line-height: 1.4; max-width: 900px; color: var(--ink); }

.about-creds { background: var(--bg-dark); color: var(--paper); padding: 100px 0; }
.about-creds__grid { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; align-items: start; }
.about-creds__eyebrow { color: var(--ochre); margin-bottom: 16px; }
.about-creds__title { font-size: var(--fs-2xl); color: var(--paper); }
.about-creds__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.about-cred { padding: 20px 0; border-top: 1px solid rgba(253,250,243,0.15); }
.about-cred__k { font-family: var(--serif); font-size: var(--fs-md); color: var(--ochre); margin-bottom: 6px; }
.about-cred__v { font-size: var(--fs-2xs); color: rgba(253,250,243,0.7); line-height: 1.5; }

.about-cta { padding: 120px 0; }
.about-cta__inner { text-align: center; }
.about-cta__title { font-size: var(--fs-2xl); max-width: 900px; margin: 0 auto 40px; }
.about-cta__btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   CORPORATE (page-corporate.php)
   ============================================================ */
.corp-accent { color: var(--ochre); }

.corp-hero { background: var(--bg-dark); color: var(--paper); padding: 160px 0 100px; display: flex; align-items: center; min-height: 85vh; }
.corp-hero__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: center; }
.corp-hero__kicker { color: var(--ochre); margin-bottom: 24px; }
.corp-hero__kicker .rule { margin-right: 12px; background: var(--ochre); }
.corp-hero__title { font-size: var(--fs-4xl); margin-bottom: 32px; color: var(--paper); }
.corp-hero__lead { font-size: var(--fs-md); color: rgba(253,250,243,0.75); line-height: 1.65; max-width: 620px; margin-bottom: 40px; }
.corp-hero__media { height: 520px; }
.corp-hero__label { background: rgba(253,250,243,0.1); border-color: var(--ochre); color: var(--ochre); }

.corp-stats { background: var(--ink); color: var(--paper); padding: 48px 0; border-top: 1px solid rgba(253,250,243,0.1); }
.corp-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.corp-stat__v { font-family: var(--serif); font-size: var(--fs-2xl); color: var(--ochre); line-height: 1; margin-bottom: 6px; }
.corp-stat__l { font-size: var(--fs-3xs); letter-spacing: 0.16em; text-transform: uppercase; color: rgba(253,250,243,0.6); }

.corp-content { padding: 100px 0 0; }
.corp-content__body { font-size: var(--fs-base); line-height: 1.8; color: var(--ink-soft); }
.corp-content__body > * + * { margin-top: 20px; }

.corp-services { padding: 120px 0; }
.corp-services__head { max-width: 760px; margin-bottom: 64px; }
.corp-services__head .eyebrow { margin-bottom: 20px; }
.corp-services__title { font-size: var(--fs-2xl); }
.corp-services__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.corp-service { padding: 40px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 280px; }
.corp-service:nth-child(3n) { border-right: none; }
.corp-service__n { font-family: var(--mono); font-size: var(--fs-2xs); color: var(--terra); margin-bottom: 20px; }
.corp-service__title { font-family: var(--serif); font-weight: 400; font-size: var(--fs-xl); margin-bottom: 16px; line-height: 1.1; color: var(--ink); }
.corp-service__body { font-size: var(--fs-2xs); line-height: 1.65; color: var(--ink-soft); }

.corp-cases { background: var(--bg-alt); padding: 120px 0; }
.corp-cases .eyebrow { margin-bottom: 20px; }
.corp-cases__title { font-size: var(--fs-2xl); margin-bottom: 64px; max-width: 800px; }
.corp-cases__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.corp-case__media { height: 340px; margin-bottom: 20px; }
.corp-case__meta { font-size: var(--fs-3xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--terra); margin-bottom: 8px; }
.corp-case__title { font-size: var(--fs-lg); margin-bottom: 8px; }
.corp-case__client { font-family: var(--serif); font-style: italic; font-size: var(--fs-2xs); color: var(--ink-muted); }

.corp-process { padding: 120px 0; }
.corp-process .eyebrow { margin-bottom: 20px; }
.corp-process__title { font-size: var(--fs-2xl); margin-bottom: 64px; }
.corp-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.corp-step { border-top: 2px solid var(--terra); padding-top: 20px; }
.corp-step__n { font-family: var(--mono); font-size: var(--fs-2xs); color: var(--terra); margin-bottom: 12px; }
.corp-step__title { font-family: var(--serif); font-weight: 400; font-size: var(--fs-lg); margin-bottom: 10px; color: var(--ink); }
.corp-step__body { font-size: var(--fs-2xs); line-height: 1.6; color: var(--ink-soft); }

.corp-cta { padding: 0 0 120px; }
.corp-cta__card { background: var(--ink); color: var(--paper); padding: 80px; text-align: center; }
.corp-cta__title { font-size: var(--fs-2xl); max-width: 900px; margin: 0 auto 32px; color: var(--paper); }
.corp-cta__btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.corp-cta__ghost { color: var(--paper); border-color: rgba(253,250,243,0.5); }
.corp-cta__ghost:hover { background: var(--paper); color: var(--ink); }

/* ============================================================
   CONTACT (page-contact.php)
   ============================================================ */
.contact-hero { padding: 160px 0 64px; }
.contact-hero__kicker { color: var(--terra); margin-bottom: 24px; }
.contact-hero__kicker .rule { margin-right: 12px; }
.contact-hero__title { font-size: var(--fs-3xl); max-width: 1100px; margin-bottom: 32px; }
.contact-hero__lead { font-size: var(--fs-md); color: var(--ink-soft); line-height: 1.6; max-width: 620px; }

.contact-main { padding-bottom: 160px; }
.contact-main__grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 80px; align-items: start; }

.contact-details { display: flex; flex-direction: column; gap: 32px; position: sticky; top: 110px; }
.contact-detail .eyebrow { margin-bottom: 8px; }
.contact-detail__v { font-family: var(--serif); font-size: var(--fs-lg); line-height: 1.4; color: var(--ink); display: block; }
a.contact-detail__v:hover { color: var(--terra); }
.contact-detail__map { margin-top: 12px; font-size: var(--fs-2xs); }
.contact-note { padding: 24px; background: var(--bg-alt); }
.contact-note .eyebrow { margin-bottom: 10px; }
.contact-note p { font-size: var(--fs-2xs); line-height: 1.6; color: var(--ink-soft); }

.contact-form-wrap { max-width: 640px; }
.contact-context { display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; background: var(--paper); border: 1px solid var(--line); border-left: 2px solid var(--terra); margin-bottom: 32px; }
.contact-context__name { font-family: var(--serif); font-size: var(--fs-md); color: var(--ink); }

.contact-errors { padding: 16px 20px; background: rgba(232,122,92,0.1); border: 1px solid var(--terra-deep); margin-bottom: 32px; }
.contact-errors ul { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.contact-errors li { font-size: var(--fs-2xs); color: var(--terra-deep); }

.contact-form { display: flex; flex-direction: column; gap: 28px; }
.contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.contact-field input::placeholder,
.contact-field textarea::placeholder { color: var(--ink-muted); opacity: 0.7; }
.contact-form__submit { align-self: flex-start; justify-content: center; }
.contact-form__fine { font-size: var(--fs-2xs); color: var(--ink-muted); }
.contact-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.contact-success { padding: 48px 0; }
.contact-success__tag { font-family: var(--mono); font-size: var(--fs-2xs); letter-spacing: 0.1em; color: var(--terra); margin-bottom: 24px; }
.contact-success__title { font-size: var(--fs-2xl); margin-bottom: 24px; }
.contact-success__body { font-size: var(--fs-base); line-height: 1.6; color: var(--ink-soft); max-width: 520px; margin-bottom: 32px; }

/* ============================================================
   JOURNAL (home.php)
   ============================================================ */
.journal-head { padding: 160px 0 64px; }
.journal-head__kicker { color: var(--terra); margin-bottom: 24px; }
.journal-head__kicker .rule { margin-right: 12px; }
.journal-head__title { font-size: var(--fs-4xl); max-width: 1200px; margin-bottom: 40px; }
.journal-head__lead { font-size: var(--fs-md); color: var(--ink-soft); line-height: 1.6; max-width: 600px; }

.journal-featured { padding-bottom: 80px; }
.journal-feature { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: center; color: inherit; }
.journal-feature__media { height: 520px; overflow: hidden; }
.journal-feature__meta { display: flex; align-items: center; gap: 8px; font-size: var(--fs-3xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 12px; }
.journal-feature__cat { color: var(--terra); }
.journal-feature__title { font-size: var(--fs-2xl); margin-bottom: 20px; transition: color 180ms ease; }
.journal-feature:hover .journal-feature__title { color: var(--terra); }
.journal-feature__excerpt { font-size: var(--fs-xs); line-height: 1.7; color: var(--ink-soft); margin-bottom: 24px; }
.journal-feature__read { color: var(--ink); }

.journal-grid-wrap { padding-bottom: 160px; }
.journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; border-top: 1px solid var(--line); padding-top: 40px; }
.journal-card { display: flex; flex-direction: column; color: inherit; }
.journal-card__media { height: 280px; margin-bottom: 20px; overflow: hidden; }
.journal-card__media > .ph-label,
.journal-card__media img { transition: transform 520ms cubic-bezier(0.2,0.8,0.2,1); }
.journal-card:hover .journal-card__media img { transform: scale(1.04); }
.journal-card__meta { display: flex; justify-content: space-between; font-size: var(--fs-3xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 10px; }
.journal-card__cat { color: var(--terra); }
.journal-card__title { font-size: var(--fs-lg); margin-bottom: 8px; line-height: 1.15; transition: color 180ms ease; }
.journal-card:hover .journal-card__title { color: var(--terra); }
.journal-card__excerpt { font-size: var(--fs-2xs); line-height: 1.6; color: var(--ink-soft); margin-bottom: 14px; flex: 1; }
.journal-card__read { font-size: var(--fs-2xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-muted); }
.journal-empty { padding: 80px 0; text-align: center; color: var(--ink-muted); font-style: italic; }

.journal-pagination { margin-top: 80px; padding-top: 40px; border-top: 1px solid var(--line); }
.journal-pagination .nav-links { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.journal-pagination a,
.journal-pagination .page-numbers { padding: 8px 14px; font-size: var(--fs-2xs); border: 1px solid var(--line); border-radius: 2px; transition: all 180ms ease; }
.journal-pagination a:hover { border-color: var(--ink); }
.journal-pagination .page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* ============================================================
   SINGLE POST / ARTICLE (single.php)
   ============================================================ */
.post-head { padding: 140px 0 40px; }
.post-head__meta { display: flex; align-items: center; gap: 8px; font-size: var(--fs-3xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 20px; }
.post-head__cat { color: var(--terra); }
.post-head__cat:hover { color: var(--terra-deep); }
.post-head__title { font-size: var(--fs-3xl); max-width: 1000px; }

.post-cover { margin-bottom: 64px; }
.post-cover img { width: 100%; height: clamp(320px, 50vw, 640px); object-fit: cover; }

.post-content { font-size: var(--fs-base); line-height: 1.8; color: var(--ink-soft); padding-bottom: 48px; }
.post-content > * + * { margin-top: 22px; }
.post-content h2,
.post-content h3,
.post-content h4 { font-family: var(--serif); font-weight: 400; color: var(--ink); line-height: 1.1; }
.post-content h2 { font-size: var(--fs-xl); margin-top: 44px; }
.post-content h3 { font-size: var(--fs-lg); margin-top: 36px; }
.post-content a { color: var(--ink); border-bottom: 1px solid var(--line); transition: border-color 180ms ease; }
.post-content a:hover { border-color: var(--ink); }
.post-content ul,
.post-content ol { padding-left: 1.4em; }
.post-content li { margin-bottom: 8px; }
.post-content blockquote { border-left: 2px solid var(--terra); padding-left: 24px; margin: 36px 0; font-family: var(--serif); font-size: var(--fs-xl); font-style: italic; color: var(--ink); line-height: 1.4; }
.post-content img { margin: 32px 0; }
.post-content__links { font-size: var(--fs-2xs); color: var(--ink-muted); }

.post-tags { padding: 24px 0; border-top: 1px solid var(--line); font-size: var(--fs-2xs); color: var(--ink-soft); }
.post-tags .eyebrow { margin-right: 8px; }
.post-tags a { color: var(--ink); border-bottom: 1px solid var(--line); }
.post-tags a:hover { color: var(--terra); }

.post-back { padding: 32px 0 100px; }

.post-cta { padding: 0 0 120px; }
.post-cta__card { background: var(--ink); color: var(--paper); padding: 80px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; }
.post-cta__kicker { color: var(--ochre); margin-bottom: 24px; }
.post-cta__title { font-size: var(--fs-2xl); margin-bottom: 24px; color: var(--paper); }
.post-cta__body { font-size: var(--fs-xs); line-height: 1.7; color: rgba(253,250,243,0.75); margin-bottom: 32px; max-width: 480px; }
.post-cta__btns { display: flex; gap: 16px; flex-wrap: wrap; }
.post-cta__ghost { color: var(--paper); border-color: rgba(253,250,243,0.5); }
.post-cta__ghost:hover { background: var(--paper); color: var(--ink); }
.post-cta__media { height: 360px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .corp-hero__grid { grid-template-columns: 1fr; gap: 48px; }
  .corp-hero { min-height: 0; padding: 140px 0 80px; }
  .corp-services__grid { grid-template-columns: repeat(2, 1fr); }
  .corp-service:nth-child(3n) { border-right: 1px solid var(--line); }
  .corp-service:nth-child(2n) { border-right: none; }
  .corp-process__grid { grid-template-columns: repeat(2, 1fr); }
  .about-creds__grid { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 900px) {
  .page-generic__head { padding: 130px 0 32px; }
  .about-hero,
  .contact-hero,
  .journal-head { padding-top: 130px; }
  .corp-stats__grid { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }

  .about-story__grid,
  .about-promise__grid,
  .about-team__grid,
  .about-creds__list,
  .contact-main__grid,
  .contact-form__row,
  .journal-feature,
  .post-cta__card { grid-template-columns: 1fr; }

  .about-story__grid { gap: 40px; }
  .about-story__media { height: 420px; }
  .about-promise__title,
  .about-team__title { margin-bottom: 48px; }

  .corp-services__grid { grid-template-columns: 1fr; }
  .corp-service,
  .corp-service:nth-child(2n) { border-right: none; }
  .corp-process__grid { grid-template-columns: 1fr 1fr; }
  .corp-cases__grid { grid-template-columns: 1fr; }
  .corp-cta__card,
  .corp-hero { gap: 40px; }
  .corp-cta__card { padding: 40px; }

  .contact-details { position: static; }
  .contact-main { padding-bottom: 100px; }

  .journal-grid { grid-template-columns: 1fr; gap: 40px; }
  .journal-feature__media { height: 360px; }

  .post-cta__card { padding: 40px; gap: 40px; }
  .post-cta__media { height: 240px; }
}

@media (max-width: 560px) {
  .corp-process__grid { grid-template-columns: 1fr; }
  .corp-stats__grid { grid-template-columns: 1fr 1fr; }
}
