/*                                                           __     __         _       _     _                                  */
/*                                                           \ \   / /_ _ _ __(_) __ _| |__ | | ___  ___                        */
/*                                                            \ \ / / _` | '__| |/ _` | '_ \| |/ _ \/ __|                       */
/*                                                             \ V / (_| | |  | | (_| | |_) | |  __/\__ \                       */
/*                                                              \_/ \__,_|_|  |_|\__,_|_.__/|_|\___||___/                       */

/* ----------------------------------------------------------------- Global variables ----------------------------------------- */
:root {
    --white: #f7f7f7;
    --black: #444444;
    --black_light: #707070;
    --red: #b11010;

    --font_xs: 10px;
    --font_s: 15px;
    --font_m: 18px;
    --font_l: 24px;
    --font_xl: 34px;
    --font_xxl: 64px;

    --vh: 1vh; /* Fallback on vh if JS is blocked */
}








/* ---------------------------------------------------------------- Scrollbar ----------------------------------------------- */
::-webkit-scrollbar {
    width: 6px;             /* Tenký scrollbar */
    height: 6px;            /* Pokud scrolluješ i horizontálně */
}

::-webkit-scrollbar-thumb {
    background: rgba(102, 131, 80, 0.2);  /* Téměř průhledný */
    border-radius: 4px;              /* Kulaté rohy */
}

::-webkit-scrollbar-track {
    background: transparent;         /* Žádná dráha */
}

/* Firefox */
html, body {
    scrollbar-width: thin;                        /* Tenký */
    scrollbar-color: rgba(102, 131, 80, 0.2) transparent;  /* Téměř průhledný */
}
















/*                                                                     ____ _       _           _                                   */
/*                                                                    / ___| | ___ | |__   __ _| |                                  */
/*                                                                   | |  _| |/ _ \| '_ \ / _` | |                                  */
/*                                                                   | |_| | | (_) | |_) | (_| | |                                  */
/*                                                                    \____|_|\___/|_.__/ \__,_|_|                                  */

/* ------------------------------------------------------------------ Global elements threw all web ------------------------------- */
html {
    scroll-behavior: smooth;
}

body {

    font-family: "Comfortaa", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

h2 {
    font-size: var(--font_xl);
}





body {
    display: flex;
}

main {
    width: 84vw;
    height: 100vh;

    display: grid;
    grid-template-columns: 5% 15% repeat(3, 10%) 15% 5% repeat(3, 10%);
    grid-template-rows: repeat(10, 10%);
}

main.index {
    grid-template-rows: 12% 8% repeat(7, 10%) auto;
    overflow: auto;
}

/* Special grid for page with information about school */
main.info {
    grid-template-rows: none;
}

/* Special grid for page about MS in section about activities */
main.gallery_type {
    grid-template-columns: 5% 15% repeat(3, 10%) 15% 5% 10% 14% 6%;
}

.bento_box {
    padding: 15px;
}

.bento_box > div, nav > div {
    width: 100%;
    height: 100%;

    border-radius: 40px;
}

.web {
    display: block;
}
.tab {
    display: none;
}
.mob {
    display: none;
}



/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    main {
        width: 70vw;

        grid-template-columns: 5% 15% repeat(3, 10%) 15% 5% repeat(3, 10%);
        grid-template-rows: auto repeat(10, 10%);
        overflow: auto;
    }

    main.gallery_type {
        grid-template-columns: repeat(8, 10%) auto auto;
        grid-template-rows: auto calc(var(--vh, 1vh) * 16) repeat(7, calc(var(--vh, 1vh) * 9)) auto;
    }

    main.wit_swit {
        grid-template-columns: repeat(10, 10%);
        grid-template-rows: auto calc(var(--vh, 1vh) * 16) repeat(7, calc(var(--vh, 1vh) * 9)) auto;
    }

    main.info {
        grid-template-columns: repeat(10, 10%);
    }

    main.index {
        grid-template-columns: repeat(10, 10%);
        grid-template-rows: auto
        calc(var(--vh, 1vh) * 50)
        auto
        calc(var(--vh, 1vh) * 30)
        calc(var(--font_xl) + 30px)
        calc(var(--vh, 1vh) * 25)
        calc(var(--vh, 1vh) * 25)
        auto;
    }

    .web {
        display: none;
    }
    .tab {
        display: block;
    }
    .mob {
        display: none;
    }
}

