.coqpit-social {
    --coqpit-left: 2;
    --coqpit-peek-left: 30;
    --coqpit-right: 0;
    --coqpit-peek-right: 50;
    --coqpit-img-w: 304px;
    --coqpit-img-h: 425px;
    --coqpit-gap: 20px;
    --coqpit-arrow-size: 39px;

    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    overflow: hidden;
    font-family: 'Manrope', sans-serif;
}

.coqpit-social[hidden],
.coqpit-social__source[hidden] {
    display: none;
}

/* Side columns: fixed width (set by JS from the current breakpoint), clip the
   cut-off images and the ones waiting outside the visible area. */
.coqpit-social__side {
    position: relative;
    flex: 0 0 auto;
    height: var(--coqpit-img-h);
    overflow: hidden;
    /* Pre-JS approximation, replaced by an exact inline width */
    width: calc((var(--coqpit-left) + var(--coqpit-peek-left) / 100) * (var(--coqpit-img-w) + var(--coqpit-gap)));
}

.coqpit-social__side--left {
    grid-row: 2;
    grid-column: 1;
}

.coqpit-social__side--right {
    grid-row: 2;
    grid-column: 2;
    width: calc((var(--coqpit-right) + var(--coqpit-peek-right) / 100) * (var(--coqpit-img-w) + var(--coqpit-gap)));
}

.coqpit-social__track {
    display: flex;
    align-items: center;
    gap: var(--coqpit-gap);
    width: 100%;
    height: 100%;
}

/* Anchored to the content side: overflow goes outward and is clipped */
.coqpit-social__side--left .coqpit-social__track {
    justify-content: flex-end;
}

.coqpit-social__side--right .coqpit-social__track {
    justify-content: flex-start;
}

.coqpit-social__item {
    position: relative;
    display: block;
    flex: 0 0 var(--coqpit-img-w);
    width: var(--coqpit-img-w);
    height: var(--coqpit-img-h);
    overflow: hidden;
    border-radius: 5px;
    background-color: #d9d9d9;
    user-select: none;
    -webkit-user-drag: none;
}

/* Doubled class + absolute fill so theme rules like `img { height: auto }` cannot win */
.coqpit-social .coqpit-social__item .coqpit-social__img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    -webkit-user-drag: none;
}

/* Copy of an item that slides out of a side (see JS) */
.coqpit-social__ghost {
    position: absolute;
    z-index: 0;
    margin: 0;
    pointer-events: none;
}

.coqpit-social__arrow {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 var(--coqpit-arrow-size);
    width: var(--coqpit-arrow-size);
    height: var(--coqpit-arrow-size);
    padding: 0;
    border: 0 solid transparent;
    border-radius: 50%;
    /* Glass effect from the design: white -> grey fill at 16%, 2px blur */
    background-color: transparent;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(153, 153, 153, 0.16));
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    color: #fff;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* 1px diagonal gradient outline (white 46% -> white 4%) */
.coqpit-social__arrow::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(to bottom left, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0.04));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
    pointer-events: none;
}

.coqpit-social__arrow svg {
    display: block;
    width: 14px;
    height: auto;
    overflow: visible;
}

.coqpit-social__content {
    /* stacked layout (grid): content on the first row, both sides share the second */
    grid-column: 1 / -1;
    grid-row: 1;
    flex: 1 1 0;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* 0 in the stacked layout (--coqpit-row: 0): the content gets its own row */
    min-width: calc(var(--coqpit-content-min, 320px) * var(--coqpit-row, 1));
    box-sizing: border-box;
    padding: 0 40px;
}

.coqpit-social__inner {
    display: block;
    width: 100%;
    text-align: left;
}

.coqpit-social__eyebrow {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.59);
}

.coqpit-social__title {
    margin: 0 0 20px;
    font-family: 'Merca', sans-serif;
    font-size: 64px;
    font-weight: 600;
    line-height: 1.05;
    text-transform: uppercase;
    color: #fff;
}

.coqpit-social__description {
    margin: 0 0 50px;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    color: rgba(255, 255, 255, 0.8);
}

/* inline-flex so the parent's text-align positions the whole row */
.coqpit-social__socials {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.coqpit-social__social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 43px;
    height: 43px;
    border-radius: 3px;
    background-color: #f90c1a;
    color: #fff;
    text-decoration: none;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.coqpit-social__social i {
    font-size: 20px;
    line-height: 1;
}

.coqpit-social__social svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.coqpit-social__notice {
    margin: 0 0 10px;
    padding: 10px 14px;
    border-radius: 4px;
    background: rgba(249, 12, 26, 0.15);
    color: #fff;
    font-size: 13px;
}

/* ---- Classic slider (stacked layout): native horizontal scroll with snap ---- */
.coqpit-social__classic {
    display: none;
    position: relative;
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
}

.coqpit-social.is-classic .coqpit-social__side {
    display: none;
}

.coqpit-social.is-classic .coqpit-social__classic {
    display: block;
}

.coqpit-social__classic-track {
    display: flex;
    align-items: center;
    gap: var(--coqpit-gap);
    padding: 0 20px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 20px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.coqpit-social__classic-track::-webkit-scrollbar {
    display: none;
}

.coqpit-social__classic-track .coqpit-social__item {
    scroll-snap-align: start;
}

.coqpit-social__classic .coqpit-social__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.coqpit-social__arrow--classic-prev {
    left: 8px;
}

.coqpit-social__arrow--classic-next {
    right: 8px;
}

.coqpit-social__arrow.is-disabled {
    opacity: 0.35;
    pointer-events: none;
}
