/* ==========================================================================
   art.williamzea.com — sistema visual
   Negro / Blanco hueso / Rojo firma. Serif editorial + sans utilitaria.
   ========================================================================== */

:root{
  --black:#0a0a0a;
  --near-black:#141311;
  --paper:#f6f4ef;
  --paper-2:#efece4;
  --ink:#171512;
  --gray:#6f6a62;
  --line:#e2ddd2;
  --red:#c8271f;
  --red-deep:#8f1a15;
  --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw: 1180px;
  --gap: clamp(1.25rem, 3vw, 2.5rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
body.preload-lock{ overflow:hidden; }

/* ---------- preloader ---------- */
#preloader{
  position:fixed; inset:0; z-index:9999; background:var(--black);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s ease, visibility .6s ease;
}
#preloader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
#preloader .pl-signature{ width:min(220px,44vw); }
#preloader .pl-signature img{
  width:100%; height:auto;
  clip-path:inset(0 100% 0 0);
  animation:reveal-firma 1.3s cubic-bezier(.65,0,.2,1) .05s forwards;
  filter:drop-shadow(0 0 22px rgba(200,39,31,.35));
}

/* ---------- proteccion de imagenes ---------- */
img.no-copy,
.obra-card img,.img-wrap img,.artista-hero img,.tc-img img,.artista-gallery img,.od-hero-img img{
  -webkit-user-select:none; -moz-user-select:none; user-select:none;
  -webkit-user-drag:none; -khtml-user-drag:none; -moz-user-drag:none; -o-user-drag:none;
  -webkit-touch-callout:none;
  pointer-events:auto;
}
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gap); }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.15; margin:0 0 .5em; }
p{ margin:0 0 1em; }
.serif{ font-family:var(--serif); }