@media screen and (min-width: 951px) and (max-width: 1368px) and (orientation: landscape) {
    main {
        width: 80vw;

        overflow: auto;
    }

    main.gallery_type {
        grid-template-columns: repeat(8, 10%) auto auto;
        grid-template-rows: auto calc(var(--vh, 1vh) * 12) repeat(7, calc(var(--vh, 1vh) * 9)) auto;
    }

    main.wit_swit {
        grid-template-columns: repeat(10, 10%);
        grid-template-rows: auto calc(var(--vh, 1vh) * 12) repeat(7, calc(var(--vh, 1vh) * 9)) auto;
    }

    main.index {
        grid-template-columns: 5% 15% repeat(8, 10%);
        grid-template-rows: auto 20% 15% repeat(5, 10%) auto;
    }

    .web {
        display: none;
    }
    .tab {
        display: block;
    }
    .mob {
        display: none;
    }
}




/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait) {
    main{
        width: 100vw;
        height: calc(var(--vh, 1vh) * 90);

        overflow: auto;

        display: grid;
        grid-template-columns: 12% 8% repeat(8, 10%);
        grid-template-rows: auto repeat(8, 10%) auto;
    }

    main.gallery_type {
        grid-template-columns: 12% 8% repeat(8, 10%);
        grid-template-rows: auto 28% repeat(7, 10%) auto;

        overflow: auto;
    }

    main.wit_swit {
        grid-template-columns: 5% 15% repeat(3, 10%) 15% 5% repeat(3, 10%);
        grid-template-rows: auto 28% repeat(8, 7%);
    }

    main.index {
        grid-template-columns: repeat(10, 10%);
        grid-template-rows: auto
        calc(var(--vh, 1vh) * 40)
        calc(var(--vh, 1vh) * 17)
        calc(var(--vh, 1vh) * 44)
        calc(var(--font_xl) + 30px)
        calc(var(--vh, 1vh) * 25)
        calc(var(--vh, 1vh) * 25)
        auto;
    }

    .bento_box {
        padding: 10px;
    }

    .web {
        display: none;
    }
    .tab {
        display: none;
    }
    .mob {
        display: block;
    }
}


@media screen and (max-width: 950px) and (orientation: landscape) {
    main {
        width: 75vw;

        grid-template-columns: repeat(10, 10%);
        grid-template-rows: auto repeat(9, 10%);
        overflow: auto;
    }

    main.gallery_type {
        grid-template-columns: repeat(10, 10%);
        grid-template-rows: auto 28% repeat(7, 10%) auto;
    }

    main.wit_swit {
        grid-template-columns: repeat(10, 10%);
        grid-template-rows: auto 30% repeat(8, 9%);
    }

    main.index {
        grid-template-rows: auto
        calc(var(--vh, 1vh) * 60)
        calc(var(--vh, 1vh) * 40)
        calc(var(--vh, 1vh) * 80)
        calc(var(--font_xl) + 30px)
        calc(var(--vh, 1vh) * 50)
        calc(var(--vh, 1vh) * 25)
        auto;

        padding-bottom: 50px;
    }

    .bento_box {
        padding: 10px;
    }

    .web {
        display: none;
    }
    .tab {
        display: none;
    }
    .mob {
        display: block;
    }
}

















/*                                                                      __     __        _   _           _                              */
/*                                                                      \ \   / /__ _ __| |_(_) ___ __ _| |                             */
/*                                                                       \ \ / / _ \ '__| __| |/ __/ _` | |                             */
/*                                                                        \ V /  __/ |  | |_| | (_| (_| | |                             */
/*                                                                         \_/ \___|_|   \__|_|\___\__,_|_|                             */

/* ------------------------------------------------------------------------------- Vertical big text ---------------------------------- */
#information_text_vertical {
    grid-column: 1/2;
    height: calc(var(--vh) * 90);
}

#information_text_vertical > div {
    height: 100%;
    background-color: transparent;

    display: flex;
    justify-content: center;
    align-items: center;
}

#information_text_vertical :is(h1, h2, h3) {
    color: var(--green);
    font-size: calc(var(--vh) * 7);
    letter-spacing: 8px;
    font-weight: 500;
    text-orientation: upright;
    writing-mode: vertical-lr;
}



