/* ==========================================================================
   Motomarine v3 - Extras
   .cs-pricing      service package cards (--featured = navy flag)
   .cs-compare      bordered compare box: photo header with remove buttons, navy group bands, scrolls sideways on phones
   .cs-events       event rows with a date block; Event info opens #eventModal (.cs-event-loc box inside)
   .cs-ratesum       review score, star bars and CTA
   .cs-countdown    dark band with a live timer (main.js [data-countdown])
   .cs-evcard       event card: 128px date block (month strip, big day, year), title, copy, hairline, geo meta; dark recipe
   .cs-rental-card  4/5 photo card with a badge and hover reveal specs (Boat rental, default + dark)
   ========================================================================== */

/* ---------- Service packages ---------- */
.cs-pricing {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 36px 32px;
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--white);
}
.cs-pricing--featured {
    border-color: var(--secondary);
    box-shadow: var(--shadow);
}
.cs-pricing__flag {
    position: absolute;
    top: -13px;
    left: 32px;
    padding: 4px 12px;
    border-radius: 0;
    background: var(--secondary);
    font-family: var(--font-heading);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--white);
}
.cs-pricing__name {
    margin-bottom: 6px;
}
.cs-pricing__desc {
    margin: 0 0 20px;
    font-size: 14px;
    color: var(--muted);
}
.cs-pricing__price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 22px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--border);
}
.cs-pricing__amount {
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 700;
    line-height: 1;
    color: var(--heading);
}
.cs-pricing__per {
    font-size: 14px;
    color: var(--muted);
}
.cs-pricing .cs-list {
    flex: 1 1 auto;
    margin: 0 0 28px;
    font-size: 14px;
}
.cs-pricing__note {
    margin: 28px 0 0;
    font-size: 13px;
    text-align: center;
    color: var(--muted);
}

/* ---------- Spec comparison ---------- */
.cs-compare {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--white);
}
.cs-compare img {
    filter: brightness(.9);
}
.cs-compare__grid {
    min-width: 800px;
}
.cs-compare__row {
    display: grid;
    grid-template-columns: 200px repeat(3, 1fr);
    border-bottom: 1px solid var(--border);
}
.cs-compare__row:last-child {
    border-bottom: 0;
}
.cs-compare__cell {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 20px;
    border-left: 1px solid var(--border);
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    color: var(--heading);
}
.cs-compare__cell--label {
    justify-content: flex-start;
    border-left: 0;
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: 500;
    text-align: left;
    color: var(--muted);
}
.cs-compare__group {
    padding: 9px 20px;
    border-bottom: 1px solid var(--border);
    background: var(--heading);
    font-family: var(--font-heading);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--white);
}
.cs-compare__row--head .cs-compare__cell {
    align-items: stretch;
    padding: 0;
}
.cs-compare__row--head .cs-compare__cell--label {
    flex-direction: column;
    justify-content: flex-end;
    align-items: stretch;
    padding: 0 20px 20px;
    background: var(--white);
}
.cs-compare__row--head .cs-compare__cell--label strong {
    margin: 0 -20px;
    padding: 16px 20px 0;
    border-top: 1px solid var(--border);
    font-family: var(--font-heading);
    font-size: 22px;
    color: var(--heading);
}
.cs-compare__row--head .cs-compare__cell--label span {
    font-size: 13px;
}
.cs-compare__boat {
    position: relative;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
}
.cs-compare__boat img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.cs-compare__type {
    display: block;
    margin: 14px 0 2px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--muted);
}
.cs-compare__boat h3 {
    margin: 0 16px 4px;
}
.cs-compare__boat h3 a {
    color: var(--heading);
}
.cs-compare__boat h3 a:hover {
    color: var(--primary);
}
.cs-compare__price {
    margin-bottom: 18px;
    font-size: 18px;
    font-weight: 700;
    color: var(--primary);
}
.cs-compare__remove {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: var(--white);
    box-shadow: var(--shadow);
    font-size: 11px;
    color: var(--heading);
    cursor: pointer;
    transition: var(--transition);
}
.cs-compare__remove:hover {
    background: var(--primary);
    color: var(--white);
}
.cs-compare__row--foot .cs-compare__cell {
    padding: 18px 20px;
}

/* ---------- Events ---------- */
.cs-events {
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--white);
}
.cs-event {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--border);
}
.cs-event:last-child {
    border-bottom: 0;
}
.cs-event__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    border-radius: 0;
    background: var(--heading);
    color: var(--white);
    line-height: 1;
}
.cs-event__date strong {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 700;
}
.cs-event__date span {
    margin-top: 3px;
    font-size: 11px;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}
.cs-event__body {
    flex: 1 1 auto;
    min-width: 0;
}
.cs-event__title {
    margin-bottom: 4px;
}
.cs-event__title a {
    color: var(--heading);
}
.cs-event__title a:hover {
    color: var(--primary);
}
.cs-event__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
    font-size: 13px;
    color: var(--muted);
}
.cs-event__meta i {
    margin-right: 4px;
    color: var(--primary);
}
.cs-event__btn {
    flex: 0 0 auto;
}
.cs-events__more {
    margin-top: 32px;
}