/* ---------- utility ---------- */
.eyebrow{
  font-family:var(--sans); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--red); font-weight:600; margin-bottom:.9em;
}
.btn{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--sans); font-weight:600; font-size:.82rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.95em 1.7em; border:1px solid var(--ink); color:var(--ink); background:transparent;
  transition:background .25s ease,color .25s ease,border-color .25s ease;
  cursor:pointer;
}
.btn:hover{ background:var(--ink); color:var(--paper); }
.btn-red{ border-color:var(--red); color:var(--paper); background:var(--red); }
.btn-red:hover{ background:var(--red-deep); border-color:var(--red-deep); }
.btn-ghost-light{ border-color:rgba(255,255,255,.55); color:#fff; }
.btn-ghost-light:hover{ background:#fff; color:var(--black); }
.section{ padding:clamp(3.5rem,8vw,7rem) 0; }
.section-head{ max-width:640px; margin-bottom:clamp(2rem,4vw,3.2rem); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

/* ---------- header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:1.4rem 0; transition:padding .35s ease;
}
/* el efecto de fondo/blur vive en un pseudo-elemento (no en .site-header) para que
   no cree un "containing block" para los descendientes position:fixed (menu movil) */
.site-header::before{
  content:""; position:absolute; inset:0; z-index:-1;
  transition:background .35s ease,box-shadow .35s ease,backdrop-filter .35s ease;
}
.site-header.solid{ padding:.9rem 0; }
.site-header.solid::before{ background:rgba(246,244,239,.94); backdrop-filter:blur(6px); box-shadow:0 1px 0 var(--line); }
body:not(.is-home) .site-header{ padding:.9rem 0; }
body:not(.is-home) .site-header::before{ background:rgba(246,244,239,.96); backdrop-filter:blur(6px); box-shadow:0 1px 0 var(--line); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand-logo{ display:flex; align-items:center; }
.brand-logo img{
  height:56px; width:auto; display:block; transition:height .35s ease;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.25));
}
.site-header.solid .brand-logo img,
body:not(.is-home) .site-header .brand-logo img{ height:44px; }
.main-nav{ display:flex; align-items:center; gap:2rem; font-size:.86rem; letter-spacing:.02em; }
.main-nav a{ position:relative; padding:.2em 0; opacity:.85; }
.main-nav a:hover{ opacity:1; }
body.is-home .site-header:not(.solid) .main-nav a{ color:#fff; }
.lang-switch{ display:flex; align-items:center; gap:.4em; font-size:.78rem; letter-spacing:.05em; }
.lang-switch a{ opacity:.55; }
.lang-switch a.active{ opacity:1; color:var(--red); font-weight:700; }
body.is-home .site-header:not(.solid) .lang-switch a{ color:#fff; }
body.is-home .site-header:not(.solid) .lang-switch a.active{ color:var(--red); }
.lang-off{ display:none; }
.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:.4em; }
.nav-toggle span{ width:22px; height:2px; background:var(--ink); display:block; }
body.is-home .site-header:not(.solid) .nav-toggle span{ background:#fff; }

/* ---------- hero (carrusel) ---------- */
.hero{
  position:relative; min-height:100svh; background:var(--black); color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  overflow:hidden; padding:6rem 1.2rem 4rem;
}
.hero-slides{ position:absolute; inset:0; z-index:0; }
.hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transform:scale(1.08); transition:opacity 1.4s ease, transform 7s linear;
}
.hero-slide.active{ opacity:1; transform:scale(1); }
.hero-overlay{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 15%, rgba(255,255,255,.05), transparent 60%),
    radial-gradient(ellipse at 50% 100%, rgba(200,39,31,.12), transparent 55%);
}
.hero-dark{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.hero-content{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
.hero-signature{ width:min(300px,50vw); margin:0 auto 1.4rem; position:relative; }
.hero-signature img{
  width:100%; height:auto;
  clip-path:inset(0 100% 0 0);
  animation:reveal-firma 1.9s cubic-bezier(.65,0,.2,1) .35s forwards;
  filter:drop-shadow(0 0 26px rgba(200,39,31,.28));
}
@keyframes reveal-firma{ to{ clip-path:inset(0 0 0 0); } }
.hero-text{ text-align:center; opacity:0; transform:translateY(14px); animation:hero-in .9s ease .1s forwards; animation-delay:1.7s; max-width:640px; }
@keyframes hero-in{ to{ opacity:1; transform:translateY(0); } }
.hero .eyebrow{ color:var(--red); justify-content:center; display:flex; }
.hero-title{ font-size:clamp(2rem,5vw,2.9rem); margin-bottom:.3em; color:#fff; }
.hero-subtitle{ margin-bottom:.9em; }
.hero-tagline{ color:rgba(255,255,255,.72); font-size:1.02rem; max-width:520px; margin:0 auto 1.8em; }
.hero-arrow{
  position:absolute; z-index:3; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.16);
  background:transparent; color:rgba(255,255,255,.45); font-size:1.1rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .25s ease,border-color .25s ease,color .25s ease,opacity .25s ease;
  opacity:.55;
}
.hero-arrow:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.3); color:rgba(255,255,255,.85); opacity:1; }
.hero-arrow-prev{ left:1.2rem; }
.hero-arrow-next{ right:1.2rem; }
@media (max-width:640px){ .hero-arrow{ width:36px; height:36px; } }
.scroll-cue{
  position:absolute; z-index:3; bottom:1.8rem; left:50%; transform:translateX(-50%);
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.4);
  opacity:0; animation:hero-in .8s ease 2.4s forwards; display:flex; flex-direction:column; align-items:center; gap:.5em;
}
.scroll-cue::after{ content:""; width:1px; height:26px; background:rgba(255,255,255,.35); animation:scrollline 1.8s ease-in-out infinite; }
@keyframes scrollline{ 0%,100%{ transform:scaleY(.4); opacity:.3;} 50%{ transform:scaleY(1); opacity:1;} }

/* ---------- page header (non-home) ---------- */
.page-hero{
  background:var(--black); color:#fff; padding:9rem 0 4rem; text-align:center;
}
.page-hero .eyebrow{ justify-content:center; display:flex; }
.page-hero h1{ color:#fff; font-size:clamp(2rem,4.5vw,2.6rem); }
.page-hero p{ color:rgba(255,255,255,.68); max-width:560px; margin:0 auto; }

/* ---------- home sections ---------- */
.intro-block{ display:grid; grid-template-columns:.7fr 1fr; gap:var(--gap); align-items:center; }
.intro-block .intro-photo{ width:100%; max-width:340px; aspect-ratio:1/1; border-radius:50%; overflow:hidden; margin:0 auto; background:var(--paper-2); }
.intro-block .intro-photo img{ width:100%; height:100%; object-fit:cover; border-radius:50%; }
.intro-block .txt p{ color:var(--gray); font-size:1.02rem; }

/* ---------- franja parallax (bajo Series) ---------- */
.parallax-band{
  position:relative; min-height:34vh; background-size:cover; background-position:center;
  background-attachment:fixed; overflow:hidden;
  display:flex; align-items:center; justify-content:center; text-align:center; padding:3rem 1.4rem;
}
@media (max-width:900px){ .parallax-band{ background-attachment:scroll; } }
.parallax-band::before{ content:""; position:absolute; inset:0; background:rgba(8,8,8,.4); }
.parallax-band-content{ position:relative; z-index:1; max-width:560px; color:#fff; }
.parallax-band-content h3{ color:#fff; font-size:clamp(1.5rem,3.4vw,2.1rem); margin-bottom:.4em; }
.parallax-band-content p{ color:rgba(255,255,255,.85); margin-bottom:1.4em; }
.parallax-band-content .btn{ border-color:rgba(255,255,255,.55); color:#fff; }
.parallax-band-content .btn:hover{ background:#fff; color:var(--black); }

/* ---------- marquesina (exposiciones/reconocimientos en inicio, galeria artista) ---------- */
.marquee{ overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.marquee-track{ display:flex; width:max-content; animation:marquee-scroll 42s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
@keyframes marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

.series-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.series-card{ background:var(--paper); padding:2.2rem 1.4rem; text-align:center; transition:background .25s ease; }
.series-card:hover{ background:#fff; }
.series-card h3{ font-size:1.05rem; margin-bottom:.3em; }
.series-card span{ font-size:.78rem; color:var(--gray); letter-spacing:.03em; }

.obra-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.obra-card{ display:block; position:relative; }
.obra-card figure{ margin:0; overflow:hidden; background:var(--paper-2); aspect-ratio:4/5; position:relative; }
.obra-card img{ width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.obra-card:hover img{ transform:scale(1.045); }
.obra-card figcaption{ padding:.9rem .1rem 0; }
.obra-card .o-title{ font-family:var(--serif); font-size:1.02rem; margin-bottom:.15em; }
.obra-card .o-meta{ font-size:.78rem; color:var(--gray); }

/* ---------- disponibilidad / distintivo de venta ---------- */
/* Por defecto se ve solo el puntito de color sobre la foto (rojo=vendida,
   gris oscuro=reservada); al pasar el mouse (o tocar en movil) sobre la
   foto, la pastilla se expande y revela la palabra "Vendida"/"Reservada".
   max-width en vez de width para que la animacion se pueda transicionar. */
.badge-status{
  position:absolute; top:.7rem; right:.7rem; z-index:2;
  font-size:.64rem; letter-spacing:.09em; text-transform:uppercase; font-weight:700;
  padding:.42em; border-radius:999px; color:#fff; background:var(--red);
  display:inline-flex; align-items:center; gap:.45em; box-shadow:0 2px 8px rgba(0,0,0,.25);
  max-width:16px; overflow:hidden; white-space:nowrap;
  transition:max-width .35s cubic-bezier(.2,.7,.2,1), padding-right .35s cubic-bezier(.2,.7,.2,1);
}
.badge-status .dot{ width:7px; height:7px; border-radius:50%; background:#fff; flex-shrink:0; }
.badge-status .label{ opacity:0; transition:opacity .2s ease; }
.badge-status.badge-reservada{ background:var(--ink); }
.obra-card:hover .badge-status{ max-width:150px; padding-right:.8em; }
.obra-card:hover .badge-status .label{ opacity:1; transition:opacity .25s ease .12s; }
.od-availability{
  display:inline-flex; align-items:center; gap:.55em; font-size:.76rem; letter-spacing:.07em; text-transform:uppercase; font-weight:700;
  padding:.55em 1.1em; margin-bottom:1.3rem; color:#fff; background:var(--red);
}
.od-availability.disponible{ background:var(--ink); }
.od-availability.reservada{ background:var(--gray); }
.od-availability .dot{ width:7px; height:7px; border-radius:50%; background:#fff; }

.cta-row{ text-align:center; margin-top:clamp(2rem,4vw,3rem); }

/* ---------- paneles con imagen de fondo / CTA ---------- */
.cta-panel{
  position:relative; min-height:56vh; display:flex; align-items:center; justify-content:center;
  text-align:center; color:#fff; background-size:cover; background-position:center; overflow:hidden;
}
.cta-panel::before{ content:""; position:absolute; inset:0; background:linear-gradient(rgba(8,8,8,.4),rgba(8,8,8,.68)); }
.cta-panel-inner{ position:relative; z-index:1; max-width:640px; padding:2.5rem 1.4rem; }
.cta-panel .eyebrow{ justify-content:center; display:flex; }
.cta-panel h2{ color:#fff; font-size:clamp(1.8rem,4vw,2.5rem); }
.cta-panel p{ color:rgba(255,255,255,.85); font-size:1.05rem; margin-bottom:1.6em; }

.trayectoria-teaser{ background:var(--near-black); color:#fff; }
.trayectoria-teaser .eyebrow{ color:var(--red); }
.trayectoria-teaser h2{ color:#fff; }
.tl-mini{ margin-top:2.5rem; }
.tl-mini .tl-mini-item{ width:280px; flex-shrink:0; padding:0 1.6rem; border-right:1px solid rgba(255,255,255,.12); }
.tl-mini .yr{ font-family:var(--serif); color:var(--red); font-size:1.5rem; display:block; margin-bottom:.25em; }
.tl-mini p{ color:rgba(255,255,255,.72); font-size:.9rem; }

.contact-band{ background:var(--red); color:#fff; text-align:center; }
.contact-band h2{ color:#fff; }
.contact-band p{ color:rgba(255,255,255,.85); max-width:520px; margin:0 auto 1.6em; }
.contact-cta-row{ display:flex; align-items:center; justify-content:space-between; gap:2.4rem; text-align:left; }
.contact-cta-row .contact-cta-text{ max-width:560px; }
.contact-cta-row h2{ margin-bottom:.3em; }
.contact-cta-row p{ margin:0; max-width:none; }
.contact-cta-row .btn{ flex-shrink:0; }
.contact-cta-row .btn svg{ width:16px; height:16px; flex-shrink:0; }
@media (max-width:760px){ .contact-cta-row{ flex-direction:column; align-items:flex-start; text-align:left; } }

/* ---------- obra listing ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2.4rem; }
.filters a{
  font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; padding:.5em 1.1em;
  border:1px solid var(--line); color:var(--gray);
}
.filters a.active,.filters a:hover{ border-color:var(--ink); color:var(--ink); }

/* ---------- obra detalle ---------- */
.obra-detalle{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.obra-detalle .img-wrap{ background:var(--paper-2); }
.obra-detalle .img-wrap img{ width:100%; height:auto; }
.od-meta{ padding-top:.5rem; }
.od-meta h1{ font-size:clamp(1.7rem,3.4vw,2.2rem); }
.od-table{ margin:1.6rem 0 2rem; border-top:1px solid var(--line); }
.od-table div{ display:flex; justify-content:space-between; padding:.7em 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.od-table span:first-child{ color:var(--gray); }
.od-table span:last-child{ text-align:right; }
.back-link{ display:inline-flex; align-items:center; gap:.4em; font-size:.8rem; letter-spacing:.04em; color:var(--gray); margin-bottom:2rem; }
.back-link:hover{ color:var(--ink); }
.od-actions{ display:flex; flex-direction:column; align-items:stretch; gap:.8rem; margin-top:.4rem; }
.od-actions .btn{ justify-content:center; text-align:center; white-space:nowrap; }
.od-actions .btn svg{ width:16px; height:16px; flex-shrink:0; }
@media (max-width:420px){
  .od-actions .btn{ font-size:.76rem; letter-spacing:.03em; padding:.9em 1em; white-space:normal; }
}
.od-extra{ margin-top:4rem; }
.od-extra-fotos{ display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:1rem; margin-top:1.6rem; }
.od-extra-fotos a{ display:block; aspect-ratio:1; overflow:hidden; background:var(--paper-2); }
.od-extra-fotos img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.od-extra-fotos a:hover img{ transform:scale(1.06); }
.otras-obras{ margin-top:5rem; }
.otras-obras .obra-grid{ grid-template-columns:repeat(4,1fr); }

/* ---------- el artista ---------- */
.artista-hero{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.artista-hero .ph{ background:var(--paper-2); }
.artista-hero img{ width:100%; height:auto; }
.stats-row{ display:flex; gap:clamp(1.6rem,4vw,3rem); margin-top:2rem; flex-wrap:wrap; }
.stats-row .stat b{ font-family:var(--serif); font-size:2rem; color:var(--red); display:block; }
.stats-row .stat span{ font-size:.78rem; letter-spacing:.03em; color:var(--gray); text-transform:uppercase; }
.bio-text p{ color:var(--ink); font-size:1.02rem; }
.bio-text{ max-width:760px; }

/* dos bloques imagen+texto alternados, en vez de una foto muy alta junto a texto largo */
.artista-split{ display:flex; flex-direction:column; gap:clamp(3rem,6vw,4.5rem); }
.artista-split-row{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.artista-split-row.rev{ direction:rtl; }
.artista-split-row.rev > *{ direction:ltr; }
.artista-split-row .ph{ background:var(--paper-2); aspect-ratio:4/5; overflow:hidden; }
.artista-split-row .ph img{ width:100%; height:100%; object-fit:cover; }

.impact-phrase-band{
  position:relative; min-height:38vh; background-size:cover; background-position:center;
  background-attachment:fixed; display:flex; align-items:center; justify-content:center;
  padding:3rem 1.4rem;
}
@media (max-width:900px){ .impact-phrase-band{ background-attachment:scroll; } }
.impact-phrase-band::before{ content:""; position:absolute; inset:0; background:rgba(8,8,8,.55); }
.impact-phrase{
  position:relative; z-index:1;
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:clamp(1.35rem,3vw,2.1rem); text-align:center; line-height:1.45;
  max-width:840px; margin:0 auto; color:#fff;
}
.impact-phrase.on-paper{ color:var(--ink); }
.impact-phrase .q{ color:var(--red); }

.artista-gallery-track .g-item{ width:260px; flex-shrink:0; margin-right:.8rem; overflow:hidden; background:var(--paper-2); aspect-ratio:3/4; }
.artista-gallery-track img{ width:100%; height:100%; object-fit:cover; }

/* ---------- el artista: rediseño editorial "revista de arte" ---------- */
.artista-hero-full{
  position:relative; min-height:82svh; background-color:var(--black);
  background-size:cover; background-position:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  overflow:hidden; padding:6rem 1.2rem 4rem; color:#fff;
}
.artista-hero-text{
  position:relative; z-index:2; text-align:center; max-width:680px;
  opacity:0; transform:translateY(14px); animation:hero-in .9s ease .3s forwards;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
.artista-hero-title{ font-size:clamp(2.4rem,6vw,4rem); color:#fff; margin:0; }
.artista-hero-full .eyebrow{ color:rgba(255,255,255,.82); }

.artista-vitals{ padding-bottom:0; }
.artista-vitals .stats-row{ justify-content:center; padding-bottom:2.6rem; border-bottom:1px solid var(--paper-2); margin-top:0; }

.artista-editorial{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:clamp(2.6rem,5.5vw,4rem); }
.chapter{ display:flex; gap:1.6rem; align-items:flex-start; }
.chapter-mark{ flex:0 0 auto; width:2.4rem; text-align:right; padding-top:.2em; }
.chapter-mark .num{ font-family:var(--serif); font-size:.9rem; color:var(--red); letter-spacing:.03em; display:block; }
.chapter-mark .num::after{ content:""; display:block; width:1px; height:2.4rem; background:rgba(200,39,31,.25); margin:.7em 0 0 auto; }
.chapter-text{ flex:1; min-width:0; }
.chapter-text p{ color:var(--ink); font-size:1.04rem; line-height:1.78; margin:0 0 1.15em; }
.chapter-text p:last-child{ margin-bottom:0; }
.chapter-text p.lead::first-letter{
  font-family:var(--serif); font-weight:600; font-size:3.2rem; color:var(--red);
  float:left; line-height:.8; padding:.06em .09em 0 0;
}
@media (max-width:640px){
  .chapter{ gap:.9rem; }
  .chapter-mark{ width:1.7rem; }
  .chapter-mark .num{ font-size:.78rem; }
}

.artista-figure{ max-width:460px; margin:0 auto; text-align:center; }
.artista-figure img{ width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--paper-2); display:block; }
.artista-figure figcaption{ font-family:var(--serif); font-style:italic; font-size:.86rem; color:var(--gray); margin-top:.85em; }

.chapter-final-num{ display:block; font-family:var(--serif); font-size:.9rem; color:var(--red); margin-bottom:.6em; }
.chapter-final-num::after{ content:""; display:block; width:28px; height:1px; background:rgba(200,39,31,.3); margin:.6em auto 0; }

/* pull-quote de "El Artista" con más presencia editorial */
.impact-phrase{ font-size:clamp(1.5rem,3.6vw,2.5rem); }

/* revelado suave al hacer scroll (progressive enhancement: sin JS, todo es visible normalmente) */
[data-reveal].reveal-init{ opacity:0; transform:translateY(18px); transition:opacity .8s ease, transform .8s ease; }
[data-reveal].reveal-init.in-view{ opacity:1; transform:translateY(0); }

/* ---------- trayectoria: exposiciones + reconocimientos ---------- */
.tray-section{ margin-bottom:clamp(3rem,6vw,5rem); }
.tray-section:last-child{ margin-bottom:0; }
.tray-section-head{ text-align:center; margin-bottom:clamp(2rem,4vw,2.8rem); }

.tray-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.tray-card{ background:#fff; border:1px solid var(--line); }
.tray-card .tc-img{ aspect-ratio:4/3; background:var(--paper-2); overflow:hidden; }
.tray-card .tc-img img{ width:100%; height:100%; object-fit:cover; }
.tray-card .tc-img.empty{ display:flex; align-items:center; justify-content:center; color:var(--gray); font-family:var(--serif); font-size:1.6rem; }
.tray-card .tc-body{ padding:1.2rem 1.3rem 1.4rem; }
.tray-card .tc-year{ font-family:var(--serif); color:var(--red); font-size:1.05rem; display:block; margin-bottom:.35em; }
.tray-card h3{ font-size:1rem; margin-bottom:.2em; }
.tray-card .tc-place{ font-size:.82rem; color:var(--gray); margin-bottom:0; }
.tray-card .tc-desc{ font-size:.86rem; color:var(--ink); margin:.5em 0 0; }

.reconoc-list{ max-width:820px; margin:0 auto; }
.reconoc-item{ display:grid; grid-template-columns:92px 1fr; gap:1.4rem; align-items:center; padding:1.4rem 0; border-bottom:1px solid var(--line); }
.reconoc-item:first-child{ padding-top:0; }
.reconoc-item .tc-img{ aspect-ratio:1/1; background:var(--paper-2); overflow:hidden; border-radius:2px; }
.reconoc-item .tc-img img{ width:100%; height:100%; object-fit:cover; }
.reconoc-item .tc-img.empty{ display:flex; align-items:center; justify-content:center; color:var(--red); font-family:var(--serif); font-size:1.3rem; }
.reconoc-item .r-year{ font-family:var(--serif); color:var(--red); font-size:.82rem; display:block; margin-bottom:.3em; letter-spacing:.03em; }
.reconoc-item h3{ font-size:1rem; margin-bottom:.2em; }
.reconoc-item .tc-place{ font-size:.82rem; color:var(--gray); }

/* ---------- contacto ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); }
.contact-options a{ display:flex; align-items:center; justify-content:space-between; padding:1.2em 0; border-bottom:1px solid var(--line); font-size:1rem; }
.contact-options a:hover{ color:var(--red); }
.contact-options a .co-label{ display:inline-flex; align-items:center; gap:.7em; }
.contact-options a svg{ width:20px; height:20px; flex-shrink:0; color:var(--red); }
.form-field{ margin-bottom:1.2rem; }
.form-field label{ display:block; font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--gray); margin-bottom:.5em; }
.form-field input,.form-field textarea{
  width:100%; border:1px solid var(--line); background:#fff; padding:.85em 1em; font-family:var(--sans); font-size:.95rem; color:var(--ink);
}
.form-field textarea{ min-height:130px; resize:vertical; }
.form-msg{ padding:1em 1.2em; margin-bottom:1.4rem; font-size:.9rem; }
.form-msg.ok{ background:#eef6ee; color:#2e6b2e; }
.form-msg.error{ background:#f8eaea; color:var(--red-deep); }

/* ---------- footer ---------- */
.site-footer{ background:var(--black); color:rgba(255,255,255,.7); padding-top:3.5rem; }
.footer-inner{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.12); }
.footer-brand .brand-mark{ color:var(--red); }
.footer-brand .brand-logo img{ height:52px; }
.footer-brand p{ font-size:.82rem; color:rgba(255,255,255,.5); margin-top:.8em; max-width:320px; }
.footer-links,.footer-social{ display:flex; flex-direction:column; gap:.7em; font-size:.9rem; }
.footer-links a:hover,.footer-social a:hover{ color:var(--red); }
.footer-social a{ display:inline-flex; align-items:center; gap:.55em; }
.footer-social svg{ width:16px; height:16px; flex-shrink:0; }
.footer-bottom{ padding:1.4rem 0; font-size:.78rem; color:rgba(255,255,255,.45); display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; align-items:center; justify-content:space-between; }
.footer-legal{ display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; }
.footer-legal a{ color:rgba(255,255,255,.45); text-decoration:none; }
.footer-legal a:hover{ color:var(--red); }

/* ---------- responsive ---------- */
@media (max-width:900px){
  .main-nav{ position:fixed; inset:0 0 0 auto; width:min(320px,86vw); background:var(--paper); flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:1.4rem; padding:6.5rem 2rem 2rem; transform:translateX(100%); transition:transform .35s ease; box-shadow:-8px 0 24px rgba(0,0,0,.08); }
  .main-nav.open{ transform:translateX(0); }
  .main-nav a{ color:var(--ink) !important; font-size:1.05rem; }
  .lang-switch a{ color:var(--ink) !important; }
  .nav-toggle{ display:flex; }
  .intro-block{ grid-template-columns:1fr; }
  .series-grid{ grid-template-columns:repeat(2,1fr); }
  .obra-grid{ grid-template-columns:repeat(2,1fr); }
  .otras-obras .obra-grid{ grid-template-columns:repeat(2,1fr); }
  .tl-mini{ grid-template-columns:repeat(2,1fr); }
  .obra-detalle{ grid-template-columns:1fr; }
  .artista-hero{ grid-template-columns:1fr; }
  .artista-split-row,.artista-split-row.rev{ grid-template-columns:1fr; direction:ltr; }
  .intro-block{ grid-template-columns:1fr; }
  .intro-block .intro-photo{ max-width:220px; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-inner{ grid-template-columns:1fr; gap:1.6rem; }
  .tl-item{ grid-template-columns:80px 1fr; gap:1rem; }
  .tray-grid{ grid-template-columns:repeat(2,1fr); }
  .artista-gallery{ grid-template-columns:repeat(2,1fr); }
  .reconoc-item{ grid-template-columns:70px 1fr; gap:1rem; }
}
@media (max-width:560px){
  .obra-grid{ grid-template-columns:1fr; }
  .otras-obras .obra-grid{ grid-template-columns:1fr; }
  .series-grid{ grid-template-columns:1fr 1fr; }
  .tray-grid{ grid-template-columns:1fr; }
}
