/* -----------------------------------
STYLES FOR THE WHOLE SITE
Mobile first: the rules are for phones, the @media blocks at the end adapt them to bigger screens.
Pages with a carousel also link flickity.min.css (before this file).
Each page sets its colour (--color-actual) and hides its own frame line in its inline <style>.
// -------------------------------------- */


/* RESET */

*,
*::before,
*::after {
    box-sizing: border-box;
}

* {
    margin: 0;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

input,
button,
textarea,
select {
    font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}


/* VARIABLES */

:root {
    --color-texto: #000000;
    --color-gris: #DADBD5;
    --color-links: #FF4901;
    --color-negro: rgba(0, 0, 0, .2);
    --color-subrayado: rgba(0, 0, 0, .08);

    --color-fondo: #D1B48C;
    --color-terapia: #9D9BC0;
    --color-asistencia: #BCB76E;
    --color-projectes: #A79D8E;
    --color-bio: #DADBD5;

    --shadow: 0 0 12px rgba(0, 0, 0, .2);

    --space: 12px;
    --radius: 14px;
    /* thickness of the frame lines around the inner pages, in --space units */
    --value: 2.5;

    --text-xl: 24px;
    --text-l: 20px;
    --text-m: 18px;
    --text-s: 16px;

    --slow: all .6s cubic-bezier(0.60, 0, 0, 1);
    --fast: all .2s cubic-bezier(0.60, 0, 0, 1);
}


/* BASE */

body {
    height: calc(var(--vh, 1vh) * 100);
    overflow: hidden;
    font-family: 'Times New Roman', Times, serif;
    font-size: var(--text-m);
    line-height: 140%;
    background-color: black;
    -webkit-font-smoothing: antialiased;
}

h1,
h2 {
    font-weight: 400;
}

h1 {
    width: 100%;
    font-size: var(--text-xl);
    line-height: 120%;
    text-align: center;
}

h2 {
    width: fit-content;
    padding: calc(var(--space)*0.4) calc(var(--space)*1);
    font-size: var(--text-l);
    line-height: 130%;
    color: black;
    border: 1px solid var(--color-negro);
    border-radius: 18px;
}

p,
li {
    font-size: var(--text-m);
    line-height: 140%;
    text-wrap: balance;
}

a {
    color: inherit;
    text-decoration: none;
}

u {
    padding: 1px 4px;
    text-decoration: none;
    background-color: var(--color-subrayado);
    border-radius: 5px;
}

ul {
    list-style: none;
}

ul li::before {
    content: '●';
    float: left;
    width: 1em;
    margin-left: -1em;
    color: var(--color-links);
}

/* page colours (home menu) */
.bkTerapia {
    background-color: var(--color-terapia);
}

.bkAsistencia {
    background-color: var(--color-asistencia);
}

.bkProjectes {
    background-color: var(--color-projectes);
}

.bkBio {
    background-color: var(--color-bio);
}


/* BUTTONS */

nav a,
button,
.idiomas a,
.downloadButton {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space);
    height: 45px;
    padding: calc(var(--space) * 0.5) calc(var(--space) * 1.5);
    overflow: hidden;
    font-size: var(--text-m);
    color: var(--color-texto);
    background-color: var(--color-gris);
    border: none;
    border-radius: 20px;
    box-shadow: var(--shadow);
    transition: var(--slow);
}

a:hover,
button:hover,
.hover:hover {
    cursor: pointer;
    transition: var(--slow);
}

button:hover,
.block a:hover,
.contacts a:hover,
.idiomas a:hover {
    transform: scale(1.05);
    background: radial-gradient(circle, rgba(254, 23, 13, 1) 0%, rgba(255, 72, 2, 1) 100%) !important;
    background-color: var(--color-gris) !important;
}

.downloadButton:hover {
    background-color: var(--color-links);
}


/* NAV (contact button of the inner pages) */

