/*.hero
Theme Name: Virtual Atelier
Theme URI: https://virtualatelier.ai
Author: Virtual Atelier
Author URI: https://virtualatelier.ai
Description: Custom theme for Virtual Atelier (converted from static PHP site).
Version: 1.0
Text Domain: virtual-atelier
*/

:root {
    --back-color: #fcfcfc;
    --text-color: #202020;
}

* { box-sizing: border-box;}

html {
  scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Roboto Flex';
    color: inherit;
    text-decoration: none;
    font-variation-settings: "wght" 400, "wdth" 190;

}

header {
    position: fixed; 
    top:0px;
    left: 0px;
    display: flex;
    justify-content: center;
    width: 100%;
    z-index: 1000;
    padding: 3rem;
}

label.gen-images {
    position: fixed;
    transform: rotate(-90deg) translateX(50%);
    top: 50%;
    right: 1.5rem;
    font-family: 'Roboto Flex', sans-serif;
    font-size: .75rem;
    opacity: .75;
    letter-spacing: 1px;
    transform-origin: center right;
    z-index: 1000;
    @media (max-width: 768px) {
        right: 1rem;
        font-size: .66rem;
    }
}

section.hero,
section.wp-block-group.hero {
    position:sticky; top:0px;
    width: 100%;
    min-height: 100dvh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: var(--back-color);
    gap:2rem;
}

section.hero > img,
section.wp-block-group.hero > img {
    max-height: 48px;
}

@media (max-width: 1024px) {
    section.hero,
    section.wp-block-group.hero {
        position: relative;
    }
}

section.hero #logo,
section.wp-block-group.hero #logo {
    height: 2.5rem;
}

section.hero .cursor-images,
section.wp-block-group.hero .cursor-images {
    z-index:-1;
}

section.hero .cursor-images img,
section.wp-block-group.hero .cursor-images img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display:none;
}

/* Sección con imagen de fondo estática + contenido encima (4 columnas de
   texto, por ejemplo). Mismo comportamiento base que .hero (posición,
   sticky, flex column), pero como regla independiente — no comparte
   selector con .hero a propósito, para poder evolucionar cada una sin
   arrastrar cambios a la otra. */
section.multicolumn,
section.wp-block-group.multicolumn {
    position:sticky; top:0px;
    width: 100%;
    min-height: 100dvh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: var(--back-color);
    gap:2rem;
}

@media (max-width: 1024px) {
    section.multicolumn,
    section.wp-block-group.multicolumn {
        position: relative;
    }
}

section.multicolumn .cursor-images,
section.wp-block-group.multicolumn .cursor-images {
    z-index:-1;
}

section.multicolumn .cursor-images img,
section.wp-block-group.multicolumn .cursor-images img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: brightness(0.8);
}

.cursor-images img {
    max-width: 100%;
}

section {
    background-color: var(--back-color);
    color: var(--text-color);
    position: relative;
    z-index: 100;
    padding: 5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    @media (max-width: 768px) {
        padding: 5rem 2rem;
    }
}

strong {
    font-variation-settings: "wght" 600, "wdth" 190;
}

.curso-link {
    display: inline-flex;
    align-items: center;
    color: inherit;
}

.curso-arrow {
    display: inline-flex;
    align-items: center;
    margin-left: .5rem;
    transition: .4s ease;
}

.curso-link:hover .curso-arrow {
    transform: translateX(10px);
}

nav {
    position: sticky;
    top: 0;
    display: flex;
    justify-content: center;
    gap: 4rem;
    align-items: center;
    padding: 1rem;
    z-index: 1500;
    background: white;

    > div {
        display: flex;
        gap: 2rem;
        align-items: center;
    }
}

h1, h2, h3, h4 {
    font-family: 'Roboto Flex', sans-serif;
    margin: 0;
    max-width: 20em;
}

h1 {
    font-size: 20dvh;
    text-transform: uppercase;
    font-variation-settings: "wght" 700, "wdth" 30;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: .8;
    @media (max-width: 768px){ 
        font-size: 16dvh;
    }    
    @media (max-width: 576px){ 
        font-size: 10dvh;
    }
}