/* Event info modal: location box with a floating label */
.cs-event-loc {
    position: relative;
    margin-top: 28px;
    padding: 30px 28px 24px;
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--bg-light);
}
.cs-event-loc__label {
    position: absolute;
    top: -14px;
    left: 20px;
    padding: 5px 12px;
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--white);
    font-family: var(--font-heading);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--heading);
}
.cs-event-loc__name {
    display: inline-block;
    margin-bottom: 12px;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--secondary);
}
.cs-event-loc__name:hover {
    color: var(--primary);
}
.cs-event-loc__rows {
    margin: 0;
    padding: 0;
    list-style: none;
}
.cs-event-loc__rows li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    font-size: 15px;
    color: var(--heading);
}
.cs-event-loc__rows i {
    color: var(--primary);
}
.cs-event-loc__rows strong {
    font-family: var(--font-heading);
    font-weight: 600;
}

/* ---------- Rating summary ---------- */
.cs-ratesum {
    display: grid;
    grid-template-columns: auto 1fr 1fr;
    gap: 40px;
    align-items: center;
    padding: 40px 48px;
    border-radius: 0;
    background: var(--white);
    box-shadow: var(--shadow);
}
.cs-ratesum__score {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-right: 40px;
    border-right: 1px solid var(--border);
    text-align: center;
}
.cs-ratesum__score strong {
    font-family: var(--font-heading);
    font-size: 64px;
    font-weight: 700;
    line-height: 1;
    color: var(--heading);
}
.cs-ratesum__stars {
    margin: 8px 0 4px;
    font-size: 20px;
    letter-spacing: 2px;
    color: #f5b301;
}
.cs-ratesum__count {
    font-size: 13px;
    color: var(--muted);
    white-space: nowrap;
}
.cs-ratesum__bar {
    display: grid;
    grid-template-columns: 48px 1fr 32px;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: var(--muted);
}
.cs-ratesum__bar + .cs-ratesum__bar {
    margin-top: 8px;
}
.cs-ratesum__bar i {
    display: block;
    height: 8px;
    border-radius: 0;
    background: var(--light-bg);
    overflow: hidden;
}
.cs-ratesum__bar b {
    display: block;
    height: 100%;
    border-radius: 0;
    background: #f5b301;
}
.cs-ratesum__bar em {
    font-style: normal;
    text-align: right;
}
.cs-ratesum__cta p {
    margin: 0 0 18px;
    color: var(--muted);
}
.cs-ratesum__cta .cs-btn-link {
    margin-left: 18px;
}

/* ---------- Countdown ---------- */
.cs-countdown {
    display: grid;
    grid-template-columns: 1.2fr auto auto;
    gap: 40px;
    align-items: center;
}
.cs-countdown__copy h2 {
    color: var(--white);
}
.cs-countdown__copy p {
    margin: 0;
    color: rgba(255, 255, 255, .72);
}
.cs-countdown__timer {
    display: flex;
    gap: 12px;
}
.cs-countdown__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 84px;
    height: 84px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 0;
    background: rgba(255, 255, 255, .04);
    line-height: 1;
}
.cs-countdown__unit strong {
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 700;
    color: var(--white);
}
.cs-countdown__unit span {
    margin-top: 6px;
    font-size: 11px;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .6);
}

/* ---------- Boat rental: copy beside two photo reveal cards (default and dark) ---------- */
.cs-rental__copy h2 {
    margin-bottom: 16px;
}
.cs-rental__copy p {
    margin-bottom: 20px;
}
.cs-rental__copy .cs-list {
    margin-bottom: 28px;
}
.cs-rental-card {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: 0;
    overflow: hidden;
    background: var(--heading);
    color: var(--white);
}
.cs-rental-card > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(.85);
    transition: transform .5s ease;
}
.cs-rental-card:hover > img {
    transform: scale(1.05);
}
.cs-rental-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(15, 23, 43, .92) 0%, rgba(15, 23, 43, .3) 55%, rgba(15, 23, 43, 0) 100%);
    transition: background .3s ease;
}
.cs-rental-card:hover::after,
.cs-rental-card:focus-within::after {
    background: linear-gradient(to top, rgba(15, 23, 43, .95), rgba(15, 23, 43, .75));
}
.cs-rental-card__badge {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
}
.cs-rental-card__body {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    padding: 24px;
}
.cs-rental-card__body small {
    display: block;
    margin-bottom: 6px;
    font-family: var(--font-heading);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--primary);
}
.cs-rental-card__body h3 {
    margin: 0;
    color: var(--white);
}
.cs-rental-card__reveal {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}
.cs-rental-card:hover .cs-rental-card__reveal,
.cs-rental-card:focus-within .cs-rental-card__reveal {
    max-height: 240px;
}
.cs-rental-card__specs {
    margin: 14px 0 4px;
    padding: 0;
    list-style: none;
}
.cs-rental-card__specs li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid rgba(255, 255, 255, .15);
    font-size: 14px;
    color: rgba(255, 255, 255, .85);
}
.cs-rental-card__specs li i {
    font-size: 15px;
    color: var(--primary);
}
.cs-rental-card .cs-btn-link {
    margin-top: 8px;
    color: var(--white);
}
.cs-rental-card .cs-btn-link:hover {
    color: var(--primary);
}
.cs-rental-card {
    box-shadow: var(--shadow);
}
.bg-dark .cs-rental-card {
    box-shadow: 0 12px 30px rgba(0, 0, 0, .3);
}

