:root {
  --color-primary: #0D2342;
  --color-secondary: #F0C2B5;
  --color-tertiary: #FFED9E;
  --color-quaternary: #D9F5A8;
  --color-quinary: #E38A73;
  --color-gray-350: #d0d0d0;
  --color-gray-100: #f6f6f6;
}

.accordion-vertical {
    display: flex;
    flex-direction: column;

    height: 100%;

    background-color: var(--color-gray-100);
}

@media screen and (min-width: 992px) {
    .accordion-vertical {
        justify-content: flex-end;
    }
}

/* Colonne des contenus */
.accordion-vertical__item-body {
    position: relative;
    z-index: 1;

    flex: 1;

    box-sizing: border-box;

    padding: 2rem;
}

@media screen and (min-width: 768px) {
    .accordion-vertical__item-body {
        padding: 30px 36px;
    }
    .accordion-vertical__item-body:not(.open) {
        padding-top: 0;
        padding-bottom: 0;
    }
}

@media screen and (min-width: 1200px) {
    .accordion-vertical__item-body {
        padding: 48px 24px;
        min-height: 680px;
    }
}

@media screen and (min-width: 1440px) {
    .accordion-vertical__item-body {
        padding: 110px 52px 110px 30px;
        min-height: 650px;
    }
}

.accordion-vertical__item-body.open {
    visibility: visible;

    height: auto;
    width: auto;
    max-width: 100%;

    transition: visibility 100ms ease-in;
}

.accordion-vertical__item-body:not(.open) {
    flex: 0 1 0;
    
    visibility: hidden;

    height: 0;
    width: 0;
    max-width: 0;

    box-sizing: border-box;

    padding-left: 0;
    padding-right: 0;

    overflow: hidden;

    transition: visibility 100ms ease-in 500ms;
}

.accordion-vertical__item-body:not(.open) .accordion-vertical__item-body-wrapper {
    opacity: 0;

    transition: opacity 500ms ease-in;
}

.accordion-vertical__item-body.open .accordion-vertical__item-body-wrapper {
    opacity: 1;

    transition: opacity 500ms ease-in 100ms;
}

.accordion-vertical__button-wrapper .btn:focus {
    outline: 2px dotted var(--color-primary);
}

/* Colonne des titres verticaux */
.accordion-vertical__item {
    display: flex;
    flex-direction: column;
    flex: 0 1 auto;

    overflow: hidden;

    background-color: var(--color-gray-350);
}

/* Onglet vertical */
.accordion-vertical__item-title {
    position: relative;

    border: none;
    background-color: var(--color-gray-350);
    color: var(--color-primary);

    text-transform: uppercase;
    font-stretch: 110%;
    font-weight: 600;
    font-size: 2rem;
    text-align: left;
    writing-mode: initial;

    cursor: pointer;

    justify-content: space-between;
    align-items: center;
    display: flex;
    gap: 0.5rem;

    padding: 24px 20px; 
}

.accordion-vertical__item-title:focus {
    outline: 2px dotted rgba(255,255,255,0.5);
    outline-offset: -2px;
}

.accordion-vertical__item-title::before {
    content: '';
    position: absolute;

    top: -6px;
    right: -20px;

    width: 117px;
    height: 157px;

    opacity: 0;
    transition: opacity 200ms ease-in;
}

.accordion-vertical__item-title.active::before {
    opacity: 1;
    transition: opacity 200ms ease-in 200ms;
}

@media screen and (min-width: 768px) {
    .accordion-vertical__item-title {
        padding: 24px 36px;

        font-size: 2.6rem;
    }
}

@media screen and (min-width: 1200px) {
    .accordion-vertical__item-title {
        padding: 32px;

        font-size: 3.1rem;
    }
    .accordion-vertical__item-title::before {
        top: 0px;
        right: unset;
        left: 0;

        width: 178px;
        height: 188px;
    }
}

@media screen and (min-width: 1440px) {
    .accordion-vertical__item-title {
        padding: 38px 46px 50px 46px;
    }
}

/* Couleurs des accordéons (en fonction de leur position) */

.accordion-vertical__item:first-of-type,
.accordion-vertical__item:first-of-type .accordion-vertical__item-title {
    background-color: var(--color-tertiary);
}

.accordion-vertical__item:nth-of-type(2),
.accordion-vertical__item:nth-of-type(2) .accordion-vertical__item-title {
    background-color: var(--color-quinary);
}
/* Icône + / - */
.accordion-vertical-icon {
    display: inline-block;
    width: 32px;
    height: 32px;

    opacity: 1;

    transition: opacity 200ms ease-in 200ms;
}

@media screen and (min-width: 1200px) {
    .accordion-vertical-icon {
        width: 48px;
        height: 48px;
    }
}

.accordion-vertical__item-title.active .accordion-vertical-icon {
    opacity: 0;

    transition: opacity 200ms ease-in;
}

/* Responsive  - On repasse en accordéon horizontal sur les écrans < 1200px */
@media screen and (min-width: 1200px) {
    .accordion-vertical {
        flex-direction: row;

        min-height: 400px;
    }
    .accordion-vertical__item {
        flex-direction: row;
        flex-shrink: 0;
    }
    .accordion-vertical__item + .accordion-vertical__item {
        border-left: 5px solid #ffffff;
    }
    .accordion-vertical__item.accordion-vertical__item--opened {
        flex-shrink: 1;
    }
    .accordion-vertical__item-title {
        writing-mode: sideways-lr;
        text-orientation: mixed;
    }
}
/* ... */
@media screen and (max-width: 1199px) {
    .accordion-vertical__item-title.active {
        padding-bottom: 2px;
    }
    .accordion-vertical__item--opened .accordion-vertical__item-body {
        padding-top: 2px;
    }
}