nav {
    position: fixed;
    top: 0;
    left: calc(var(--space) * 2);
    z-index: 999;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: var(--space);
    width: calc(100% - var(--space) * 2);
    height: 100%;
    padding: calc(var(--space)*3.5) 0;
    pointer-events: none;
    transition: var(--slow);
}

nav div {
    display: flex;
    pointer-events: visible;
}

#navMain .links,
#navMain .contacts {
    display: none;
}

#navMain.show-contacts .contacts {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: calc(var(--space) / 2);
}

.actualMenu {
    transition: var(--slow);
}

/* the contact button leaves the screen while the carousel is fullscreen */
.menuBottom2 {
    transform: translateY(calc(var(--space)*1.5 + 100%));
}


/* -----------------------------------
HOME
// -------------------------------------- */

.intro {
    /* relative + overflow hidden: clips the zoomed menu (desktop), otherwise touch screens
       of 768px or more widen the page and the language button ends up off screen */
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    overflow: hidden;
    background-color: var(--color-fondo);
}

.titulo {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(var(--space)*1);
    width: 100%;
    padding: calc(var(--space)*3) 0;
    text-align: center;
}

.titulo h1 {
    font-size: calc(var(--text-xl) * 1.25);
    line-height: 90%;
}

.titulo h2 {
    font-size: var(--text-m);
}

.titulo img {
    /* width/height attributes only give the proportions, the size comes from max-height */
    width: auto;
    max-width: 80%;
    max-height: 30px;
}


/* LANGUAGE MENU: always visible, above the intro */

.idiomas {
    position: fixed;
    top: var(--space);
    right: var(--space);
    z-index: 1001;
    display: flex;
    flex-direction: row-reverse;
}

.idiomas a {
    height: 40px;
    padding: calc(var(--space) * 0.5) calc(var(--space) * 1);
}

.idiomas img {
    height: 24px;
}

.idiomasBtn {
    display: none;
}

.showIdiomas {
    display: flex;
}


/* INTRO: scrollable presentation text over the home */

.introText {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 998;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space);
    width: 100%;
    height: calc(var(--vh, 1vh) * 100);
    padding: calc(var(--space) *3) calc(var(--space) *2) calc(var(--space) *10) calc(var(--space) *2);
    overflow-y: auto;
    text-align: left;
    background-color: var(--color-fondo);
}

.introText>* {
    width: 100%;
    max-width: 550px;
}

.introText .introLogo {
    width: auto;
    height: 120px;
    max-width: 100%;
    max-height: none;
    margin-bottom: calc(var(--space) *3);
}

.introText ul {
    padding-left: 1em;
}

.startbutton {
    position: fixed;
    bottom: calc(var(--space)*3.5);
    left: 0;
    right: 0;
    z-index: 1000;
    width: fit-content;
    max-width: none;
    height: 40px;
    margin: auto;
}


/* TITLE: hidden until the intro is closed */

.demas {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(var(--space)*1.5);
    height: 1px;
}

.titulo h1,
.titulo h2,
.demas>span {
    visibility: hidden;
}

/* article button (top left), with a red dot */
.demas .downloadButton {
    position: fixed;
    top: var(--space);
    left: var(--space);
    height: 40px;
    overflow: visible;
}

.demas .downloadButton:hover {
    transform: scale(1.05);
}

.demas .downloadButton span {
    display: none;
}

.notif {
    position: absolute;
    top: 0;
    right: 0;
    width: 12px;
    height: 12px;
    background-color: var(--color-links);
    border-radius: 999px;
    transition: var(--slow);
}

.downloadButton:hover .notif {
    opacity: 0;
}


/* MENU: the 4 pages, at the bottom in 1 column on mobile */

.homeMenu {
    position: relative;
    z-index: 2;
    display: grid;
    flex: none;
    grid-template-columns: 1fr;
    gap: var(--space);
    width: 100%;
    padding: var(--space);
    font-size: var(--text-l);
    visibility: hidden;
    transition: var(--slow);
}

.homeMenu a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: var(--space);
    text-align: center;
    border-radius: 60px;
    box-shadow: var(--shadow);
    opacity: 0;
    transform: translateY(40px);
    transition: var(--fast);
}