h2 {
    font-size: 7dvh;
    text-transform: uppercase;
    font-variation-settings: "wght" 600, "wdth" 50;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: .9;
    @media (max-width: 768px){ 
        font-size: 5.6dvh;
    }    
    @media (max-width: 425px){ 
        font-size: 4.2dvh;
    }    
}

h3 {
    font-size: 2rem;
    font-variation-settings: "wght" 500, "wdth" 90;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: 1.2;
    @media (max-width: 768px){ 
        font-size: 1.6rem;
    }    
    @media (max-width: 425px){ 
        font-size: 1.2rem;
    }     
}

h4 {
    font-size: 1.5rem;
    font-variation-settings: "wght" 400, "wdth" 110;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: 1.4;
    @media (max-width: 992px){ 
        font-size: 1.2rem;
    }    
    @media (max-width: 425px){ 
        font-variation-settings: "wght" 500, "wdth" 190;
        font-size: 1rem;
    } 
}

button, .wp-block-button a {
    font-family: 'Roboto Flex', sans-serif;
    padding: 1rem;
    color: var(--back-color);
    background-color: var(--text-color);
    border: 2px solid var(--text-color);
    font-size: 1rem;
    font-variation-settings: "wght" 500, "wdth" 190;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: 1.6;    
    cursor: pointer;
    border-radius: 0;
    &:hover {
        background-color: var(--back-color);
        color: var(--text-color);
        border: 2px solid var(--text-color);        
    }
}

p {
    max-width: 30em;
    line-height: 1.5;
}

a {
    font-family: 'Roboto Flex';
    color: inherit;
    text-decoration: none;
    font-variation-settings: "wght" 400, "wdth" 190;
    font-variation-settings: inherit;
}

section.clipping {
    padding: 0;
    position: relative;

    --flex-column-margin: 33%;
    --flex-column-margin-open: 25%;    

    @media (max-width: 1320px) {
        --flex-column-margin: 50%;
    }

    @media (max-width: 768px) {
        gap:0;    
    }


    .clipped {
        .flex-column-center {
            margin-left: var(--flex-column-margin);
            @media (max-width: 768px) {        
                margin-left: 0;
            }
        }
    }

    > div:not(.clipped){
        .flex-column-center {
            margin-left: calc(-1 * var(--flex-column-margin));
            @media (max-width: 768px) {
                margin-left: 0;
            }
        }            
    }

    &.show-right {
        .clipped {
            .flex-column-center {
                margin-left: var(--flex-column-margin-open);
            }
            clip-path: inset(0 0 0 25%);
            @media (max-width: 768px) {
                clip-path: none;
            }            
        }
    }
    &.show-left {
        .clipped {
            clip-path: inset(0 0 0 75%);
            @media (max-width: 768px) {
                clip-path: none;
            }
        }
        > div:not(.clipped){
            .flex-column-center {
                margin-left: calc(-1 * var(--flex-column-margin-open));
            }            
        }
    } 

    > div {
        width: 100%;
        height: 100dvh;
        position: relative;

        @media (max-width: 768px) {
            height: initial;
        }

        > img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: brightness(0.8);
            @media (max-width: 768px) {
                position: absolute;
            }
        }
        &.clipped {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            clip-path: inset(0 0% 0 50%); 
            transition: clip-path 0.3s ease;
            z-index:100;    
            @media (max-width: 768px) {
                position:relative;
                clip-path: none;
                position: relative;
            }

        }
        .container.flex {
            position: absolute;
            z-index: 100;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: space-evenly;
            align-items:center;
            flex-direction: column;
            margin:auto;
            color: white;
            .flex-column-center {
                transition: .4s ease-out;
                h4 { max-width: 20em; min-height:6em; }
            }
            @media (max-width: 768px) {
                position: relative;
                height: fit-content;
                padding: 5rem 0;
                gap: 2rem;
            }
        }
    }
}

.hide-on-mobile {
    @media (max-width: 768px) {
        display:none;
    }
}

ol {
    li {
        &::marker {
            font-size: 2rem;
        }
        h2 {
            text-align: start;
            max-width: initial;
        }
    }
}

.scrolling-content {
    width: 800px;
    max-width: 90%;
    position: relative;
    &.aspect-ratio-4-3 {
        aspect-ratio: 4 / 3;
    }
    &.aspect-ratio-16-9 {
        aspect-ratio: 16 / 9;
    }    
    > * {
        position:absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display:none;
        &.active { display:block;}
    }

    &.contain > img { object-fit: contain; }

}

