/*
Theme Name: Señalética
Theme URI: https://simonpera.com
Author: Simon Pera
Description: Tema propio de simonpera.com. Señalética de ruta: carteles, flechas y un desvío cada tanto.
Version: 1.9.4
Text Domain: senaletica
*/

:root{
  --papel:#f4f3ee; --tinta:#141413; --gris:#5f5e5a; --linea:#c9c7bf;
  --verde:#1d6b3c; --azul:#1f4f9c; --marron:#7a4a24; --naranja:#e8731c; --amarillo:#f2c200;
  --cond:'Barlow Condensed',sans-serif; --sans:'Barlow',sans-serif; --serif:'Instrument Serif',serif; --mono:'IBM Plex Mono',monospace;
  --pad:28px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--sans);font-size:16px;line-height:1.5}
a{color:inherit;text-decoration:none}
a:hover{opacity:.92}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{margin:0;font-family:var(--cond);font-weight:700;line-height:.92}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* carteles */
.cartel{display:inline-flex;align-items:center;gap:10px;font-family:var(--cond);font-weight:700;font-size:18px;line-height:1;padding:7px 12px;border-radius:4px;white-space:nowrap}
.cartel svg{flex:0 0 auto}
.cartel--verde{background:var(--verde);color:#fff;box-shadow:inset 0 0 0 2px var(--verde),inset 0 0 0 3.5px #fff}
.cartel--azul{background:var(--azul);color:#fff;box-shadow:inset 0 0 0 2px var(--azul),inset 0 0 0 3.5px #fff}
.cartel--marron{background:var(--marron);color:#fff;box-shadow:inset 0 0 0 2px var(--marron),inset 0 0 0 3.5px #fff}
.cartel--amarillo{background:var(--amarillo);color:var(--tinta);box-shadow:inset 0 0 0 2px var(--tinta),inset 0 0 0 3.5px var(--amarillo)}
.cartel--naranja{background:var(--naranja);color:var(--tinta);box-shadow:inset 0 0 0 2.5px var(--tinta),inset 0 0 0 5px var(--naranja),inset 0 0 0 7px var(--tinta)}
.cartel--blanco{background:#fff;color:var(--tinta);border:1.5px solid var(--tinta)}
.cartel--grande{font-size:26px;padding:10px 16px;border-radius:6px;gap:14px}
.cartel--verde.cartel--grande{box-shadow:inset 0 0 0 2.5px var(--verde),inset 0 0 0 5px #fff}
.cartel--amarillo.cartel--grande{box-shadow:inset 0 0 0 2.5px var(--tinta),inset 0 0 0 5px var(--amarillo)}
.chapa{display:inline-flex;align-items:center;gap:14px;background:#fff;border:1.5px solid var(--tinta);border-radius:4px;padding:8px 14px;font-family:var(--mono);font-size:12px}
.mono{font-family:var(--mono);font-size:13px;color:var(--gris)}

/* cabecera */
.cab{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px var(--pad);flex-wrap:wrap}
.cab nav{display:flex;gap:8px;flex-wrap:wrap}
.cab .marca{font-size:18px;letter-spacing:.01em}

/* inicio */
.inicio{position:relative;min-height:100vh;min-height:100svh;background:var(--tinta);overflow:hidden}
.inicio img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.inicio .marca{position:absolute;top:28px;left:50%;transform:translateX(-50%);gap:18px;font-size:32px;letter-spacing:.04em;padding:12px 22px;border-radius:6px;background:var(--amarillo);color:var(--tinta);box-shadow:inset 0 0 0 3px var(--tinta),inset 0 0 0 6px var(--amarillo),inset 0 0 0 7.5px var(--tinta)}
.inicio .marca svg{width:30px;height:19px}
.inicio .ir-encargos{position:absolute;left:clamp(28px,7vw,110px);top:50%;transform:translateY(-50%)}
.inicio .ir-obra{position:absolute;right:clamp(28px,7vw,110px);top:50%;transform:translateY(-50%)}
.inicio .ir-desvios{position:absolute;left:50%;bottom:28px;transform:translateX(-50%)}
@media(max-width:700px){
  .inicio .marca{font-size:22px;top:20px}
  .inicio .ir-encargos{left:16px}
  .inicio .ir-obra{right:16px}
  .inicio .ir-desvios{bottom:24px}
  .cartel--grande{font-size:22px;padding:9px 13px}
}

/* encargos */
.carriles{display:flex;flex-direction:column;gap:36px;padding:16px 0 0}
.carril__cab{display:flex;align-items:center;gap:14px;padding:0 var(--pad)}
.carril__flecha{display:inline-flex;align-items:center;justify-content:center;width:44px;height:32px;background:var(--verde);border-radius:4px;box-shadow:inset 0 0 0 2px var(--verde),inset 0 0 0 3.5px #fff;transition:background .3s}
.carril__flecha .cono{display:none}
.carril--parado .carril__flecha{background:var(--naranja);box-shadow:inset 0 0 0 2px var(--naranja),inset 0 0 0 3.5px #141413}
.carril--parado .carril__flecha .cono{display:inline-flex}.carril--parado .carril__flecha .flecha{display:none}
.carril__tira{cursor:pointer}
.carril__tira{display:flex;gap:12px;overflow-x:auto;padding:12px var(--pad) 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.carril__tira::-webkit-scrollbar{display:none}
.carril__tira img{height:560px;width:auto;flex:0 0 auto;border-radius:3px}
@media(max-width:900px){.carril__tira img{height:420px}}
@media(max-width:600px){.carril__tira img{height:70vh;max-height:520px}}
.rasta{padding:64px var(--pad) 0}
.rasta .cartel{gap:18px;padding:14px 20px;border-radius:8px;font-size:30px}
.rasta .cartel small{font-family:var(--mono);font-size:12px;font-weight:400;display:inline-flex;align-items:center;gap:8px;padding-left:8px}
.pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:56px var(--pad) 40px}
.pie .cono{display:inline-flex;align-items:center;gap:14px;font-family:var(--mono);font-size:13px}
.pie__salidas{display:flex;gap:10px;flex-wrap:wrap}

/* obra */
.obra-cab{display:flex;flex-direction:column;gap:20px;padding:40px var(--pad) 24px;max-width:900px}
.obra-cab .chapas{display:flex;gap:12px;flex-wrap:wrap}
.obra-cab .chapa{padding:5px 9px;border-radius:3px}
.obra-cab h1{font-size:clamp(48px,9vw,96px);letter-spacing:-.01em}
.statement{font-family:var(--serif);font-style:italic;font-size:26px;line-height:1.3;max-width:640px;padding-top:8px}
.statement p{margin:0 0 12px}
.obra-cuerpo{display:flex;flex-direction:column;gap:96px;padding:64px 0 24px}
.obra-cuerpo > *{margin:0;padding:0 var(--pad)}
.obra-cuerpo figure{display:flex;flex-direction:column;gap:18px;align-items:center}
.obra-cuerpo figure img{width:100%;max-width:880px;border-radius:3px}
.obra-cuerpo figure:nth-of-type(3n+2){align-items:flex-end}
.obra-cuerpo figure:nth-of-type(3n+2) img{max-width:720px}
.obra-cuerpo figure:nth-of-type(3n){align-items:flex-start}
.obra-cuerpo figure:nth-of-type(3n) img{max-width:760px}
.obra-cuerpo figcaption{display:inline-flex;align-items:center;gap:14px;background:#fff;padding:8px 14px;border-radius:4px;border:1.5px solid var(--tinta);font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.2}
.obra-cuerpo figcaption:empty{display:none}
.obra-cuerpo .wp-block-embed,.obra-cuerpo .wp-block-video{width:100%;align-items:stretch}
.obra-cuerpo .wp-block-embed__wrapper,.obra-cuerpo .wp-block-video video{display:block;width:100%;max-width:1100px;margin:0 auto}
.obra-cuerpo .wp-block-embed iframe{display:block;width:100%!important;height:auto!important;aspect-ratio:16/9;border-radius:3px}
.obra-cuerpo .wp-block-video video{border-radius:3px}
.obra-cuerpo p{max-width:640px;font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.3}
.obra-cuerpo .wp-block-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.obra-cuerpo .wp-block-gallery figure:nth-child(even){padding-top:120px}
@media(max-width:700px){.obra-cuerpo{gap:56px}.obra-cuerpo .wp-block-gallery{grid-template-columns:1fr}.obra-cuerpo .wp-block-gallery figure:nth-child(even){padding-top:0}.statement{font-size:22px}}
.salidas{padding:96px var(--pad) 48px;display:flex;justify-content:center}
.panel{display:flex;flex-direction:column;width:100%;max-width:560px;background:var(--verde);border-radius:10px;box-shadow:inset 0 0 0 3px var(--verde),inset 0 0 0 6px #fff;padding:26px 30px;color:#fff}
.panel .mono{color:#fff;opacity:.8;font-size:12px;padding-bottom:10px}
.panel a{display:flex;justify-content:space-between;align-items:center;gap:16px;color:#fff;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.3);font-family:var(--cond);font-weight:700;font-size:26px;line-height:1}
.panel a:last-child{border-bottom:0}
.panel a svg{flex:0 0 auto}

/* botón grande dentro de un proyecto o página (bloque Botones de WordPress) */
.obra-cuerpo .wp-block-buttons,.pagina .wp-block-buttons{display:flex;gap:14px;flex-wrap:wrap;max-width:none}
.obra-cuerpo .wp-block-button__link,.pagina .wp-block-button__link{display:inline-flex;align-items:center;gap:16px;background:var(--verde);color:#fff;font-family:var(--cond);font-weight:700;font-size:clamp(28px,4vw,40px);line-height:1;padding:16px 26px;border-radius:8px;box-shadow:inset 0 0 0 3px var(--verde),inset 0 0 0 6px #fff;text-decoration:none;font-style:normal}
.obra-cuerpo .wp-block-button__link::after,.pagina .wp-block-button__link::after{content:"";width:40px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='%23ffffff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h32M25 3l10 9-10 9'/%3E%3C/svg%3E") no-repeat center/contain}
.obra-cuerpo .wp-block-button__link:hover{opacity:.92}

/* pase de fotos de un proyecto: apiladas, el scroll manda; la línea de ruta arriba */
.obra-cuerpo > .pase{padding:0;width:100vw;margin-left:calc(50% - 50vw);position:relative;cursor:default}
.obra-cuerpo .pase .pase__foto{position:sticky;top:0;height:100vh;height:100svh;margin:0;display:flex;align-items:center;justify-content:center;padding:56px 20px 20px;box-sizing:border-box;background:var(--papel)}
.obra-cuerpo .pase .pase__foto img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.obra-cuerpo .pase .pase__cap{position:absolute;left:28px;bottom:24px;font-family:var(--serif);font-style:italic;font-size:19px;padding:6px 12px}
.pase__ruta{position:fixed;left:28px;right:28px;top:22px;height:8px;border-radius:4px;background:#cfccc0;box-shadow:inset 0 0 0 1px #b9b5a8;z-index:9;opacity:0;transition:opacity .3s;pointer-events:none}
.pase__ruta i{display:block;height:100%;width:0;border-radius:3px;background:var(--marron)}
@media(max-width:700px){.obra-cuerpo .pase .pase__foto{padding:44px 10px 12px}.obra-cuerpo .pase .pase__cap{left:14px;bottom:14px;font-size:16px}.pase__ruta{left:14px;right:14px;top:16px;height:5px}}

/* índice de obra: línea de metro */
.linea{position:relative;padding:24px var(--pad) 64px;display:flex;flex-direction:column;gap:72px}
.linea__riel{position:absolute;left:calc(var(--pad) + 22px);top:0;bottom:0;width:8px;border-radius:4px;background:#d9d6cc}
.linea__avance{position:absolute;left:0;top:0;width:100%;height:0;border-radius:4px;background:var(--marron)}
.linea__tren{position:absolute;left:-7px;top:0;width:22px;height:38px;border-radius:7px;background:var(--marron);box-shadow:inset 0 0 0 2px var(--marron),inset 0 0 0 4px #fff;transform:translateY(-19px)}
.estacion{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:28px;align-items:start}
.estacion__punto{width:26px;height:26px;border-radius:50%;background:#fff;border:6px solid #b9b5a8;box-sizing:border-box;margin:14px 0 0 13px;position:relative;z-index:1;transition:transform .35s,border-color .35s}
.estacion--pasada .estacion__punto{border-color:var(--marron);transform:scale(1.35)}
.estacion:hover .estacion__punto{transform:scale(1.35)}
.estacion__nombre{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.estacion__titulo{display:inline-block;background:#fff;border:2px solid var(--tinta);border-radius:4px;padding:10px 16px;font-family:var(--cond);font-weight:700;font-size:clamp(28px,4vw,44px);line-height:.95;transition:background .4s}
.estacion--pasada .estacion__titulo{background:var(--amarillo)}
.estacion .chapas{display:flex;gap:8px;flex-wrap:wrap}
.estacion .chapa{padding:4px 8px;border-radius:3px;font-size:11px}
.estacion__foto{grid-column:2;margin-top:18px}
.estacion__foto img,.estacion__foto .sin-portada{display:block;width:100%;max-width:980px;height:auto;border-radius:3px;background:#dcd9d0}
.estacion__foto .sin-portada{aspect-ratio:4/3;max-width:980px}
.estacion--b .estacion__foto{justify-self:end;width:min(100%,780px)}
.estacion--b .estacion__foto img{max-width:none}
@media(max-width:700px){.linea{gap:48px}.linea__riel{left:calc(var(--pad) + 6px);width:6px}.linea__tren{left:-6px;width:18px;height:32px;transform:translateY(-16px)}.estacion{grid-template-columns:20px minmax(0,1fr);column-gap:16px}.estacion__punto{width:20px;height:20px;border-width:5px;margin:12px 0 0 -1px}.estacion--b .estacion__foto{width:100%}}

/* índice viejo */
.indice{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px;padding:24px var(--pad) 48px}
.indice a{display:flex;flex-direction:column;gap:14px}
.indice img,.indice .sin-portada{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;background:#dcd9d0}
.indice h2{font-size:30px}
.indice .chapas{display:flex;gap:8px;flex-wrap:wrap}
.indice .chapa{padding:4px 8px;border-radius:3px;font-size:11px}
.titulo-seccion{padding:40px var(--pad) 8px;display:flex;flex-direction:column;gap:20px;max-width:900px}
.titulo-seccion h1{font-size:clamp(48px,9vw,96px)}
.titulo-seccion .statement{padding:0}

/* desvíos */
.desvios{display:flex;flex-direction:column;gap:56px;padding:56px var(--pad) 24px}
.desvio{display:flex;flex-direction:column;gap:0;max-width:720px;width:100%;border-radius:10px;padding:22px 26px;color:#fff;box-shadow:inset 0 0 0 3px var(--c),inset 0 0 0 6px #fff;background:var(--c);--c:var(--verde)}
.desvio:nth-child(even){align-self:flex-end}
.desvio:nth-child(5n+1){--c:var(--verde)}.desvio:nth-child(5n+2){--c:var(--azul)}.desvio:nth-child(5n+3){--c:var(--amarillo);color:var(--tinta);box-shadow:inset 0 0 0 3px var(--c),inset 0 0 0 6px var(--tinta)}.desvio:nth-child(5n+4){--c:var(--marron)}.desvio:nth-child(5n+5){--c:var(--naranja);color:var(--tinta);box-shadow:inset 0 0 0 3px var(--c),inset 0 0 0 6px var(--tinta)}
.desvio__cab{display:flex;align-items:center;gap:18px}
.desvio__tapa{width:96px;height:96px;border-radius:4px;object-fit:cover;flex:0 0 auto;background:rgba(0,0,0,.2)}
.desvio__texto{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.desvio__tipo{font-family:var(--mono);font-size:12px;opacity:.85}
.desvio__titulo{font-family:var(--cond);font-weight:700;font-size:clamp(26px,4vw,36px);line-height:.95}
.desvio__boton{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;margin-top:4px;background:#141413;color:#fff;font-family:var(--cond);font-weight:700;font-size:17px;padding:8px 12px;border-radius:4px;border:0;cursor:pointer}
.desvio__boton svg{flex:0 0 auto}
.desvio__player{display:none;margin-top:18px}
.desvio--abierto .desvio__player{display:block}
.desvio__player iframe{display:block;width:100%;height:152px;border:0;border-radius:8px}
.desvio__cuerpo p{margin:12px 0 0;font-family:var(--serif);font-style:italic;font-size:20px}
.desvio__cuerpo img,.desvio__cuerpo video,.desvio__cuerpo iframe{display:block;max-width:100%;border-radius:6px;margin-top:14px}
.desvio__cuerpo .wp-block-embed iframe{width:100%;aspect-ratio:16/9;height:auto}
.desvio__cuerpo .wp-block-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:14px}
.desvio__cuerpo .wp-block-gallery figure{margin:0}.desvio__cuerpo .wp-block-gallery img{margin:0}
.desvio__cuerpo blockquote{margin:12px 0 0;padding:0;border:0;font-family:var(--serif);font-style:italic;font-size:24px}
.desvio > .desvio__boton{margin-top:16px}
.desvio .cartel--naranja{color:var(--tinta)}

/* contacto: el poste de señales */
.contacto{display:flex;flex-wrap:wrap;gap:48px;padding:40px var(--pad) 64px;align-items:flex-start}
.poste{position:relative;flex:1 1 520px;min-height:720px;display:flex;flex-direction:column;align-items:center;gap:18px;padding:24px 0}
.poste::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:14px;margin-left:-7px;border-radius:7px;background:#8e8b80}
.poste__aqui{position:relative;z-index:1;box-shadow:inset 0 0 0 3px #c41c1a;border-color:#c41c1a;font-family:var(--cond);font-weight:700;font-size:18px;letter-spacing:.04em}
.poste__max{position:relative;z-index:1;margin-top:auto}
.poste__s{position:relative;z-index:1;font-size:26px;padding:10px 16px;border-radius:5px;gap:14px;transform-origin:center;max-width:min(90vw,520px)}
.poste__s--der{align-self:flex-start;margin-left:calc(50% - 10px);transform:rotate(-2deg)}
.poste__s--izq{align-self:flex-end;margin-right:calc(50% - 10px);transform:rotate(2deg)}
.poste__s:nth-child(4n+1){transform:rotate(1.5deg)}.poste__s:nth-child(4n+3){transform:rotate(-3deg)}
.poste__s:hover{transform:rotate(0) scale(1.04);transition:transform .25s}
.poste__s span{white-space:nowrap}
.poste__km{font-family:var(--mono);font-size:12px;font-weight:400;opacity:.9}
.poste__s--rulo{transform:rotate(-6deg)}
.contacto__texto{flex:1 1 320px;display:flex;flex-direction:column;gap:20px;max-width:520px;padding-top:24px}
@media(max-width:700px){.poste{min-height:0}.poste__s{font-size:20px;max-width:88vw}.poste__s--der{margin-left:calc(50% - 6px)}.poste__s--izq{margin-right:calc(50% - 6px)}.contacto{gap:24px}}
.desvio .wp-block-embed{margin:0}
@media(max-width:600px){.desvio{padding:18px}.desvio__tapa{width:72px;height:72px}}

/* páginas comunes */
.pagina{padding:24px var(--pad) 64px;max-width:900px}
.pagina .cuerpo{font-size:18px}
.pagina .cuerpo img{border-radius:3px}
.pagina .cuerpo .wp-block-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.pagina .cuerpo .wp-block-gallery figure{margin:0}
.e404{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;padding:var(--pad)}
.e404 h1{font-size:72px}

/* recorrido 3D (SINSA) */
.recorrido{height:500vh;position:relative;margin:0 -28px}
.recorrido__stage{position:sticky;top:0;height:100vh;height:100svh;width:100%;overflow:hidden;background:#dcd9d0}
.recorrido__stage canvas{display:block;width:100%;height:100%}
.recorrido__nota{position:absolute;left:20px;bottom:20px}
.obra-cuerpo .recorrido{padding:0}

/* en construcción */
.obra-en-construccion{padding:60px 28px 20px}
.zanja{position:relative;max-width:1100px;height:clamp(260px,36vw,380px);margin:0 auto}
.zanja__cono{position:absolute;bottom:0;line-height:0}
.zanja__cono--izq{left:4%}.zanja__cono--der{right:4%}
.zanja__cono svg{width:clamp(70px,11vw,120px);height:auto}
.zanja__cinta{position:absolute;left:-6%;right:-6%;bottom:clamp(70px,10vw,115px);z-index:2;display:flex;gap:48px;overflow:hidden;white-space:nowrap;background:var(--amarillo);color:var(--tinta);border-top:5px solid var(--tinta);border-bottom:5px solid var(--tinta);padding:10px 0;transform:rotate(-5deg);transform-origin:center;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(26px,4.2vw,46px);line-height:1}
.zanja__cinta span{flex:none}
.zanja__cinta span::after{content:"";display:inline-block;width:.6em;height:.6em;margin:0 0 .05em 48px;border-radius:50%;background:var(--tinta);vertical-align:middle}
.zanja__texto{max-width:620px;margin:40px auto 0;text-align:center;font-family:var(--mono);font-size:14px;color:var(--gris)}
.aviso{display:inline-flex;align-items:center;gap:8px;background:var(--amarillo);color:var(--tinta);font-family:var(--mono);font-size:12px;letter-spacing:.04em;padding:5px 10px;border-radius:4px;box-shadow:inset 0 0 0 1.5px var(--tinta)}
.cartel .aviso{margin-left:6px;text-transform:none;font-weight:400}
@media (max-width:640px){.zanja{height:260px}.zanja__cinta{gap:28px;padding:8px 0}}