.homeMenu h2 {
    border: none;
}


/* ENTER: .entered is added to <html> by "Endavant", or on load if the intro was already read (.skipIntro) */

.entered .introText {
    pointer-events: none;
    animation: unrevealText 1.5s cubic-bezier(0.60, 0, 0, 1) forwards;
}

.entered .demas {
    animation: normalHeight 1s cubic-bezier(1, 0.06, 0.05, 1) forwards;
}

.entered .titulo h1,
.entered .titulo h2,
.entered .demas>span {
    animation: fadeInTitulo 2s cubic-bezier(1, 0.06, 0.05, 1) forwards;
}

.entered .homeMenu {
    animation: fadeInMenu 1s cubic-bezier(1, 0.06, 0.05, 1) forwards;
}

.entered .homeMenu a {
    animation: fadeInA 1s cubic-bezier(0.05, 0.48, 0.05, 0.95) forwards;
}

/* article button drops in from the top (from below on desktop) */
.entered .demas .downloadButton,
.skipIntro .intro .demas .downloadButton {
    animation: slideDownIn 1.5s cubic-bezier(0.60, 0, 0, 1) 1s both !important;
}

/* intro already read this session: hide it and jump straight to the end state */
.skipIntro .introText {
    display: none;
}

.skipIntro .intro,
.skipIntro .intro * {
    animation-duration: 0s !important;
    animation-delay: 0s !important;
}


/* -----------------------------------
INNER PAGES
// -------------------------------------- */

/* FRAME LINES: links to the other pages */

.lineHome,
.lineTerapia,
.lineAsistencia,
.lineProjectes,
.lineBio {
    position: fixed;
    transition: var(--slow);
}

.lineHome {
    top: 0;
    left: 0;
    z-index: 99;
    width: 100vw;
    height: calc(var(--space) * var(--value));
    background-color: var(--color-fondo);
}

.lineTerapia {
    top: calc(var(--space) * var(--value));
    left: 0;
    width: calc(var(--space) * var(--value));
    height: calc((var(--vh, 1vh) * 100) - calc(var(--space) * 4));
    background-color: var(--color-terapia);
}

.lineAsistencia {
    top: calc(var(--space) * var(--value));
    right: 0;
    width: calc(var(--space) * var(--value));
    height: calc((var(--vh, 1vh) * 100) - calc(var(--space) * (var(--value)*2)));
    background-color: var(--color-asistencia);
}

.lineProjectes {
    bottom: 0;
    left: 0;
    width: 50vw;
    height: calc(var(--space) * var(--value));
    background-color: var(--color-projectes);
}

.lineBio {
    bottom: 0;
    right: 0;
    width: 50vw;
    height: calc(var(--space) * var(--value));
    background-color: var(--color-bio);
}

/* tallers and bio: the side lines are horizontal and the bottom ones vertical */
.lineTerapia2,
.lineAsistencia2 {
    width: 50vw;
    height: calc(var(--space) * var(--value));
}

.lineBio2,
.lineProjectes2 {
    width: calc(var(--space) * var(--value));
    height: calc((var(--vh, 1vh) * 100) - calc(var(--space) * (var(--value)*2)));
}

.lineHome:hover,
.lineTerapia:hover,
.lineAsistencia:hover,
.lineProjectes:hover,
.lineBio:hover {
    background: radial-gradient(circle, rgba(254, 23, 13, 1) 0%, rgba(255, 72, 2, 1) 100%) !important;
    background-color: var(--color-gris) !important;
}

/* fullscreen: the line hidden on this page reappears */
.lineFullShow {
    display: block !important;
}


/* PAGE inside the frame */

.pageOpen {
    position: fixed;
    top: calc(var(--space) * var(--value));
    left: 0;
    width: calc(100vw - calc(var(--space) * var(--value)));
    height: calc((var(--vh, 1vh) * 100) - calc(var(--space) * (var(--value)*2)));
    overflow: auto;
    background-color: var(--color-actual);
}