label.label {
    position: absolute;
    left: 0;
    top: 50%;
    z-index: 100;
    width: fit-content;
    height: fit-content;
    display: block;
    transform: translate(-0%, -50%);
    font-size: 2rem;
    text-transform: uppercase;
    font-variation-settings: "wght" 600, "wdth" 30;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: .8;
    width: fit-content !important;
    color: black;
    background: white;
    padding: 1rem;

    @media (max-width:992px) {
        font-size: 1rem;
        padding: .5rem;
    }

}

section.sticky {
    display:flex;
    flex-direction: row;
    align-items:start;
    justify-content: center;

    h3 {
        position:sticky;
        top:0;
        height: 100dvh;
        display: flex;
        flex-direction: column;
        justify-content: start;
        align-items: center;
        flex-basis: 50%;
        text-align: left;
        padding: 6rem 1em;
        max-width: 20em;
    }
}

section.meta-sticky,
section.wp-block-group.meta-sticky {
    display:flex;
    flex-direction: row;
    align-items:start;
    justify-content: center;
}

section.meta-sticky > div > *,
section.meta-sticky > div > div > video,
section.wp-block-group.meta-sticky > div > *,
section.wp-block-group.meta-sticky > div > div > video {
    position: sticky;
    top: 3rem;
    width: 100%;
    height: 100%;
    max-width: 90%;
    aspect-ratio: 16 / 9;
}

@media (max-width:576px) {
    section.meta-sticky > div > *,
    section.meta-sticky > div > div > video,
    section.wp-block-group.meta-sticky > div > *,
    section.wp-block-group.meta-sticky > div > div > video {
        max-width: 100%;
    }
}

section.meta-sticky > div h3,
section.wp-block-group.meta-sticky > div h3 {
    display:flex;
    align-items: center;
}

@media (max-width: 768px) {
    section.meta-sticky > div h3,
    section.wp-block-group.meta-sticky > div h3 {
        aspect-ratio: initial;
        padding-bottom: 3rem;
    }
}

section.meta-sticky > div .scrolling-content > *,
section.wp-block-group.meta-sticky > div .scrolling-content > * {
    width: 100%;
}

section.meta-sticky > div > div > video,
section.wp-block-group.meta-sticky > div > div > video {
    object-fit: cover;
    max-width: initial;
}

