@font-face {
    font-family: "sohne";
    src: url('../fonts/Sohne-Buch.otf');
    font-weight: 400;
}

@font-face {
    font-family: "sohne";
    src: url('../fonts/Sohne-Kraftig.otf');
    font-weight: 500;
}

* {
    --blue: rgba(0, 0, 255, 1);
    --bodysize: 22px;
    --unit: calc(1280px / 64);
    --octounit: calc(var(--unit) / 8);
    --gray: rgb(170, 170, 170);

}

body {
    font-family: sohne, sans-serif;
    font-size: var(--bodysize);
    line-height: 1.2;
    font-weight: 500;
    margin: 0 auto;
    text-align: center;
    color: blue
}

header {
    padding: calc(var(--unit) * 1) calc(var(--unit) * 1.25) 0;
    height: calc(var(--unit) * 5);
    position: sticky;
    top: 0;
    z-index: 10;
}

main {
    max-width: 1280px;
    margin: 0 auto;
}

a.btn,
.btn {
    text-decoration: none;
}

.no-event {
    color: var(--gray) !important;
    /* cursor: not-allowed; */
}

.no-event:hover {
    /* text-decoration: line-through; */
}

#menu {
    display: flex;
    justify-content: space-between;
}

#menu>div {
    display: flex;
    flex: 33.333% 0 0;
    column-gap: var(--unit);
    justify-content: center;
}

#menu>div:nth-child(1) {
    justify-content: left;
}

#menu>div:nth-child(3) {
    justify-content: right;
}



#menu .btn,
#mainmenu .btn,
#zoom {
    height: calc(var(--octounit) * 15);
    border: 1px solid blue;
    display: inline-block;
    padding: calc(var(--octounit) * 1.4) calc(var(--octounit) * 5) calc(var(--octounit) * 4);
    background-color: blue;
    color: #fff;
}

#mainmenu .btn.invert {
    background-color: #fff;
    color: var(--blue);
    border: var(--blue) 1px solid;
}

.tpl-default p {
    margin: 10px 0 10px;
}

.tpl-default p a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.tpl-default h2,
.tpl-default p a.btn {
    min-height: 36px;
    border: 1px solid blue;
    display: inline-block;
    padding: 2px 12px 6px;
    background-color: #fff;
    color: blue;
    text-decoration: none;
}

.edition {
    width: calc(var(--unit) * 25)
}

.trio {
    display: flex;
    gap: 43px;
    width: 1050px;
    max-width: 100%;
    height: 598px;
    position: relative;
    overflow: hidden;
    margin: 0 auto;
    justify-content: center;
}

.trio::after,
.trio::before {
    content: " ";
    height: calc(100% + 60px);
    position: absolute;
    border-left: 4px dotted blue;
    top: -30px;
    left: 0px;
    background-color: #fff;
    width: 0px;
}

.trio::after {
    right: 0px;
    left: auto;
}

.trio img {
    display: block;
    width: 380px;
    height: 528px;
}



.tpl-home .ed-action {
    height: calc(var(--unit) * 5);
    padding: 4px 0 calc(var(--unit) * 2);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    white-space: nowrap;
}

.tpl-edition .ed-action {
    margin-left: auto;
    margin-right: auto;
    min-height: 2.5em;
    display: flex;
    align-items: flex-end;
    gap: 0 var(--unit);
    white-space: nowrap;
}

.tpl-edition main.infomode {
    max-width: inherit;
    position: absolute;
    top: 12.5vh;
    height: 87.5vh;
    width: 100%;
}

.tpl-edition .edition-div {
    min-height: 12.5vh;
    position: fixed;
    bottom: 0px;
    width: 100%;
    z-index: 1;
    background: #fff;
    padding-top: 10px;
}

#description {
    text-align: left;
    max-width: 1280px;
    margin: 0 auto 1em;
    padding: 1em calc(var(--unit) * 1.25) 0;
}

#descbtn {
    cursor: pointer;
}

#descbtn:hover {
    color: var(--gray);
}

#hop {
    display: flex;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding: 0px calc(var(--unit) * 1.25);
}

.moreinfo,
u {
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
    align-self: start;
}

.ed-action a:hover {
    color: var(--gray);
    text-decoration: initial;
}

.cover-card-status--reserved {
    color: #d28a00;
}

.cover-card-status--sold {
    color: #b30000;
}