.pageAsitencia,
.pageBio {
    right: 0;
    left: auto;
}

.pageProjectes,
.pageBio {
    top: calc(var(--space) * (var(--value)*2));
}


/* 🖼️ CAROUSEL */

.carouselLeft {
    position: relative;
    z-index: 11;
    margin-top: calc(var(--space) * var(--value));
    padding: 0 calc(var(--space) * var(--value));
    scroll-margin-top: calc(var(--space) * var(--value));
}

.imagesCarousel {
    position: relative;
    height: 100%;
    margin-top: calc(var(--space) * var(--value));
}

.main-carousel {
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: 999px;
    box-shadow: var(--shadow);
}

.carousel-cell {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.carousel-cell img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.flickity-page-dots {
    bottom: calc(var(--space) * 0.7);
}

.flickity-page-dots .dot {
    width: 8px;
    height: 8px;
    margin: 0 6px;
    background: var(--color-actual);
}

/* images load blurred and sharpen once the large version (data-large) is loaded */
.blurry-load {
    filter: blur(8px);
}

.blur-out {
    animation: blurOut 0.5s ease-out;
}


/* FULLSCREEN (+ button) */

.fsToggle {
    position: absolute;
    bottom: 4%;
    right: 5%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 35px;
    overflow: hidden;
    color: black;
    background-color: var(--color-gris);
    border-radius: 17px;
    box-shadow: var(--shadow);
    transition: var(--slow);
}

.fsToggle:hover {
    cursor: pointer;
    transform: scale(1.05);
    background: radial-gradient(circle, rgba(254, 23, 13, 1) 0%, rgba(255, 72, 2, 1) 100%) !important;
    background-color: var(--color-gris) !important;
}

.fsToggleOn {
    position: fixed;
    top: calc(var(--space) * (var(--value) + 1));
    right: calc(var(--space) * (var(--value) + 1));
    transition: var(--fast);
}

.fsToggleOn img {
    transform: rotate(45deg);
}

.fullPage {
    z-index: 998;
    overflow: hidden;
}

.fullCarousel {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3;
    width: 100vw;
    height: calc(var(--vh, 1vh) * 100);
    margin: 0;
    padding: 0;
    background-color: var(--color-actual);
    border-radius: 0;
}

/* beats the height Flickity sets inline */
.fullViewport {
    height: 100% !important;
}

.dotsBottom {
    top: calc(calc(var(--vh, 1vh) * 100) - var(--space) * (var(--value) *2));
}


/* 🎑 TITLE */

.header {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space);
    width: 100%;
    padding: calc(var(--space) *2) calc(var(--space) *2) calc(var(--space) *1);
    background-color: var(--color-actual);
}

.headerDown {
    z-index: 1;
}

.header>div {
    display: flex;
    align-items: center;
    gap: var(--space);
    width: 100%;
    overflow: hidden;
}

.titleScrolled {
    text-align: left;
}

/* small carousel next to the title, once the big one is scrolled away */
.small-carousel {
    display: none;
    width: 0;
    height: 60px;
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: 999px;
    box-shadow: var(--shadow);
    transform: scale(0);
    visibility: collapse;
    transition: var(--fast);
}

.headerImg {
    display: block;
    width: 100%;
    max-width: 80px;
    transform: scale(1);
    visibility: visible;
}

.sommaire {
    display: flex;
    justify-content: center;
    gap: calc(var(--space) * 1);
    width: 100%;
    font-size: var(--text-s);
}

/* mobile: the sommaire hides once the title is in the header */
.header .sommaireOpen {
    display: none;
}

.sommaire a {
    line-height: 100%;
    text-align: center;
    opacity: .3;
    transition: var(--slow);
}

.sommaire a.sommaireActive {
    padding: 0px 8px;
    border-radius: 999px;
    opacity: 1;
}

.sommaire span {
    opacity: .3;
}


/* 💬 TEXT */

.texto {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--space) *6);
    margin-top: var(--space);
    padding: 0 calc(var(--space) *2) calc(var(--space) *7) calc(var(--space) *2);
}