.flex-column-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.image-center {
    position:relative;
    > img {
        max-width: 100%;
    }
    > *:not(img) {
        position:absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}

.collapse {
    cursor:pointer;
    transition: .4s ease-out;
    .collapsed {
        display: flex;
        overflow: hidden;
        max-height: 0px;
        transition: .4s ease-out;

        @media (max-width: 992px) {
            flex-direction: column;
        }

        > * {
            flex-basis: 50%;
            max-width: 50%;

            @media (max-width: 992px) {
                flex-basis: 100%;
                max-width: 100%;
            }

        }

        img { height: auto; object-fit: cover; }

        h4 {
            text-transform: initial;
            text-align: left;
            padding: 2rem;
        }
    }
}

.collapse.open {
    margin: 2em 0;
    .collapsed {
        max-height: 80dvh;
        margin: 2rem 0 5rem;
        align-items:center;

        @media (max-width: 992px) {
            max-height: 100dvh;
            margin-left: -2rem;
            max-height: initial;
        }

        ul {
            list-style-type:disc ;
        }
        label {
            font-variation-settings: "wght" 300, "wdth" 150;
            display: block;
            font-size: .875rem;
            margin-top: 1rem;
        }
        img {
            aspect-ratio: 4/3;
        }
        @media (max-width: 992px) {
            h4 { order: 2; }
        }
    }
}

.flex-col {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    align-items: center;
}

.flex-row {
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
    justify-content: center;
    > * {
        flex: 1;
        max-width: 20em;
        @media (max-width: 1024px) {
            flex-basis: 50%;
        }
        @media (max-width: 576px) {
            flex-basis: 100%;
        }        
    }

}

.lis { 
    ul {
        padding: 0;
        list-style: none;
        text-align: center;
        li {
            padding: .5rem;
            text-wrap: balance;
        }
    }
}

footer {
    font-family: 'Roboto Flex', sans-serif;
    background: var(--back-color);
    position: relative;
    z-index: 100;
    display: flex;
    padding: 1rem;
    gap: 1rem;
    justify-content: center;
    font-size: .875rem;

    @media (max-width: 576px) {
        display: flex!important;
        flex-wrap: balance;
        justify-content: center;
        align-items: center;
        font-size: .75rem;
        display: inline-block;
        text-align: center;
        width: 100%;

        > * {
            display: inline;
            &:after {
                content: '. ';
            }
        }
    }
}

/* Page-specific styles (originally inline <style> blocks per template) */

/* academy.php */
.page-academy .collapse h2 { display:inline-block; }
.page-academy .collapse .collapsed h4 {
    display:inline-block;
}
.page-academy .collapse .collapsed h4 ul {
    margin: 1rem 0;
}
.page-academy .collapse .collapsed h4 ul li::marker {
    font-size: 1em;
    line-height: 1;
}
.page-academy .collapse .collapsed h4 ul li > * {
    display:inline-block;
}

/* privacy-policy.php */
.page-privacy-policy li {
    max-width: 30em;
    line-height: 1.5;
}

/* contact.php */
.page-contact section a { text-decoration: underline; }
.page-contact section form {
    display:flex;
    flex-direction: column;
    gap: 2rem;
    width: 100%;
    max-width: 30em;
}
.page-contact section form input[type=text],
.page-contact section form input[type=email],
.page-contact section form select,
.page-contact section form textarea {
    padding: 1rem;
    font-family: 'Roboto Flex';
    font-size: 1rem;
    border-width: 0px 0px 1px;
}

/* header.php nav (mobile burger menu) */
nav#navigation {
    justify-content: center;
    max-height: 4rem;
    transition: .4s ease-out;
    overflow: hidden;
    @media (min-width: 768px){
        li {
            width: 100px;
        }
    }
}
@media (max-width: 768px){
    nav#navigation {
        justify-content:space-between;
        flex-wrap: wrap;
        gap: 2rem;
        padding-bottom: 2rem;
    }
    nav#navigation.open {
        max-height: 100dvh;
    }
    nav#navigation.open > div {
        display: flex;
        order: 2;
        flex-basis: 100%;
        flex-direction: column;
        align-items: start;
    }
}
nav#navigation > div {
    display: flex;
}
@media (max-width: 768px){
    nav#navigation > div {
        display: none;
    }
}
nav#navigation #burger-menu {
    display: none;
    width: 24px;
    aspect-ratio: 1;
    position: relative;
    border: 0;
    background: none;
    padding: 0;
}
nav#navigation #burger-menu span {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: black;
    margin-top: -1px;
    transform: translateY(0);
    transition: .4s ease-out;
}
nav#navigation #burger-menu span:first-child {
    top: 3px;
    margin:0;
}
nav#navigation #burger-menu span:last-child {
    top: initial;
    bottom: 3px;
    margin:0;
}
@media (max-width: 768px){
    nav#navigation #burger-menu {
        display:block;
    }
}
nav#navigation #burger-menu:hover span:first-child {
    transform: translateY(-3px);
}
nav#navigation #burger-menu:hover span:last-child {
    transform: translateY(3px);
}

/* Cookie banner */
#cookie-banner {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    background:#000000;
    color:#fff;
    padding:0.5em;
    text-align:center;
    z-index:2000;
    font-size: .875rem;
    display:none;
}
#cookie-banner button {
    margin-left:1em;
}

nav li, footer li { list-style-type: none;}

.home {
    display: flex;
    flex-direction: column;
    > * { order: 3;}
    > section.hero { order: 1; }
    > nav#navigation { order: 2; }
}

/* CPT "curso" (Academy) — grid de 2 columnas para los grupos del
   contenido (Descripción, Objetivos, Resultados, Imagen, Programa...).
   scripts.js mueve cada bloque Grupo de the_content() aquí dentro. */
.curso-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    width: 100%;
    max-width: 70em;
}

@media (max-width: 768px) {
    .curso-grid {
        grid-template-columns: 1fr;
    }
}

.curso-grid > * {
    min-width: 0; /* evita que imágenes/listas anchas desborden la columna */
}