/* ---------- Event cards: date block with a month strip, title, copy, hairline, location line (default + dark) ---------- */
.cs-evcards {
    max-width: 960px;
    margin: 0 auto;
}
.cs-evcard {
    display: flex;
    align-items: stretch;
    gap: 28px;
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--white);
}
.cs-evcard + .cs-evcard {
    margin-top: 16px;
}
.cs-evcard__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 0 0 auto;
    width: 128px;
    border: 1px solid var(--border);
    border-radius: 0;
    background: var(--bg-light);
    text-align: center;
    overflow: hidden;
}
.cs-evcard__month {
    width: 100%;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    background: var(--white);
    font-family: var(--font-heading);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--primary-text);
}
.cs-evcard__date strong {
    display: block;
    margin-top: auto;
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 700;
    line-height: 1;
    color: var(--heading);
}
.cs-evcard__date small {
    display: block;
    margin: 6px 0 auto;
    padding-bottom: 12px;
    font-size: 13px;
    color: var(--muted);
}
.cs-evcard__body {
    flex: 1 1 auto;
    min-width: 0;
    padding: 4px 0;
}
.cs-evcard__body h3 {
    margin-bottom: 8px;
}
.cs-evcard__body p {
    margin: 0 0 16px;
    color: var(--muted);
}
.cs-evcard__meta {
    padding-top: 14px;
    border-top: 1px solid var(--border);
    font-size: 14px;
    color: var(--heading);
}
.cs-evcard__meta > i.bi {
    margin-right: 6px;
    color: var(--primary);
}
.cs-evcard__dot {
    margin: 0 4px;
    font-style: normal;
    color: var(--border-strong);
}
.bg-dark .cs-evcard {
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
}
.bg-dark .cs-evcard__date {
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .06);
}
.bg-dark .cs-evcard__month {
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
    color: var(--white);
}
.bg-dark .cs-evcard__date strong,
.bg-dark .cs-evcard__body h3,
.bg-dark .cs-evcard__meta {
    color: var(--white);
}
.bg-dark .cs-evcard__date small,
.bg-dark .cs-evcard__body p {
    color: rgba(255, 255, 255, .7);
}
.bg-dark .cs-evcard__meta {
    border-color: rgba(255, 255, 255, .12);
}
.bg-dark .cs-evcard__dot {
    color: rgba(255, 255, 255, .4);
}

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
    .cs-ratesum {
        grid-template-columns: auto 1fr;
        gap: 32px;
        padding: 32px;
    }
    .cs-ratesum__cta {
        grid-column: 1 / -1;
    }
    .cs-countdown {
        grid-template-columns: 1fr;
        gap: 28px;
        text-align: center;
    }
    .cs-countdown__timer {
        justify-content: center;
    }
    .cs-countdown__action {
        text-align: center;
    }
}
@media (max-width: 575px) {
    .cs-evcard {
        flex-direction: column;
        gap: 16px;
        padding: 16px;
    }
    .cs-evcard__date {
        flex-direction: row;
        align-items: center;
        gap: 12px;
        width: auto;
        padding: 0 14px 0 0;
    }
    .cs-evcard__month {
        width: auto;
        padding: 12px 14px;
        border-bottom: 0;
        border-right: 1px solid var(--border);
    }
    .cs-evcard__date strong {
        margin: 0;
        font-size: 26px;
    }
    .cs-evcard__date small {
        margin: 0;
        padding: 0;
    }
    .cs-rental-card__reveal {
        max-height: 240px;
    }
    .cs-rental-card::after {
        background: linear-gradient(to top, rgba(15, 23, 43, .95), rgba(15, 23, 43, .6));
    }
    .cs-rental-card__body {
        padding: 18px;
    }
    .cs-pricing {
        padding: 28px 24px;
    }
    .cs-event {
        flex-wrap: wrap;
        gap: 14px 16px;
        padding: 16px;
    }
    .cs-event__date {
        width: 56px;
        height: 56px;
    }
    .cs-event__btn {
        width: 100%;
    }
    .cs-ratesum {
        grid-template-columns: 1fr;
        padding: 24px;
    }
    .cs-ratesum__score {
        padding-right: 0;
        border-right: 0;
    }
    .cs-countdown__unit {
        width: 68px;
        height: 68px;
    }
    .cs-countdown__unit strong {
        font-size: 24px;
    }
    .cs-ratesum__cta .cs-btn-link {
        display: inline-flex;
        margin: 12px 0 0;
    }
}

/* ==========================================================================
   Price list: compact rows of job + starting price
   ========================================================================== */
.cs-pricelist {
    list-style: none;
    max-width: 760px;
    margin: 0 auto;
    padding: 0;
    border: 1px solid var(--border);
    background: var(--white);
}
.cs-pricelist li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 26px;
}
.cs-pricelist li + li {
    border-top: 1px solid var(--border);
}
.cs-pricerow__text {
    min-width: 0;
}
.cs-pricerow__text strong {
    display: block;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--heading);
    margin-bottom: 4px;
}
.cs-pricerow__text small {
    display: block;
    font-size: 14px;
    color: var(--muted);
}
.cs-pricerow__price {
    flex: 0 0 auto;
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--primary);
    white-space: nowrap;
}
.cs-pricelist__note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    max-width: 760px;
    margin: 18px auto 0;
    font-size: 14px;
    color: var(--muted);
}
.cs-pricelist__note i {
    font-size: 16px;
    color: var(--primary);
}
.bg-lighter .cs-pricelist {
    border-color: transparent;
    box-shadow: rgba(0, 0, 0, .1) 0 0 5px 0, rgba(0, 0, 0, .1) 0 0 1px 0;
}
.bg-dark .cs-pricelist {
    border-color: rgba(255, 255, 255, .15);
    background: rgba(255, 255, 255, .04);
}
.bg-dark .cs-pricelist li + li {
    border-top-color: rgba(255, 255, 255, .15);
}
.bg-dark .cs-pricerow__text strong {
    color: var(--white);
}
.bg-dark .cs-pricerow__text small,
.bg-dark .cs-pricelist__note {
    color: rgba(255, 255, 255, .7);
}
@media (max-width: 575px) {
    .cs-pricelist li {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 16px 18px;
    }
    .cs-pricelist__note {
        align-items: flex-start;
        text-align: left;
    }
}


