/*
Theme Name: Viviane Arquitectura
Theme URI: https://www.vivianearquitectura.cl
Author: Viviane Arquitectura
Description: Tema a medida para Viviane Veloso, arquitecta y urbanista de Recife, Pernambuco. Portada de una página con muros de cal, azulejos, cobogó y el arcoíris de Pernambuco; proyectos con galería de fotos; textos, foto y WhatsApp editables desde Personalizar; rol «Arquitecta» con un panel simplificado.
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: viviane-arquitectura
Tags: one-column, custom-colors, portfolio, translation-ready
Update URI: false
*/

/* ------------------------------------------------------------------
   Tipografías (incluidas en el tema, sin depender de Google Fonts)
   Gloock, Instrument Sans y DM Mono · SIL Open Font License 1.1
------------------------------------------------------------------- */
@font-face{font-family:'Gloock';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/gloock-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Gloock';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/gloock-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/instrument-sans-latin-wght-normal.woff2) format('woff2-variations'),url(assets/fonts/instrument-sans-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/instrument-sans-latin-ext-wght-normal.woff2) format('woff2-variations'),url(assets/fonts/instrument-sans-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/dm-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/dm-mono-latin-500-normal.woff2) format('woff2')}

/* ------------------------------------------------------------------
   Base y diseño (idéntico a la página aprobada)
------------------------------------------------------------------- */
body{margin:0;background:#F7EBD8}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
[hidden]{display:none!important}
.flota{position:fixed;right:20px;bottom:20px;z-index:20;width:62px;height:62px}
@media (max-width:760px){.flota{right:14px;bottom:14px;width:54px;height:54px}}
a{color:#275B46}a:hover{color:#1B3F31}
::selection{background:#F7CD4E;color:#1F2A22}
.muro{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;display:block}
.btn{transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s cubic-bezier(.2,.7,.2,1),background-color .3s,color .3s}
.btn:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 #1F2A22}
.btn:active{transform:translate(0,0);box-shadow:1px 1px 0 #1F2A22}
.btn .ico{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.btn:hover .ico{transform:rotate(-12deg) scale(1.1)}
.nav-a{position:relative}
.nav-a::after{content:"";position:absolute;left:2px;right:2px;bottom:9px;height:2px;background:#C94A42;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.nav-a:hover::after{transform:scaleX(1)}
.lnk{text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:100% 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s cubic-bezier(.2,.7,.2,1)}
.lnk:hover{background-size:0% 2px}
.az{transform-box:fill-box;transform-origin:center;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.az:hover{transform:rotate(90deg)}
.cartao{transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s cubic-bezier(.2,.7,.2,1)}
.cartao:hover{transform:translateY(-6px);box-shadow:0 22px 40px -22px rgba(10,30,20,.55)}
.cartao .azs{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.cartao:hover .azs{transform:rotate(90deg)}
.js-anim .rv{opacity:0;transform:translateY(26px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.js-anim .rv.in{opacity:1;transform:none}
.js-anim .pinta{clip-path:inset(0 100% 0 0);transition:clip-path 2.2s cubic-bezier(.65,.05,.25,1) .25s}
.js-anim .pinta.in{clip-path:inset(0 0 0 0)}
.chip{transition:background-color .2s,color .2s,border-color .2s}
details summary{list-style:none;cursor:pointer}
details summary::-webkit-details-marker{display:none}
details .mas{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
details[open] .mas{transform:rotate(45deg)}
:focus-visible{outline:3px solid #23579A;outline-offset:3px}
.proy{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 28px}
.p7{grid-column:span 7}.p5{grid-column:span 5}.p12{grid-column:1 / -1}
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px}
.nav-links{order:2;flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:0 22px}
.nav-wa{order:3;padding:0 18px}
.selo{position:absolute;left:-30px;top:14%;transform:rotate(-12deg)}
@media (max-width:860px){.proy{grid-template-columns:minmax(0,1fr)}.p7,.p5,.p12{grid-column:auto}}
@media (max-width:760px){.nav-links{order:3;flex-basis:100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;gap:0 20px;margin:0 -2px;padding:0 2px}.nav-wa{order:2}.selo{left:-6px;top:6%;width:124px;height:124px}}
@media (max-width:760px){dt{font-size:11.5px !important}}
@media (max-width:380px){.nav-wa{padding:0 13px}.wa-txt{display:none}}
.solo-movil{display:none}
@media (max-width:600px){
[fill="url(#pt-cal)"],[filter="url(#fx-blur-luz)"],[filter="url(#fx-sombra-suave)"]{display:none}
.js-anim .rv,.js-anim .pinta{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
.solo-movil{display:block}
.sobre-txt,.sobre-cap,.serv-intro,.serv-sub,.serv-carimbo{display:none!important}
.serv-li{flex-direction:row!important;align-items:center!important;gap:16px!important;padding:14px 0!important}
.serv-li>div{flex:none}
.serv-li>div>span,.serv-li>p{display:none!important}
.serv-li svg{width:42px;height:42px}
.serv-li h3{margin:0!important;font-size:22px!important}
}

/* Si el script del sitio no llega a cargar, el contenido aparece igual a los pocos segundos. */
.js-anim:not(.js-ok) .rv,.js-anim:not(.js-ok) .pinta{animation:va-mostrar 0s linear 3.5s forwards}
@keyframes va-mostrar{to{opacity:1;transform:none;clip-path:none}}

/* ------------------------------------------------------------------
   Proyectos con foto (portada y página «Proyectos»)
------------------------------------------------------------------- */
.proy-img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.proy-enlace:hover .proy-img,.proy-enlace:focus-visible .proy-img{transform:scale(1.035)}
.proy-titulo{background-image:linear-gradient(currentColor,currentColor);background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .45s cubic-bezier(.2,.7,.2,1)}
.proy-enlace:hover .proy-titulo,.proy-enlace:focus-visible .proy-titulo{background-size:100% 2px}
.proy-enlace:focus-visible{outline-offset:6px}

/* ------------------------------------------------------------------
   Páginas interiores: proyecto, listado, páginas y 404
------------------------------------------------------------------- */
.cab-arco{position:absolute;right:clamp(-80px, -3vw, -24px);bottom:0;width:clamp(300px, 34vw, 540px);height:auto;display:block;overflow:visible;pointer-events:none}
.cab-texto h1,.cab-texto p{max-width:min(780px, 60vw)}
.cab-texto .cab-bajada{max-width:min(620px, 60vw)}
@media (max-width:760px){.cab-arco{display:none}.cab-texto h1,.cab-texto p,.cab-texto .cab-bajada{max-width:none}}

.texto{font-size:18px;line-height:1.7;color:#2E3A32}
.texto>*:first-child{margin-top:0}
.texto>*:last-child{margin-bottom:0}
.texto p,.texto ul,.texto ol,.texto blockquote,.texto figure,.texto table{margin:0 0 1.1em}
.texto h2,.texto h3,.texto h4{font-family:Gloock, Georgia, serif;font-weight:400;color:#275B46;line-height:1.12;letter-spacing:-0.01em;margin:1.6em 0 .5em}
.texto h2{font-size:clamp(28px, 3vw, 38px)}
.texto h3{font-size:clamp(23px, 2.2vw, 28px)}
.texto h4{font-size:21px}
.texto ul,.texto ol{padding-left:1.25em}
.texto li{margin:.3em 0}
.texto li::marker{color:#C94A42}
.texto a{color:#275B46;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:#C94A42}
.texto a:hover{color:#1B3F31}
.texto strong,.texto b{font-weight:650;color:#1F2A22}
.texto blockquote{margin-left:0;padding:4px 0 4px 22px;border-left:4px solid #F7CD4E;font-family:Gloock, Georgia, serif;font-size:1.25em;line-height:1.4;color:#275B46}
.texto img{max-width:100%;height:auto;border-radius:2px}
.texto figure{max-width:100%}
.texto figcaption,.texto .wp-caption-text,.wp-caption-text{font-family:'DM Mono', ui-monospace, monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#3A463D;margin-top:8px}
.texto hr{border:0;border-top:1.5px solid #275B46;margin:2em 0}
.texto table{border-collapse:collapse;width:100%;font-size:16px}
.texto th,.texto td{border-bottom:1px solid rgba(39,91,70,.3);padding:8px 10px;text-align:left}
.texto iframe,.texto video{max-width:100%}

.galeria{list-style:none;margin:0;padding:0;columns:3 280px;column-gap:20px}
.galeria-2{columns:2 280px}
.galeria-1{columns:1}
.galeria li{break-inside:avoid;margin:0 0 20px}
.galeria a{display:block;position:relative;overflow:hidden;border-radius:2px;background:#E4D7BD}
.galeria img{display:block;width:100%;height:auto;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.galeria a:hover img,.galeria a:focus-visible img{transform:scale(1.03)}
.galeria a::after{content:"";position:absolute;right:12px;bottom:12px;width:38px;height:38px;border-radius:19px 19px 4px 4px;background:#F7EBD8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23275B46' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 4H4v5M15 4h5v5M9 20H4v-5M15 20h5v-5'/%3E%3C/svg%3E") center / 18px no-repeat;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.galeria a:hover::after,.galeria a:focus-visible::after{opacity:1;transform:none}

.visor{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(20,38,30,.94);color:#F7EBD8}
.visor::backdrop{background:rgba(20,38,30,.94)}
.visor[open]{display:flex;flex-direction:column;align-items:center;justify-content:center}
.visor-marco{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 72px 24px;width:100%;height:100%;justify-content:center}
.visor img{display:block;max-width:100%;max-height:calc(100dvh - 150px);width:auto;height:auto;object-fit:contain;border-radius:2px;box-shadow:0 30px 80px -30px rgba(0,0,0,.6)}
.visor-pie{display:flex;gap:16px;align-items:baseline;justify-content:center;font-family:'DM Mono', ui-monospace, monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#D8E8A1;text-align:center}
.visor-pie [data-visor-pie]{color:#F7EBD8;letter-spacing:.06em;text-transform:none;font-family:'Instrument Sans', Arial, sans-serif;font-size:15px}
.visor button{position:absolute;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border:2px solid #F7CD4E;background:#275B46;color:#F7EBD8;cursor:pointer;font:inherit;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.visor button:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 #F7CD4E}
.visor-cerrar{top:16px;right:16px;border-radius:26px 26px 4px 4px}
.visor-ant,.visor-sig{top:50%;margin-top:-26px;border-radius:26px}
.visor-ant{left:14px}.visor-sig{right:14px}
@media (max-width:600px){.visor-marco{padding:64px 10px 18px}.visor-ant,.visor-sig{top:auto;bottom:16px;margin-top:0}.visor img{max-height:calc(100dvh - 190px)}}

.paginacion{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:56px}
.paginacion .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:0 14px;border:1.5px solid #275B46;border-radius:24px 24px 4px 4px;color:#1F2A22;text-decoration:none;font-weight:600}
.paginacion .page-numbers.current{background:#275B46;color:#F7EBD8}
.paginacion a.page-numbers:hover{background:#D8E8A1}

.vecinos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:20px}
.vecino{display:flex;gap:16px;align-items:center;padding:16px;background:#FBF5EA;border:1.5px solid #275B46;color:#1F2A22;text-decoration:none;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.vecino:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 #275B46;color:#1F2A22}
.vecino-sig{flex-direction:row-reverse;text-align:right}
.vecino img,.vecino .vecino-sin{flex:none;width:92px;height:72px;object-fit:cover;border-radius:2px;background:#CBDD8C}

/* ------------------------------------------------------------------
   Accesibilidad y clases de WordPress
------------------------------------------------------------------- */
.saltar{position:absolute;left:12px;top:-200px;z-index:100;padding:12px 18px;background:#275B46;color:#F7EBD8;font:600 16px/1.2 'Instrument Sans', Arial, sans-serif;border-radius:22px 22px 4px 4px;text-decoration:none}
.saltar:focus{top:12px;color:#F7EBD8}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:#F7EBD8;clip:auto!important;clip-path:none;color:#1F2A22;display:block;height:auto;left:8px;padding:12px 18px;top:8px;width:auto;z-index:100000}
.alignleft{float:left;margin:.3em 1.4em 1em 0}
.alignright{float:right;margin:.3em 0 1em 1.4em}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.alignwide,.alignfull{max-width:100%}
.wp-caption{max-width:100%}
.gallery-caption{font-size:13px}
.sticky,.bypostauthor{display:block}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js-anim .rv,.js-anim .pinta{opacity:1;transform:none;clip-path:none;transition:none}.btn,.az,.cartao,.cartao .azs,details .mas,.proy-img,.galeria img,.vecino{transition:none}}