/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait), screen and (max-width: 950px) and (orientation: landscape) {
    #information_text_vertical :is(h1, h2, h3) {
        font-size: calc(var(--vh) * 5);
        letter-spacing: 4px;
    }
}



















/*                                                         _   _             _             _   _                    */
/*                                                        | \ | | __ ___   _(_) __ _  __ _| |_(_) ___  _ __         */
/*                                                        |  \| |/ _` \ \ / / |/ _` |/ _` | __| |/ _ \| '_ \        */
/*                                                        | |\  | (_| |\ V /| | (_| | (_| | |_| | (_) | | | |       */
/*                                                        |_| \_|\__,_| \_/ |_|\__, |\__,_|\__|_|\___/|_| |_|       */
/*                                                                             |___/                                */

/* ----------------------------------------------------------------------- Navigation section --------------------- */
nav {
    position: sticky;
    width: 16vw;
    height: 100vh;
    padding: 15px;
}

nav > div {
    padding: 15px;

    background-color: var(--green_darker);
    box-shadow: inset 0 0 20px rgba(75, 75, 75, 0.406);
    overflow: auto;
}

.section {
    display: flex;
    align-items: center;
    height: min(calc((100vh - 13vh - 30px - 30px) / 9), 80px);
}

.section .nav_img {
    width: max(4vw, 20px);
}

.section .nav_img img {
    width: 100%;
    height: auto;
    display: block;
}

.section p {
    margin: auto;
    margin-left: .5vw;

    color: var(--white);
}

nav .extra {
    display: none;
}

nav .extra.show {
    display: block;
    animation: fadeSlide 0.3s ease forwards;
}

/* ------------------------------------------------------------------------ Animation --------------------------- */
nav .section:hover {
    transform: scale(1.1);
}

@keyframes fadeSlide {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}



/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    nav {
        width: 30vw;
    }

    .section {
        padding-left: 10%;
    }

    .section p {
        font-size: var(--font_m);
    }

    .section .nav_img {
        width: max(5vw, 30px);
    }
}

@media screen and (min-width: 951px) and (max-width: 1368px) and (orientation: landscape) {
    nav {
        width: 20vw;
    }
}



/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait)  {
    nav {
        position: fixed;
        z-index: 100;
        bottom: 0;
        width: 100vw;
        height: calc(var(--vh, 1vh) * 10);
        padding: 10px;

        background-color: rgba(247, 247, 247, .7);
    }

    nav > div {
        padding: 10px;
        display: flex;
        justify-content: space-between;
    }

    .section_box {
        position: fixed;
        width: 100vw;
        height: calc(var(--vh, 1vh) * 90);
        left: 0;
        top: 0;
        padding: 20px;
        
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        background-color: rgba(247, 247, 247, .7);

        display: none;
        flex-direction: column-reverse;
        align-items: center;

        overflow: auto;
    }

    .section_box .section {
        height: calc((90vh - 40px) / 10);
    }

    .section_box .section .nav_img {
        width: max(20vw, 80px);
    }

    .section_box p {
        font-size: var(--font_l);
        color: var(--green_darker);
    }
}

@media screen and (max-width: 950px) and (orientation: landscape) {
    nav {
        width: 25vw;
    }

    .section_box {
        padding-left: 5px;
    }

    .section p {
        font-size: var(--font_s);
    }
}






















/*                                                                    ____                                      */
/*                                                                   | __ ) _   _ _ __ __ _  ___ _ __           */
/*                                                                   |  _ \| | | | '__/ _` |/ _ \ '__|          */
/*                                                                   | |_) | |_| | | | (_| |  __/ |             */
/*                                                                   |____/ \__,_|_|  \__, |\___|_|             */
/*                                                                                    |___/                     */

/* ---------------------------------------------------------------------------- Burger ------------------------ */
nav .nav_burger {
    width: 20%;

    display: none;
    justify-content: center;
    align-items: center;
}

.burger {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: end;
    gap: 8px;
    width: 40px;
    height: 40px;
}

.burger span {
    display: block;
    width: 100%;
    height: 6px;
    background: var(--white);
    border-radius: 3px;
    transition: all 0.3s ease;
}

#nav_switch:checked + nav .burger span:nth-child(2) {
    width: 60%;
}

#nav_switch:checked + nav .burger span:nth-child(3) {
    width: 30%;
}

/* ------------------------------------------------------------------------ Mobile --------------------------- */