/* ==========================================================================
   Promoted from More: bento grid, expanding panels, flip countdown,
   flip team cards, glow border cards, open now locations, review ribbon,
   zoom on scroll, dealership updates
   ========================================================================== */
/* ==========================================================================
   Bento grid
   ========================================================================== */
.cs-bento {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 240px) auto;
    gap: 16px;
}
.cs-bento__tile {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    padding: 28px;
    overflow: hidden;
    background: var(--bg-light);
    border: 1px solid var(--border);
    color: var(--heading);
    transition: var(--transition);
}
a.cs-bento__tile:hover {
    border-color: var(--border-strong);
    box-shadow: var(--shadow);
}
.cs-bento__tile p {
    margin: 0;
    font-size: 15px;
    color: var(--muted);
}
.cs-bento__tile .h3,
.cs-bento__tile .h4 {
    margin: 0;
}
.cs-bento__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: auto;
    border-radius: 4px;
    font-size: 22px;
    color: var(--primary-ink);
    background: rgba(var(--primary-rgb), .08);
}
.cs-bento__tile--wide {
    grid-column: span 2;
    grid-row: span 2;
}
.cs-bento__tile--photo {
    padding: 0;
    border: 0;
    background: var(--heading);
}
.cs-bento__tile--photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease-out);
}
.cs-bento__tile--photo:hover img {
    transform: scale(1.05);
}
.cs-bento__over {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 28px;
    color: var(--white);
    background: linear-gradient(0deg, rgba(15, 23, 43, .88) 0%, rgba(15, 23, 43, 0) 100%);
}
.cs-bento__tile--wide .cs-bento__over {
    padding: 40px;
}
.cs-bento__tile--wide .cs-bento__over .h3 {
    max-width: 16ch;
    color: var(--white);
}
.cs-bento__over .h4 {
    color: var(--white);
}
.cs-bento__tag {
    align-self: flex-start;
    padding: 5px 10px;
    font-family: var(--font-heading);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--heading);
    background: var(--white);
}
.cs-bento__go {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 600;
}
.cs-bento__go i {
    transition: transform .2s ease;
}
a.cs-bento__tile:hover .cs-bento__go i {
    transform: translateX(4px);
}
.cs-bento__tile--stat {
    justify-content: center;
    background: var(--white);
}
.cs-bento__num {
    font-family: var(--font-heading);
    font-size: 96px;
    font-weight: 700;
    line-height: .9;
    letter-spacing: -2px;
    color: var(--primary-ink);
}
.cs-bento__label {
    max-width: 14ch;
    font-size: 15px;
    color: var(--muted);
}
.cs-bento__tile--dark {
    border: 0;
    color: var(--white);
    background: var(--heading);
}
.cs-bento__tile--dark p {
    color: rgba(255, 255, 255, .75);
}
.cs-bento__tile--dark .h4 {
    color: var(--white);
}
.cs-bento__tile--dark .cs-bento__icon {
    color: var(--primary-on-dark);
    background: rgba(255, 255, 255, .08);
}
.cs-bento__tile--dark .cs-bento__go {
    color: var(--white);
}
.cs-bento__tile--accent {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 40px;
    border: 0;
    color: var(--white);
    background: var(--primary-ink);
}
.cs-bento__tile--accent .h4 {
    flex: 0 0 auto;
    color: var(--white);
}
.cs-bento__tile--accent p {
    flex: 1 1 auto;
    color: var(--white);
}


/* ==========================================================================
   Expanding panels
   ========================================================================== */
.cs-expand {
    display: flex;
    gap: 12px;
    height: 500px;
}
.cs-expand__panel {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    color: var(--white);
    background: var(--heading);
    transition: flex .7s var(--ease-out);
}
.cs-expand__panel.is-open {
    flex: 4 1 0;
}
.cs-expand__panel:not(.is-open) {
    cursor: pointer;
}
.cs-expand__panel img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s var(--ease-out);
}
.cs-expand__panel.is-open img {
    transform: scale(1.04);
}
.cs-expand__panel::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(15, 23, 43, .9) 0%, rgba(15, 23, 43, .1) 60%);
}
.cs-expand__body {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 28px;
}
.cs-expand__count {
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.2px;
    color: var(--primary-on-dark);
}
.cs-expand__body .h4 {
    margin: 0;
    color: var(--white);
    white-space: nowrap;
}
/* Closed panels stand the title on its side so it still reads in a narrow strip */
.cs-expand__panel:not(.is-open) .h4 {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}
.cs-expand__text,
.cs-expand__go {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: opacity .3s ease, max-height .5s ease;
}
.cs-expand__panel.is-open .cs-expand__text,
.cs-expand__panel.is-open .cs-expand__go {
    max-height: 60px;
    opacity: 1;
    transition-delay: .25s;
}
.cs-expand__text {
    font-size: 15px;
    color: rgba(255, 255, 255, .85);
}
.cs-expand__go {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 600;
    color: var(--white);
}
.cs-expand__go:hover {
    color: var(--primary-on-dark);
}


