/* ============================================================
   GEO Global — reset + base + design vars
   (tokens.css eliminado a propósito: sin escala de tamaños de texto.
    Cada texto usa font-size/line-height/letter-spacing EXACTOS del nodo Figma.)
   ============================================================ */

/* ----------------------------------------------------------
   Variables de diseño — colores, familias, espaciado
   (SIN --text-*, --weight-*, --lh-*, --ls-* — esas inducían a aproximar)
   ---------------------------------------------------------- */
:root {
  /* Colores */
  --color-white:            #ffffff;
  --color-black:            #000000;
  --color-peach:            #ffe0d9;
  --color-gray-light:       #ebebeb;
  --color-gray-mid:         #d9d9d9;
  --color-gray-placeholder: #515151;
  --color-gray-ui:          #646464;
  --color-gray-stroke:      #676767;
  --color-dark-text:        #2f2f2f;
  --color-burgundy:         #4c1717;
  --color-sage:             #b2b9a3;
  --color-sage-dark:        #878f82;

  /* Familias tipográficas */
  --font-primary:  'Montserrat', sans-serif;
  --font-utility:  'Inter', sans-serif;
  --font-display:  'Kapakana', serif;
  --font-script:   'Ballet', cursive;
  --font-accent:   'MonteCarlo', cursive;

  /* Espaciado recurrente (inferido de posiciones Figma) */
  --space-xs:  8px;
  --space-sm:  16px;
  --space-md:  40px;
  --space-lg:  100px;
  --space-xl:  200px;

  /* UI */
  --input-height:   46px;
  --input-radius:   3px;
  --btn-radius:     3px;
  --logo-w:         155px;
  --logo-h:         51px;

  /* Transición Swup */
  --transition-page: 0.25s ease;
}

/* ----------------------------------------------------------
   Reset
   ---------------------------------------------------------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  /* Reserva el gutter del scrollbar (Windows/Linux) para que las secciones
     full-bleed (width:100vw) queden simétricas y no salten al aparecer/ocultar
     la barra. No-op en macOS (scrollbars overlay). */
  scrollbar-gutter: stable;
}

body {
  font-family: var(--font-primary);
  font-size: 16px;
  font-weight: 400;
  color: var(--color-black);
  background-color: var(--color-white);
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }

a {
  color: inherit;
  text-decoration: none;
}

button {
  cursor: pointer;
  border: none;
  background: none;
  font: inherit;
}

/* Visually-hidden global (H1 accesibles/SEO sin alterar el diseño) */
.geo-vh {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* ----------------------------------------------------------
   Páginas sin plantilla propia (page.php) — no tenían NINGÚN estilo
   ---------------------------------------------------------- */
.geo-page__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 32px 100px;
}
.geo-page__title {
  font-family: var(--font-primary);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 800;
  line-height: 1.15;
  margin: 0 0 24px;
}
.geo-page__content { font-size: 17px; line-height: 1.65; color: #2f2f2f; }
.geo-page__content > * + * { margin-top: 1em; }
.geo-page__content h2 { font-size: 26px; font-weight: 700; line-height: 1.25; margin-top: 1.6em; }
.geo-page__content h3 { font-size: 21px; font-weight: 700; line-height: 1.3; margin-top: 1.4em; }
.geo-page__content a  { text-decoration: underline; text-underline-offset: 3px; }
.geo-page__content img { height: auto; border-radius: 4px; }
.geo-page__content ul,
.geo-page__content ol { padding-left: 1.3em; }
@media (max-width: 640px) {
  .geo-page__inner { padding: 40px 20px 64px; }
}

/* ----------------------------------------------------------
   Archives + resultados de búsqueda (archive.php / index.php)
   Listado sobrio on-brand: título + extracto + link.
   ---------------------------------------------------------- */
.geo-archive { background: #fff; }
.geo-archive__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 150px 32px 100px;   /* 150 top = libra el header fijo */
}
.geo-archive__title {
  font-family: var(--font-primary);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 800;
  line-height: 1.15;
  margin: 0 0 12px;
}
.geo-archive__desc { font-size: 16px; color: #515151; margin-bottom: 8px; }
.geo-archive__list { display: flex; flex-direction: column; gap: 40px; margin-top: 40px; }
.geo-archive__item { display: flex; gap: 28px; align-items: flex-start; }
/* flex-shrink:0 en el CONTENEDOR: sin él, el <a> se encogía y la miniatura
   quedaba como una tira vertical en cuanto el título era largo. */
.geo-archive__thumb { flex: 0 0 220px; }
.geo-archive__thumb img {
  width: 100%; height: 150px;
  object-fit: cover; border-radius: 4px; display: block;
}
.geo-archive__item-title { margin: 0 0 10px; font-size: 22px; font-weight: 700; line-height: 1.25; }
.geo-archive__item-title a { color: #000; }
.geo-archive__item-title a:hover { text-decoration: underline; }
.geo-archive__excerpt { margin: 0 0 10px; font-size: 16px; line-height: 1.55; color: #2f2f2f; }
.geo-archive__more { font-size: 14px; font-weight: 600; color: #000; }
.geo-archive__more:hover { text-decoration: underline; }
.geo-archive__empty { margin-top: 32px; font-size: 17px; color: #515151; }
.geo-archive__pagination { margin-top: 56px; font-size: 15px; }
.geo-archive__pagination .page-numbers { margin-right: 12px; }
@media (max-width: 640px) {
  .geo-archive__inner { padding: 120px 20px 64px; }
  .geo-archive__item { flex-direction: column; gap: 14px; }
  .geo-archive__thumb { flex: 1 1 auto; width: 100%; }
  .geo-archive__thumb img { width: 100%; height: auto; aspect-ratio: 16/10; }
}

/* ----------------------------------------------------------
   Swup page transition — fade simple
   ---------------------------------------------------------- */
#swup {
  transition: opacity var(--transition-page);
}

html.is-animating #swup {
  opacity: 0;
}

/* ----------------------------------------------------------
   WP admin bar — compensa el fixed nav
   ---------------------------------------------------------- */
body.admin-bar .geo-nav,
body.admin-bar .geo-offcanvas { top: 32px; }

body.admin-bar .geo-search-bar { top: 100px; }

@media screen and (max-width: 782px) {
  body.admin-bar .geo-nav,
  body.admin-bar .geo-offcanvas { top: 46px; }
  body.admin-bar .geo-search-bar { top: 114px; }
}