@media screen and (max-width: 800px) and (orientation: portrait)  {
    nav .nav_burger {
        display: flex;
    }

    #nav_switch:checked ~ #navigation .section_box {
        display: flex;
        animation: fadeSlide 0.3s ease forwards;
    }

    /* Volitelně animace fadeSlide */
    @keyframes fadeSlide {
        from {opacity: 0; transform: translateY(-10px);}
        to {opacity: 1; transform: translateY(0);}
    }
}



















/*                                                                    _                _                                */
/*                                                                   | |    ___   __ _(_)_ __                           */
/*                                                                   | |   / _ \ / _` | | '_ \                          */
/*                                                                   | |__| (_) | (_| | | | | |                         */
/*                                                                   |_____\___/ \__, |_|_| |_|                         */
/*                                                                               |___/                                  */

/* ---------------------------------------------------------------------- Login section ------------------------------- */
#login {
    height: 10vh;
    margin-bottom: 3vh;
}

#login div {
    width: 100%;
    height: 100%;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: max(1vw, 10px);

    background-color: var(--green_light);
    border-radius: calc(40px - 10px);
}

/* #login .edo_class {
    width: 20%;
} */

#login img {
    width: 20%;
}

#login p {
    color: var(--green_darker);
    font-size: var(--font_m);
}




/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait)  {
    #login {
        width: 48%;
        height: 100%;
        margin-bottom: 0;
    }

    #login img {
        width: auto;
        height: 75%;
    }

    /* #login p {
        display: none;
    } */
}


@media screen and (max-width: 950px) and (orientation: landscape) {
    #login img {
        width: auto;
        height: 55%;
    }

    #login div {
        border-radius: 20px;
    }

    #login p {
        font-size: var(--font_s);
    }
}






















/*                                                                     _                                                */
/*                                                                    | |    ___   __ _  ___                            */
/*                                                                    | |   / _ \ / _` |/ _ \                           */
/*                                                                    | |__| (_) | (_| | (_) |                          */
/*                                                                    |_____\___/ \__, |\___/                           */
/*                                                                                |___/                                 */

/* ----------------------------------------------------------------------- Logo section ------------------------------- */
#logo {
    grid-column: 1/11;

    color: var(--green);
    font-size: var(--font_xl);
    letter-spacing: 1px;
}

#logo > div {
    color: var(--green);
    font-size: var(--font_xl);
    text-align: center;
    letter-spacing: 1px;
    font-weight: 500;
    line-height: 105% !important;

    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 10px;
}




/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1440px) {
    #logo > div {
        letter-spacing: 5px;
        line-height: 140%;
    }
}




/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) {
    #logo > div {
        font-size: calc(calc(var(--vh, 1vh) * 17) / 5);
        letter-spacing: 2px;
        line-height: 120%;
    }
}

@media screen and (max-width: 950px) and (orientation: landscape) {
    #logo > div {
        font-size: calc(calc(var(--vh, 1vh) * 17) / 3);
        letter-spacing: 2px;
        line-height: 120%;
    }
}




















/*                                                                ____          _ _       _                             */
/*                                                               / ___|_      _(_) |_ ___| |__                          */
/*                                                               \___ \ \ /\ / / | __/ __| '_ \                         */
/*                                                                ___) \ V  V /| | || (__| | | |                        */
/*                                                               |____/ \_/\_/ |_|\__\___|_| |_|                        */

/* ----------------------------------------------------------------------- Switch section ----------------------------- */
#switch {
    grid-column: 1/11;
    grid-row: 2/3;
}

#switch > div {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

#switch.ms > div {
    grid-template-columns: repeat(3, 1fr);
}

.link_switch {
    height: 100%;
    padding: 0 10px;
}

.link_switch div {
    height: 100%;
    background-color: var(--green_light);
    border-radius: 40px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.link_switch p {
    color: var(--black);
}

.link_switch .active {
    background-color: var(--green);
}
.link_switch .active h1 {
    color: var(--white);
}





/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    #switch > div {
        grid-template-columns: 1fr 1fr;
    }

    #switch > div a {
        padding: 10px;
    }

    .link_switch p {
        font-size: var(--font_s);
    }


    #switch.ms > div .link_switch > div {
        padding: 20px;
    }
}

@media screen and (min-width: 951px) and (max-width: 1368px) and (orientation: landscape) {
    .link_switch p {
        font-size: var(--font_s);
    }
}