/* ==========================================================================
   Flip countdown
   ========================================================================== */
.cs-flipcount {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 64px;
    align-items: center;
}
.cs-flipcount__copy p {
    max-width: 48ch;
    color: rgba(255, 255, 255, .8);
}
.cs-flipcount .head-label {
    color: var(--primary-on-dark);
}
.cs-flipcount__clock {
    display: flex;
    gap: 14px;
}
.cs-flipcount__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.cs-flipcount__num {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 104px;
    height: 120px;
    border: 1px solid rgba(255, 255, 255, .12);
    font-family: var(--font-heading);
    font-size: 60px;
    font-weight: 700;
    color: var(--white);
    background: linear-gradient(180deg, rgba(255, 255, 255, .09) 50%, rgba(255, 255, 255, .05) 50%);
    font-variant-numeric: tabular-nums;
    perspective: 400px;
}
/* The hinge line through the middle of each card */
.cs-flipcount__num::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 1px;
    background: rgba(0, 0, 0, .45);
}
.cs-flipcount__num.is-tick {
    animation: cs-flip .5s var(--ease-out);
}
.cs-flipcount__lbl {
    font-family: var(--font-heading);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}
@keyframes cs-flip {
    0% {
        transform: rotateX(0);
    }
    40% {
        transform: rotateX(-70deg);
    }
    100% {
        transform: rotateX(0);
    }
}


/* ==========================================================================
   Flip team cards
   ========================================================================== */
.cs-flipteam {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.cs-flipcard {
    aspect-ratio: 3 / 4;
    perspective: 1400px;
    outline: none;
}
.cs-flipcard__inner {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform .8s var(--ease-out);
}
.cs-flipcard:hover .cs-flipcard__inner,
.cs-flipcard:focus-within .cs-flipcard__inner {
    transform: rotateY(180deg);
}
.cs-flipcard:focus-visible .cs-flipcard__inner {
    outline: 2px solid var(--primary);
    outline-offset: 3px;
}
.cs-flipcard__front,
.cs-flipcard__back {
    position: absolute;
    inset: 0;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.cs-flipcard__front img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cs-flipcard__name {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 60px 22px 20px;
    color: var(--white);
    background: linear-gradient(0deg, rgba(15, 23, 43, .88) 0%, rgba(15, 23, 43, 0) 100%);
}
.cs-flipcard__name strong {
    font-family: var(--font-heading);
    font-size: 19px;
}
.cs-flipcard__name span {
    font-size: 14px;
    color: rgba(255, 255, 255, .85);
}
.cs-flipcard__back {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px;
    color: var(--white);
    background: var(--heading);
    transform: rotateY(180deg);
}
.cs-flipcard__back .h4 {
    margin: 0;
    color: var(--white);
}
.cs-flipcard__role {
    margin: 4px 0 16px;
    font-family: var(--font-heading);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--primary-on-dark);
}
.cs-flipcard__back p {
    font-size: 15px;
    color: rgba(255, 255, 255, .8);
}
.cs-flipcard__mail {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: 14px;
    color: var(--white);
    word-break: break-all;
}
.cs-flipcard__mail:hover {
    color: var(--primary-on-dark);
}


/* ==========================================================================
   Glow border cards
   ========================================================================== */
.cs-glowcards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.cs-glowcard {
    position: relative;
    padding: 1px;
    overflow: hidden;
    background: rgba(255, 255, 255, .12);
}
/* A spinning conic sweep sits behind the card; only its 1px edge shows */
.cs-glowcard::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200%;
    aspect-ratio: 1;
    background: conic-gradient(transparent 0 70%, var(--primary) 84%, transparent 100%);
    opacity: 0;
    transform: translate(-50%, -50%);
    transition: opacity .4s ease;
    animation: cs-glow-spin 4s linear infinite;
}
.cs-glowcard:hover::before {
    opacity: 1;
}
.cs-glowcard__in {
    position: relative;
    height: 100%;
    padding: 36px 30px;
    background: var(--heading);
}
.cs-glowcard__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 24px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 4px;
    font-size: 24px;
    color: var(--primary-on-dark);
}
.cs-glowcard .h4 {
    color: var(--white);
}
.cs-glowcard p {
    margin: 0;
    font-size: 15px;
    color: rgba(255, 255, 255, .75);
}
@keyframes cs-glow-spin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}


/* ==========================================================================
   Open now locations
   ========================================================================== */
.cs-openstatus {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.cs-openstatus__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 32px;
    border: 1px solid var(--border);
    background: var(--white);
}
.cs-openstatus__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding: 6px 12px;
    font-family: var(--font-heading);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--muted);
    background: var(--light-bg);
}
.cs-openstatus__badge::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}
.cs-openstatus__badge.is-open {
    color: #166534;
    background: #ecfdf3;
}
.cs-openstatus__badge.is-soon {
    color: #92400e;
    background: #fffbeb;
}
.cs-openstatus__badge.is-closed {
    color: var(--muted);
    background: var(--light-bg);
}
.cs-openstatus__card .h4 {
    margin: 0;
}
.cs-openstatus__sub {
    margin-bottom: 16px;
    font-size: 14px;
    color: var(--muted);
}
.cs-openstatus__addr {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 15px;
}
.cs-openstatus__addr i {
    color: var(--primary-ink);
}
.cs-openstatus__today {
    flex: 1 1 auto;
    margin-bottom: 20px;
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 600;
    color: var(--heading);
}