.covers-grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--unit);
    justify-content: center;
    padding: 0 calc(var(--unit) * 2.5);
}

.cover-card {
    position: relative;
    width: calc(var(--unit) * 9);
    transition: width 0.05s;
    overflow: hidden;
}

.cover-card img {
    width: 100%;
    height: auto;
    display: block;
    border:1px solid #000
}

.edition-covers {
    display: flex;
    gap: 0 var(--unit);
}

.edition-covers {
    display: flex;
    gap: 0 var(--unit);
    width: 100%;
    margin-left: calc(var(--unit) * -4);
}

.edition-covers .cover {
    display: none;
    flex: calc((100% - (var(--unit) * 2)) / 3) 0 0;
}

.edition-covers .cover.is-visible {
    display: block;
}

.edition-covers img {
    width: 100%;
    height: auto;
    display: block;
    border:1px solid #000
}

.edition>div {
    overflow: hidden;
    width: 500px;
    height: 290px;
    display: flex;
    justify-content: center;
    border: 1px solid #000;
    padding: 19px 0;
}

.edition-covers .cover.active {
    opacity: 1;
    z-index: 2;
}

.edition-covers img {
    width: calc(var(--unit) * 9);
    height: auto;
}

#wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0px calc(var(--unit) * 5);
    /* justify-items: center; */
}

.cover-card--available {
    position: relative;
}

.cover-card-button {
    cursor: pointer;
}

.cover-card--available.added::after {
    content: " ";
    position: absolute;
    width: calc(100% - 60px);
    aspect-ratio: 1/1;
    border-radius: 50%;
    background-color: blue;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    pointer-events: none;
}

.cover-card.cover-card--sold {
    border: 1px solid var(--gray)
}

.cover-card.cover-card--sold::after {
    content: "Vendu";
    color: red;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
}

.zoom-out .cover-card--available.added::after {
    width: calc(100% - 128px);
}

.cover-card.cover-card--sold figure img {
    opacity: 0;
}

#checkout {
    position: relative;
}

#toStripe:hover, #menu a.btn:hover, #menu h1 a.btn:hover, #menuBtn:hover, #mainmenu a:hover {
    background-color: var(--gray) !important;
    color: #fff !important;
    cursor: pointer !important;
    border: 1px solid var(--gray) !important;
}

#mainmenu  a.btn.invert:hover,
.tpl-default p a.btn:hover{
    background-color: #fff !important;
    color: var(--gray) !important;
    cursor: pointer !important;
    border: 1px solid var(--gray) !important;
}

.isActive {
    cursor: pointer;
    color: blue !important;
    background: #fff !important;
}

#cartcount {
    position: absolute;
    bottom: -54px;
    background: blue;
    width: 50px;
    height: 50px;
    display: none;
    line-height: 47px;
    border-radius: 25px;
    left: 50%;
    translate: -50% 0px;
    box-sizing: border-box;
    border: 1px solid blue;
    color: #fff;
}

#cartcount:hover {
    color: transparent;
    background-color: #fff;
    cursor: pointer;
}

#cartcount:hover::after {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 13 13 L 33 33 M 13 33 L 33 13' style='fill:none;stroke:blue;stroke-width:2;stroke-linecap:round'/%3E%3C/svg%3E ");
    color: blue;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    width: 46px;
    height: 46px;
    background: transparent;
    border-radius: 23px;
}

.edition>div.swiper {
    width: auto;
    height: auto;
    padding: 0;
}

#zoom {
    position: fixed;
    bottom: 20px;
    left: 50%;
    translate: -50% 0;
    color: blue;
    border: 1px solid blue;
    background-color: #fff;
    cursor: pointer;
}

.zoom-out #zoom {
    background-color: blue;
    color: #fff;
}

.zoom-out .covers-grid {
    gap: calc(var(--unit) * 2.5);
}

.zoom-out .cover-card {
    width: calc(var(--unit) * 18);
    transition: width 0.05s;
}

#zoom:after {
    content: 'Agrandir';
}

.zoom-out #zoom:after {
    content: 'Réduire';
}


footer {
    padding-top: 20px;
    height: 100px;
}

.notification {
    position: fixed;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    color: #fff;
    background-color: var(--blue);
    width: 847px;
    max-width: calc(100% - 60px);
    padding: 70px 50px;
    z-index: 8;
}

.notification strong {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    text-decoration-skip-ink: none;
}