/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait) {
    #switch > div, #switch.ms > div {
        grid-template-columns: 1fr;
    }

    #switch > div a {
        padding: 3px;
    }

    .link_switch p {
        font-size: var(--font_s);
    }
}

@media screen and (max-width: 950px) and (orientation: landscape) {
    #switch > div {
        grid-template-columns: 1fr 1fr;
    }

    #switch > div a {
        padding: 4px;
    }

    .link_switch p {
        font-size: var(--font_s);
    }
}
















/*                                                               __     ___     _ _   _                                     */
/*                                                               \ \   / (_)___(_) |_| | ____ _                             */
/*                                                                \ \ / /| |_  / | __| |/ / _` |                            */
/*                                                                 \ V / | |/ /| | |_|   < (_| |                            */
/*                                                                  \_/  |_/___|_|\__|_|\_\__,_|                            */

/* ------------------------------------------------------------------------- ID cards ------------------------------------- */
.consulting_box {
    width: 100%;
    height: auto;
    padding: 30px;
    margin-bottom: max(5vh, 50px);

    background-color: var(--green_light);
    border-radius: 40px;
}

.consulting_box:nth-child(even) {
    background-color: transparent;
}

.consulting_box > h2 {
    color: var(--green_darker);
    font-size: var(--font_xl);
    font-weight: 500;

    margin-bottom: max(1.5vh, 15px);
}

.consulting_box:nth-child(even) .consulting_box > h3 {
    color: var(--green);
}

.consulting_box > p {
    line-height: 140%;
    font-size: var(--font_s);
    margin-bottom: 20px;
}

.consulting_box:nth-child(even) .workplace {
    background: var(--green_light);
}

.workplaces {
    display: flex;
    gap: 1.5rem;
    margin: auto;
    padding: 1rem;
}

.workplace {
    width: max(45%, 600px);
    border-radius: 12px;
    padding: 1rem;
    background: var(--white);
}

.workplace h3 {
  font-size: var(--font_m);
  color: var(--black);
}

.workplace ul {
  margin: 0.5rem 0;
}

.workplace ul li::before {
  content: "• ";
  color: var(--green_darker);
}

.workplace .address {
  font-style: italic;
  color: #555;
  margin: 1rem 0rem;
}

.workplace a {
    color: var(--black_light);
}

.workplace .phones li {
  margin-bottom: .5rem;
}

.workplace .phones li::before {
  content: "📞 ";
  margin-bottom: .5rem;
}

.workplace .mails li::before {
  content: "✉️ ";
}



/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    .workplaces {
        width: 100%;
        display: flex;
        flex-direction: column;
    }

    .workplace {
        width: 100%;
        margin-bottom: 20px;
    }
}

@media screen and (min-width: 951px) and (max-width: 1368px) and (orientation: landscape) {
}




/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait), screen and (max-width: 950px) and (orientation: landscape)  {
    .consulting_box > h2 {
        font-size: var(--font_l);
    }

    .workplaces {
        display: block;
        padding: 10px;
    }

    .workplace {
        width: 100%;
        margin-bottom: 20px;
    }
}





















/*                                                                                     ____       _ _                 
/*                                                                                    / ___| __ _| | | ___ _ __ _   _                               */
/*                                                                                   | |  _ / _` | | |/ _ \ '__| | | |                              */
/*                                                                                   | |_| | (_| | | |  __/ |  | |_| |                              */
/*                                                                                    \____|\__,_|_|_|\___|_|   \__, |                              */
/*                                                                                                              |___/                               */

/* ---------------------------------------------------------------------- Box holding all gallery elements = container ---------------------------- */
.gallery_box {
    margin-bottom: max(8vh, 60px);

    border-radius: 40px;
    overflow: hidden;
}

.gallery {
    width: 100%;
    height: 35vh;
    padding: 30px;

    display: flex;
    gap: 20px;

    overflow-x: auto;
    background-color: var(--green_light);
    border-radius: 40px;

    box-shadow: inset 0 0 20px rgba(75, 75, 75, 0.406);
}

.gallery img {
    height: 100%;
    object-fit: cover;
    object-position: center;
    flex-shrink: 0; /* aby se nezmenšovaly */

    cursor: pointer;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.25);
    border-radius: 10px;
}