/* ==========================================================================
   Review ribbon (rides on the .cs-marquee engine in main.js)
   ========================================================================== */
.cs-reviewribbon {
    display: grid;
    gap: 16px;
}
.cs-reviewribbon__row .cs-marquee__track {
    align-items: stretch;
}
.cs-rchip {
    flex: 0 0 380px;
    margin: 0 8px;
    padding: 24px 26px;
    border: 1px solid var(--border);
    background: var(--bg-light);
}
.cs-rchip__stars {
    display: block;
    margin-bottom: 10px;
    font-size: 14px;
    letter-spacing: 2px;
    color: #f5b301;
}
.cs-rchip blockquote {
    margin: 0 0 14px;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    white-space: normal;
    color: var(--heading);
}
.cs-rchip figcaption {
    font-size: 14px;
    font-weight: 600;
    color: var(--muted);
}


/* ==========================================================================
   Zoom on scroll
   ========================================================================== */
.cs-zoomreveal {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 8;
    background: var(--heading);
    transform: scale(var(--s, .86));
    transform-origin: 50% 0;
    will-change: transform;
}
.cs-zoomreveal img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(calc(2.1 - var(--s, .86)));
}
.cs-zoomreveal::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(15, 23, 43, .75) 0%, rgba(15, 23, 43, 0) 45%);
}
.cs-zoomreveal__cap {
    position: absolute;
    right: 48px;
    bottom: 44px;
    left: 48px;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}
.cs-zoomreveal__cap .h3 {
    max-width: 18ch;
    margin: 0;
    color: var(--white);
}


/* ==========================================================================
   Dealership updates
   ========================================================================== */
.cs-updates__intro .cs-sechead {
    margin-bottom: 28px;
}
.cs-updates {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--border);
}
.cs-updates__item {
    position: relative;
    display: grid;
    grid-template-columns: 80px 1fr 24px;
    gap: 24px;
    align-items: start;
    padding: 26px 0;
    border-bottom: 1px solid var(--border);
}
.cs-updates__date {
    padding-top: 2px;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--muted);
}
.cs-updates__tag {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 4px;
    font-family: var(--font-heading);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--primary-ink);
    background: rgba(var(--primary-rgb), .08);
}
.cs-updates__body .h5 {
    margin: 10px 0 6px;
}
.cs-updates__body .h5 a {
    color: var(--heading);
}
/* The heading link stretches over the whole row */
.cs-updates__body .h5 a::after {
    content: '';
    position: absolute;
    inset: 0;
}
.cs-updates__body p {
    margin: 0;
    font-size: 15px;
    color: var(--muted);
}
.cs-updates__arrow {
    padding-top: 2px;
    font-size: 18px;
    color: var(--muted);
    transition: var(--transition);
}
.cs-updates__item:hover .h5 a {
    color: var(--primary-ink);
}
.cs-updates__item:hover .cs-updates__arrow {
    color: var(--primary-ink);
    transform: translate(3px, -3px);
}


/* ==========================================================================
   Responsive (modules promoted from More)
   ========================================================================== */
@media (max-width: 1199px) {
    .cs-flipcount__num {
        width: 88px;
        height: 104px;
        font-size: 50px;
    }
}