.block {
    display: flex;
    flex-direction: column;
    gap: var(--space);
    padding: 0 calc(var(--space) * 1.5) calc(var(--space) * 1.5) calc(var(--space) * 1.5);
    border: 1px solid var(--color-negro);
    border-width: 0px 1px 1px 1px;
    border-radius: 0 0 var(--radius) var(--radius);
    /* sommaire links: the block stops just below the sticky header (height measured in main.js) */
    scroll-margin-top: calc(var(--space) * 1 + var(--header-height, 0px));
}

.block h2 {
    width: 100%;
    margin-bottom: var(--space);
    padding: calc(var(--space)*.5) calc(var(--space)*1.5);
}

.block a {
    padding: calc(var(--space) * 0.5) calc(var(--space) * 1);
    color: var(--color-texto);
    background-color: var(--color-gris);
    border: none;
    border-radius: 14px;
    box-shadow: var(--shadow);
}

/* call to action at the end of the asistencia page */
.btnCenter {
    display: flex;
    flex-direction: column;
    gap: calc(var(--space)*3);
    text-align: center;
}

.btnCenter a {
    max-width: 100%;
    height: fit-content;
    margin-top: calc(var(--space)*1);
    overflow-wrap: break-word;
    word-break: keep-all;
}

.btnCenter a:hover {
    transform: scale(1.05);
}

/* download / booking buttons of the inner pages
   (:where keeps the specificity low, so .btnCenter a still sets the top margin) */
:where(.pageOpen) .downloadButton {
    gap: calc(var(--space) * 1.5);
    width: fit-content;
    height: fit-content;
    margin: calc(var(--space)*2) auto 0 auto;
    padding: calc(var(--space) * 1) calc(var(--space) * 1.5) !important;
    border-radius: 18px !important;
}

:where(.pageOpen) .downloadButton img {
    width: 70px;
    height: auto;
    transform: rotate(-5deg);
    transition: var(--slow);
}

:where(.pageOpen) .downloadButton:hover img {
    transform: rotate(0deg);
}

:where(.pageOpen) .downloadButton span {
    text-wrap: balance;
}


/* PAGE VARIANTS */

/* line on the left (sessions, tallers) */
.pageTerapia nav,
.pageProjectes nav {
    left: 0;
}

/* line at the bottom (tallers, bio) */
.pageProjectes nav,
.pageBio nav {
    padding-bottom: calc(var(--space)*1.5);
}

.pageProjectes .fsToggleOn,
.pageBio .fsToggleOn {
    top: calc(var(--space) * 6);
}

.pageProjectes .dotsBottom {
    top: calc(calc(var(--vh, 1vh) * 100) - var(--space) * 3);
}


/* -----------------------------------
BIO: video instead of carousel
// -------------------------------------- */

.pageBio .carouselLeft {
    height: auto;
    aspect-ratio: 4/2.5;
}

.pageBio .fsToggleOn {
    right: calc(var(--space) * 1.5);
}

/* video progress, inside the + button */
.timer {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 0px;
    height: 100%;
    background-color: black;
    opacity: .2;
}

.play {
    position: absolute;
    z-index: 999;
    height: 40px;
    margin: var(--space);
    padding: calc(var(--space) * 0) calc(var(--space) * 1);
    font-size: var(--text-s);
}

.hiddenPlay {
    animation: hidePlay 1s forwards;
}

.playAnim {
    animation: playAnim .3s forwards;
}