/* --------------------------------------------------------------------------------- Gallery animation ------------------------------------- */
/* .gallery_box:nth-of-type(odd) .gallery:has(img:nth-of-type(8)):hover img:first-of-type,
.gallery_box:nth-of-type(even) .gallery:has(img:nth-of-type(8)):hover img:first-of-type {
    animation-play-state: paused;
}

.gallery_box:nth-of-type(odd) .gallery:has(img:nth-of-type(8)) img:first-of-type {
    animation: scroll_right 30s linear infinite;
}

@keyframes scroll_right {
    0% { margin-left: -50vw; }
    50% { margin-left: 0; }
    100% { margin-left: -50vw; }
}

.gallery_box:nth-of-type(even) .gallery:has(img:nth-of-type(8)) img:first-of-type {
    animation: scroll_left 30s linear infinite;
}

@keyframes scroll_left {
    0% { margin-left: 0; }
    50% { margin-left: -50vw; }
    100% { margin-left: 0; }
} */





/* --------------------------------------------------------------------------------------- Text under gallery ---------------------------------- */
.gallery_text {
    padding: 40px;
    padding-right: 120px;

    border-radius: 40px;
}

.gallery_text :is(h1, h2, h3) {
    font-size: var(--font_xl);
    color: var(--green_darker);
    letter-spacing: 2px;

    margin-bottom: max(2vh, 15px);
}

.gallery_text p {
    font-size: var(--font_m);
    color: var(--black);
    letter-spacing: 1px;
    line-height: 120%;

    margin-bottom: max(2vh, 15px);
}




/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    .gallery {
        height: calc(var(--vh, 1vh) * 30);
        padding: 20px;
    }

    .gallery img {
        border-radius: 25px;
    }
}




/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait) {
    .gallery {
        height: calc(var(--vh, 1vh) * 25);
        padding: 20px;
    }

    .gallery img {
        border-radius: 20px;
    }



    .gallery_text {
        padding: 20px;
    }

    .gallery_text :is(h1, h2, h3) {
        font-size: var(--font_l);
        letter-spacing: 3px;
        font-weight: 500;
    }

    .gallery_text p {
        font-size: var(--font_s);
        line-height: 140%;
    }
}

@media screen and (max-width: 950px) and (orientation: landscape) {
    .gallery {
        height: calc(var(--vh, 1vh) * 40);
        padding: 10px;

        gap: 10px
    }

    .gallery img {
        border-radius: 30px;
    }



    .gallery_text {
        padding: 20px;
    }

    .gallery_text :is(h1, h2, h3) {
        font-size: var(--font_l);
        letter-spacing: 2px;
        line-height: 120%;
    }

    .gallery_text p {
        font-size: var(--font_s);
        line-height: 140%;
    }
}























/*                                                                    __  __           _       _                                    */
/*                                                                   |  \/  | ___   __| | __ _| |                                   */
/*                                                                   | |\/| |/ _ \ / _` |/ _` | |                                   */
/*                                                                   | |  | | (_) | (_| | (_| | |                                   */
/*                                                                   |_|  |_|\___/ \__,_|\__,_|_|                                   */

/* ------------------------------------------------------------------------- Modal ------------------------------------------------ */
.modal {
    position: fixed;
    z-index: 100;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    padding-top: 60px;

    display: flex;
    justify-content: center;
    align-items: center;

    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    background-color: rgba(247, 247, 247, .5);
}

.modal.hidden {
    display: none;
}

.modal_content {
    max-width: 90%;
    max-height: 80%;

    border-radius: 60px;
}

.close {
    position: absolute;
    top: 20px;
    right: 35px;
    
    color: var(--green_darker);
    font-size: 80px;
    font-weight: bold;

    cursor: pointer;
}

.modal_controls {
    position: absolute;

    display: flex;
    justify-content: center;
}

.modal_controls.left {
    left: 2%;
}
.modal_controls.right {
    right: 2%;
}

.modal_controls button {
    color: var(--green);
    font-size: 80px;

    cursor: pointer;
}

#prev {
    left: 100px;
    width: max(4vw, 40px);
}

#next {
    right: -100px;
    width: max(4vw, 40px);
}

#prev path, #next path {
    fill: var(--green) !important;
}



/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    .modal_content {
        max-width: 70%;
    }

    .modal_controls {
        position: fixed;
        bottom: 40px;
        left: 60%;
        padding-left: 10%;
        justify-content: center;
        margin-top: 0;
    }
}