.notification p+p {
    margin-top: 1em;

}

.closenotif {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 28px;
    height: 28px;
    padding: 0px;
    appearance: none;
    cursor: pointer;
    border: 0;
    background: transparent;
}

.close-icon {
    width: 28px;
    height: 28px;
    display: block;
    stroke: #fff;
    stroke-width: 1px;
    color: #fff;
}



@media screen and (min-width:1921px) {
    * {
        --bodysize: 33px;
        --unit: calc(1920px / 64);
    }

    main {
        max-width: 1920px;
    }

    .edition>div {

        width: 750px;
        height: 435px;
        padding: 30px 0;
    }



    .edition-covers img {
        width: 270px;
        height: 375px;
    }

    #wrapper {
        gap: 0px 150px;
    }



    #description,
    #hop {
        max-width: 1920px;
    }

    #notification {
        max-width: 100%;
        width: 1292px;
        padding: 107px 76px;
    }

    .closenotif {
        position: absolute;
        top: 20px;
        right: 20px;
        width: 42px;
        height: 42px;
    }

    .close-icon {
        width: 42px;
        height: 42px;
    }

    #cartcount {
        bottom: -82px;
        width: 75px;
        height: 75px;
        line-height: 70px;
        border-radius: 50%;
    }

}

@media screen and (max-width:750px) {
    * {
        --bodysize: 13.20px;
        --unit: 10px;
    }

    body {
        padding: 0 15px;
    }

    header {
        padding: 15px 0 60px;
        white-space: nowrap;
    }

    #menu .btn,
    #mainmenu .btn,
    #zoom {
        height: 22px;
        padding: 1px 6px;
    }

    #menu>div {
        display: flex;
        column-gap: 10px;
    }

    .edition,
    .edition>div {
        width: 100%;
    }

    .edition-covers .cover {
        flex: 36% 0 0;
    }

    .edition-covers img {
        width: 100%;
        height: auto;
        display: block;
    }

    .edition-covers {
        gap: 0 4%;
        width: 100%;
        margin-left: -16%;
    }

    .edition>div {
        aspect-ratio: 5/2.9;
        width: 100%;
        height: auto;
    }

    .edition>div {
        aspect-ratio: auto;
        width: 100%;
        height: auto;
        padding: 4% 0;
    }

    #menuBtn {
        display: none !important;
    }

    #centre {
        white-space: nowrap;
        position: absolute;
        top: 53px;
        left: 50%;
        translate: -50% -50%;
    }

    span.ed-action {
        height: 32px;
        margin: 10px 0 20px;
    }

    #cartcount {
        width: 30px;
        height: 30px;
        line-height: 28px;
        bottom: -32px;
    }

    .tpl-default h2,
    .tpl-default p a.btn {
        min-height: 22px;
        padding: 1px 6px;
    }

    .covers-grid {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 16px;
        align-items: center;
    }

    .cover-card {
        width: 50%;
    }

    #zoom {
        display: none;
    }

    #notification {
        padding: 30px;
        max-width: calc(100% - 20px);
    }

    .closenotif {
        position: absolute;
        top: 10px;
        right: 10px;
        width: 20px;
        height: 20px;
    }

    .close-icon {
        width: 20px;
        height: 20px;
        display: block;
        stroke: #fff;
        stroke-width: 1px;
        color: #fff;
    }


    .tpl-edition main.infomode {
        position: fixed;
        top: 0;
        display: flex;
        flex-direction: column;
        height: 100%;
        width: calc(100% - 20px)
    }


    .tpl-edition .swiper {
        height: auto;
        padding-top: 90px;
        flex: auto 0 0;
    }

    .tpl-edition .edition-div {
        position: relative;
        bottom: auto;
        padding-top: 0;
        display: flex;
        flex-direction: column;
        flex: auto 1 1;
    }

    #hop {
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding: 0;
        flex: 2.5em 0 0;
    }


    .tpl-edition .ed-action {
        min-height: 2.5em;
        display: flex;
        align-items: flex-end;
        gap: 0 10px;
        margin: 5px auto 10px;
        padding: 0 0px;
        height: 2.5em;
    }


    #description {
        display: block !important;
        flex: 100% 1 1;
        overflow-y: scroll;
        width: 100%;
        padding: 0;
        height: auto;
    }

    #descbtn {
        display: none;
    }



}