/* fullscreen video (!important beats the inline style of the video wrapper) */
.fullImages {
    margin-top: 0;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.pageBio .fullCarousel {
    position: fixed;
    top: calc(var(--space)*var(--value)*2);
    left: calc(var(--space)*var(--value)*1);
    z-index: 999;
    width: calc(100% - var(--space)*var(--value)*1);
    height: calc(100% - var(--space)*var(--value)*2);
}


/* -----------------------------------
DESKTOP
// -------------------------------------- */

@media only screen and (min-width: 768px) {

    :root {
        --text-xl: 32px;
        --text-l: 26px;
        --text-m: 20px;
        --text-s: 18px;
    }

    nav {
        top: auto;
        bottom: 0;
        left: 0;
        z-index: auto;
        flex-direction: column;
        justify-content: flex-start;
        gap: calc(var(--space) /2);
        width: 50%;
        height: 40%;
        padding: calc(var(--space) *1) calc(var(--space) *3) calc(var(--space) *3);
    }

    .menuBottom2 {
        transform: none !important;
    }


    /* HOME */

    .titulo {
        padding: 0;
        font-size: var(--text-l);
    }

    .titulo h1 {
        font-size: 50px;
    }

    .titulo h2 {
        font-size: var(--text-l);
    }

    .titulo img {
        max-height: 20px;
    }

    .introText .introLogo {
        height: 200px;
    }

    .demas {
        gap: calc(var(--space)*2);
    }

    .demas .downloadButton {
        top: auto;
        bottom: calc(var(--space)*2);
        left: 50%;
        transform: translateX(-50%);
    }

    .demas .downloadButton:hover {
        transform: translateX(-50%) scale(1.05);
    }

    .demas .downloadButton span {
        display: inherit;
    }

    .entered .demas .downloadButton,
    .skipIntro .intro .demas .downloadButton {
        animation: slideUpIn 1.5s cubic-bezier(0.60, 0, 0, 1) 1s both !important;
    }

    /* menu: one coloured corner per page, zooms out when entering */
    .homeMenu {
        position: absolute;
        height: 100%;
        grid-template-columns: repeat(2, 1fr);
        pointer-events: none;
        visibility: visible;
        transform: scale(2);
    }

    .entered .homeMenu {
        animation: scaleDown 1.5s cubic-bezier(0.60, 0, 0, 1) forwards;
    }

    .homeMenu a {
        width: 25%;
        height: 25%;
        margin: var(--space);
        padding: 0;
        pointer-events: auto;
        opacity: 1;
        transform: none;
        transition: var(--slow);
    }

    .homeMenu a:hover {
        width: 35%;
        height: 35%;
    }

    .bkTerapia,
    .bkAsistencia,
    .bkProjectes,
    .bkBio {
        position: absolute;
    }

    .bkTerapia {
        top: 0;
        left: 0;
    }

    .bkAsistencia {
        top: 0;
        right: 0;
    }

    .bkProjectes {
        bottom: 0;
        left: 0;
    }

    .bkBio {
        bottom: 0;
        right: 0;
    }


    /* INNER PAGES */

    .lineTerapia,
    .lineAsistencia {
        top: calc(var(--space) * 3);
        width: calc(var(--space) * 3);
        height: calc(100vh - calc(var(--space) * 6));
    }

    .lineHome,
    .lineProjectes,
    .lineBio {
        height: calc(var(--space) * 3);
    }

    .pageOpen {
        top: calc(var(--space) * 3);
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: calc(var(--space) * 4);
        width: calc(100% - var(--space) * 3);
        height: calc(100vh - calc(var(--space) * 6));
        padding: calc(var(--space) *3) calc(var(--space) *3) calc(var(--space) *4) calc(var(--space) *3);
    }

    /* text on the right half, carousel and title fixed on the left half */
    .carouselLeft {
        right: calc(var(--space)*3);
        width: calc(50% - var(--space)*1.5);
        margin-top: 0;
        padding: 0;
    }

    .imagesCarousel {
        max-width: 500px;
        margin: auto;
    }

    .fsToggle {
        bottom: 8%;
        height: 45px;
    }

    .fsToggleOn {
        top: calc(var(--space) * 4.5);
        right: calc(var(--space) * 4.5);
    }

    .fullPage {
        top: calc(var(--space) * 3);
    }

    .dotsBottom {
        top: auto;
        bottom: calc(var(--space) * 5);
    }

    .header {
        position: fixed;
        left: 0;
        justify-content: flex-end;
        width: 50%;
        height: 60%;
        padding: calc(var(--space) *4) calc(var(--space) *4) calc(var(--space) *1);
        background-color: transparent;
        pointer-events: none;
    }

    .header>div {
        pointer-events: visible;
    }

    .titles {
        flex-direction: column;
        justify-content: center;
    }

    .titleScrolled {
        text-align: center;
    }

    .headerImg {
        width: auto;
        max-width: none;
        height: 80px;
    }

    .sommaire {
        font-size: var(--text-m);
    }

    .header .sommaireOpen {
        display: flex;
    }

    .texto {
        right: calc(var(--space)*3);
        width: calc(50% - var(--space)*1.5);
        margin-top: 0;
        padding: 0;
    }

    .texto>div {
        max-width: 550px;
        margin: auto;
    }

    .block {
        padding: 0 calc(var(--space) * 2) calc(var(--space) * 2) calc(var(--space) * 2);
        scroll-margin-top: calc(var(--space) * 3);
    }

    .btnCenter a {
        max-width: 70%;
    }
}

@media only screen and (min-width: 900px) {

    /* tallers and bio: lines back to their usual direction */
    .lineTerapia2,
    .lineAsistencia2 {
        top: calc(var(--space) * 3);
        width: 50vw;
        height: calc(var(--space) * 3);
    }

    .lineProjectes2,
    .lineBio2 {
        width: calc(var(--space) * 3);
        height: calc(100vh - calc(var(--space) * 6));
    }

    /* line on the left (sessions, tallers) */
    .pageTerapia .carouselLeft,
    .pageTerapia .texto,
    .pageProjectes .carouselLeft,
    .pageProjectes .texto {
        right: 0;
    }

    /* line at the bottom (tallers, bio) */
    .pageProjectes,
    .pageBio {
        top: calc(var(--space) * 6);
        height: calc(100vh - calc(var(--space) * 6));
    }

    .pageProjectes .texto,
    .pageBio .texto {
        padding-bottom: calc(var(--space)* 3);
    }

    .pageProjectes .fsToggleOn,
    .pageBio .fsToggleOn {
        top: calc(var(--space) * 7.5);
    }

    .pageBio .fullCarousel {
        top: calc(var(--space)*6);
        left: calc(var(--space)*3);
        width: calc(100% - var(--space)*3);
        height: calc(100% - var(--space)*6);
    }

    .pageBio .imagesCarousel {
        max-width: none;
    }
}


/* -----------------------------------
ANIMATIONS
// -------------------------------------- */

@keyframes unrevealText {
    0% {
        opacity: 1;
        visibility: visible;
    }

    30% {
        opacity: 0;
    }

    100% {
        opacity: 0;
        visibility: hidden;
        height: 1px;
    }
}

@keyframes normalHeight {
    0% {
        height: 1px;
        opacity: 0;
        visibility: hidden;
    }

    100% {
        height: fit-content;
        opacity: 1;
        visibility: visible;
    }
}

@keyframes fadeInTitulo {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
        visibility: visible;
    }
}

@keyframes fadeInMenu {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
        visibility: visible;
    }
}

@keyframes fadeInA {
    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scaleDown {
    from {
        transform: scale(2);
    }

    to {
        transform: scale(1);
    }
}

@keyframes slideUpIn {
    from {
        translate: 0 calc(var(--vh, 1vh) * 100);
    }

    to {
        translate: 0 0;
    }
}

@keyframes slideDownIn {
    from {
        translate: 0 calc(-100% - var(--space) * 3);
    }

    to {
        translate: 0 0;
    }
}

@keyframes blurOut {
    0% {
        filter: blur(20px);
    }

    50% {
        filter: blur(10px);
    }

    100% {
        filter: blur(0px);
    }
}

@keyframes hidePlay {
    0% {
        opacity: 1;
    }

    99% {
        opacity: 0;
        visibility: visible;
    }

    100% {
        visibility: hidden;
    }
}

@keyframes playAnim {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.02);
    }

    100% {
        transform: scale(1);
    }
}