/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait) {
    .modal_controls {
        position: fixed;
        bottom: 80px;
        left: 60%;
        padding-left: 10%;
        justify-content: center;
        margin-top: 0;
    }
}

















/*                                                                        ____        _                                         */
/*                                                                       |  _ \  ___ | |_ ___                                   */
/*                                                                       | | | |/ _ \| __/ __|                                  */
/*                                                                       | |_| | (_) | |_\__ \                                  */
/*                                                                       |____/ \___/ \__|___/                                  */

/* ------------------------------------------------------------------------- ... Dots ... ------------------------------------- */
.dots_box {
    width: 100%;
    height: 10%;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.dot {
    width: 10px;
    height: 10px;
    background-color: var(--green_light);
    border-radius: 50%;
    display: inline-block;
    transition: background-color 0.3s, transform 0.3s;

    cursor: pointer;
}

.dot.active {
    background-color: var(--green_darker) !important;
    transform: scale(1.3);
}
















/*                                                                            ____                                      */
/*                                                                           |  _ \ __ _  __ _  ___                     */
/*                                                                           | |_) / _` |/ _` |/ _ \                    */
/*                                                                           |  __/ (_| | (_| |  __/                    */
/*                                                                           |_|   \__,_|\__, |\___|                    */
/*                                                                                       |___/                          */

/* ------------------------------------------------------------------------------- Actual page ------------------------ */
.page_box {
    width: 100%;

    display: flex;
    align-items: center;

    overflow: hidden;
}

.page p {
    width: 2vw;
    height: 2vw;
    margin-bottom: 20px;

    border-radius: 50%;
    background-color: var(--white);
    color: var(--green);

    display: flex;
    align-items: center;
    justify-content: center;
}

.page .active {
    background-color: var(--green_light);
    color: var(--green_darker);
}

.w_bg .page p {
    background-color: var(--green_light);
    color: var(--green_darker);
}
.w_bg .page .active {
    background-color: var(--green_darker);
    color: var(--white);
}




/* ------------------------------------------------------------------------ Tablets --------------------------- */
@media screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    .page p {
        width: 4vw;
        height: 4vw;
    }
}

@media screen and (min-width: 951px) and (max-width: 1368px) and (orientation: landscape) {
    .page p {
        width: 3vw;
        height: 3vw;
    }
}



/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px) and (orientation: portrait), screen and (max-width: 950px) and (orientation: landscape) {
    .page_box {
        width: 100%;

        justify-content: center;
    }

    .page {
        display: flex;
        flex-direction: row;
        gap: 10px;
    }

    .page p {
        width: 8vw;
        height: 8vw;
        margin-bottom: 20px;

        border-radius: 50%;
    }
}

@media screen and (max-width: 950px) and (orientation: landscape) {
    .page p {
        width: 4vw;
        height: 4vw;
    }
}






















/*                                                        ____                            __  __           _                    */
/*                                                       |  _ \ _ __ ___  ___ ___    ___ / _|/ _| ___  ___| |_                  */
/*                                                       | |_) | '__/ _ \/ __/ __|  / _ \ |_| |_ / _ \/ __| __|                 */
/*                                                       |  __/| | |  __/\__ \__ \ |  __/  _|  _|  __/ (__| |_                  */
/*                                                       |_|   |_|  \___||___/___/  \___|_| |_|  \___|\___|\__|                 */
                                                       
/* --------------------------------------------------------------------- Press effect ----------------------------------------- */
@keyframes effectPress {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(0.9);
    }
    100% {
        transform: scale(1);
    }
}

.effect_press {
    cursor: pointer;
    transform-origin: center center;
}

.index .effect_press {
    transform-origin: right center;
}

.effect_press:hover {
    animation: effectPress 0.4s ease;
}

/* ----------------------------------------------------------------- On press change color -------------------------------------- */
.effect_press_color:hover {
    background-color: var(--green_darker);
}


















/*                                                                    ____  _                                           */
/*                                                                   |  _ \| | __ _ _   _                               */
/*                                                                   | |_) | |/ _` | | | |                              */
/*                                                                   |  __/| | (_| | |_| |                              */
/*                                                                   |_|   |_|\__,_|\__, |                              */
/*                                                                                  |___/                               */