@media (max-width: 991px) {
    .cs-bento {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: none;
        grid-auto-rows: minmax(220px, auto);
    }
    .cs-bento__tile--wide {
        grid-row: span 1;
        min-height: 360px;
    }
    .cs-bento__tile--accent {
        grid-column: 1 / -1;
    }
    .cs-expand {
        height: 440px;
    }
    .cs-flipcount {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .cs-flipteam,
    .cs-glowcards {
        grid-template-columns: repeat(2, 1fr);
    }
    .cs-openstatus {
        grid-template-columns: 1fr;
    }
    .cs-zoomreveal {
        aspect-ratio: 4 / 3;
    }
    .cs-zoomreveal__cap {
        right: 28px;
        bottom: 28px;
        left: 28px;
        flex-direction: column;
        align-items: flex-start;
    }
    .cs-updates__intro {
        margin-bottom: 8px;
    }
}

@media (max-width: 767px) {
    .cs-bento__num {
        font-size: 72px;
    }
    .cs-bento__tile--accent {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding: 28px;
    }
    .cs-expand {
        flex-direction: column;
        height: auto;
    }
    .cs-expand__panel {
        flex: 0 0 84px;
        transition: flex-basis .6s var(--ease-out);
    }
    .cs-expand__panel.is-open {
        flex: 0 0 320px;
    }
    .cs-expand__panel:not(.is-open) .h4 {
        writing-mode: horizontal-tb;
        transform: none;
    }
    .cs-expand__body {
        padding: 22px;
    }
    /* Closed rows are only 84px tall: drop the number and centre the title */
    .cs-expand__panel:not(.is-open) .cs-expand__count {
        display: none;
    }
    .cs-expand__panel:not(.is-open) .cs-expand__body {
        top: 0;
        justify-content: center;
        padding-top: 0;
        padding-bottom: 0;
    }
    .cs-expand__panel:not(.is-open)::after {
        background: linear-gradient(90deg, rgba(15, 23, 43, .85) 0%, rgba(15, 23, 43, .35) 100%);
    }
    .cs-expand__panel:not(.is-open) .h4 {
        font-size: 20px;
    }
    .cs-flipcount__clock {
        gap: 10px;
    }
    .cs-flipcount__unit {
        flex: 1 1 0;
    }
    .cs-flipcount__num {
        width: 100%;
        height: 88px;
        font-size: 40px;
    }
    /* Team becomes a swipe row on phones, the next card peeks in to show there is more */
    .cs-flipteam {
        display: flex;
        gap: 12px;
        margin-right: -15px;
        padding-right: 15px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .cs-flipteam::-webkit-scrollbar {
        display: none;
    }
    .cs-flipteam .cs-flipcard {
        flex: 0 0 74%;
        scroll-snap-align: start;
    }
    .cs-flipcard__back {
        padding: 18px;
    }
    .cs-flipcard__back p {
        display: none;
    }
    .cs-glowcards {
        grid-template-columns: 1fr;
    }
    .cs-updates__item {
        grid-template-columns: 1fr 20px;
        gap: 8px 16px;
    }
    .cs-updates__date {
        grid-column: 1 / -1;
    }
    .cs-updates__arrow {
        grid-row: 2;
        grid-column: 2;
    }
    .cs-rchip {
        flex-basis: 300px;
    }
}

@media (max-width: 575px) {
    .cs-bento {
        grid-template-columns: 1fr;
    }
    .cs-bento__tile--wide {
        grid-column: auto;
        min-height: 320px;
    }
    .cs-bento__tile--wide .cs-bento__over {
        padding: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cs-glowcard::before {
        animation: none;
    }
    .cs-flipcard__inner,
    .cs-expand__panel {
        transition: none;
    }
    .cs-zoomreveal,
    .cs-zoomreveal img {
        transform: none;
    }
}


/* ==========================================================================
   Promoted from More, round two: coverflow,
   image with overlapping text and floating cards band.
   The coverflow behaviour lives in main.js.
   ========================================================================== */


/* ==========================================================================
   Coverflow
   ========================================================================== */
/* Side covers fan out past the edges, clip them sideways only so shadows keep their room */
.cs-coverflow {
    overflow-x: clip;
}
.cs-coverflow__track {
    position: relative;
    height: 500px;
    margin: 0;
    padding: 0;
    list-style: none;
    perspective: 1400px;
}
.cs-coverflow__item {
    position: absolute;
    top: 0;
    left: 50%;
    z-index: var(--z, 1);
    width: 330px;
    margin-left: -165px;
    cursor: pointer;
    opacity: var(--op, 1);
    transform: translateX(calc(var(--o, 0) * 62%)) translateZ(calc(var(--d, 0) * -180px)) rotateY(calc(var(--o, 0) * -38deg));
    transition: transform .7s var(--ease-out), opacity .5s ease;
}
.cs-coverflow__item figure {
    margin: 0;
}
.cs-coverflow__item img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    box-shadow: rgba(0, 0, 0, .45) 0 20px 40px 0;
}
.cs-coverflow__item figcaption {
    margin-top: 16px;
    font-family: var(--font-heading);
    font-weight: 600;
    text-align: center;
    color: var(--white);
    opacity: 0;
    transition: opacity .3s ease;
}
.cs-coverflow__item.is-active figcaption {
    opacity: 1;
}
.cs-coverflow__ctrls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
}
.cs-coverflow__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 4px;
    font-size: 18px;
    color: var(--white);
    background: none;
    cursor: pointer;
    transition: var(--transition);
}
.cs-coverflow__btn:hover {
    border-color: var(--white);
    color: var(--heading);
    background: var(--white);
}
.cs-coverflow__count {
    min-width: 60px;
    font-family: var(--font-heading);
    font-weight: 600;
    text-align: center;
    color: rgba(255, 255, 255, .75);
    font-variant-numeric: tabular-nums;
}


/* ==========================================================================
   Image with overlapping text
   ========================================================================== */
.cs-overlap {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 620px;
}
.cs-overlap__img {
    position: absolute;
    top: 0;
    right: 0;
    width: 78%;
    height: 100%;
    object-fit: cover;
}
.cs-overlap__card {
    position: relative;
    width: 540px;
    max-width: 100%;
    padding: 56px 52px;
    background: var(--white);
    box-shadow: var(--shadow-lg);
}
.cs-overlap__card .h2 {
    margin-bottom: 20px;
}
.cs-overlap__card p {
    color: var(--muted);
}
.cs-overlap__card p:last-of-type {
    margin-bottom: 32px;
}


/* ==========================================================================
   Floating cards band
   ========================================================================== */
