/* =========================================================
   pepegari.com · hoja de estilos
   Disposición: menú en columna a la izquierda, foto arriba y
   texto debajo en cada sección. Portada sin scroll.
   Tema único claro (blanco y azul), elegido a propósito.
   ========================================================= */

:root {
  /* Colores */
  --fondo: #ffffff;
  --tinta: #111111;
  --texto: #2a2a2a;
  --texto-suave: #333333;
  --gris: #5c5c5c;
  --gris-claro: #6b6b6b;
  --linea: #dddddd;
  --azul: #1414e6;

  /* Tipografías */
  --serif: "EB Garamond", Garamond, Georgia, "Times New Roman", serif;
  --sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Medidas */
  --foto: 380px;          /* tamaño de las fotos de sección */
  --menu: 280px;          /* ancho de la columna del menú */
  --margen: max(16px, env(safe-area-inset-left, 0px));
  --margen-d: max(16px, env(safe-area-inset-right, 0px));

  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html, body { margin: 0; }
body {
  background: var(--fondo);
  color: var(--tinta);
  font-family: var(--sans);
  font-size: 16px;
}

img { display: block; max-width: 100%; height: auto; }

a { color: var(--tinta); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--azul); }
a:focus-visible { outline: 2px solid var(--azul); outline-offset: 3px; }

.flecha { font-size: .7em; vertical-align: .15em; }
.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Portada (umbral) ---------- */
body:has(.umbral), .pagina-umbral { overflow: hidden; }

.umbral {
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  padding-block: 4vh;
  padding-left: max(24px, env(safe-area-inset-left, 0px));
  padding-right: max(24px, env(safe-area-inset-right, 0px));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3vh;
  text-align: center;
}
.umbral-foto { width: auto; max-width: min(460px, 100%); max-height: 50vh; max-height: 50svh; min-height: 0; }
.umbral-texto { display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 660px; }
.frases { display: flex; flex-direction: column; }
.saludo { margin: 0 0 4px; font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.15; color: var(--azul); }
.frases p { margin: 0; font-family: var(--serif); font-size: 18px; line-height: 1.4; color: var(--texto-suave); text-wrap: balance; }
.entrar { font-size: 15px; letter-spacing: 1px; padding: 12px 20px; border-bottom: 1px solid var(--tinta); }

/* ---------- Estructura interior ---------- */
.marco { display: flex; min-height: 100vh; }

.menu {
  flex: 0 0 var(--menu);
  padding: 40px 40px 40px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  font-size: 16px;
}
.menu-principal, .menu-secundario { display: flex; flex-direction: column; gap: 6px; }
.menu-secundario a { color: var(--gris); }
.menu a[aria-current="page"] { color: var(--azul); }
.menu a:hover { color: var(--azul); }