/* ------------------------------------------------------------------ Play "button" effect ---------------------------- */
@media screen and (min-width: 1369px) {
    .play_container {
        position: relative;
    }

    .play {
        position: absolute;
        z-index: 20;
        top: -5px;
        right: -5px;
        width: 40px;
        height: 40px;
        padding: 15px;
        border-radius: 20px;
        background-color: var(--green);
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: inset 0 0 0 rgba(0,0,0,0);
        animation: expandPlay 8s infinite;
    }

    .play svg {
        position: absolute;
        height: 22px;
        width: 22px;
        right: 6px;
    }

    @keyframes expandPlay {
        0% {
            width: 40px;
            box-shadow: inset 0 0 0 rgba(0,0,0,0);
        }
        5% {
            width: 100px;
            box-shadow: inset -5px 0 10px rgba(144, 144, 144, 0.443);
        }
        30% {
            width: 100px;
            box-shadow: inset -5px 0 10px rgba(144, 144, 144, 0.443);
            /* box-shadow: inset -5px 0 10px rgba(0,0,0,0.2); */
        }
        35% {
            width: 40px;
            box-shadow: inset 0 0 0 rgba(0,0,0,0);
        }
        100% {
            width: 40px;
            box-shadow: inset 0 0 0 rgba(0,0,0,0);
        }
    }

    .play_more {
        position: absolute;
        left: 30px;

        color: var(--white);
        font-weight: bold;
        font-size: 14px;
        white-space: nowrap;
        opacity: 0;
        animation: showMore 8s infinite;
    }

    @keyframes showMore {
        0% {
            opacity: 0;
        }
        5% {
            opacity: 1;
        }
        25% {
            opacity: 1;
        }
        35% {
            opacity: 0;
        }
    }
}



/* ------------------------------------------------------------------------ Tablets --------------------------- */
 @media screen and (min-width: 951px) and (max-width: 1368px) and (orientation: landscape) {
    .play_container {
        position: relative;
    }

    .play {
        position: absolute;
        z-index: 20;
        top: -5px;
        right: -5px;
        width: 30px;
        height: 30px;
        border-radius: 15px;
        padding: 5px;
        background-color: var(--green);
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: inset 0 0 0 rgba(0,0,0,0);
        animation: shake 1s infinite;
    }

    .play svg {
        position: absolute;
        height: 16px;
        width: 16px;
        right: 5px;
    }

    @keyframes shake {
        0% {
            transform: scale(1);
        }
        50% {
            transform: cale(1.1);
        }
        100% {
            transform: scale(1);
        }
    }

    .play_more {
        display: none;
    }
}



/* ------------------------------------------------------------------------ Mobile --------------------------- */
@media screen and (max-width: 800px), screen and (max-width: 950px) and (orientation: landscape), screen and (min-width: 801px)  and (max-width: 1024px) and (orientation: portrait) {
    .play_container {
        position: relative;
    }

    .play {
        position: absolute;
        z-index: 20;
        top: -5px;
        right: -5px;
        width: 30px;
        height: 30px;
        border-radius: 15px;
        padding: 5px;
        background-color: var(--green);
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: inset 0 0 0 rgba(0,0,0,0);
        animation: expandPlay 8s infinite;
    }

    .play svg {
        position: absolute;
        height: 16px;
        width: 16px;
        right: 5px;
    }

    @keyframes expandPlay {
        0% {
            width: 30px;
            box-shadow: inset 0 0 0 rgba(0,0,0,0);
        }
        5% {
            width: 60px;
            box-shadow: inset -5px 0 10px rgba(144, 144, 144, 0.443);
        }
        30% {
            width: 60px;
            box-shadow: inset -5px 0 10px rgba(144, 144, 144, 0.443);
            /* box-shadow: inset -5px 0 10px rgba(0,0,0,0.2); */
        }
        35% {
            width: 30px;
            box-shadow: inset 0 0 0 rgba(0,0,0,0);
        }
        100% {
            width: 30px;
            box-shadow: inset 0 0 0 rgba(0,0,0,0);
        }
    }

    .play_more {
        position: absolute;
        left: 12px;
        font-size: 10px;

        color: var(--white);
        font-weight: bold;
        white-space: nowrap;
        opacity: 0;
        animation: showMore 8s infinite;
    }

    @keyframes showMore {
        0% {
            opacity: 0;
        }
        5% {
            opacity: 1;
        }
        25% {
            opacity: 1;
        }
        35% {
            opacity: 0;
        }
    }
}
                    