/*
Theme Name: Studio Johanna de Clisson
Theme URI: 
Author: joanajost
Author URI: https://joanajost.fr
Description: xxx
Version: 0.0
License: 
License URI: 
Text Domain: xxx
Tags: 
*/

:root {
    /* couleurs */
    --white: #ffffff;
    --black: #000000;
    --brown: #551A00;
    --back-red: #c00000;

    --highlight-bg: #571a00e6;
    --highlight-text: #ffffff;
    /* typos */
    --sans-serif: 'Basel Grotesk';

    /* opentype numbers */
    /* font-variant-numeric: */
    --elzevirien-tabulaire: oldstyle-nums tabular-nums;
    --elzevirien-proportionnel: oldstyle-nums proportional-nums;
    --aligne-tabulaire: lining-nums tabular-nums;
    --aligne-proportionnel: lining-nums proportional-nums;

    /* tailles */
    --body-txt: 11pt;
    --small-txt: 9.5pt;

    --body-txt-mobile: 10.3pt;
    --small-txt-mobile: 9pt;

    --alinea: 40px;
    --alinea-mobile: 25px;

    /* marges et colonnes */
    --small-margin: 15px;
    --big-space: 170px;
    --big-space-mobile: 100px;

    --small-main-top: 50px;
    --main-top: 70px;
    --main-bottom: 120px;

    --main-bottom-mobile: 80px;
    --mobile-footer-height: 100px;

    --colonne: calc(calc(100vw - calc(var(--small-margin) * 2)) / 24);
    --colonne-mobile: calc(calc(100vw - calc(var(--small-margin) * 2)) / 10);

    --mobile-width: calc(100vw - calc(var(--small-margin) * 2));
    --height-margins: calc(100dvh - calc(var(--small-margin) * 2));
    --min-height-mobile: calc(100dvh - var(--mobile-footer-height));

    --min-width-deskt: calc(650px - calc(var(--small-margin) * 2));
    --txt-bloc-min-width: 500px;
    --small-text-bloc: 430px;

    /* ombre */
    --shadow: 0px 0px 3px rgba(0, 0, 0, 0.25);

    /* transition */
    --transition: all 0.3s ease-in-out;

    /* curseurs */
    --flch-gauche: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' x='0px' y='0px' width='20px' height='14.83px' viewBox='0 0 26.44 19.6'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: %23551A00; %7D %3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M9.878,19.018L.579,9.719,9.878.421l.919.919-7.729,7.73h22.95v1.3H3.068l7.729,7.729-.919.919Z'/%3E%3C/svg%3E") 0 7.4, w-resize;
    --flch-droite: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' x='0px' y='0px' width='20px' height='14.83px' viewBox='0 0 26.44 19.6'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: %23551A00; %7D %3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M16.719.421l9.299,9.298-9.299,9.299-.919-.919,7.729-7.73H.579v-1.3h22.95L15.8,1.34l.919-.919Z'/%3E%3C/svg%3E") 0 7.4, e-resize;
}



/* 
──────────────────────────────────
           base reinit            
──────────────────────────────────
 */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-optical-sizing: auto;
    transition: var(--transition);
}

body {
    background-color: var(--white);
    color: var(--brown);
    font-family: var(--sans-serif);
    font-size: var(--body-txt);
    list-style: none;

    font-variant-numeric: var(--aligne-proportionnel);

    min-height: 100vh;
    min-height: 100dvh;
}

/* Cacher la scrollbar pour tous les éléments avec overflow */
html,
body {
    overflow: -moz-scrollbars-none;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
    display: none;
}

img {
    user-select: none;
    -webkit-user-drag: none;
    -webkit-touch-callout: none;
}


/* 
──────────────────────────────────
               main               
        réglages généraux         
──────────────────────────────────
*/

main {
    padding-top: var(--main-top);
    padding-bottom: var(--main-bottom);
    /* hauteur du footer */
}

::-moz-selection {
    background-color: var(--highlight-bg);
    color: var(--highlight-text);
}

::selection {
    background-color: var(--highlight-bg);
    color: var(--highlight-text);
}


/* title reinit */

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: var(--body-txt);
    font-weight: initial;
}


/* 
──────────────────────────────
  types et styles de liens    
──────────────────────────────
 */

a {
    color: var(--brown);
    text-decoration: none;
    transition: none;
}

a.highlight:hover {
    color: var(--white);
    background-color: var(--brown);
}

.highlight a:hover {
    color: var(--white);
    background-color: var(--brown);
}

a.underline:hover {
    text-decoration: underline;
    text-underline-offset: 0.13em;
}

.underline a:hover {
    text-decoration: underline;
    text-underline-offset: 0.13em;
}

.underlined {
    text-decoration: underline;
    text-underline-offset: 0.13em;
    pointer-events: none;
}

.highlighted {
    color: var(--white);
    background-color: var(--brown);
    pointer-events: none;
}


/* SMALL CAPS */
.otf-small-caps {
    font-feature-settings: 'smcp' 1;
}

.otf-all-small-caps {
    font-feature-settings: 'c2sc' 1, 'smcp' 1;
}


/* 
──────────────────────────────
  ratios d'images    
──────────────────────────────
 */