.cs-floatband {
    padding-bottom: 80px;
}
.cs-floatband__photo {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 460px;
    padding-bottom: 120px;
    overflow: hidden;
    background: var(--heading);
}
.cs-floatband__photo > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cs-floatband__photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 23, 43, .85) 0%, rgba(15, 23, 43, .2) 70%);
}
.cs-floatband__photo > .cs-container {
    position: relative;
    z-index: 1;
    width: 100%;
}
.cs-floatband__title {
    max-width: 560px;
}
.cs-floatband__title .head-label,
.cs-floatband__title .h2 {
    color: var(--white);
}
.cs-floatband__cards {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: -100px;
}
.cs-floatband__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 36px 32px;
    color: var(--heading);
    background: var(--white);
    box-shadow: var(--shadow-lg);
    transition: transform .4s var(--ease-out);
}
.cs-floatband__card:hover {
    transform: translateY(-6px);
}
.cs-floatband__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 22px;
    border-radius: 4px;
    font-size: 24px;
    color: var(--white);
    background: var(--primary-ink);
}
.cs-floatband__card p {
    flex: 1 1 auto;
    color: var(--muted);
}
.cs-floatband__go {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-heading);
    font-weight: 600;
    color: var(--primary-ink);
}


/* ==========================================================================
   Responsive (modules promoted from More, round two)
   ========================================================================== */
@media (max-width: 991px) {
    .cs-coverflow__track {
        height: 440px;
    }
    .cs-coverflow__item {
        width: 270px;
        margin-left: -135px;
    }
    .cs-overlap {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
    }
    .cs-overlap__img {
        position: relative;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
    }
    .cs-overlap__card {
        width: auto;
        margin: -80px 24px 0;
    }
    .cs-floatband__cards {
        grid-template-columns: 1fr;
        max-width: 560px;
    }
}

@media (max-width: 767px) {
    .cs-coverflow__track {
        height: 380px;
    }
    .cs-coverflow__item {
        width: 230px;
        margin-left: -115px;
        transform: translateX(calc(var(--o, 0) * 42%)) translateZ(calc(var(--d, 0) * -160px)) rotateY(calc(var(--o, 0) * -30deg));
    }
    .cs-overlap__card {
        margin: -48px 12px 0;
        padding: 32px 24px;
    }
    .cs-floatband__photo {
        min-height: 380px;
    }
    .cs-floatband__cards {
        margin-top: -80px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cs-coverflow__item {
        transition: none;
    }
}

/* ==========================================================================
   v5 · Price list: numbered rows, dotted leader to the price, "From" set
   small over a larger price, corner dots and a pill note
   ========================================================================== */
.cs-pricelist {
    position: relative;
    overflow: hidden;
    counter-reset: cs-price;
    border-color: var(--border-light);
    box-shadow: rgba(15, 23, 43, .05) 0 1px 3px 0;
}
.cs-pricelist::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 180px;
    height: 180px;
    background-image: radial-gradient(rgba(41, 64, 111, .16) 1.5px, transparent 1.6px);
    background-size: 14px 14px;
    -webkit-mask-image: linear-gradient(225deg, #000, transparent 70%);
    mask-image: linear-gradient(225deg, #000, transparent 70%);
    pointer-events: none;
}
.cs-pricelist li {
    position: relative;
    gap: 20px;
    padding: 22px 28px;
}
.cs-pricelist li::before {
    counter-increment: cs-price;
    content: counter(cs-price, decimal-leading-zero);
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
    background: var(--primary-tint-10);
}
.cs-pricelist li + li {
    border-top-color: var(--border-light);
}
.cs-pricerow__text {
    flex: 0 1 auto;
}
.cs-pricerow__text strong {
    font-size: 17px;
}
/* Dotted leader fills the gap between the text and the price */
.cs-pricelist li::after {
    content: '';
    order: 2;
    flex: 1 1 24px;
    align-self: center;
    min-width: 24px;
    border-bottom: 1px dotted var(--border-strong);
}
.cs-pricerow__price {
    order: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-size: 22px;
    line-height: 1.1;
    letter-spacing: -.3px;
    color: var(--heading);
}
.cs-pricerow__price small {
    margin-bottom: 3px;
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--primary-text);
}
.cs-pricelist__note {
    width: fit-content;
    max-width: 760px;
    margin-top: 20px;
    padding: 8px 18px;
    border: 1px solid var(--border-light);
    border-radius: 40px;
    background: var(--white);
}
.bg-lighter .cs-pricelist__note {
    border-color: transparent;
}
.bg-dark .cs-pricelist::before {
    background-image: radial-gradient(rgba(255, 255, 255, .14) 1.5px, transparent 1.6px);
}
.bg-dark .cs-pricelist li::before {
    color: var(--white);
    background: var(--primary);
}
.bg-dark .cs-pricelist li::after {
    border-bottom-color: rgba(255, 255, 255, .25);
}
.bg-dark .cs-pricerow__price {
    color: var(--white);
}
.bg-dark .cs-pricelist__note {
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
}
@media (max-width: 575px) {
    .cs-pricelist li {
        display: grid;
        grid-template-columns: auto 1fr;
        column-gap: 14px;
        row-gap: 10px;
        align-items: start;
        padding: 18px;
    }
    .cs-pricelist li::before {
        grid-row: span 2;
        width: 34px;
        height: 34px;
        font-size: 12px;
    }
    .cs-pricelist li::after {
        content: none;
    }
    .cs-pricerow__price {
        flex-direction: row;
        align-items: baseline;
        gap: 6px;
        font-size: 19px;
    }
    .cs-pricelist__note {
        border-radius: 12px;
    }
}
/* Price list: no corner dots */
.cs-pricelist::before,
.bg-dark .cs-pricelist::before {
    content: none;
}
/* Price list: no numbers, no dotted leader */
.cs-pricelist li::before,
.cs-pricelist li::after,
.bg-dark .cs-pricelist li::before {
    content: none;
}
@media (max-width: 575px) {
    .cs-pricelist li {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}
