/* Casa de los Antiguos Gobernadores — sistema visual Variante C.
   Extraído literalmente de los documentos de diseño; no reescribir a mano:
   regenerar con web/tools/convertir_diseno.py si el diseño cambia. */

/* ============ base + home ============ */
:root {
    --ease-out:cubic-bezier(0.23,1,0.32,1);
    --paper:#f5f4f8; --ink:#1b1c29; --muted:#5c5d73;
    --line:rgba(27,28,41,.14); --accent:#5b4fbe; --tint:#eceaf7;
  }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
  * { box-sizing:border-box; }
  a { color:#4a3fa8; text-decoration:none; }
  a:hover { color:#2f2680; }
  ::selection { background:rgba(91,79,190,.18); }
  [data-lang="en"] { display:none; }
  :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

  @keyframes heroPan { from { transform:scale(1.12) translateY(-3%); } to { transform:scale(1.12) translateY(3%); } }

  .cta { transition:background-color 160ms ease, transform 160ms var(--ease-out), border-color 160ms ease; }
  .cta:active { transform:scale(.97); }
  .nav-link { transition:color 160ms ease; }
  .gal img { transition:transform 280ms var(--ease-out); }
  .row { transition:padding-left 220ms var(--ease-out); }
  .row-name { transition:color 200ms ease; }
  .row-mark { transition:opacity 200ms ease, transform 220ms var(--ease-out); }
  .panel { transition:opacity 280ms var(--ease-out), filter 280ms var(--ease-out); }
  .moment { transition:border-color 200ms ease; }

  .panel { position:absolute; inset:0; opacity:0; filter:blur(6px); pointer-events:none; }
  .panel-1 { opacity:1; filter:none; }
  .stage:has(.row:hover) .panel, .stage:has(.row:focus-within) .panel { opacity:0; filter:blur(6px); }
  .stage:has(.row-1:hover) .panel-1, .stage:has(.row-1:focus-within) .panel-1,
  .stage:has(.row-2:hover) .panel-2, .stage:has(.row-2:focus-within) .panel-2,
  .stage:has(.row-3:hover) .panel-3, .stage:has(.row-3:focus-within) .panel-3,
  .stage:has(.row-4:hover) .panel-4, .stage:has(.row-4:focus-within) .panel-4,
  .stage:has(.row-5:hover) .panel-5, .stage:has(.row-5:focus-within) .panel-5 { opacity:1; filter:none; }
  .stage:has(.row:hover) .row-name { color:#a6a7b8; }
  .row:hover .row-name, .row:focus-within .row-name { color:var(--ink); }
  .row:hover .row-mark, .row:focus-within .row-mark { opacity:1; transform:none; }
  .row:hover, .row:focus-within { padding-left:16px; }
  .row-news .row-name { color:var(--ink); }
  @media (hover:hover) and (pointer:fine) { .row-news:hover .row-name { color:#3d3392; } }
  .panel-label { display:none; }

  @keyframes revealIn { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
  .reveal { opacity:1; transform:none; }
  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      .reveal { animation:revealIn 460ms var(--ease-out) both; animation-timeline:view(); animation-range:entry 0% entry 45%; }
    }
  }

  #reserva-modal { opacity:0; visibility:hidden; pointer-events:none; transition:opacity 130ms var(--ease-out), visibility 0s linear 130ms; }
  #reserva-modal.open { opacity:1; visibility:visible; pointer-events:auto; transition:opacity 200ms var(--ease-out), visibility 0s; }
  .dialog { transform:scale(.97); opacity:0; transition:transform 130ms var(--ease-out), opacity 130ms var(--ease-out); }
  #reserva-modal.open .dialog { transform:scale(1); opacity:1; transition-duration:220ms; }
  .input { width:100%; padding:12px 14px; border:1px solid rgba(27,28,41,.2); border-radius:8px; background:#fbfbfd; color:var(--ink); font-family:inherit; font-size:15px; }
  .input:focus { border-color:var(--accent); }
  .flabel { display:flex; flex-direction:column; gap:8px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
  .msg { display:none; }
  .msg.show { display:block; }

  @media (hover:hover) and (pointer:fine) {
    .nav-link:hover { color:var(--ink); }
    .gal:hover img { transform:scale(1.05); }
    .cta:hover { background-color:rgba(91,79,190,.09); }
    .moment:hover { border-top-color:var(--accent); }
  }
  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      .hero-img { animation:heroPan linear both; animation-timeline:view(); animation-range:entry 0% exit 100%; }
    }
  }
  @media (max-width:1080px){ .navlinks { display:none !important; } }
  @media (max-width:900px){
    .hero { grid-template-columns:1fr !important; }
    .hero-media { min-height:52dvh; order:-1; }
    .hero-copy { padding:52px 28px 60px !important; }
    .stage { grid-template-columns:1fr !important; gap:28px !important; }
    .rows { display:none !important; }
    .panels { position:static !important; height:auto !important; display:grid; gap:28px; }
    .panel { position:static !important; opacity:1 !important; filter:none !important; pointer-events:auto !important; }
    .panel-label { display:block; }
    .split { grid-template-columns:1fr !important; gap:36px !important; }
    .shift { margin-top:0 !important; }
    .gal-grid { grid-template-columns:repeat(2,1fr) !important; grid-auto-rows:170px !important; }
    .pad { padding-left:24px !important; padding-right:24px !important; }
  }
  @media (prefers-reduced-motion: reduce){
    html { scroll-behavior:auto; }
    .reveal { opacity:1; transform:none; transition:none; animation:none; }
    .row, .row-name, .row-mark, .panel, .cta, .gal img, .dialog, #reserva-modal { transition-duration:1ms !important; }
    .row:hover, .row:focus-within { padding-left:0; }
    .gal:hover img, .cta:active { transform:none; }
  }
/* ============ salones (colecciones) ============ */
:root {
    --ease-out:cubic-bezier(0.23,1,0.32,1);
    --paper:#f5f4f8; --ink:#1b1c29; --muted:#5c5d73;
    --line:rgba(27,28,41,.14); --accent:#5b4fbe; --tint:#eceaf7;
  }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
  * { box-sizing:border-box; }
  a { color:#4a3fa8; text-decoration:none; }
  a:hover { color:#2f2680; }
  ::selection { background:rgba(91,79,190,.18); }
  [data-lang="en"] { display:none; }
  :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

  @keyframes revealIn { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
  .reveal { opacity:1; transform:none; }
  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      .reveal { animation:revealIn 460ms var(--ease-out) both; animation-timeline:view(); animation-range:entry 0% entry 45%; }
    }
  }

  .cta { transition:background-color 160ms ease, transform 160ms var(--ease-out), border-color 160ms ease; }
  .cta:active { transform:scale(.97); }
  .nav-link { transition:color 160ms ease; }
  .obra { transition:transform 200ms var(--ease-out); }
  .obra img { transition:transform 280ms var(--ease-out); }
  .obra-nombre { transition:color 180ms ease; }

  #ficha { opacity:0; visibility:hidden; pointer-events:none; transition:opacity 130ms var(--ease-out), visibility 0s linear 130ms; }
  #ficha.open { opacity:1; visibility:visible; pointer-events:auto; transition:opacity 200ms var(--ease-out), visibility 0s; }
  .dialog { transform:scale(.97); opacity:0; transition:transform 130ms var(--ease-out), opacity 130ms var(--ease-out); }
  #ficha.open .dialog { transform:scale(1); opacity:1; transition-duration:220ms; }

  @media (hover:hover) and (pointer:fine) {
    .nav-link:hover { color:var(--ink); }
    .cta:hover { background-color:rgba(91,79,190,.09); }
    .obra:hover { transform:translateY(-3px); }
    .obra:hover img { transform:scale(1.03); }
    .obra:hover .obra-nombre { color:#3d3392; }
  }
  @media (max-width:1080px){ .navlinks { display:none !important; } }
  @media (max-width:900px){
    .split { grid-template-columns:1fr !important; gap:36px !important; }
    .rejilla { grid-template-columns:repeat(2,1fr) !important; }
    .pad { padding-left:24px !important; padding-right:24px !important; }
    .ficha-cuerpo { grid-template-columns:1fr !important; }
  }
  @media (prefers-reduced-motion: reduce){
    html { scroll-behavior:auto; }
    .reveal { opacity:1; transform:none; animation:none; }
    .obra, .obra img, .cta, .dialog, #ficha { transition-duration:1ms !important; }
    .obra:hover, .obra:hover img, .cta:active { transform:none; }
  }
/* ============ noticias ============ */
:root {
    --ease-out:cubic-bezier(0.23,1,0.32,1);
    --paper:#f5f4f8; --ink:#1b1c29; --muted:#5c5d73;
    --line:rgba(27,28,41,.14); --accent:#5b4fbe; --tint:#eceaf7;
  }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
  * { box-sizing:border-box; }
  a { color:#4a3fa8; text-decoration:none; }
  a:hover { color:#2f2680; }
  ::selection { background:rgba(91,79,190,.18); }
  [data-lang="en"] { display:none; }
  :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

  .cta { transition:background-color 160ms ease, transform 160ms var(--ease-out), border-color 160ms ease; }
  .cta:active { transform:scale(.97); }
  .nav-link { transition:color 160ms ease; }
  .card img { transition:transform 280ms var(--ease-out); }
  .card-title { transition:color 200ms ease; }
  .row { transition:padding-left 220ms var(--ease-out); }
  .row-name { transition:color 200ms ease; }

  @keyframes revealIn { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
  .reveal { opacity:1; transform:none; }
  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      .reveal { animation:revealIn 460ms var(--ease-out) both; animation-timeline:view(); animation-range:entry 0% entry 45%; }
    }
  }

  .input { width:100%; padding:12px 14px; border:1px solid rgba(27,28,41,.2); border-radius:8px; background:#fbfbfd; color:var(--ink); font-family:inherit; font-size:15px; }
  .input:focus { border-color:var(--accent); }
  .flabel { display:flex; flex-direction:column; gap:8px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
  .msg { display:none; }
  .msg.show { display:block; }

  @media (hover:hover) and (pointer:fine) {
    .nav-link:hover { color:var(--ink); }
    .card:hover img { transform:scale(1.04); }
    .card:hover .card-title { color:#3d3392; }
    .cta:hover { background-color:rgba(91,79,190,.09); }
    .row:hover .row-name { color:#3d3392; }
    .row:hover { padding-left:16px; }
  }
  @media (max-width:1080px){ .navlinks { display:none !important; } }
  @media (max-width:900px){
    .split { grid-template-columns:1fr !important; gap:36px !important; }
    .grid { grid-template-columns:1fr !important; }
    .lead { grid-template-columns:1fr !important; }
    .pad { padding-left:24px !important; padding-right:24px !important; }
    .archive-row { grid-template-columns:1fr !important; gap:8px !important; }
  }
  @media (prefers-reduced-motion: reduce){
    html { scroll-behavior:auto; }
    .reveal { opacity:1; transform:none; transition:none; animation:none; }
    .card img, .cta, .row, .row-name, .card-title { transition-duration:1ms !important; }
    .card:hover img, .cta:active { transform:none; }
    .row:hover { padding-left:0; }
  }
/* ============ nota de prensa ============ */
:root {
    --ease-out:cubic-bezier(0.23,1,0.32,1);
    --paper:#f5f4f8; --ink:#1b1c29; --muted:#5c5d73;
    --line:rgba(27,28,41,.14); --accent:#5b4fbe; --tint:#eceaf7;
  }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
  * { box-sizing:border-box; }
  a { color:#4a3fa8; text-decoration:none; }
  a:hover { color:#2f2680; }
  ::selection { background:rgba(91,79,190,.18); }
  [data-lang="en"] { display:none; }
  :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

  .cta { transition:background-color 160ms ease, transform 160ms var(--ease-out), border-color 160ms ease; }
  .cta:active { transform:scale(.97); }
  .nav-link { transition:color 160ms ease; }
  .card img { transition:transform 280ms var(--ease-out); }
  .card-title { transition:color 200ms ease; }
  @keyframes revealIn { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
  .reveal { opacity:1; transform:none; }
  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      .reveal { animation:revealIn 460ms var(--ease-out) both; animation-timeline:view(); animation-range:entry 0% entry 45%; }
    }
  }
  .prose p { margin:0 0 24px; font-size:18px; line-height:1.78; color:#33344a; font-weight:300; text-wrap:pretty; }
  .prose p:last-child { margin-bottom:0; }
  .shot { margin:0; }
  .shot > div { border-radius:8px; overflow:hidden; background:#e4e3ec; }
  .shot figcaption { margin:13px 0 0; font-size:13px; line-height:1.55; color:var(--muted); max-width:56ch; }
  .shot figcaption:empty { display:none; }

  @media (hover:hover) and (pointer:fine) {
    .nav-link:hover { color:var(--ink); }
    .card:hover img { transform:scale(1.04); }
    .card:hover .card-title { color:#3d3392; }
    .cta:hover { background-color:rgba(91,79,190,.09); }
  }
  @media (max-width:1080px){ .navlinks { display:none !important; } }
  @media (max-width:900px){
    .split { grid-template-columns:1fr !important; gap:36px !important; }
    .grid { grid-template-columns:1fr !important; }
    .pair { grid-template-columns:1fr !important; }
    .pad { padding-left:24px !important; padding-right:24px !important; }
  }
  @media (prefers-reduced-motion: reduce){
    html { scroll-behavior:auto; }
    .reveal { opacity:1; transform:none; transition:none; animation:none; }
    .card img, .cta, .card-title { transition-duration:1ms !important; }
    .card:hover img, .cta:active { transform:none; }
  }