.horizontal-accordion {
width: 100%;
color: #fff;
text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000;
display: flex;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
list-style: none;
padding: 0;
transition: all 500ms;
}
.horizontal-accordion .section {
background-position: center;
background-size: cover;
width: 7rem;
height: 20rem;
position: relative;
padding: 4rem 1rem 1rem;
border: none;
box-shadow: -0.125rem 0.25rem 0.5rem rgba(0, 0, 0, 0.3);
border-radius: 1rem;
transition: all 500ms ease-in-out;
display: flex;
flex-direction: column;
gap: 0.5rem;
overflow: hidden;
cursor: pointer;
box-sizing: border-box;
}
.horizontal-accordion .section-title {
font-size: 1.5rem;
line-height: 1;
text-align: left;
color: #fff;
text-wrap: balance;
display: grid;
grid-template: 60px/18rem;
align-items: start;
margin: 0;
transform: rotate(-90deg) translate(calc(-140% + 1rem), calc(-55% + 1rem));
transform-origin: bottom right;
transition: all 500ms ease-in-out;
box-sizing: border-box;
z-index: 2;
}
.horizontal-accordion .section-content {
max-height: 100%;
padding-left: 1rem;
pointer-events: initial;
font-size: 16px;
opacity: 0;
transition: opacity 500ms 250ms ease-in-out;
flex-grow: 0;
overflow-y: scroll;
scrollbar-color: #fff transparent;
scrollbar-width: thin !important;
z-index: 2;
}
.horizontal-accordion .section-content::-webkit-scrollbar {
height: 0.25rem;
}
.horizontal-accordion .section-content * + * {
margin-top: 0.5em;
}
.horizontal-accordion .section-link {
font-size: 1.5rem;
text-align: right;
opacity: 0;
transition: opacity 500ms 250ms ease-in-out;
z-index: 2;
}
.horizontal-accordion .section[data-status=open] {
width: 20rem;
}
.horizontal-accordion .section[data-status=open] .section-title {
align-items: end;
transform: rotate(0deg) translate(0%);
}
.horizontal-accordion .section[data-status=open] .section-content {
opacity: 1;
pointer-events: initial;
cursor: default;
}
.horizontal-accordion .section[data-status=open] .section-link {
opacity: 1;
}
.horizontal-accordion .section::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.66) 40%);
z-index: 1;
}