.image-wrapper {
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


.media-wrapper {
    overflow: hidden;
}

.media-wrapper.portrait {
    aspect-ratio: 4 / 5;
}

.media-wrapper.paysage {
    aspect-ratio: 5 / 4;
}

.media-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.media-wrapper video {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}

/* 
.swiper-slide.portrait img,
.swiper-slide.paysage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
} */



/* 
──────────────────────────────
──────────────────────────────                           
***         HEADER         ***
──────────────────────────────
────────────────────────────── 
*/

header {
    position: fixed;
    display: flex;
    padding: var(--small-margin);
    width: 100%;
    justify-content: space-between;

    z-index: 99;
}

.custom-logo {
    height: 0.9em;
    width: auto;
}

.site-title {
    letter-spacing: 0.7em;
}



/* 
──────────────────────────────
            menu              
          principal           
──────────────────────────────
*/

#main-nav {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
}

.main-menu {
    list-style: none;
    display: flex;
}

.main-menu li::after {
    content: ",\00a0";
}

.main-menu li:last-child::after {
    content: "";
}

.main-menu a {
    white-space: nowrap;
}

#language-switcher {
    display: flex;
    text-transform: uppercase;
}

#language-switcher span {
    margin: 0 0.1em;
}

/* titres pages mobile */
.mobile-page-titles {
    display: none;
}

#header-logo-mobile {
    display: none;
}


/* 
──────────────────────────────
──────────────────────────────                           
***       Paragrahes       ***
──────────────────────────────
────────────────────────────── 
*/

.text-content {
    width: calc(var(--colonne) * 8);
    min-width: var(--txt-bloc-min-width);
}

.text-content h2,
.text-content h3,
.text-content h4,
.text-content h5,
.text-content h6 {
    margin-bottom: 2em;
    text-align: center;
    text-transform: uppercase;
}


.text-content p:first-of-type {
    text-indent: 0;
}

.text-content p {
    text-indent: var(--alinea);
}


/* 
──────────────────────────────
──────────────────────────────                           
***         FOOTER         ***
──────────────────────────────
────────────────────────────── 
*/

footer {
    font-size: var(--small-txt);
}

#site-footer {
    margin-top: auto;
    padding: var(--small-margin);

}

.footer-contact {
    margin-left: 3em;
}


.footer-fixed footer {
    position: fixed;
    bottom: 0;
    z-index: 90;
}


/* 
──────────────────────────────────
──────────────────────────────────
            side menu             
──────────────────────────────────
──────────────────────────────────
*/

.side-menu {
    position: fixed;
    margin: var(--small-margin);
    top: var(--main-top);
    z-index: 88;
    line-height: 130%;
}

.side-menu ul {
    list-style: none;
    line-height: 130%;
}


/*
──────────────────────────────────
            side menu             
        + sous-catégories         
──────────────────────────────────
*/

.categories-menu {
    list-style: none;
    padding: 0;
    /* max-width: 650px; */

    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.categories-menu * {
    transition: none;
}

.categories-menu li.parent-term {
    display: flex;
    align-items: flex-start;
}

.categories-menu .children {
    display: none;
    flex-wrap: wrap;
}

/* puce apres le parent */
/* content: "\00a0• "; */
.categories-menu .parent-term .children::before {
    content: "\00a0— ";
    font-weight: bold;
}

.categories-menu .children li {
    display: inline-block;
    /* margin-left: 10px; */
}

/* virgule après chaque sous-cat sauf la dernière */
.categories-menu .children li:not(:last-child)::after {
    content: ", ";
}

.categories-menu .children.keep-open {
    display: block !important;
}

/* 
 * éléments de liste cachés 
 */

.archive-item {
    opacity: 1;
    transition: var(--transition);
}

.archive-item.hidden {
    display: none;
    opacity: 0;
}

.swiper-pagination-lock {
    display: block !important;
}


/* 
──────────────────────────────
──────────────────────────────                           
***         MOBILE         ***
──────────────────────────────
────────────────────────────── 
*/

@media screen and (max-width: 650px) {
    body {
        font-size: var(--body-txt-mobile);
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        font-size: var(--body-txt-mobile);
    }

    #header-logo-desktop {
        display: none;
    }

    #header-logo-mobile {
        display: block;
    }

    #main-nav {
        display: none;
    }

    .mobile-page-titles {
        padding: var(--small-margin);
        position: fixed;
        top: 0;
        text-transform: none;
        display: block;

        width: 100%;
        text-align: center;
        left: 0;
    }

    .side-menu {
        line-height: 120%;
    }

    .side-menu ul {
        line-height: 120%;
    }

    .categories-menu .parent-term:hover .children {
        display: none;
        /* désactive hover sur mobile */
    }

    .parent-term>a {
        line-height: 120%;
        margin: 0.075em 0;
    }

    .parent-term:first-child>a {
        line-height: 120%;
        /* margin-top: 0; */
    }

    .parent-term:last-child>a {
        line-height: 120%;
        /* margin-bottom: 0; */
    }

    .categories-menu .children li {
        margin: 0.075em 0;
    }

    main {
        padding-bottom: 0;
    }

    .text-content {
        width: calc(var(--colonne-mobile) * 8);
        min-width: calc(var(--colonne-mobile) * 8);
    }

    .text-content p {
        text-indent: var(--alinea-mobile);
    }

    footer {
        font-size: var(--small-txt-mobile);
    }

    .footer-fixed footer {
        position: relative;
        bottom: 0;
    }

    .main-menu li::after {
        content: ",";
    }
}