.grupo-foto { display: flex; flex-direction: column; gap: 6px; }
.submenu { list-style: none; margin: 0; padding: 4px 0 6px 14px; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.serie { color: var(--gris); }
.serie.actual { color: var(--tinta); font-weight: 600; }
.serie:hover { color: var(--azul); }

.contenido { flex: 1 1 auto; min-width: 0; padding: 40px 40px 64px 56px; }
.contenido:has(.galeria) { padding-right: 24px; }

/* El menú se queda quieto; solo se mueve el contenido (solo en pantallas anchas) */
@media (min-width: 761px) {
  .menu { position: sticky; top: 0; align-self: flex-start; height: 100vh; overflow-y: auto; }
}

/* Copyright al pie del menú */
.copyright { margin: auto 0 0; font-size: 12px; line-height: 1; letter-spacing: .3px; color: var(--gris-claro); }
@media (max-width: 760px) { .copyright { display: none; } }

/* ---------- Bloques comunes ---------- */
.columna { max-width: 640px; display: flex; flex-direction: column; gap: 28px; }
.columna-ancha { max-width: 820px; }

.foto-seccion { width: var(--foto); aspect-ratio: 1 / 1; object-fit: cover; }
.retrato { width: var(--foto); }

.titulo { margin: 8px 0 0; font-family: var(--serif); font-weight: 400; font-size: 36px; line-height: 1.15; text-wrap: balance; }
.titulo-frase { font-size: 30px; line-height: 1.2; }
.cabecera { display: flex; flex-direction: column; gap: 6px; }
.cabecera .titulo { margin: 0; }
.subtitulo { margin: 0; font-family: var(--serif); font-style: italic; font-size: 21px; color: var(--gris); }
.subtitulo-recto { margin: 0; font-family: var(--serif); font-size: 20px; line-height: 1.55; color: var(--texto); }
.intro { margin: 0; font-family: var(--serif); font-size: 20px; line-height: 1.5; color: var(--texto-suave); }

.prosa { display: flex; flex-direction: column; gap: 16px; font-family: var(--serif); font-size: 19px; line-height: 1.55; color: var(--texto); }
.prosa p { margin: 0; }
.prosa-ancha { font-size: 18px; line-height: 1.5; gap: 12px; }

.enlace { align-self: flex-start; font-size: 15px; padding: 10px 0; border-bottom: 1px solid var(--tinta); }

/* Cierre con invitación (Acompañamiento): la frase y el enlace leen como una sola línea partida */
.cierre { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; margin-top: 6px; }
.cierre p { margin: 0; font-family: var(--serif); font-size: 18px; line-height: 1.5; color: var(--texto); }
.cierre .enlace { padding-top: 4px; }

/* ---------- Sobre mí: recorrido ---------- */
.recorrido { border-top: 1px solid var(--linea); padding-top: 18px; margin-top: 12px; display: flex; flex-direction: column; gap: 14px; }
.etiqueta { margin: 0; font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600; color: #444444; }
.recorrido-cols { display: flex; flex-wrap: wrap; gap: 24px 32px; font-size: 14px; line-height: 1.45; }
.recorrido-col { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.bloque h3 { margin: 0 0 5px; font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 19px; color: var(--azul); }
.bloque ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.inst { font-style: italic; font-size: 13px; color: var(--gris-claro); }

.seccion { gap: 18px; }
.seccion .cabecera { margin-top: 8px; }

/* ---------- Escritura ---------- */
.cita { margin: 8px 0 0; display: flex; flex-direction: column; gap: 12px; }
.cita blockquote { margin: 0; padding: 0 0 0 24px; }
.cita blockquote p { margin: 0; font-family: var(--serif); font-style: italic; font-size: 18px; line-height: 1.5; color: var(--texto-suave); }
.cita figcaption { text-align: right; font-family: var(--serif); font-size: 16px; letter-spacing: .3px; color: var(--gris); }

/* ---------- Afines ---------- */
.afines { max-width: 560px; display: flex; flex-direction: column; gap: 8px; }
.afines a { display: flex; flex-direction: column; gap: 3px; border-top: 1px solid var(--linea); padding-top: 12px; }
.afin-nombre { font-family: var(--serif); font-size: 24px; }
.afin-desc { font-size: 15px; line-height: 1.5; color: var(--gris); }
.seccion:has(.afines) .cabecera { gap: 10px; }

/* ---------- Contacto ---------- */
.planta { font-size: .6em; }
.contacto { max-width: 560px; gap: 24px; }
.contacto .foto-seccion { margin-bottom: 8px; }
.contacto .titulo { margin: 0; }
.datos { display: flex; flex-direction: column; gap: 8px; font-size: 15px; border-top: 1px solid var(--linea); padding-top: 22px; }
.datos strong { font-weight: 600; }

/* ---------- Fotografía ---------- */
.galeria { max-width: var(--ancho-foto, 930px); display: flex; flex-direction: column; gap: 12px; }
.fila { display: grid; grid-template-columns: 1fr; gap: 12px; }
.fila-par { grid-template-columns: 1fr 1fr; }
.fila img { width: 100%; height: 100%; object-fit: cover; }
.fila-par img { aspect-ratio: 2 / 3; }
.serie.pronto { color: #b4b4b4; cursor: default; }

/* Selector provisional de ancho (se quitará al decidir) */
.selector-ancho { position: fixed; right: max(16px, env(safe-area-inset-right, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); display: flex; align-items: center; gap: 4px; padding: 6px 8px; background: var(--fondo); border: 1px solid var(--linea); font-size: 13px; z-index: 5; }
.selector-ancho span { color: var(--gris); padding: 0 4px; }
.selector-ancho button { font: inherit; color: var(--tinta); background: none; border: 0; padding: 4px 8px; cursor: pointer; }
.selector-ancho button[aria-pressed="true"] { color: var(--azul); text-decoration: underline; text-underline-offset: 3px; }

/* =========================================================
   Móvil y pantallas estrechas (versión provisional)
   ========================================================= */
@media (max-width: 760px) {
  .marco { flex-direction: column; min-height: 0; }

  .menu {
    flex: none;
    padding-block: 20px 8px;
    padding-left: var(--margen);
    padding-right: var(--margen-d);
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px 18px;
    font-size: 16px;
  }
  .menu-principal, .menu-secundario, .grupo-foto { flex-direction: row; flex-wrap: wrap; gap: 6px 18px; }
  .menu-secundario { font-size: 16px; }
  .submenu { flex: 1 1 100%; flex-direction: row; flex-wrap: wrap; gap: 4px 14px; padding: 0; margin: 2px 0 0; font-size: 14px; }
  .grupo-foto:has(.submenu) { flex: 1 1 100%; }

  .contenido { padding-block: 24px 64px; padding-left: var(--margen); padding-right: var(--margen-d); }
  .columna { gap: 22px; }
  .foto-seccion, .retrato { width: 100%; max-width: var(--foto); }
  .titulo { font-size: 30px; }
  .titulo-frase { font-size: 26px; }
  .prosa { font-size: 18px; }
  .frases p { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  a { transition: none; }
}
.datos .nota { color: var(--gris); }

@media (max-width: 760px) { .fila, .fila-par { gap: 10px; } .galeria { gap: 10px; } .selector-ancho { display: none; } }
.menu a.serie[aria-current="page"] { color: var(--tinta); }

/* =========================================================
   Ajustes de móvil (noviembre 2026)
   ========================================================= */
.pie-movil { display: none; }
@media (max-width: 760px) {
  /* mismo margen a ambos lados también en las galerías */
  .contenido:has(.galeria) { padding-right: var(--margen-d); }
  /* verticales una debajo de otra, a todo lo ancho */
  .fila-par { grid-template-columns: 1fr; }
  .fila-par img { aspect-ratio: auto; height: auto; }
  /* subtítulo de Acompañamiento en dos líneas, sin el punto medio */
  .sub-parte { display: block; }
  .sub-sep { display: none; }
  /* copyright al final de cada página */
  .pie-movil { display: block; padding-block: 0 32px; padding-left: var(--margen); padding-right: var(--margen-d); font-size: 12px; letter-spacing: .3px; color: var(--gris-claro); }
}

/* Menú móvil: las secciones arriba; contacto e instagram en su propia línea, más pequeños y en gris */
@media (max-width: 760px) {
  .menu { font-size: 15px; gap: 4px 16px; }
  .menu-principal, .grupo-foto { gap: 4px 16px; }
  .menu-secundario { flex: 1 1 100%; gap: 4px 16px; font-size: 13px; margin-top: 4px; }
  .menu-secundario a { color: var(--gris-claro); }
}

/* Bienvenida en móvil: los tres verbos solos y una pausa antes del resto */
@media (max-width: 760px) {
  .frases .primera { margin-bottom: 10px; }
}
